10 چیز از برنامه نویس عملی (تقریبا) 25 سال بعد

من به عنوان فردی که مدت زیادی است در فضای برنامه نویسی بوده ام، عنوان این کتاب را بارها شنیده ام. با خواندن آن، حتی متوجه شدم که بسیاری از مفاهیمی را میدانم که یا با آن شروع شده یا منتشر شدهاند.
اخیراً با یک همکار با تجربه تر (مثلاً یک مهندس ارشد نرم افزار برای راحتی کار) در مورد موضوعات مختلف از جمله اصول برنامه نویسی صحبت کردم. بحث کردیم که چند نفر فقط کتابخانه را می دانند و زبان را نمی دانند (سلام پرایم) و سایر موضوعات مشابه.
همکارم اشاره کرد که در میان کتابهای زیادی که خوانده است، این کتاب تأثیر بسیار زیادی روی او گذاشته است و او هنوز هم از بسیاری از قوانینی که در کتاب آمده است تا به امروز پیروی میکند. این باعث شد که بفهمم هنوز کتاب را نخوانده ام. بنابراین، یک کپی از آن گرفتم، نشستم و سعی کردم این دانش برنامه نویسی 25 ساله را درک کنم.
10 تاثيرگذارترين چيزي كه از خواندن به دست آوردم
- همیشه از یک سیستم کنترل نسخه استفاده کنید – امروزه راه حل های Git رایج هستند. با این حال، در سال 1999، این پیشگامانه بود.
- هر سال یک زبان برنامه نویسی یا فناوری جدید یاد بگیرید – یادگیری هر ساله یک زبان جدید ممکن است سخت باشد. در عوض، یادگیری یک چارچوب جدید یا هر فناوری جدید را در نظر بگیرید. به یادگیری و امتحان کردن چیزهای جدید ادامه دهید، حتی اگر از آنها استفاده نکنید. این به طور کلی مهارت های شما را بهبود می بخشد، به خصوص در دنیای جاوا اسکریپت.
- بهداشت کد را خوب تمرین کنید – این به معنای نوشتن کدی است که خواندن، آزمایش و نگهداری آسان باشد. بسیاری از کتابها این را پوشش میدهند، و به سختی میتوان گفت دقیقاً چه کدی برای خواندن آسان است، اما همه ما وقتی آن را میبینیم، آن را میدانیم، درست است؟
- خودتان را تکرار نکنید (DRY) – از تکرار کد یا منطق در برنامه های خود اجتناب کنید. البته تکرار همین منطق در کد بد است. با این حال، امروزه، برخی از برنامه نویسان سعی می کنند همه چیز را به روش هایی انتزاعی کنند که ممکن است آسیب زا باشد. بنابراین، منطق تابع یکسان را پنج بار ننویسید، اما اگر فقط دو بار از آن استفاده می کنید، یک ماژول کامل برای آن نسازید که درک آن 10 ساعت طول می کشد.
- از اتوماسیون به نفع خود استفاده کنید – کارهای تکراری را خودکار کنید تا در زمان صرفه جویی کنید و خطاها را کاهش دهید. در دوره نخست DevOps، از CI/CD استفاده کنید. یکی از کتاب های مورد علاقه من “مهندسی نرم افزار مدرن: انجام کارهایی که برای ساختن سریعتر نرم افزار بهتر کار می کند” است. شاید بعداً 10 مورد از آن بنویسم؟
- ساده، احمقانه نگه دارید (KISS) – برای سادگی در کد و طراحی خود تلاش کنید.
- تست هایی را برای کد خود بنویسید – این به شما کمک می کند تا اشکالات را زودتر تشخیص دهید و اطمینان حاصل کنید که کد شما همانطور که انتظار می رود کار می کند.
- کد خود را به طور منظم اصلاح کنید – این به معنای بهبود طراحی کد خود بدون تغییر رفتار آن است. کارهایی مانند “تجدید مجدد صفحه کاربر” را در کارنامه خود قرار ندهید. Refactoring یک فرآیند ثابت است. اگر در حال اضافه کردن یک ویژگی هستید و بخشی از کد را می بینید که می خواهید بازنویسی کنید، فقط آن را انجام دهید. اگر دائماً این کار را انجام می دهید، هرگز مجبور نخواهید بود زمان را برای یک بازساز بزرگ «هدر دهید».
- از الگوها و اصطلاحات عاقلانه استفاده کنید – اینها راه حل های اثبات شده ای برای مشکلات برنامه نویسی رایج هستند، اما نباید کورکورانه از آنها استفاده کرد.
- به طور مداوم یاد بگیرید و پیشرفت کنید – هرگز یادگیری و آزمایش با فن آوری ها و تکنیک های جدید را متوقف نکنید. این بهترین توصیه نه تنها برای برنامه نویسی بلکه برای زندگی به طور کلی است.
پس چگونه آن را نگه می دارد؟
قبل از هر چیز، شایان ذکر است که این کتاب در سال 1999 منتشر شده است، بنابراین برخی از فناوری ها و ابزارهای خاص ذکر شده در کتاب ممکن است قدیمی باشند. با این حال، اصول و شیوه های کلی ذکر شده در کتاب هنوز هم امروزه بسیار مرتبط هستند و بی زمان در نظر گرفته می شوند.
به عنوان مثال، این کتاب بر اهمیت نوشتن کدی که خواندن، آزمایش و نگهداری آسان باشد و همچنین ارزش یادگیری و بهبود مستمر تأکید دارد. این اصول هنوز هم بسیار مرتبط هستند و امروزه به طور گسترده توسط توسعه دهندگان نرم افزار پذیرفته می شوند.
علاوه بر این، این کتاب بر اهمیت استفاده از کنترل نسخه، که هنوز یک عمل اساسی در توسعه نرم افزار است، تأکید می کند. این کتاب همچنین مفهوم “DRY” (خودت را تکرار نکن) را معرفی می کند که هنوز یک اصل راهنما برای بسیاری از توسعه دهندگان است.
یکی از جنبه های کتاب که برخی ممکن است آن را قدیمی بدانند، تاکید بر برنامه نویسی شی گرا (OOP) و الگوهای طراحی است. در حالی که OOP هنوز به طور گسترده مورد استفاده قرار می گیرد، در سال های اخیر روند رو به رشدی به سمت برنامه نویسی کاربردی وجود داشته است و برخی از توسعه دهندگان ممکن است OOP را امروزه کمتر مرتبط بدانند. به طور مشابه، در حالی که الگوهای طراحی هنوز مورد استفاده قرار می گیرند، برخی از توسعه دهندگان ممکن است آنها را بیش از حد مورد استفاده قرار دهند و ترجیح دهند روی طرح های ساده تر و انعطاف پذیرتر تمرکز کنند.
به طور کلی، در حالی که برخی از فناوریها و ابزارهای خاص ذکر شده در «برنامهنویس عملگرا» ممکن است قدیمی باشند، اصول و شیوههای کتاب هنوز هم امروزه بسیار مرتبط هستند و به طور گسترده توسط توسعهدهندگان نرمافزار مورد استقبال قرار میگیرند.
اگر به این نوع دانش علاقه دارید، در اینجا کتابهایی وجود دارد که عالی هستند
- “Clean Code” و “The Clean Coder” نوشته Robert C. Martin – این کتاب ها به ترتیب در سال های 2008 و 2011 منتشر شدند و آنها را جدیدتر کرد. “Clean Code” بر اهمیت نوشتن کدهای تمیز، خوانا و قابل نگهداری تمرکز دارد. موضوعاتی مانند نامگذاری، قالببندی و ساختار کد را پوشش میدهد و بر اهمیت نوشتن کدی که درک و تغییر آن آسان است تأکید میکند. “The Clean Coder” بیشتر روی شما به عنوان یک برنامه نویس با موضوعاتی مانند ارتباطات، کار گروهی و رفتار اخلاقی تمرکز می کند. این توصیه های عملی در مورد چگونگی تبدیل شدن به یک توسعه دهنده نرم افزار موثر و مسئول ارائه می دهد.
- “طراحی دامنه محور” نوشته اریک ایوانز – این کتاب که برای اولین بار در سال 2003 منتشر شد، رویکردی جامع برای توسعه نرم افزار ارائه می دهد که بر اهمیت درک حوزه تجاری و طراحی نرم افزار پیرامون آن تاکید دارد. این موضوع موضوعاتی مانند زمینههای محدود، مجموعهها و رویدادهای دامنه را پوشش میدهد و راهنمایی عملی در مورد نحوه اجرای اصول طراحی دامنه محور در پروژههای شما ارائه میدهد.
- “Refactoring: Improving the Design of Existing Code” نوشته مارتین فاولر – این کتاب که اولین بار در سال 1999 منتشر شد، بر اهمیت بهبود طراحی کدهای موجود از طریق فرآیندی به نام refactoring تمرکز دارد. این راهنمای عملی در مورد چگونگی شناسایی بوهای کد و اعمال refactorings برای بهبود ساختار، خوانایی و قابلیت نگهداری کد شما ارائه می دهد.