وقتی کارتون رو تو محیط جدیدی شروع میکنید و قرار روی پروژه ای ک قبل از شما چندین نفر اون رو توسعه دادن کار کنید شیوه مواجهتون با پروژه و اصطلاحا Entry point شما خیلی مهمه
چرا مهمه؟ به چند دلیل
بتونید با دید بازتر و با اشراف به دامین پروژه مشارکت در توسعه محصول رو شروع کنید
از استایل و قرارداد هایی ک پروژه بر اساسش تا اینجای کار توسعه داده شده پیروی کنید و در صورت نیاز اصلاحشون کنید
تو این مطلب میخوام یکم در مورد مواجه خودم با پروژه جدید ک قرار روش کار کنم بنویسیم امیدوارم ک کاربردی باشه
مهمه ک از کجا شروع کنید
تفکیک محیط های توسعه تست و عملیاتی و مهیا کردن محیط توسعه
خوندن داکیومنتیشن (در صورت وجود)
اجرای پروژه و آشنایی با قسمت های مختلف
اشراف روی فرایند های احراز هویت و کلا اشراف به life cycle درخواست ها اینک دقیقا چ بلایی سر درخواست میاد از لحظه ای ک دریافت میشه تا لحظه ای ک پاسخ داده میشه مستقل از بیزنس لاجیک مربوط به هر resource
اشراف روی ساختار کلی پروژه و فولدربندی ها
سعی کنید تو فرایند مطالعه سورس کد و اشراف به قسمت های مختلف پروژه در صورت نیاز به تغییر نام و ریفکتور های کوچیک رو انجام بدین و اگر بتونیم تو همین فرایند انبردینگ با کامنت گذاری (مثلا JSDOC) ورودی خروجی و کلا عملیاتی ک هر متود یا تابع انجام میده رو مستند کنید اینجوری فرایند انبردینگ برای خودمون و بقیه در آینده سریعتر انجام میشه
دیزاین دیتابیس جداول و روابطشون رو متوجه بشید
خودتون رو اول کار درگیر جزئیات نکنید
اگر کدبیس خیلی با استایل شما فرق داشت سعی کنید استرس نگیرید قضاوت نکنید غر نزنید و ناله نکنید و روحیه مثبت و سازندتون رو حفظ کنید همیشه قرار نیست همه چی بر وفق مرادتون باشه شما استخدام میشید برای کمک کردن ب پیشبرد پروژه حالا اینک پروژه تو چ فازی هست یا اینکه تا چ حد بر اساس اصول و استانداردها پیش رفته یکم ب انتخابتون تو مسیر پیدا کردن شغل و خیلی زیاد به شانستون بستگی داره ممکنه تو ی شرکت متوسط ب ی پروژه واقعا خوب جوین بشید و یا تو ی شرکت خیلی بزرگ ب ی پروژه ن چندان خوب
لزوما هر چیزی ک میبینی تو پروژه درست نیست و همیشه بدهی فنی وجود داره
لزوما هرچیزی ک تو فکر میکنی درسته درست نیست شاید با پیادهسازی ی بخشی مشکل داری ولی دلیلی بر اشتباه بودنش هم نداری و صرفا چون با دست خط تو متفاوت حس خوبی بهش نداری
وقتی میخوای ی ماژولی تابع یا کلا هر قسمتی رو بفهمی کارش چیه ببین کجاها استفاده شده (اگر جایی استفاده نشده احتمالا باید پاک میشده)
با ناله کردن و ایراد گرفتن از پروژه شما برنامه نویس بهتری ب نظر نمیای اگر حرفی میزنی یا مشکلی رو مطرح میکنی براش دلیل و حتما راهکار داشته باش، وگرنه نیاز نیست حرف بزنی
حتما وقتی داری سورس رو مطالعه میکنی و نکته ای ب ذهنت میرسه ک بنظر میشه بهبود داد نوت بردار تا تو زمان مناسب بهش مراجعه کنی و شروع ب ریفکتور پروژه کنی و دوباره وقت بابت پیدا کردن تشخیص و شناسایی اون موارد نکنی(هر چند ک شاید هیچوقت زمان مناسب نرسه😶)
البته ک قبل از همه این موارد تسلط روی پلتفرم اون پروژه و آشنایی با ابزار هایی ک استفاده شده از نیازمندی های این موضوع هست
سخنی با کسی ک درحال توسعه ی محصول هست
سعی کنید استاندار های کار خودتون رو بدونید و جوری کار کنید ک نفر بعدی ک میخواد با کدبیس کار کنه کمتر متعجب بشه
همیشه جوری کد بزنید ک خوانا باشه پیچیدگی بیش از حد هنر نیست هنر ساده انجام دادنشه
حتی اگر تنها روی یک پروژه کار میکنید جوری کد بزنید ک ب راحتی بشه نیروی جدید رو روی پروژه انبرد کرد
نام گذاری و Formatting رو جدی بگیرید پروژه حتما کانفیگ Formatter داشته باشه تا تو سیستم تمام توسعه دهنده ها فرمت کد درست باشه و تغییرات بیخود فقط بخاطر تفاوت کانفیگ Formatter رو سیستم توسعه دهنده ها نداشته باشیم
در مورد dependency های پروژه تا حد ممکن سعی کنید ب روز نگه دارید و از تغییراتی ک ممکنه بخاطر ی break change بدید نترسید گاهی ممکنه اون آسیب پذیری یا مشکلی ک با اون break change حل شده بیشتر ب شما آسیب بزنه
حداقل ورژن مورد نیاز برای dependency های پروژه رو حتما تو کانفیگ فایل اضافه کنید مثلا ورژن نود مورد نیاز برای ی پروژه node.js
اگر تست نمینویسی فایلشو الکی نساز دوست من😶
آدرس ها و usernamepassword ها و کلا هر چیزی ک ممکنه تو محیط های مختلف dev و test و production متفاوت باشند و یا اطلاعات حساسی هستن رو حتما بذار تو فایل env و هارد کد نکن
چیزی ک استفاده نمیکنی رو نگه ندار تو پروژه بخاطر این ک شاید ی روزی استفادت بشه (همونطور ک اصل YAGNI میگه)
ی جوری conditional کد بزن ک else و else if نزنی تو کد. مثلا شرطی رو چک کن ک به محض برقرار نبودنش اجرای اون تابع متوقف بشه (Guard pattern)
این ک خیلی هم کدت رو specific زبون خودت بنویسی زیاد جالب نیست ب نظرم جایی که امکانش هست و از نظر کارآیی تفاوتی نداره از استایلی برای کدت استفاده کن ک اگر کسی از زبون و پلتفرم دیگه کدت رو بخونه متوجه بشه این عدم متکی بودن ب یک زبون برای خود آدم هم بنظرم بهتره حتی اگر ب نظر تمیز تر نیاد
اگر نظری داشتید ممنون میشم برام بنویسید و اینکه تمام این پست نظر شخصی منه و هیچ ادعای خاصی تو هیچ موردی ندارم و هیچ مسئولیتی هم بابت استفاده و برداشت هایی ک ممکنه ازش بشه بر عهده بنده نمی باشد