بهترین زبان برنامه نویسی برای مهاجرت؛ کدام زبان آینده شغلی بهتری دارد؟
برنامهنویسی در سالهای اخیر به یکی از مطمئنترین مسیرهای مهاجرت کاری تبدیل شده است. شرکتهای فناوری در کشورهای مختلف با …
رابرت سی. مارتین، یکی از بزرگترین چهرههای مهندسی نرمافزار، کتابهای متعددی در این حوزه نوشته که تأثیر بسزایی بر روی توسعهدهندگان نرمافزار داشته است. کتب رابرت سی مارتین با تمرکز بر اصول طراحی، معماری نرمافزار و توسعه چابک، به برنامهنویسان کمک میکند تا کدی با کیفیت بالاتر و ساختاری بهینهتر بنویسند. در این مقاله، به معرفی پنج کتاب از این نویسنده پرداخته شده که هر یک در نوع خود بهعنوان منابع ارزشمند برای برنامهنویسان به شمار میآیند.
کتاب "Clean Architecture: A Craftsman's Guide to Software Structure and Design" یکی از کتب رابرت سی مارتین در سال ۲۰۱۷ منتشر شد و به اصول و روشهای طراحی معماری نرمافزارهای ساختیافته و قابل نگهداری میپردازد. این کتاب به توسعهدهندگان و معماران نرمافزار کمک میکند تا بتوانند با استفاده از اصول طراحی شیگرا و الگوهای معماری، ساختارهای نرمافزاریای ایجاد کنند که به راحتی قابل توسعه و نگهداری باشند. در ادامه خلاصهای از بخشهای کلیدی این کتاب بیان میشود:

