هل قمت في أي وقت بفحص الكود الذي قمت بتكوينه قبل نصف عام أو ثلاث سنوات ، واسأل نفسك ، "ما الذي كنت أفكر فيه بحق الأرض؟" لدينا جميعا.
بالنظر إلى مضايقاتي Python ، رأيت بعض الأنماط. لا أفضّل أن أقول إنها "أفضل خياراتي" ، ولكن يبدو أنني أقوم بها كثيرًا:
خوارزميات معقدة بشكل مفرط
هذا هو واحد رئيسي. ألق نظرة على الكود الذي قمت بتكوينه - الفئات والوحدات وما إلى ذلك - ويمكنني أن أرى أنه يتضح أنه رائع.
مهما كان الأمر ، فقد يكون الأمر أكثر وضوحًا.
تعني أقل تعقيدًا بشكل منتظم أنها ذات مغزى أكثر ، وأكثر قابلية للتطبيق ، و-بشكل صادم بشكل متكرر-أقل حساسية. وهذا يعني أن الكود يحتاج بالفعل إلى العمل بفعالية. ومع ذلك ، صحيح ، الكود الأساسي تقريبًا في كل حالة أفضل مقارنةً بالكود الصحيح والمعقد.
في اللحظة التي أبتعد فيها لبعض الوقت ، وألقي نظرة على قاعدة الشفرة مرة أخرى لاحقًا بمنظورات منفتحة ، كثيرًا ما أرى ترتيبًا أكثر نظافة.
قانون "العمل بالمصادفة"
هذا واحد ممتع إلى حد ما.
من خلال الاطلاع على الكود ، يمكنني إدراك ما كنت أفكر فيه في تلك المرحلة. علاوة على ذلك ، فهو يعمل حقًا - مما يعني أنه يفي بالمتطلبات الأساسية ، وينسحب من خلال تقييمات الوحدة ، ويتصرف كما ينبغي.
ومع ذلك ، بشكل لا لبس فيه عندما قمت بتأليف هذا الرمز ، فقد أخطأت تمامًا في الحكم على المشكلة التي كنت أقوم بتأليف رمز لتسويتها.
حقا ، لا ينبغي أن يعمل. منذ أن كنت أقوم بتأليف التعليمات البرمجية لمعالجة مشكلة قصصية تمامًا ، وليست المشكلة الحقيقية! ومع ذلك ، بطريقة أو بأخرى ، فإنه يستقر على حد سواء.
أعترف بأنني تعرضت للإذلال يحدث هذا.
كل الأشياء التي تم أخذها في الاعتبار ، لقد صُدمت أن هذا يحدث من خلال أي امتداد للخيال ، ومدهش أكثر لأنه يبدو أنه يحدث مرارًا وتكرارًا.
تضليل أسماء المعرفات
لقد بذلت الكثير من الجهد في اختيار أسماء عظيمة للأشياء. العوامل ، وأسماء الأنواع والفئات ، والتقنيات ، والوحدات النمطية ، وما إلى ذلك.
هذا على أساس أن وضوحنا بشأن ما يحدث هو في المدى المباشر إلى الكيفية التي نرى بها بشكل لا لبس فيه وظيفة كل جزء. علاوة على ذلك ، فإن اختيار أسماء رائعة لكل واحد من هؤلاء يمكن أن يساعد كثيرًا.
لكن:
على الرغم من حقيقة أنني كنت أجعل هذا حاجة مركزية لفترة طويلة جدًا ، إلا أنني سأعود كثيرًا لإعادة بناء بعض التعليمات البرمجية ، أو إضافة مكون آخر أو شيء ما ، وأعتقد أنه "كان يجب بالتأكيد تسمية SomeOtherName هذا".