كيف أخطط لتطبيق ويب على مستوى المؤسسة؟

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

  •  01-07-2019
  •  | 
  •  

سؤال

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

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

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

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

المحلول

على الرغم من وجود مقالات جيدة بالتأكيد حول هذا الموضوع، إلا أن أياً منها لا يشكل بديلاً عن تجربة العالم الحقيقي.

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

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

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

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

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


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

نصائح أخرى

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

لتحسين قابلية الصيانة، يمكنك:

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

  • خذ دائمًا وقتًا لتحديث الوثائق.تضمين المهمة في خطة التطوير؛قم بتضمين هذا الوقت في الخطة كجزء من أي تغيير أو ميزة جديدة.

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

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

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

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

  • استخدم التحكم بالمصادر إذا لم تقم بذلك بالفعل

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

  • احتفظ بسجل للقضايا التي تركت مفتوحة، والأفكار، والاقتراحات لكل عميل؛قم بتحديث ذاكرتك مرة أخرى قبل بدء المهمة.

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

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

اقتراحات للقراءة:

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

  1. استخدم مبادئ وأطر عمل MVC جيدة لفصل طبقة العرض الخاصة بك عن منطق عملك ونموذج البيانات.
  2. استخدم طبقة ثبات قوية لعدم ربط منطق عملك بنموذج البيانات الخاص بك
  3. التخطيط لانعدام الجنسية والسلوك غير المتزامن.

فيما يلي مقالة ممتازة حول كيفية معالجة موقع eBay لهذه المشكلاتhttp://www.infoq.com/articles/ebay-scalability-best-practices

  1. استخدم إطار العمل/نظام MVC.كلما كان الكود الخاص بك أكثر تنظيمًا ومركزية، كان ذلك أفضل.

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

  3. أوصي باستخدام نظام التحكم بالمصادر مثل Subversion إذا لم تكن تستخدمه بالفعل.

يجب أن تفكر في استخدام SharePoint.إنها بيئة مصممة بالفعل للقيام بكل ما ذكرته، ولديها العديد من الميزات الأخرى التي ربما لم تفكر فيها (ولكن ربما ستحتاج إليها في المستقبل :-))

هنابعض المعلومات من الموقع الرسمي.
هناك بيئتان مختلفتان لـ SharePoint يمكنك استخدامهما:Windows Sharepoint Services (WSS) أو Microsoft Office Sharepoint Server (MOSS).WSS مجاني ويأتي مع Windows Server 2003، في حين أن MOSS ليس مجانيًا، ولكنه يحتوي على ميزات أكثر بكثير ويغطي جميع احتياجات مؤسستك تقريبًا.

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