این بخش از کتب رابرت سی مارتین مربوط به معرفی اصول اساسی طراحی معماری است که توضیح میدهد یک معماری خوب باید مرزهای (Boundaries) واضحی بین بخشهای مختلف نرمافزار ایجاد کند و این مرزها نباید وابسته به جزئیات پیادهسازی باشند. اصولی که در این بخش به آنها پرداخته میشود شامل موارد زیر است:
1. وابستگی به جزئیات نباید باشد (Dependency Rule): یکی از مهمترین اصول کتب رابرت سی مارتین این است که جزئیات باید وابسته به انتزاعها باشند و نه برعکس. این امر به توسعهدهندگان اجازه میدهد تا جزئیات را بدون تأثیر بر ساختار کلی سیستم تغییر دهند.
2. قانون وارونگی وابستگی (Dependency Inversion Principle): ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند؛ بلکه هر دو باید به انتزاعها وابسته باشند.
3. جدا کردن منطق تجاری از چارچوبها و ابزارها: منطق تجاری سیستم نباید به چارچوبها، دیتابیسها، و کتابخانههای خاص وابسته باشد. این امر به معماری نرمافزار امکان انعطافپذیری و تغییرپذیری بیشتری میدهد.
مارتین در این بخش پارادایمهای مختلف معماری نرمافزار را بررسی کرده و توضیح میدهد که چگونه هر یک از این پارادایمها میتوانند در طراحی یک معماری قابل نگهداری مؤثر باشند. برخی از این پارادایمها عبارتند از:
1. معماری لایهای (Layered Architecture): در این معماری، سیستم به لایههای مختلفی تقسیم میشود که هر لایه وظیفهای خاص دارد و تنها با لایه مجاور خود در ارتباط است.
2. معماری پیازی (Onion Architecture): این معماری نیز شبیه معماری لایهای است، اما بر جداسازی واضحتر منطق تجاری و جزئیات پیادهسازی تمرکز دارد.
3. معماری تمیز (Clean Architecture): معماری تمیز شامل لایههای مختلفی است که در مرکز آن، موجودیتها (Entities) قرار دارند. لایههای بیرونی شامل مواردی مانند منطق کاربردی (Use Cases) و رابطهای کاربری (Interfaces) هستند. این معماری تلاش میکند که وابستگیهای بین لایهها را به حداقل برساند..
این بخش هم طراحی مؤلفهها و نحوه سازماندهی آنها در یک سیستم نرمافزاری را بیان میکند. او اصولی را معرفی میکند که توسعهدهندگان میتوانند برای تقسیمبندی و سازماندهی بهتر کد از آنها استفاده کنند. برخی از این اصول عبارتند از:
1. اصل جداسازی مؤلفهها (Component Cohesion): این اصل به معنای گروهبندی کدهایی است که به هم مرتبط هستند و باید در یک مؤلفه (Component) قرار گیرند. مارتین سه زیر اصل برای این مفهوم تعریف میکند:
- اصل بازیگر مشترک (REP - Reuse/Release Equivalency Principle): کلاسهایی که با هم منتشر میشوند، باید با هم بازیافت شوند. مؤلفهها باید به گونهای طراحی شوند که برای انتشار (Release) و استفاده مجدد (Reuse) مناسب باشند.
- اصل بستهبندی مشترک (CCP - Common Closure Principle): کلاسهایی که به دلایل مشابه تغییر میکنند، باید در یک مؤلفه باشند.
- اصل استفاده مشترک (CRP - Common Reuse Principle): کلاسهایی که با هم استفاده میشوند، باید در یک مؤلفه قرار گیرند تا وابستگیها به حداقل برسند.
2. اصل جفتشدگی مؤلفهها (Component Coupling): این اصل به نحوه ارتباط مؤلفهها با یکدیگر میپردازد. هدف این است که وابستگیهای بین مؤلفهها به حداقل برسد و استقلال آنها حفظ شود. سه زیر اصل برای این مفهوم وجود دارد:
- اصل وابستگی پایدار (ADP - Acyclic Dependencies Principle): وابستگیهای بین مؤلفهها نباید به صورت چرخهای باشد. به عبارت دیگر، نباید حلقههای وابستگی بین مؤلفهها ایجاد شود.
- اصل وابستگی پایدار (SDP - Stable Dependencies Principle): یک مؤلفه باید تنها به مؤلفههایی وابسته باشد که پایداری بیشتری دارند و کمتر تغییر میکنند.
- اصل انتزاع پایدار (SAP - Stable Abstractions Principle): یک مؤلفه پایدار باید به طور کلی انتزاعی (Abstract) باشد و تغییرات در آن کم باشد. مؤلفههای انتزاعی نباید تغییرات زیادی داشته باشند.
مارتین اینجا بیشتر توضیح میدهد که چگونه باید معماری را به گونهای طراحی کنیم که تغییرات در آن به آسانی انجام شود. او همچنین به بررسی ابزارها، چارچوبها، و کتابخانههایی میپردازد که میتوانند در این فرآیند مفید باشند.
1. جدا کردن چارچوبها و ابزارها: مارتین میگید ابزارها و چارچوبهای مورد استفاده در پروژه نباید در مرکز معماری قرار گیرند. بلکه این ابزارها باید در لایههای خارجی معماری قرار گیرند تا تغییرات آنها باعث تغییر در منطق تجاری نشود.
2. استفاده از حداقل وابستگیها: او توصیه میکند که وابستگیها و استفاده از کتابخانهها به حداقل برسد تا تغییرات آنها بر سایر بخشهای سیستم تأثیر نگذارد.
کتاب "Agile Software Development, Principles, Patterns, and Practices" را رابرت سی مارتین در سال ۲۰۰۲ منتشر کرد و به عنوان یکی از منابع اصلی در زمینه توسعه نرمافزار به روش چابک (Agile) معرفی شد. این کتاب ترکیبی از اصول طراحی شیگرا، الگوهای طراحی و روشهای توسعه چابک را به توسعهدهندگان نرمافزار ارائه میدهد. مارتین در این کتاب سعی کرده تا با ترکیب این مفاهیم، رویکردی جامع برای توسعه نرمافزارهای باکیفیت و انعطافپذیر ارائه دهد. در ادامه خلاصهای از بخشهای اصلی این کتاب آورده شده است:

