كيف يمكنك الحفاظ على قاعدة بيانات رديئة الجودة؟

StackOverflow https://stackoverflow.com/questions/642102

  •  22-07-2019
  •  | 
  •  

سؤال

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

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

لذا!انا فضولي.كيف يمكنك الحفاظ على قاعدة التعليمات البرمجية ذات الجودة الرديئة؟

هل كانت مفيدة؟

المحلول

والانضباط

نصائح أخرى

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

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

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

وضعت

ومعظم مشاريعي أيضا أوندر تكامل متواصل. بجانب بناء وتشغيل unittests، يتم إجراء تحليل رمز statical (fxcop) كذلك. بين الحين والآخر، ولدي نظرة على النتائج، ومحاولة إصلاح بعض الانتهاكات التي يتم الإبلاغ عنها.

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

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

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

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

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

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

بعض قراءة للإشارة.

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

سؤال ذو صلة:كيف يفلت الناس من كتابة تعليمات برمجية رديئة الجودة؟

ها هي الإجابة.

الإستراتيجية الجيدة للأشخاص غير الأكفاء في صناعتنا هي:

  1. تطوير القدرة على الصوت المثير للإعجاب خاصة للأشخاص غير التقنيين وشبه التقنيين.كن قادرًا على أن تبدو معقولًا بدرجة كافية للأشخاص التقنيين، بما يكفي لإبقائهم غير متوازنين.

  2. أحدث فوضى كاملة في الكود الذي تلمسه.

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

أود أن أقدم لكم مصطلحًا سمعته منذ بضع سنوات - الدين الفني.وهنا أ (1) دخول ويكيبيديا وآخر من مارتن فاولر (2) موقع على شبكة الإنترنت.

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

من فاولر:

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

من ويكيبيديا:

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

ما رأيته (ووجهت العديد من فرق التطوير للقيام به) هو إعادة هيكلة قاعدة التعليمات البرمجية وتنظيفها مبكرًا في تكرارات التطوير، عادةً في البداية قبل تطوير عمل جديد.

تساعد مراجعات النظراء واختبار الوحدات واختبار البرامج الاحترافية على سداد بعض هذا الدين الفني، بالإضافة إلى التنبؤ الجيد (وإعادة الاستخدام الجيد للكود).

إذا كانت لديك الميزانية، يمكن أن يكون الاختبار الآلي استثمارًا سليمًا طالما أنك على استعداد لدفع تكاليف الصيانة (الوقت والجهد).

هناك الكثير من الأدوات عالية الجودة في الوقت الحاضر مثل fxCop (وغيرها من الأدوات المشابهة) ولكن عليك أن تختار بعناية الأساليب التي ستستمتع بها.

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

[ (1) http://en.wikipedia.org/wiki/Technical_debt ]
[ (2) http://martinfowler.com/bliki/TechnicalDebt.html ]

هذا هو الحال عندما تكتب الكود وغيرها قرأه الناس
1.غادر عادات سيئة
2. استخدام ذات معنى الإجراء، الوظيفة، اسم المتغير
3. استخدام الوثائق حول كيفية عمله (الإجراء/الوظيفة/الحساب/الخ) وماذا نتج عن ماذا، لا تدلي بأي تعليق غير ضروري
4.حاول إعطاء أسلوب للترميز الخاص بك حتى يتمكن الأشخاص من معرفتها (مثل استخدام كود نمط GNU)
أو
استخدم رمز التجميل لذلك
5. فكر في العمل كفريق (حتى لو كنت بمفردك) وليس أنت وحدك من سيقرأ الكود الخاص بك (حتى لو كان كذلك)
6. رمز إعادة التصنيع ينبغي أن تكون جيدة كذلك
7. التشاور مع زملائك في الفريق بخصوص الكود الذي كتبته، هل يمكنهم قراءته؟
8. تعلم من مجتمع المصدر المفتوح, وكيفية عملهم ومشاركة الرموز والتصحيحات
9.إذا كنت تستطيع، استخدم SVN أو CVS للحفاظ على التعليمات البرمجية الخاصة بك

و تذكر قبلة مبدأ (كeep أنار سبسيط, سغبي)

وبالطبع بسيطة، هزيلة، متوسطة وجميلة

إذا انعكس (الأشخاص الآخرون يكتبون، تقرأ) لم أكن أعرف ماذا أقول:D (ربما أعطي هذا الأشخاص فوق النصائح LOL)

والتوثيق، والتحكم في مصدر، وحدة الاختبارات، وكونه مبرمج جيد.

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

وأوصي التقاط نسخة من مايكل الريشة في "العمل بشكل فعال مع رمز وراثي".

وFridgemagnet يقول: "المبرمجين البليد يكون codebases طاهر"

ويمكنك فقط الحصول على بعيدا مع الحفاظ على مصدر برنامج بشدة عندما كنت صغيرة جدا (أقل من 10-20 شخص أو نحو ذلك على واحد المشروع) فريق التطوير. إذا ينمو مشروعك وتنمو فريقك، إما الممارسات الخاصة بك وسوف توسيع نطاق أو أنك ستفشل.

والتغيير تسألون عنه هو أساسا الانتقال من القرصنة البرمجة وأخيرا هندسة البرمجيات.

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

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

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

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

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

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

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

وعلى الأقل هذا تجربتي. YMMV

وأنت فقط بحاجة الممارسة، والأدوات الجيدة والقدرة والرغبة في كسر العادات السيئة والتعلم.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top