This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
كمطور مستقل واحد من مجموعة المهارات التي تحتاج إلى تعلمها بسرعة هي كيفية العمل على قواعد الشفرات الحالية بشكل فعال. لقد كنت محظوظاً لأنني بنيت مجموعة من -- أنظمة التفكيك، هذا هو JOY كمطور خبير، على الرغم من أنه ليس الحال دائماً.
أنظمة التراث لديها تحديات كبيرة، خاصة عندما يكون المطورون/المهندسون المعماريون الرئيسيون (إذا كنت محظوظا بما فيه الكفاية ليكون لديهم) قد انتقلوا.
وكثيراً ما يتم التغاضي عن ذلك خاصة في الشركات الصغيرة. بصفة عامة، تحتاج إلى أربعة أنواع رئيسية من الوثائق:
التوثيق هو أحد الأشياء التي نكره كثيراً أن نقوم بها كمطورين (ليس رمزاً) لكنه أمر حاسم. كما ترون، أنا أحب ماركداون، مع مثل حورية الحمير والنبتومل يمكنك إنشاء بعض الرسوم البيانية واللوحات التي يمكن إدراجها في وثائقك.
ومن الضروري أن يكون المشروع متوافقاً مع الواقع؛ فالمطورون غالباً ما يتحدثون عن دورة صغيرة؛ حيث تصبح تبعيات مشروع ما مخاطر أمنية متقادمة/مطلقة. هذا صحيح أيضاً من الوثائق، إن لم يكن حاليًا فهو غير مفيد.
هناك مستويات مختلفة من الوثائق ولكن بشكل عام أي وقت تغيّر رمز الرمز المشار إليه في مستند يجب تحديث ذلك المستند.
وكثيراً ما يشكل هذا تحدياً، لا سيما إذا كان النظام قائماً منذ فترة من الزمن. تحتاج إلى معرفة أي نسخة من العقدة/الشبكة الوطنية وما إلى ذلك، وما هي نسخة قاعدة البيانات، وما هي نسخة الإطار وما إلى ذلك. وكثيراً ما يُغفل هذا الأمر ولكن من الضروري أن تنهض وتسير بسرعة.
كثيراً ما رأيت مطورين يقولون أن هذا ليس له صلة في هذه الأيام من أنظمة السحاب والتطبيقات الموزعة الكبيرة، لكنني أختلف معك، تحتاج إلى أن تكون قادراً على تشغيل النظام محلياً لتنقية القضايا بسرعة وفعالية.
Response.Write
في كلاسيكي ASP انتهت. بالنسبة لتطبيق بسيط ومعقّد (ولا سيما تلك التي لم تكتبها) من المهم جداً أن "تخطّى من خلال" الكود. (ب) متابعة الطلب منذ إنشائه من خلال الخدمة لتحديد ما يمكن أن يحدث، وما هي الاستثناءات التي قد لا يتم ضبطها، وما إلى ذلك.LogInformation
لكل طلب قد ترغب في استخدام معالج تفاضلي مخصص لفرز الطلبات التي لا تريد تسجيلها.في كل مشروع أعمل على الخطوة الأولى هو جعل النظام (أو جزء كبير منه) يعمل محليا. من خلال رؤية الشفرة، تشغيل الشفرة، تصحيح الشفرة يمكنك الحصول على شعور لكيفية عمل النظام.
في كل نظام هذا هو لا يمكن نقل الحقيقة، بغض النظر عما يقوله الأطباء، ما يخبرك به الآخرون عن كيفية عملها هذه هي الطريقة التي تعمل بها.
في كثير من الأحيان هذا التحدي، هو مثل العثور على طريقك في مدينة جديدة مع عدم وجود خارطة طريق. لحسن الحظ في التطبيقات لديك نقطة دخول (صفحة تحميل/واجهة واجهة واجهة API نداء الخ.) اختر نقطة وابدأ من هناك.
استخدم كل ما تحتاجه للتفاعل معها، سواء كان ما بعد الرجل، رايدر HtpClient أو حتى صفحة ويب. (هوك) في مُحَفِّلِكَ، يَجْعلُ النداءَ ويَتْبعُه خلال. اعيد واعيد لكل جزء من النظام.
عموماً تَتْركُ هذا حتى تَفْهمُ النظامَ. إنها دائماً تُغري بـ "رميها بعيداً والبدء من جديد" مع ذلك مقاومة هذا الإغراء. خصيصاً لنظام تشغيل الأعمال إعادة بناء/حتى إعادة تصنيع نظام ما هو خطر على الصحة. نعم انه ممتع لكن لكل سطر من الشفرة تغيرينه و تخاطرين بطرح حشرات جديدة مثيرة
مثل أي شيء آخر (خاصة عند التعاقد) تحتاج إلى تبرير العمل الذي تقوم به على النظام. فإما أن يكون هذا التبرير بحاجة إلى التركيز على أحد ما يلي:
وكثيراً ما يتم تجاهل ذلك، ولا سيما من جانب المطورين. تحتاج إلى أن تكون قادرا على تبرير العمل الذي تقوم به على نظام. هذا صحيح بشكل خاص في بيئة التعاقد حيث يتم الدفع لك بالساعة. في النهاية، هو لَيسَ رمزَكَ ولَيسَ مالَكَ. لماذا تقوم بتغيير هو في كثير من الأحيان أكثر أهمية من التغيير نفسه.
لقد عملت كمقاول لأكثر من عقد من الزمن الآن، انها ليست EASY، كما مقاول كل ساعة من وقتك هو "تكلفة" للزبون. تحتاج إلى إضافة قيمة نقل إلى النظام أكثر مما تكلف. إن لم تكن كذلك، فستبحث بسرعة عن عقد جديد.
كمطورين، نحن نميل إلى أن نكون رجال أعمال سيئين نحن نركز على "الكمال" في كل منعطف. في الواقع، لا تحتاج لصنع نظام "مثالي" (سأقول أنه لا يوجد شيء من هذا القبيل)؛ تحتاج فقط لتسليم قيمة للزبون.
بشأن مشاركة أطول أجلاً الوظائف الجديدة الجديدة الجديدة الجديدة (ب) أن يكون الرمز محفوظاً وناجع التكلفة لتشغيله. في الأنظمة الموروثة هذا هو الكثير من HARDER. في كثير من الأحيان عليك أن تخوض خلال مستنقع، أن تكون حريصاً على أنه عندما تتعلم النظام لا يمكنك أن تقدم قيمة كبيرة. I'm not making any changes
- - - - - - - - - - - - - - - - - - I'm just learning the system
.
هذه مغالطة، أنت تتعلم النظام لجعله أفضل. أنت تتعلم النظام لجعله أكثر كفاءة. أنت تتعلم النظام لجعله أكثر قابلية للصيانة. إذا كان العميل غير قادر على قبول هذه الخطوة، فعليك أن تكون حريصاً جداً على كيفية إيصال هذا (أو البحث عن عقد جديد).
غالباً ما يتم تجاهلك، الكثير من الوقت الذي يتم جلبك فيه كمقاول لأن شخصاً رئيسياً قد غادر (لا تتدخل في السياسة في هذا، إنه ليس من شأنك). تحتاج إلى أن تكون قادرا على العمل مع الناس الذين هم هناك لتحقيق أهداف المشروع. في العقد سوف تحصل عموماً على شروط خطوبتك (في عقدي الحالي هو "الموثوقية المثبتة وتخفيض تكاليف التشغيل")؛ التركيز على هذا. إذا لم تكن متأكداً ماذا يعني هذا إذن (أكشن)
تذكَّر من هو اتصالك المباشر ، وخصوصا في الشهرين الاولين. أبقهم على اطلاع (على الأرجح لن يكون لديك مميزات جديدة لتتباهى بها عندما تحصل على معلومات عن كيفية عمل النظام). عادة أرسل رسالة بريد إلكتروني موجزة كل أسبوع / أسبوعين إلى اتصالي المباشر، هذه طريقة جيدة لإبقاءهم على علم بما تقوم به وما تجده.
تذكر، هذا هو الشخص الذي سيوافق على الفاتورة الخاصة بك؛ لا ينبغي أن يكون هناك مفاجآت في وقت الفاتورة. بمجرد أن تبدأ في التحقق من الشفرة بانتظام هذا هو أقل من مسألة؛ لديك سجل بالضبط ما قمت به وما كان له من تأثير. حتى ذلك الحين، عليك أن تبقيهم على اطلاع. يجب أن يعرفوا ما الذي فعلته ولماذا يجب أن يدفعوا لك مقابل ذلك
مرة أخرى، مرة أخرى، العودة إلى الشفرة القديمة، إذا قمت بتغيير بشكل عام، تحتاج إلى نشرها. حتى أفضل منا لا يمكنك أن تعرف عندما تقوم بالنشر. هذا يعود إلى قطع الأشجار - إذا كان لديك خادم تنظيمي يقوم بتسجيل LOT (لكن يحتفظ به لفترة قصيرة) ثم عندما تقوم بنشر إلى هذا يمكنك جمع المزيد من المعلومات عن ما فشل.
بغض النظر عن مدى جودتك وكم من التجارب المحلية التي قمت بها نحن جميعاً بشر هذا جزء رئيسي من قاعدة "لا تنشر على قاعدة يوم الجمعة"؛ تتوقع نشراً يسبب قضية جديدة على نظام. كن مستعداً للعمل حتى يتم حله إذا كنت لا تعرف لماذا فشل، إضافة المزيد من الاختبارات لتكرار القضية والمزيد من قطع الأشجار للتأكد من أنك تواجه قضايا مماثلة في المستقبل.
خصيصاً لنظم الإنتاج قد لا يكون 1:1 (خاصة عندما يتعلق الأمر بالحمل)، أداة مثل: يساعدك على محاكاة الحمولة (بشكل أفضل محلياً حيث يمكنك القيام بالتصنيف الصحيح كما ذكر سابقاً).
وكثيراً ما يُغفل مرة أخرى في حماس المؤتمر الدولي المعني بمكافحة التصحر السبب في ذلك. بسيطة؛ سوف تتعثرين. وجود طريقة سريعة جداً وكفؤة لنشر نظام يعني أنه عندما تقوم بكسره يمكنك أيضاً إصلاحه بسرعة أكبر. إذا كان نظام مراجعة شفرة CI الخاص بك يعني أنه يستغرق يومين للحصول على PR دمج ثم هذا هو أسرع يمكنك بشكل معقول في نظام. إذا كان نظام القرص المدمج الخاص بك يعني أن تأخذ أسفل النظام الجاري تشغيله ، والتعود على ليالي طويلة.
ومن الضروري وجود آلية فعالة لوضع ونشر مدونة قواعد السلوك من أجل وضع خط أنابيب للتنمية يتسم بالكفاءة. إذا استغرق الأمر وقتاً أطول لنشر إصلاح أكثر مما استغرقه الأمر لإيجاد وتنفيذ ذلك الإصلاح في الشفرة، فإنك أقل احتمالاً لإصلاح الأشياء.
التركة المُجَجَزَج
لقد وضعت هذا في اقتباسات لأن هذه قضية; بالنسبة لتطبيقات الإرث (خاصة عندما يكون إعادة ترتيب النطاق الكبير خارج الحدود) هناك نهجان رئيسيان.
هذه هي عملية مجرد تثبيت الشفرة الحالية؛ مرة أخرى تأكد من اختبارك بدقة وأن يكون لديك عمليات في مكان ما لإعادة / إعادة توزيع سريع لأية إصلاحات. لن أكذب على هذا النوع من التطوير نادراً ما يكون ممتعاً لأنك ما زلت على الأرجح تخوض خلال مستنقع قاعدة الشفرات الموجودة على أية حال، هو a شرّ ضروري في العديد مِنْ الحالاتِ.
كالعادة، يجب أن تضمن أن يكون لديك بعض شكل من أشكال الاختبار لإختبار الكود الحالي، من الناحية المثالية يجب أيضاً أن تختبر للفشل في القضية التي تحاول حلها قبل أن تقوم بالتثبيت . هذا يعني أن يكون هناك اختبار وحدة والذي يستهدف عن كثب منطقة الشفرة التي تحتاج إلى إصلاحها ولكن هذا غالباً ما يكون خارج نطاق العمل للنظم الموزعة الكبيرة.
عادة ما أستخدم نظام من الاختبارات في هذا الترتيب للأفضلية:
إلى تمكين إلى رفع مستوى جزء من a نظام تحديد من من موجود إلى a صغير خدمة لـ بعض قيمة من. ويمكن أن تكون هذه طريقة عظيمة للبدء في تحديث نظام دون مخاطرة إعادة عمل كاملة. ومن الأمثلة الشائعة على ذلك تقسيم نقاط نهاية مؤشر أسعار الصرف المعدلة حسب الأسعار إلى مشاريع جديدة تستخدم عناصر أكثر تحديثا. ومع ذلك، يمكن لإرهاب "دري" أن يلعب دوراً هنا. فكثيراً ما يكون للحل الرديء التنظيم الكثير من مكونات "المساعد" أو "الخدمات" التي ينبغي أن تكون في الواقع في مشاريع مختلفة (أو حتى في مجموعات النيتات لإعادة الاستخدام على نطاق أوسع).
سأغطي هذا النهج أكثر في مقال مستقبلي لأنه عنصر رئيسي في كيفية عملي على أنظمة التراث
الآن بعد أن حصلنا على كل هذا خارج الطريق هناك تأتي المشكلة الشائكة للدفع. لدي قاعدة عامة:
أيّ قضايا دفع أنا أتطلّع للتحرّك على
إذا كانوا متأخرين في الدفع، يعتمدون على عقدك ولكن في LAAST في غضون 30 يوما ولكن بشكل عام أقرب إلى 7، هذه علامة سيئة. إذا كان هناك إكراميات على فاتورتك فكّر فيما إذا كانت الشركة قادرة على دفع تكاليف خدماتك على أساس مستمر.
لا تعبث مع هذا، إذا كنت قد قمت بعملك يجب أن تتقاضى أجراً في الوقت المناسب لا يهم كم تستمتع بها، إذا كان زبون سيء يمكنه استغلالك، سيفعلون ذلك. هو لا يساويه.
كن صادقاً؛ مجرد تهمة للوقت الذي عملت فيه فعلاً؛ تأكد من وضوح ما فعلته ولماذا فعلت ذلك.
لقد قدت فرقاً من المطورين وكنت مطوراً لقد كنت مقاولاً وزبوناً لقد رأيت كل جوانب هذا ويمكنني أن أقول لكم، إذا كنت لا تحصل على دفع في الوقت المناسب، ثم تحتاج إلى المضي قدما. على الجانب الآخر إذا كان لديك مقاول (أو شركة FTE) الذي لا يسلم ثم تحتاج إلى معالجة هذا بسرعة. كل شخص لديه صراع شخصي لكن خصوصاً في بيئة العقد يجب أن تكون ذو قيمة تسليم أو لا تتقاضى ثمن الوقت عندما لا تكون كذلك.
أما بالنسبة للمعدل، ستجدون مستواكم، شخصياً أنا أكلف أكثر عن المشاريع حيث لدي مسؤولية أكبر (أو التي لا تبدو ممتعة). أنا أتقاضى أقل مقابل المشاريع التي أتعلم فيها تقنية جديدة أو للبدايات. لقد عملت أيضاً أياماً قليلة لكن أبقيت معدلي ثابتاً لكن لا تتقبل معدل منخفض لكرة القدم؛ أنت محترف ويجب أن تدفع على هذا النحو.
حسنا هذا هو عليه. أنا خارج العمل اليوم وغداً من أجل جنازة جدتي وبصراحة أفزع قليلاً أن لدي نظام تراثي لأتعلمه لذا فكرت أن أتخلص من أفكاري حول ما هو العمل على هذه الأنظمة مثل التحديات