این بخش کتاب شامل معرفی فلسفه و اصول توسعه چابک است و توضیح میدهد که چگونه روش چابک با تأکید بر همکاری نزدیک با مشتری، واکنش سریع به تغییرات و تحویل تدریجی نرمافزار میتواند به تیمها کمک کند تا نرمافزارهایی با کیفیت بالا و منطبق با نیازهای مشتری تولید کنند. اصول اصلی چابک عبارتند از:
1. تعامل با مشتری بیش از قراردادهای سختگیرانه: بهبود ارتباط با مشتری و انعطافپذیری در پاسخگویی به تغییرات نیازها.
2. تیمهای خودسازماندهی: تیمها باید بتوانند به صورت مستقل عمل کنند و تصمیمات خود را اتخاذ کنند.
3. تحویل مستمر نرمافزار قابل استفاده: به جای تحویل یکباره کل پروژه، نرمافزار باید به صورت تدریجی و در قالب بخشهای کوچک و قابل استفاده تحویل داده شود.
این بخش اصول طراحی شیگرا (Object-Oriented Design) و نحوه پیادهسازی این اصول در توسعه نرمافزار را توضیح میدهد. برخی از این اصول عبارتند از:
1. اصل مسئولیت واحد (Single Responsibility Principle - SRP): هر کلاس باید تنها یک دلیل برای تغییر داشته باشد، یعنی یک مسئولیت واحد داشته باشد.
2. اصل باز/بسته (Open/Closed Principle - OCP): نرمافزار باید برای توسعه باز و برای تغییر بسته باشد.
3. اصل جایگزینی لیسکوف (Liskov Substitution Principle - LSP): اشیاء باید بتوانند جایگزین اشیاء والد خود شوند بدون اینکه رفتار سیستم را تغییر دهند.
4. اصل جداسازی رابط (Interface Segregation Principle - ISP): مشتریان نباید مجبور به وابستگی به رابطهایی باشند که از آنها استفاده نمیکنند.
5. اصل وارونگی وابستگی (Dependency Inversion Principle - DIP): ماژولهای سطح بالا نباید به ماژولهای سطح پایین وابسته باشند؛ هر دو باید به انتزاعها وابسته باشند.
این بخش کتاب الگوهای طراحی معروف و نحوه استفاده از آنها در توسعه نرمافزار را بررسی میکند؛ که چگونه این الگوها میتوانند به توسعهدهندگان کمک کنند تا مسائل رایج در طراحی نرمافزار را به شکلی استاندارد و بهینه حل کنند. برخی از الگوهای مورد بحث عبارتند از:
1. Singleton: این الگو برای اطمینان از وجود تنها یک نمونه از یک کلاس در سراسر برنامه استفاده میشود.
2. Factory Method: الگوی کارخانهای برای ایجاد اشیاء بدون وابستگی مستقیم به کلاسهای آنها.
3. Observer: این الگو برای پیادهسازی یک رابطه وابستگی یکبهچند بین اشیاء به کار میرود.
این بخش از کتب رابرت سی مارتین به روشها و شیوههای خاصی برای پیادهسازی توسعه چابک در تیمهای توسعه نرمافزار میپردازد. برخی از این شیوهها عبارتند از:
این بخش شامل تمرینها و مثالهای عملی است که به خوانندگان کمک میکند تا مفاهیم و اصول یادگرفته شده را در پروژههای واقعی پیادهسازی کنند. مارتین با ارائه مطالعات موردی، چالشهای رایج در توسعه نرمافزار را بررسی میکند و راهحلهایی برای آنها پیشنهاد میدهد.
کتاب "UML for Java Programmers" که انتشار آن به سال ۲۰۰۳ باز میگجردد؛ مربوط به آموزش استفاده از زبان مدلسازی یکپارچه (UML) برای توسعهدهندگان جاوا است و هدف اصلی مارتین در این کتاب، کمک به توسعهدهندگان جاوا است تا بتوانند از UML برای مدلسازی و طراحی سیستمهای نرمافزاری پیچیده استفاده کنند. در ادامه خلاصهای از بخشهای اصلی این کتاب ارائه میشود:

