Pemalar dalam JS dan apa kaitan Plato dan Aristotle dengannya

WBOY
Lepaskan: 2024-08-09 08:21:22
asal
711 orang telah melayarinya

Constants in JS and what do Plato and Aristotle have to do with it

Saya nampaknya junior melihat komponen kod sebagai perkara material, manakala senior lebih berurusan dengan kategori ideal.
Atau mungkin ia bergantung pada pandangan dunia seseorang dan bukannya tahap profesional mereka?

Kadang-kadang semasa semakan kod, saya terjumpa kod di mana bukannya pemalar CAR_WIDTH, pembangun menggunakan pemalar JADUAL_WIDTH kerana ia adalah pemalar pertama yang dia temui dengan nilai yang sesuai.

Ini adalah masalah biasa apabila pembangun memilih pemalar berdasarkan nilainya dan bukannya namanya. Ternyata pembangun tidak memahami tujuan utama pemalar. Pada pandangan beliau, pemalar hanya untuk digunakan semula dan kebolehbacaan.

Mari kita ingat apa yang Plato dan Aristotle katakan tentang perkara ini.

Mereka mempunyai pemalar sendiri yang dipanggil SHIP_OF_THESEUS.
https://en.wikipedia.org/wiki/Ship_of_Theseus
Ia mungkin dinamakan berbeza dalam bahasa Yunani, tetapi kami akan menulisnya dalam bahasa Latin dan oleh itu menterjemahkannya ke dalam bahasa Inggeris.

const SHIP_OF_THESEUS = {
    name: "Ship of Theseus",
    parts: ["mast", "hull", "sail"]
};
Salin selepas log masuk

Malar SHIP_OF_THESEUS dalam contoh ini melambangkan identiti Kapal Theseus yang tidak berubah. Nilainya, yang berubah dari semasa ke semasa, mewakili perubahan material.

// Day 1: Initial state of the ship
const SHIP_OF_THESEUS = {
    name: "Ship of Theseus",
    parts: ["mast", "hull", "sail"]
};

// Day 2: Developer changes one part of the ship
const SHIP_OF_THESEUS = {
    name: "Ship of Theseus",
    parts: ["new mast", "hull", "sail"]
};

// Day 3: Developer changes another part of the ship
const SHIP_OF_THESEUS = {
    name: "Ship of Theseus",
    parts: ["new mast", "new hull", "sail"]
};

// Day 4: Developer changes structure of the part of the ship
const SHIP_OF_THESEUS = {
    name: "Ship of Theseus",
    parts: {
        mast: "new mast",
        hull: "new hull",
        sail: "sail"
    }
};
Salin selepas log masuk

Ideal (Malar):

SHIP_OF_THESEUS: Setiap hari, pemalar ini mewakili intipati ideal Kapal Theseus. Walaupun nilainya berubah, konsep kapal itu tetap tidak berubah.

Bahan (Nilai Pemalar):

bahagian: Senarai bahagian kapal yang berubah setiap hari. Ini mencerminkan penjelmaan material kapal, yang berubah dari semasa ke semasa.

Plato mengenai Ideal dan Bahan:

Malar SHIP_OF_THESEUS sebagai bentuk ideal kekal tidak berubah: setiap hari ia mewakili Kapal Theseus. Walau bagaimanapun, nilainya (bahagian) mungkin berubah, mencerminkan perubahan bahan.

Aristotle mengenai Bentuk dan Jirim:

Aristotle akan mengatakan bahawa identiti kapal itu terpelihara melalui bentuk dan fungsi (sangat serupa dengan menaip itik dalam JS, bukan?). Dalam contoh kami, walaupun bahagian kapal berubah, bentuk objek (struktur dan fungsinya) kekal tidak berubah. Setiap hari ia masih Kapal Theseus yang sama, walaupun terdapat perubahan pada bahagiannya.

Jadi apakah faedah sebenar menggunakan pemalar?

Faedah utama bukan kebolehbacaan dan kebolehgunaan semula. Faedah utama ialah pengasingan kod kepada ideal dan bahan (menurut Plato) atau bentuk dan jirim (menurut Aristotle) .

Dengan membuat perpisahan ini, kita boleh menukar perkara itu tanpa mengubah bentuk.
Dan kita boleh menggunakan borang sepanjang program tanpa perlu risau tentang perkara.

Atas ialah kandungan terperinci Pemalar dalam JS dan apa kaitan Plato dan Aristotle dengannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan