شريحة من الخبرة الشخصية: التطوير ، طلبات السحب ، الالتزامات ، مهارات البرمجيات


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

التنمية


تغييرات متجانسة


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

تنفيذ المهمة


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

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

سحب الطلبات


العنوان


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

  • ابدأ بحرف كبير
  • بدون نقطة في النهاية
  • أن يكون لديك مزاج حتمي.

Ticket-295: Add base cat interface and British cat realization 

الوصف


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

  • النتيجة في عدة جمل ،
  • ما سبق التغييرات
  • لماذا ولماذا يجب القيام به ،
  • ماذا فعلت بالضبط
  • كيف نفذت هذا.

 The base cats interface was created to provide the common cats functionality and attributes. Also the realization of the British cats was created as the individual one. Our business-analytics have provided for product owner that they want to interact with cats on out platform too, not only with docs. So developers got the tasks to design and implement basic implementation of the cats interface to describe the common patterns of the interaction with it by user. Also the goal was to create one demo cat called British cats (British Shorthair) with its great noses. 

النجدة


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

  • صف بإيجاز أين توجه المساعدة
  • إن أمكن - رمي روابط كاملة ،
  • إذا لم يكن كذلك ، اختصرها باستخدام git.io و bit.ly ،
  • اصنع قائمة.

 References: • British cats — https://en.wikipedia.org/wiki/British_Shorthair • Cats anatomy — https://en.wikipedia.org/wiki/Cat_anatomy 

تلتزم


دمج الدمج


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

 $ git log --oneline 4336d35 Create cats interface 7bc2ba9 Implement Persian cat realization 5f330fd Add Persian cat documentation ... 

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

 $ git log --oneline d2ccf1a Ticket-299: Prevent cats graph be stopped unexpectedly (#301) 82a921a Ticket-295: Add base cat interface and british cat realization (#293) ... 

ونتيجة لذلك ، يتم تعبئة الفرع الافتراضي بالالتزامات مع وصف تفصيلي للتغييرات.

 Ticket-299: Prevent cats graph be stopped unexpectedly There was a situation when cats graph is stopped unexpectedly without any verbose information and traceback. The socket connection between two web-servers (back-end and front-end) was successfully debugged and founded the socket library async latent behavior. Implemented: — Create handler for async socket connection as sync. The consumer doesnt specify a condition for ending the while loop and stream, so the application checker in Daphne cleans up the task if the protocol disconnects and the app doesnt handle it. So `channel_layer` is wrapped to `async_to_sync`. — Fix low latency between pushing the cats graph data and its output on the user interface. There was a high coupling between interface class that proxy via a few client to the realization. The separated cats graph message class was created. References: • Socket channel layers — https://channels.docs.io/channel_layers.html • Daphne handle_reply() — https://git.io/fgVzK Issue: #56 

اتبع هذه الإرشادات عند تنفيذ عمليات الدمج:

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

مهارات ناعمة


التواصل الكتابي


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

  • اتبع قواعد الإملاء وعلامات الترقيم من أجل تحديد النص في المعنى.
  • استخدم فواصل الأسطر واترك الأسطر الفارغة بين كتل النص غير ذات الصلة.
  • استخدم القوائم لتمييز تسلسل أو تسمية جمل.
  • استخدم الخدمات لمشاركة جزء من الشفرة أو استخدام أدوات الشركة: Pastebin أو Github Gist أو Codeshare أو ، على سبيل المثال ، يحتوي برنامج Slack messenger على وظيفة في الشفرة أو دردشة مقتطف النص .
  • قم بتمييز الأسماء والكلمات المهمة والتفاصيل الخاصة بك بمساعدة وضع علامة مدمجة في برنامج المراسلة. الآن أي رسول حديث يدعم اختيار النص حسب نوع هذا.
  • ادعم مناقشتك بروابط للوثائق أو المقالات أو منشورات المنتدى.
  • لا تكتب أو تعرض معلومات غير ضرورية للمحاور. على سبيل المثال ، لا تملأ لقطة الشاشة التي تم التقاطها للتو بالاسم بتنسيق التاريخ Screen Shot 2018-06-23 في الساعة 12.17.31 صباحًا إذا رأى الشخص الآخر هذا النقش. ألق نظرة فاحصة على التتبع خلال موضوع المناقشة لعملية تسجيل المستخدم .

المسؤولية


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

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

شكرا لك على الوقت الذي أمضيته في النشر. اترك ملاحظاتك في الرسائل الخاصة أو التعليقات ، ويسعدني مناقشتها.

Source: https://habr.com/ru/post/ar416545/


All Articles