أعلان الهيدر

الثلاثاء، 12 يوليو 2016

الرئيسية 10 نصائح للكتابة الأنظف ورمز أفضل

10 نصائح للكتابة الأنظف ورمز أفضل



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

بطريقة ما، كتابة التعليمات البرمجية نظيفة هو الكثير مثل الرسم، الطبخ، أو التصوير الفوتوغرافي - يبدو أسهل مما هو عليه في الواقع. فلماذا يزعج؟ حسنا، لأن الفوائد تستحق العناء:

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

1. استخدام أسماء وصفية

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

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

"أنا لست مبرمج عظيم. أنا مجرد مبرمج جيد مع العادات كبيرة ". 
- كنت بيك

ماذا متغير اسمه DXY تعني في الواقع؟ من تعرف. كنت ربما لديك لقراءة جزء كامل من التعليمات البرمجية لعكس مهندس معناها. من ناحية أخرى، ومعنى متغير مثل distanceBetweenXY هو التعرف عليها على الفور.

وينطبق الشيء نفسه على الطبقات وظائف. لا تسوية ل CalcTan () عندما يمكنك الذهاب ل CalculateTangent () أو CalcTangentAngle () بدلا من ذلك.

2. إعطاء كل فئة / وظيفة واحدة الغرض

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

"البرمجة هو كسر مهمة كبيرة واحدة مستحيلة في العديد من المهام الصغيرة ممكن." 
- Jazzwant

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

في الممارسة العملية، عملية حسابية معقدة مثل GetCreditScore () قد تحتاج إلى اقتحام عدة وظائف المساعد مثل GetCreditReports () ، ApplyCreditHistoryAge () ، و FilterOutstandingMarks () .

3. حذف الرمز غير الضرورية

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

"هل من الممكن أن البرنامج ليس مثل أي شيء آخر، وهذا هو المفترض أن يكون التخلص منها: أن بيت القصيد هو أن نرى دائما بانها فقاعة الصابون؟" 
- آلان ج برليس

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

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

4. المقروئية> ذكاء

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

"الكل يعلم ان التصحيح مرتين من الصعب كما كتابة البرنامج في المقام الأول. لذلك إذا كنت كما ذكي كما يمكن أن تكون عند الكتابة عنها، وكيف من أي وقت مضى تصحيح ذلك "؟ 
- بريان دبليو كيرنيغان

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

ولكن لكتابة رمز نظيفة، تحتاج إلى ترك الأنا عند الباب.

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

5. الحفاظ على الترميز نمط ثابت

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

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

ولكن مهما فعلت، والبقاء ثابت!

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

إذا كنت تنوي استخدام camelCaseNaming للمتغيرات، لا تزييفها مع underscore_naming . إذا كنت تستخدم GetThisObject () في مكان واحد، لا تذهب مع FetchThatObject () في مكان آخر. وإذا كنت مزيج علامات الجدولة والمسافات، فأنت تستحق أن يكون لوحة المفاتيح تؤخذ بعيدا.

تقرر ما كنت تنوي القيام به منذ البداية والعصا معه من خلال وعبر. بعض اللغات، مثل بايثون و C #، لديهم أدلة على غرار واسعة اللغة التي قد ترغب في متابعة.الثعبان و C #، لديها أدلة على غرار واسعة اللغة التي قد ترغب في متابعة.

6. اختيار العمارة اليمين

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

واضاف "بدون شروط والتصميم والبرمجة هي فن مضيفا البق إلى ملف نصي فارغ." 
- لويس Srygley

على سبيل المثال، نمط نموذج للرؤية وحدة تحكم (MVC) تحظى بشعبية كبيرة في الوقت الحالي في تطوير الشبكة لأنه يساعد على إبقاء التعليمات البرمجية تنظيم ومصممة بطريقة تقلل من جهود الصيانة.

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

7. ماستر التعبيرات الاصطلاحية في اللغة ل

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

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

"إن اللغة التي لا تؤثر على الطريقة التي تفكر بها بالبرمجة لا يستحق معرفة." 
- آلان ج برليس

في حين بيثون هو كل شيء عن كود صغير والكتابة بطة، جافا هو أكثر نحو الجانب من الإسهاب ووضوح. كل لغة لها التعابير (مثل comprehensions القائمة في بايثون) التي تشجع بطريقة معينة من الترميز. وكنت تفعل جيدا لنتعلم منها.الثعبان هو كل شيء عن كود صغير والكتابة بطة، جافا هو أكثر نحو الجانب من الإسهاب ووضوح. كل لغة لها التعابير (مثل comprehensions القائمة في بايثون ) التي تشجع بطريقة معينة من الترميز. وكنت تفعل جيدا لنتعلم منها.

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

8. دراسة قانون الماجستير

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

من الواضح، لا يمكنك فقط البوب ​​في مقر مايكروسوفت ونظرة خاطفة على مشاريعهم، ولكن يمكنك دائما استعراض مشاريع مفتوحة المصدر المعروفة . لا أعرف من أين أبدأ؟ حاول مشاريع عرضت على جيثب .

"يستطيع أي أحمق كتابة التعليمات البرمجية التي يمكن أن يفهم جهاز كمبيوتر. المبرمجين جيد كتابة التعليمات البرمجية التي يمكن للانسان ان يفهم ". 
- مارتن فاولر، إعادة بيع ديون: تحسين تصميم رمز موجود

بعد كل شيء، وهذا واحد من الأسباب لماذا توجد مشاريع مفتوحة المصدر : حتى يمكن للآخرين أن يتعلموا منها. وإذا كنت ترغب في المساهمة في هذا المشروع، فإنه يمكن تسريع عملية التعلم .

شخصيا، أول مرة رأيت كود نظيفة حقا هو عندما تعثرت عبر مشروع مصدر بيثون مفتوحة الهاوي معين ل. كان رمز حتى الساحق أنيقة أنني ما يقرب من ترك البرمجة، ولكن انتهى الأمر التدريس لي الكثير.بيثون المشروع. كان رمز حتى الساحق أنيقة أنني ما يقرب من ترك البرمجة، ولكن انتهى الأمر التدريس لي الكثير.

9. تعليق جيدة

"كتابة تعليقات جيدة" هو أقدم نصيحة في عالم البرمجة. في الواقع، في أقرب وقت كما يتم عرض نوبي إلى تعليق، وانهم شجعت حد كبير التعليق بقدر ما يستطيعون.

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

"دائما الكود كما إذا كان الرجل الذي ينتهي الحفاظ على التعليمات البرمجية الخاصة بك سوف يكون مختل عقليا العنيف الذي يعرف المكان الذي تعيش فيه." 
- جون وودز

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

تعليقات يمكن أن تكون جيدة لتحذيرات (أي "إزالة هذا سيكسر A، B، و C")، ولكن بالنسبة للجزء الأكبر يجب كشف الأشياء التي لا يمكن استخلاصها مباشرة من التعليمات البرمجية (أي "استخدام هذه المعلمة لX، Y، وZ ").

10. ريفاكتور ريفاكتور ريفاكتور

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

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

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

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

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

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

بعض الناس ليس لديهم ما يلزم و في نهاية المطاف في نهاية المطاف ترك البرمجة للخير - وهذا شيء طيب لان هناك الكثير من فرص العمل techy الأخرى التي لا تنطوي على الترميز .

ولكن لشخص آخر، رمز نظيفة هو الشيء الذي يستحق تماما السعي نحو، حتى لو استغرق ذلك بقية حياتك للوصول إلى هناك.


مدونة ارفس 

ليست هناك تعليقات:

إرسال تعليق

يتم التشغيل بواسطة Blogger.