مارتین در این بخش با معرفی عناصر اصلی UML مانند کلاسها، اشیاء، روابط و نمودارهای مختلف، به توسعهدهندگان جاوا کمک میکند تا این مفاهیم را درک کنند و بتوانند از آنها در طراحی سیستمهای خود استفاده کنند. مهمترین مفاهیم معرفی شده در این بخش عبارتند از:
1. نمودارهای کلاس (Class Diagrams): نحوه نمایش کلاسها، روابط بین آنها، و ویژگیها و متدهای کلاسها.
2. نمودارهای توالی (Sequence Diagrams): نحوه نمایش تعاملات بین اشیاء در طول زمان و ترتیب فراخوانی متدها.
3. نمودارهای فعالیت (Activity Diagrams): نمایش فرآیندها و جریانهای کاری در سیستم.
4. نمودارهای مورد کاربرد (Use Case Diagrams): نشان دادن نیازمندیهای سیستم از دید کاربران و تعاملات آنها با سیستم.
کتب رابرت سی مارتین در این بخش توضیح میدهد که چگونه میتوان از UML در مراحل مختلف توسعه نرمافزار استفاده کرد. او به نقش UML در مراحل تحلیل، طراحی و پیادهسازی میپردازد و توضیح میدهد که چگونه توسعهدهندگان میتوانند از این ابزار برای مدلسازی نیازمندیها و طراحی ساختار سیستمهای جاوا بهرهمند شوند.
1. تحلیل نیازمندیها: نشان میدهد که چگونه میتوان از نمودارهای مورد کاربرد برای جمعآوری نیازمندیها و مستندسازی آنها استفاده کرد.
2. طراحی سطح بالا: او با استفاده از نمودارهای کلاس و نمودارهای توالی، نحوه طراحی ساختار و رفتار سیستم را توضیح میدهد.
3. تبدیل طراحی به کد: در این بخش، او توضیح میدهد که چگونه میتوان از مدلهای UML برای تولید کد جاوا استفاده کرد و این فرآیند را به صورت یکپارچه انجام داد.
مارتین استفاده از UML برای نمایش الگوهای طراحی (Design Patterns) را بیان کرده و توضیح میدهد که چگونه میتوان با استفاده از UML، الگوهای معروف طراحی شیگرا مانند Singleton، Factory Method و Observer را مدلسازی کرد و آنها را در توسعه نرمافزارهای جاوا به کار برد.
1. الگوی Singleton: نمایش این الگو در UML و پیادهسازی آن در جاوا.
2. الگوی Factory Method: مدلسازی و پیادهسازی این الگو برای ایجاد اشیاء بدون وابستگی مستقیم به کلاسهای آنها.
3. الگوی Observer: نحوه مدلسازی و پیادهسازی این الگو برای مدیریت رویدادها و ارتباطات بین اشیاء.
مارتین یک پروژه نمونه را برای بررسی چگونگی استفاده از UML در یک پروژه واقعی نشان داده و مراحل مختلف تحلیل، طراحی و پیادهسازی این پروژه را با استفاده از UML توضیح میدهد و نشان میدهد که چگونه میتوان از این ابزار برای مدیریت پیچیدگیهای یک پروژه نرمافزاری استفاده کرد.
کتاب "Clean Agile: Back to Basics" هم از کتب مهم رابرت سی مارتین (عمو باب) است که در سال ۲۰۱۹ منتشر شد و شامل بیان اصول و مبانی اولیه توسعه چابک (Agile) است. هدف اصلی این کتاب، بازگشت به مفاهیم اساسی چابک و تصحیح سوءتفاهمها و برداشتهای اشتباهی است که در طول زمان از این روشها به وجود آمده است. در ادامه، خلاصهای از بخشهای اصلی کتاب آورده شده است:

