كيف لا تكون مطورًا متواضعًا

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

اكتب المزيد من التعليمات البرمجية


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



كتابة الاختبارات


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

دعونا نلقي نظرة على مثال:

function postData(data) {
 boolean valid = true;
 //   
 if (data === undefined) {
   valid = false;
 }
//    
 if (!regex(data['email']) {
   valid = false;
 }
//   
 if (data['password'].length < 8) {
   valid = false;
 }
if (valid) {
  http
   .post(`example.com/user/create`, data)
   .then((response) => {
    //   
    this.users.append(response.userid);
   })
   .catch((error) => {
    //    
   });
 } else {
   showValidationError();
 }
}

postData : , , . postData . , :

function postData(data) {
 return http
   .post(`example.com/user/create`, data);
}

function validate(data) {
 //   
 if (data === undefined) {
   return false;
 }
//    
 if (!regex(data['email']) {
   return false;
 }
//   
 if (data['password'].length >= 8) {
   return false;
 }
  return true;
}

function appendUsers(userId) {
  this.users.append(response.userid);
}

function main() {
 if (validate(data)) {
  postData(data)
   .then(data => appendToList(data.userId))
   .catch(error => handleError(error))
 } else {
  showValidationError();
 }
}

, — , , .


. , - API, , , , - .

open-source


open-source , , . . . , open-source . , open-source .


-, , , , , . , 100%, - .


, . product manager-, — , ! , , !


/ . , , , . , , . , , , .




, , API, ( ) . , .

var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

, vue.js. , :

  1. new? «» ?
  2. , el id , #? , , ?
  3. data vue. ?

, , , .


, . , , , — ! , . API. , , , .


( , , ) , . . , , API.

. , . , , , .

, , : hackerrank, leetcode, codingame .


, , . stackoverflow, . medium , . github. , , .

-


API , , : « — . ». , . , DRY, , , .. (, ), . , , , , « », .


, , , . , — , !

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


All Articles