"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > الثوابت في JS وما علاقة أفلاطون وأرسطو بها

الثوابت في JS وما علاقة أفلاطون وأرسطو بها

تم النشر بتاريخ 2024-08-15
تصفح:637

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

يبدو لي أن الصغار ينظرون إلى مكونات الكود على أنها أشياء مادية، بينما يتعامل كبار السن أكثر مع الفئات المثالية.
أو ربما يعتمد ذلك على نظرة الشخص للعالم بدلاً من مستواه المهني؟

أحيانًا أثناء مراجعة الكود، أصادف كودًا حيث بدلاً من الثابت CAR_WIDTH، استخدم المطور الثابت TABLE_WIDTH لأنه كان أول ثابت وجده بقيمة مناسبة.

هذه مشكلة شائعة عندما يختار المطورون ثابتًا بناءً على قيمته بدلاً من اسمه. اتضح أن المطور لا يفهم الغرض الأساسي من الثوابت. ومن وجهة نظره، فإن الثوابت هي فقط لإعادة الاستخدام وسهولة القراءة.

دعونا نتذكر ما قاله أفلاطون وأرسطو حول هذا الموضوع.

كان لديهم ثابت خاص بهم يسمى SHIP_OF_THESEUS.
https://en.wikipedia.org/wiki/Ship_of_Theseus
ربما كان اسمه مختلفًا باللغة اليونانية، لكننا سنكتبه باللغة اللاتينية وبالتالي نترجمه إلى الإنجليزية.

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

الثابت SHIP_OF_THESEUS في هذا المثال يرمز إلى الهوية الثابتة لسفينة ثيسيوس. وقيمتها التي تتغير بمرور الوقت تمثل التغيرات المادية.

// 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"
    }
};

المثالية (الثابتة):

SHIP_OF_THESEUS: كل يوم، يمثل هذا الثابت الجوهر المثالي لسفينة ثيسيوس. وعلى الرغم من التغيرات في قيمتها، فإن مفهوم السفينة يبقى دون تغيير.

المادة (قيمة الثابت):

أجزاء: قائمة أجزاء السفينة التي تتغير كل يوم. وهذا يعكس التجسيد المادي للسفينة والذي يتغير مع مرور الوقت.

أفلاطون حول المثالية والمادة:

يظل الشكل الثابت SHIP_OF_THESEUS كشكل مثالي دون تغيير: فهو يمثل كل يوم سفينة ثيسيوس. ومع ذلك، فإن قيمتها (الأجزاء) قد تتغير، مما يعكس تغييرات المادة.

أرسطو في الشكل والمادة:

قد يقول أرسطو أن هوية السفينة يتم الحفاظ عليها من خلال شكلها ووظيفتها (تشبه إلى حد كبير كتابة البط في JS، أليس كذلك؟). في مثالنا، على الرغم من أن أجزاء السفينة تتغير، إلا أن شكل الجسم (بنيته ووظيفته) يظل دون تغيير. كل يوم لا تزال سفينة ثيسيوس هي نفسها، على الرغم من التغييرات في أجزائها. إذن ما هي الفوائد الفعلية لاستخدام الثوابت؟

الفائدة الرئيسية ليست سهولة القراءة وإعادة الاستخدام. الفائدة الرئيسية هي فصل الكود إلى

مثالي

ومادة (بحسب أفلاطون) أو شكل ومادة (بحسب أرسطو). . وبإجراء هذا الفصل يمكننا تغيير الأمر دون تغيير الشكل.

ويمكننا استخدام النموذج في جميع أنحاء البرنامج دون القلق بشأن المادة.


بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/simprl/constants-in-js-and-what-do-plato-and-aristotle-have-to-do-with-it-2boi?1إذا كان هناك أي التعدي، يرجى الاتصال بـ [email protected] للحذف
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3