مارتین تاریخچه توسعه را در این بخش توضیح داده و میگوید که چگونه روشهای چابک در پاسخ به مشکلات روشهای سنتی توسعه نرمافزار شکل گرفتند. او به مانیفست چابک (Agile Manifesto) و چهار ارزش اصلی آن اشاره میکند:
1. افراد و تعاملات بیش از فرآیندها و ابزارها: تأکید بر همکاری و ارتباطات انسانی در تیمهای توسعه.
2. نرمافزار کارا بیش از مستندسازی جامع: تمرکز بر تحویل مداوم نرمافزار کارا و بهینه به جای مستندسازی سنگین و پیچیده.
3. همکاری با مشتری بیش از قراردادهای سختگیرانه: تشویق به همکاری نزدیک با مشتریان و پاسخگویی به نیازهای آنها.
4. پاسخگویی به تغییرات بیش از پیروی از یک برنامه: پذیرش تغییرات در طول پروژه به جای پایبندی به برنامههای ثابت و غیرقابل تغییر.
این بخش شامل اصول دوازدهگانه چابک میشود. مارتین هر یک از این اصول را با جزئیات شرح میدهد و توضیح میدهد که چگونه میتوان آنها را در پروژههای واقعی پیادهسازی کرد. برخی از این اصول عبارتند از:
1. تحویل مداوم نرمافزار کارا: نرمافزار باید به صورت مداوم و در بازههای زمانی کوتاه تحویل داده شود.
2. پذیرش تغییرات: تیمهای توسعه باید از تغییرات استقبال کنند و آنها را به عنوان فرصتی برای بهبود نرمافزار ببینند.
3. همکاری روزانه: اعضای تیم و مشتریان باید به صورت روزانه با یکدیگر در ارتباط باشند تا پروژه به درستی پیش برود.
باب روشها و تکنیکهای مختلفی که در توسعه چابک به کار میروند، در این بخ بیان کرده و روشهایی مانند اسکرام (Scrum)، کانبان (Kanban) و توسعه مبتنی بر آزمون (Test-Driven Development - TDD) را توضیح میدهد. او همچنین به اهمیت جلسات کوتاه روزانه (Daily Standups) و جلسات بازبینی و بازتاب (Retrospectives) در بهبود فرآیندها و کار تیمی اشاره میکند.
این بخش به مشکلات و چالشهایی که تیمها ممکن است در پیادهسازی چابک با آنها مواجه شوند، میپردازد. مارتین توضیح میدهد که چگونه میتوان با مشکلاتی مانند مقاومت در برابر تغییر، سوءتفاهمها درباره چابک و ابزارهای نادرست مقابله کرد.
مارتین راهنماییهای عملی برای پیادهسازی چابک در تیمها و سازمانها ارائه میدهد. او به نکاتی مانند ایجاد فرهنگ چابک، انتخاب ابزارهای مناسب، و تربیت تیمهای خودسازماندهی (Self-organizing Teams) اشاره میکند. او همچنین تأکید میکند که موفقیت در چابک نیازمند تغییرات فرهنگی و پذیرش ذهنیت چابک در تمام سطوح سازمان است.
کتاب "Clean Craftsmanship: Disciplines, Standards, and Ethics" هم از کتب رابرت سی مارتین و در سال ۲۰۲۱ منتشر شد. این کتاب به بررسی اصول و استانداردهای کدنویسی تمیز و حرفهای، و همچنین به جنبههای اخلاقی و رفتاری در توسعه نرمافزار میپردازد. مارتین در این کتاب تلاش میکند تا توسعهدهندگان نرمافزار را به رعایت استانداردهای بالا در کیفیت کد، اخلاق حرفهای و تعهد به اصول کدنویسی تمیز تشویق کند. در ادامه، خلاصهای از بخشهای اصلی این کتاب ارائه میشود:

