گردش کار پنهان توسعه‌دهندگان حرفه‌ای نرم‌افزار

اکثر مردم فکر می‌کنند توسعه نرم‌افزار فقط تایپ کردن کد است. آن‌ها کسی را تصور می‌کنند که با سرعت روی یک صفحه تاریک تایپ می‌کند. این تنها ۲۰٪ از کار است.

۸۰٪ دیگر نامرئی است. این کار قبل از اینکه حتی یک خط کد بنویسید، اتفاق می‌افتد. این مرحله است که حرفه‌ای‌ها را از کسانی که تمام روز را صرف اصلاح اشتباهات خود می‌کنند، متمایز می‌کند.

توسعه‌دهندگان ارشد ۲۰ تا ۴۰ درصد از زمان خود را صرف برنامه‌ریزی می‌کنند. این اهمال‌کاری نیست، بلکه مدیریت ریسک است. تغییر دادن کد پس از اینکه وارد مرحله عملیاتی (live) شد، هزینه‌بر است.

یک مرحله برنامه‌ریزی اصولی به این صورت است:

• مسئله را با کلمات خودتان بازگو کنید. اگر نمی‌توانید آن را به سادگی توضیح دهید، یعنی هنوز آن را درک نکرده‌اید. • محدودیت‌ها را شناسایی کنید. به سرعت، ضرب‌الاجل‌ها و سیستم‌های موجود فکر کنید. • راه‌حل را ترسیم کنید. از لیست‌های نشانه‌دار یا نمودارهای ساده برای درک نحوه جریان داده‌ها استفاده کنید. • مجهولات را لیست کنید. قبل از شروع، بفهمید که به چه تحقیقاتی نیاز دارید.

توسعه‌دهندگان حرفه‌ای همچنین زمان زیادی را صرف مطالعه مستندات (documentation) می‌کنند. آن‌ها فقط پاسخ‌ها را در انجمن‌ها (forums) از روی هم رد نمی‌کنند؛ بلکه مراجع رسمی API و کد منبع (source code) را می‌خوانند. این کار به آن‌ها کمک می‌کند تا از متدهای قدیمی و معیوب دوری کنند و موارد خاص (edge cases) را که باعث بروز باگ در محیط عملیاتی (production) می‌شوند، پیدا کنند.

قبل از شروع یک وظیفه بزرگ، این عادت‌ها را امتحان کنید:

• راهکارهای موجود را بررسی کنید. چیزی را که از قبل وجود دارد، دوباره نسازید. • موازنه (trade-offs) را ارزیابی کنید. تصمیم بگیرید که کدام ابزار با نیازهای خاص شما سازگار است. • بخش‌های پرریسک را نمونه‌سازی (prototype) کنید. یک اسکریپت تست کوچک بنویسید تا ببینید آیا یک ایده کار می‌کند یا خیر. • از هم‌تیمی‌های خود بپرسید. یک گفتگوی پنج دقیقه‌ای می‌تواند ساعت‌ها کار را ذخیره کند.

وقتی بالاخره کد می‌نویسید، مخاطب خود را به یاد داشته باشید. مخاطب شما، نفر بعدی است که کار شما را می‌خواند. این شخص ممکن است خودِ شما در شش ماه آینده باشید.

کدی بنویسید که تمیز باقی بماند:

• از نام‌های دقیق استفاده کنید. از نام‌های کلی مانند data خودداری کنید. در عوض از pendingInvoices استفاده کنید. • توابع را کوچک نگه دارید. یک تابع باید یک کار را به خوبی انجام دهد. • کامنت‌هایی بنویسید که «چرا» را توضیح دهند، نه «چه چیزی» را. کد نشان می‌دهد که چه کاری انجام می‌دهد؛ کامنت‌ها باید دلیل انجام آن را توضیح دهند. • از الگوهای تیم پیروی کنید. یکپارچگی (consistency) مهم‌تر از سلیقه شخصی است.

بازبینی کد (Code review) نیز حیاتی است. این کار صرفاً تیک زدن یک گزینه در لیست نیست؛ بلکه راهی برای اشتراک دانش و شناسایی ریسک‌هاست. یک بازبینی خوب به جای تمرکز صرف بر نحو (syntax)، بر هدف و منطق تمرکز می‌کند.

مهندسی واقعی در تفکر، مطالعه و تحقیق اتفاق می‌افتد. تایپ کردن فقط مرحله نهایی است.

Source: https://dev.to/lui_were/the-hidden-workflow-of-professional-software-developers-1d74