چگونه یک توسعه دهنده متوسط ​​نباشیم!

کد بیشتری بنویسیداگر می خواهید در کاری بهتر شوید پس باید وقت خود را صرف انجام آن کار کنید ، متأسفانه راه دیگری وجود ندارد. هر چقدر مقاله بخوانید ، چند بار داکیومنت ها را بخوانید ، تا زمانی که دست و ذهن خود را عملی نکنید ، پیشرفت نخواهید کرد. این الگوی طراحی که اجرای آن در آغاز کار دشوار به نظر می رسید پس از تمرین استفاده از آن در زمینه های مختلف ، مانند خوردن کیک به نظر می رسد.تست بنویسیدوقتی برای اولین بار شروع به نوشتن تست برای کد خودم کردم ، از دیدن ذهنیتی کمی که برای نوشتن تست های خوب داشتم متعجب شدم. نوشتن تست ها به شما امکان می دهد کدهای خود را همانگونه که در ابتدا تصور نمی کردید مشاهده کنید زیرا هنگام ارائه تست ها باید به این فکر کنید که چگونه ممکن است این چیز خراب شود و متوجه شوید که در عملکردی که نوشتید کارهای زیادی انجام داده اید ممکن است بهتر باشد که به چندین تابع تقسیم شود زیرا تهیه تستی برای عملکردی که چندین کار را انجام می دهد دشوار است.اجازه دهید یک مثال در زیر ببینیم: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 به سراغتان می آیند و بنابراین ارزش و اهمیت شما را در ریشه دار می کند. برای کمک به مواردی که شاید در آنها بهترین نباشید ، ذهنی باز داشته باشید، ممکن است در نهایت چیز ارزشمندی از این تجربه یاد بگیرید.یک پروژه شخصی را انتخاب کنیدپروژه های شخصی راهی عالی برای یادگیری چارچوب ها و فن آوری های جدید است که ممکن است در محل کار تجربه نکنید. با پروژه شخصی خود شما مدیر محصول هستید ، شما توسعه دهنده و معمار هستید ، بنابراین می توانید میزان تصمیم گیری را که باید انجام دهید تصور کنید. شما می توانید از تجربه پروژه خود استفاده کنید و چارچوب ها و ابزارهای جدیدی را در محل کار یا جامعه کاری خود پیشنهاد دهید و مانند یک ستاره بدرخشید.غرور خود را کم کنیداجازه ندهید نفس شما و عنوان شغلی شما بین راه یادگیری / پیشرفت شما قرار گیرد. کمتر به چه کسی بودن اهمیت دهید و هر روز بیشتر به آنچه تبدیل می شوید اهمیت دهید. یک معمار در یک سازمان ممکن است یک توسعه دهنده نرم افزار در سازمان دیگری باشد. همیشه برای انجام کاری که فکر می کنید در آن مهارت دارید ، به روش های جدید و متفاوت بیاندیشید. ممکن است الگوریتم کارآمدتر یا طراحی بهتری برای یک ویژگی را از دست بدهید.در تیم، مثل Kanye نباشید“چرا” را درک کنیدقبل از پذیرش و تحقق باور خود به یک چارچوب یا الگوی جدید یا 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) ، استفاده از انتزاع در صورت مشاهده موارد با استفاده متعدد برای کلاس های خود ، گرفتن موارد استثنا در تمام مسیرهای کنترل جریان و غیره تقریباً در هر لایه از پشته اعمال می شود. با رعایت اصول اساسی ، این امر به شما کمک می کند مسائلی را حل کنید که فکر می کنید نمی توانید زیرا در آن قسمت از کد کار نمی کنید.نتیجه گیری: خواندن این راهنما به شما کمک می کند تا کارهایی را که هنوز انجام نداده اید درک کنید ، اما برای ایجاد تفاوت باید تلاش کنید و نظم داشته باشید…منبع: How not to be a mediocre developer!