كيف يمكنني إدارة وحدات Perl بكفاءة لإعادة استخدام التعليمات البرمجية؟

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

سؤال

تقوم شركتي بتطوير تطبيقات الويب باستخدام مجموعة من mod_Perl وaxkit وApache.لدينا الكثير من وحدات Perl، وجافا سكريبت، وما إلى ذلك، كلها في نظام التشغيل يونكس.

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

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

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

يحرر

هنالك هذه المناقشة عند اكتشاف تكرار التعليمات البرمجية على C++ باستخدام الأدوات، هل لدينا أي شيء مثل هذا لأكواد Perl في نظام التشغيل Unix؟

شكرا ~ ستيف

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

المحلول

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

تأكد من المشاركة اصطلاح التسمية لمنع الازدواجية.

تصميم الوحدة الخاصة بك بحيث يفعلون شيئًا واحدًا فقط - ويفعلونه جيدًا.

مراجعة الرمز للتأكد من صحة الأسماء والمواقع.

توفير كفاءة محرك البحث استنادًا إلى مفهرس التعليمات البرمجية بحيث يكون من السهل معرفة ما إذا كانت هناك بالفعل وظيفة تقوم بمهمة معينة.

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

وثيقة الوحدات، مع وثائق API و/أو اختبارات الوحدة.

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

نصائح أخرى

وأنا واثق من أن يكون لديك بعض شكل من أشكال البرمجيات التحكم في الإصدار ( إس و <لأ href = "HTTP: //selenic.com/wiki/Mercurial "يختلط =" نوفولو noreferrer "> زئبقي ، بوابة، أيا كان ولكن ليس VSS)؟ إذا كنت لا الآن حان الوقت للحصول على واحدة والبدء في استخدامه. وبهذه الطريقة، لديك فكرة على الأقل من الوحدات التي تستخدم وأين هو رمز. يمكنك أيضا استخدام ctags مثل لمؤشر جميع الوحدات كنت قد كتبت (أو تستخدم ).

وهناك IDE (بقدر ما أكره هذه) يمكن أن يساعد أيضا في العثور على رمز وريفاكتور.

وهذا شيء أنا مهتم جدا في.

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

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

ومع ذلك، فإن البحث في هذا بدأ قبل فترة وجيزة توفي الأقراص الصلبة جهاز الكمبيوتر المحمول، والتي أجلت إجراء مزيد من البحوث والنتائج الفعلية في هذا الاتجاه، ولكن ربما كنت قادرا على العثور على شيء مثير للاهتمام (ويقول لي <م> دفع، دفع )

وHTH، Tetha

إذا وتشمل وحدات الخاص بك POD الوثائق ويتم تثبيتها تحت دليل عام أو مجموعة من الدلائل ، يجب أن يكون من السهل نسبيا للاستخدام pod2html لتوليد وثائق HTML. وبمجرد الانتهاء من وثائق HTML، ورمي في النص الكامل فهرس البحث (سكليتي مع fts3، الخلية، لوسين، KinoSearch، أيا كان) والتطبيق نموذج بحث بسيط (CGI أو mod_perl) وكنت على استعداد للذهاب.

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

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

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

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