
هذه ترجمة
لمنصب مايكل ماكي. مايكل هو مبرمج محترف يشارك من وقت لآخر خبرته ومهاراته مع الزملاء ، سواء المبرمجين المبتدئين والمحترفين.
معظم المبرمجين هم آخر من يفكر في جماليات الشفرة التي ينشئونها. بالطبع ، يلتزم الجميع تقريبًا بالقواعد العامة. ولكن ماذا لو ذهبنا أبعد من ذلك؟ يجب أن تعمل التعليمات البرمجية الجيدة في المقام الأول. لكني أعتقد أنه يجب أن يكون له أسلوبه الخاص ، وهذا لا ينطبق فقط على المحتوى ، ولكن أيضًا على الشكل.
توصي Skillbox بما يلي: دورة سنوية عملية "مطور PHP من الصفر إلى PRO" .
نذكرك: لجميع قراء "هبر" - خصم 10000 روبل عند التسجيل في أي دورة من دورات Skillbox باستخدام الرمز الترويجي "Habr".
في الواقع هذا ليس هو الحال. فيما يلي بعض المشاكل التي يواجهها جميع المبرمجين المتعلمين ذاتيًا. هناك الكثير من المقالات والملاحظات حول هذا الموضوع ، ولكن أريد أن أخبرك بكيفية تصميم الرمز بشكل مرئي بحيث لا يكون صحيحًا فحسب ، بل يبدو أيضًا جيدًا من الخارج. أعتقد أن التعبير عن الذات ممكن ليس فقط في الفنون البصرية - بل يمكن القيام به دائمًا وفي كل مكان.
إن تنظيم العمل وشكله البصري مهم للغاية بالنسبة لي. روبي هي نسخة رائعة من لغة البرمجة ، كما لو كانت مصممة خصيصًا لتلبية متطلباتي ، لأنها تتيح لنا القيام بما نريده دون أي مشاكل. إنه مرن وأنيق ومنطقي.
دعونا نلقي نظرة على هذا المثال.

حتى المبرمج المبتدئ سيفهم ما هو الخطأ هنا. من المؤلم أن ننظر إلى هذا الرمز. لكن النسخة المصححة ، والتي تبدو أفضل بالفعل.

عفوا! أفضل بكثير. الآن نرى ما ينتمي وكيف. ولكن يمكن تحسين هذا الرمز. يمكن جعل إعلان attr_reader و attr_accessor أكثر تعبيرًا.

يعد الإعلان عن كل سمة جديدة بخط جديد أسهل في القراءة. الآن لدينا قائمة السمات التي تم تعيينها لكل موصل. يمكنك الذهاب إلى أبعد من ذلك.

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

من حيث المبدأ ، نقرأ الرمز ، يبدو أن كل شيء على ما يرام. ولكن يمكنك القيام بعمل أفضل.

إذا وضعت جميع عوامل التعيين في عمود واحد ، فسيظهر بشكل جيد. بالنظر إلى هذا الرمز ، من السهل تحديد ماذا وكيف ولماذا ستعمل.
دعنا نرى كيف سيبدو InvoiceItem بالكامل الآن.

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

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

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

في هذه الحالة ، لا نرى البنية الكاملة للرمز ، على الأقل في منطقة العرض الحالية. من أجل رؤية السمات ، تحتاج إلى التمرير باستمرار ، وهو أمر غير مناسب للغاية. لنصلحها بنفس الطريقة التي فعلناها أعلاه ، في مثال التجزئة.

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

لنأخذ كل عنصر من الحيوانات ونطبق طريقة الأحرف الكبيرة. يبدو جيدًا ، ولكن الأفضل هو أنه يمكن تقصير الرمز قليلاً وجعله أكثر قابلية للقراءة للبشر.

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