https://salehrezaei.com
چگونه یک توسعه دهنده متوسط نباشیم!
کد بیشتری بنویسید
اگر می خواهید در کاری بهتر شوید پس باید وقت خود را صرف انجام آن کار کنید ، متأسفانه راه دیگری وجود ندارد. هر چقدر مقاله بخوانید ، چند بار داکیومنت ها را بخوانید ، تا زمانی که دست و ذهن خود را عملی نکنید ، پیشرفت نخواهید کرد. این الگوی طراحی که اجرای آن در آغاز کار دشوار به نظر می رسید پس از تمرین استفاده از آن در زمینه های مختلف ، مانند خوردن کیک به نظر می رسد.
تست بنویسید
وقتی برای اولین بار شروع به نوشتن تست برای کد خودم کردم ، از دیدن ذهنیتی کمی که برای نوشتن تست های خوب داشتم متعجب شدم. نوشتن تست ها به شما امکان می دهد کدهای خود را همانگونه که در ابتدا تصور نمی کردید مشاهده کنید زیرا هنگام ارائه تست ها باید به این فکر کنید که چگونه ممکن است این چیز خراب شود و متوجه شوید که در عملکردی که نوشتید کارهای زیادی انجام داده اید ممکن است بهتر باشد که به چندین تابع تقسیم شود زیرا تهیه تستی برای عملکردی که چندین کار را انجام می دهد دشوار است.
اجازه دهید یک مثال در زیر ببینیم:
function postData(data) {
boolean valid = true;
// check if data is defined
if (data === undefined) {
valid = false;
}
// check if email is well formed
if (!regex(data['email']) {
valid = false;
}
// check if password is atleast 8 chars.
if (data['password'].length < 8) {
valid = false;
}
if (valid) {
http
.post(`example.com/user/create`, data)
.then((response) => {
//append to the list
this.users.append(response.userid);
})
.catch((error) => {
// show errors.
});
} else {
showValidationError();
}
}
بنابراین روش postData
انجام چندین کار مانند اعتبار سنجی داده ها ، الحاق به لیست کاربران هنگامی اتمام promise و رسیدگی به خطا ها است. تست واحد نوشتن برای postData
کاری دشوار و کثیف است. می توانید آن را به چندین متد تقسیم کنید و هر متد را جداگانه تست کنید.
function postData(data) {
return http
.post(`example.com/user/create`, data);
}
function validate(data) {
// check if data is defined
if (data === undefined) {
return false;
}
// check if email is well formed
if (!regex(data['email']) {
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 می دانید هرگز به شما کمک نمی کند که پیشرفت کنید و اگر بخواهید حرف احمقانه ای بخاطر عدم آگاهی از API یا موضوعی بیان کنید ، ممکن است چهره خوب خود را در بحث از دست بدهید.
به کدهای متن باز (Open Source) کمک کنید
مشارکت در کدهای متن باز می تواند شما را در معرض سناریوهایی قرار دهد که ممکن است هرگز در محل کار رخ ندهد و بنابراین افق دید شما را باز می کند. شما می توانید یاد بگیرید که برای اجرای یک پروژه در یک سناریو توزیع شده ، معرفی تغییرات بدون شکست و سایر ابزارهای متن باز جدید و غیره ، چه چیزهایی لازم است ، مزایای آن بی پایان است و همه ما می دانیم که چگونه منبع آزاد زندگی همه را مستقیم و غیر مستقیم تغییر داده است.
برای کمک کردن مشتاق باشید
کمک به دیگران برای چیزی که می دانید شما را به یک شخصی تبدیل میکند برای آن مفهوم یا ویژگی یا API به سراغتان می آیند و بنابراین ارزش و اهمیت شما را در ریشه دار می کند. برای کمک به مواردی که شاید در آنها بهترین نباشید ، ذهنی باز داشته باشید، ممکن است در نهایت چیز ارزشمندی از این تجربه یاد بگیرید.
یک پروژه شخصی را انتخاب کنید
پروژه های شخصی راهی عالی برای یادگیری چارچوب ها و فن آوری های جدید است که ممکن است در محل کار تجربه نکنید. با پروژه شخصی خود شما مدیر محصول هستید ، شما توسعه دهنده و معمار هستید ، بنابراین می توانید میزان تصمیم گیری را که باید انجام دهید تصور کنید. شما می توانید از تجربه پروژه خود استفاده کنید و چارچوب ها و ابزارهای جدیدی را در محل کار یا جامعه کاری خود پیشنهاد دهید و مانند یک ستاره بدرخشید.
غرور خود را کم کنید
اجازه ندهید نفس شما و عنوان شغلی شما بین راه یادگیری / پیشرفت شما قرار گیرد. کمتر به چه کسی بودن اهمیت دهید و هر روز بیشتر به آنچه تبدیل می شوید اهمیت دهید. یک معمار در یک سازمان ممکن است یک توسعه دهنده نرم افزار در سازمان دیگری باشد. همیشه برای انجام کاری که فکر می کنید در آن مهارت دارید ، به روش های جدید و متفاوت بیاندیشید. ممکن است الگوریتم کارآمدتر یا طراحی بهتری برای یک ویژگی را از دست بدهید.
“چرا” را درک کنید
قبل از پذیرش و تحقق باور خود به یک چارچوب یا الگوی جدید یا API ، سعی کنید در وهله اول درک کنید که “چرا” وجود دارد. سعی کنید به شهود وجود یک مفهوم برسید.
var app = new Vue ({
el: '#app'،
data: {
message: 'Hello Vue!'
}
})
در بالا اولین نمونه کدی است که در قسمت docs سایت vue.js با آن روبرو می شوید . حتی وقتی به این مثال بسیار اساسی نگاه می کنم ، سعی می کنم موارد زیر را در ذهنم استدلال کنم:
- چرا یک کلمه کلیدب
new
برای ایجاد componeny؟ چرا آنها الگوی کارخانه ای برای ایجاد اشیا ندارند؟ - به نظر می رسد
el
خاصیتid
عنصر را می گیرد و چرا از#
استفاده می کند؟ آیا این بدان معنی است که می توانم انتخابگرهای عناصر دیگری مانند ویژگی و کلاس را نیز اضافه کنم؟ data
به نظر می رسد یک نام خاص بسیار عمومی از آن شیvue
باشد ، دقیقاً سعی در نشان دادن چه چیزی دارد؟
تنبل نباش
تنبلی می تواند برای نشان دادن مهارت های شما یا چیزهایی که برای شما مهم هست، پیش بیاید. به عنوان مثال اگر فکر می کنید یک عامل عملکرد را بهبود می بخشد ، پس ادامه دهید و آن کار را انجام دهید ، برای صرفه جویی در وقت سایر توسعه دهندگان ، نظرات خود را اضافه کنید ، API جدیدی را که ساخته اید مستند کنید . زمان اضافه شده توسط شما در کد شما برابر با زمان صرفه جویی شده برای توسعه دهنده دیگری است که سعی در نوشتن مطالب شما دارد.
چالش های کدنویسی را حل کنید
برنامه نویسی شما را مجبور می کند به چیزهایی فکر کنید که در زندگی روزمره خود فرض می کنیم. من در مورد پیچیدگی مکان و زمان کد صحبت می کنم. برخی از افراد استدلال می کنند که حل چالش ها عملی نیست زیرا بیشتر موارد انتزاعی است و شما فقط می خواهید از API استفاده کنید.
اما من مخالفم! نه تنها به شما کمک می کند تا به بررسی انتقادی کد بپردازید بلکه با اطمینان می توانید بهترین کد ممکن را از نظر عملکرد ارائه دهید و از دیگر مزایای آن این است که همیشه برای مصاحبه آماده خواهید بود …
برخی از سایت ها برای حل چالش ها hackerrank ، leetcode ، topcoder و spoj .
موارد خوب را تشویق کنید
اگر از تعهد همکار خود خوشتان آمده است ، دریغ نکنید که پیامی را بگذارید و پاسخی را که به شما کمک کرده است تحسین کنید، یا برای مقاله ای در مورد رسانه ای که به شما به رایگان تفکر جدیدی می دهد یا آن پروژه جالب را که در github بررسی کرده اید، کف بزنید. تشویق دیگران کمک می کند تا آنها و در نهایت شما بهترین نتیجه را به دست آورید.
پشت دیوار پنهان نشوید
مشکلی در مورد API پیدا کردید که شما که در حال استفاده از آن هستید نمی توانید آن را برطرف کنید زیرا “یک توسعه دهنده Frontend” هستید. اصول اساسی برنامه نویسی از جمله DRY(Don’t Repeat Yourself) ، استفاده از انتزاع در صورت مشاهده موارد با استفاده متعدد برای کلاس های خود ، گرفتن موارد استثنا در تمام مسیرهای کنترل جریان و غیره تقریباً در هر لایه از پشته اعمال می شود. با رعایت اصول اساسی ، این امر به شما کمک می کند مسائلی را حل کنید که فکر می کنید نمی توانید زیرا در آن قسمت از کد کار نمی کنید.
نتیجه گیری: خواندن این راهنما به شما کمک می کند تا کارهایی را که هنوز انجام نداده اید درک کنید ، اما برای ایجاد تفاوت باید تلاش کنید و نظم داشته باشید…
مطلبی دیگر از این انتشارات
مفهوم Open Source یا دنیای باز چیست ؟!
مطلبی دیگر از این انتشارات
آموزش کار با فایل ها در پایتون جلسه ۲
مطلبی دیگر از این انتشارات
اشتراک گذاری لوکال هاست در بستر اینترنت