این بخش شامل اصول و استانداردهایی که توسعهدهندگان باید در کدنویسی رعایت کنند، میشود. باب توضیح میدهد که کدهای تمیز و استاندارد باید:
1. قابل خواندن و قابل فهم باشند: کدها باید به گونهای نوشته شوند که دیگران بتوانند به راحتی آنها را درک کنند.
2. قابل نگهداری باشند: کد باید به گونهای طراحی شود که تغییرات و نگهداری آن در آینده آسان باشد.
3. بدون خطا و قابل اعتماد باشند: تستپذیری و اطمینان از صحت کدها اهمیت بالایی دارد.
او همچنین به تکنیکهای نوشتن کد تمیز، مانند کوچک نگهداشتن توابع، استفاده از نامهای معنادار و رعایت قواعد طراحی شیگرا اشاره میکند.
مارتین به اخلاق حرفهای و رفتارهایی که توسعهدهندگان نرمافزار باید در محیط کاری رعایت کنند، اشاره میکند و بر موارد زیر تأکید دارد:
1. تعهد به کیفیت: توسعهدهندگان باید همیشه به کیفیت کدی که مینویسند متعهد باشند و از انجام کارهای سطحی و سریعالعمل خودداری کنند.
2. پاسخگویی و مسئولیتپذیری: پذیرش مسئولیت کد نوشته شده و آماده بودن برای اصلاح اشتباهات.
3. نه گفتن به کارهای غیرممکن: مارتین توضیح میدهد که توسعهدهندگان باید بتوانند در صورت نیاز به مدیران و مشتریان "نه" بگویند تا از تعهد به کارهای غیرممکن جلوگیری شود.
این بخش به اهمیت نوشتن تستهای خودکار و پیروی از روش توسعه مبتنی بر آزمون (Test-Driven Development - TDD) میپردازد. باب میگوید که چگونه نوشتن تستهای خودکار میتواند به کاهش خطاها و افزایش اعتماد به کد کمک کند. مارتین مراحل TDD را به صورت زیر توضیح میدهد:
1. نوشتن یک تست برای یک ویژگی جدید: قبل از نوشتن کد، تستی بنویسید که ویژگی جدید را بررسی کند.
2. نوشتن کدی که تست را پاس کند: کد را به گونهای بنویسید که تست نوشته شده را پاس کند.
3. بهبود کد: پس از پاس شدن تست، کد را بهینه و تمیز کنید.
مارتین در این بخش توضیح میدهد که چگونه توسعهدهندگان میتوانند به اصول و استانداردهای کدنویسی تمیز پایبند باشند. او به اهمیت فرهنگ سازمانی و نقش تیمهای توسعه در ایجاد محیطی برای پیادهسازی و پایبندی به این اصول اشاره میکند.
رابرت سی مارتین کتاب "Functional Design: Principles, Patterns, and Practices" را در سال ۲۰۲۳ کرد. این کتاب به بررسی اصول، الگوها و شیوههای طراحی در برنامهنویسی تابعی میپردازد. هدف این کتاب آموزش نحوه استفاده از برنامهنویسی تابعی برای طراحی سیستمهای بهتر و تمیزتر، با تمرکز بر کاربردهای عملی و واقعی است. مارتین در این کتاب سعی کرد با مقایسه ساختارهای کدنویسی شیگرا در جاوا و ساختارهای برنامهنویسی تابعی، بهترین نقشها و کاربردهای هر یک را شناسایی کند.
- بیتغییری (Immutability): توضیح اصول بیتغییری و اهمیت آن در جلوگیری از بروز خطاها.
- دادههای پایدار (Persistent Data): بررسی چگونگی استفاده از دادههای پایدار برای مدیریت وضعیت در برنامهنویسی تابعی.
- بازگشت و تکرار (Recursion and Iteration): توضیح بازگشت به عنوان جایگزینی برای حلقههای تکرار در برنامهنویسی تابعی.
- تنبل بودن (Laziness): معرفی روشهای تأخیر در ارزیابی دادهها و تأثیر آن بر عملکرد برنامه.
- حالتپذیری (Statefulness): بررسی چگونگی مدیریت حالت در برنامههای تابعی.
- مقایسه بین کدهای نوشته شده با رویکرد شیگرا و تابعی برای مسائلی مثل محاسبه فاکتورها و مدیریت سیستمهای پیچیده.
- بررسی نمونههای واقعی از پیادهسازیهای جاوا و Clojure برای درک بهتر تفاوتهای این دو پارادایم.
- بررسی تکنیکهای طراحی دادهمحور در برنامهنویسی تابعی.
- استفاده از اصول SOLID در کدنویسی تابعی برای نوشتن کدهای بهتر در زبان Clojure.
- طراحی سیستمهای پیچیده با استفاده از تکنیکهای مدیریت جریان دادهها و همزمانی.
- بازبینی الگوهای طراحی معروف مانند آداپتور (Adapter)، دستور (Command)، ترکیبکننده (Composite)، تزئینگر (Decorator)، و بازدیدکننده (Visitor) از منظر برنامهنویسی تابعی.
- بررسی چگونگی استفاده از این الگوها برای حل مسائل رایج در توسعه نرمافزارهای تابعی.
- تحلیل و پیادهسازی یک پروژه واقعی با استفاده از زبان Clojure و تکنیکهای یاد گرفته شده در کتاب.
کتابهای رابرت سی. مارتین با ارائه راهکارها و اصول کلیدی، راهنمایی قابل اعتماد برای توسعهدهندگان نرمافزار است. این پنج کتابی که معرفی کردیم، با ارائه دیدگاهی نو به مهندسی نرمافزار و تمرکز بر کدنویسی بهینه و معماری پایدار، به توسعهدهندگان کمک میکنند تا نرمافزارهایی حرفهایتر و باکیفیتتر تولید کنند. این آثار همچنان برای کسانی که به دنبال ارتقای مهارتهای خود در دنیای برنامهنویسی هستند، منابعی ضروری به شمار میروند. اگر مایل به یادگیری بیشتر در این زمینه هستید به مقاله اصول کدنویسی حرفهای با Clean Code و The Clean Coder سری بزنید.
مقالات و منابع آنلاین:
علاوه بر کتب رابرت سی مارتین، عمو باب مقالات زیادی در زمینه طراحی شیگرا، اصول SOLID، توسعه چابک و کدنویسی تمیز نوشته است که بسیاری از آنها در مجلات و وبسایتهای تخصصی منتشر شدهاند.
ویکیپدیا - رابرت سی. مارتین oai_citation:3,Robert C. Martin - Wikipedia
نظرات 0
برای ارسال نظر وارد حساب کاربری شوید.
هنوز نظری ثبت نشده؛ اولین نفر باشید.