دانلود کتاب The Pragmatic Programmer: From Journeyman to Master
by Andrew Hunt
|
عنوان فارسی: برنامه نویس عملگرای: از ماهر به استاد |
دانلود کتاب
جزییات کتاب
اندرو هانت و دیوید توماس در کتاب برنامهنویس عملگرا: نخستین گام به سوی اندیشه حرفهای، به بررسی رفتار و طرز تفکر برنامهنویسها پرداختهاند.
کتاب برنامهنویس عملگرا ذهنیت و زیرساخت فکری ما را به چالش میکشد. ما را با بنیاد تفکر «عملگرا» آشنا میکند: به ما میگوید، چگونه فکر کنیم تا از کارمان لذت ببریم و سرنوشت زندگی حرفهایمان را به دست خودمان رقم بزنیم و پلهپله تعالی پیدا کنیم. این کتاب در فضای مجازی در فهرست «کتابهایی که هر مهندس نرمافزار باید بخواند» The must read books for SE قرار دارد.
اندرو هانت (Andrew Hunt) و دیوید توماس (David Thomas) در این کتاب، نه به تعریفهای کلیشهای مهندسی پرداختهاند و نه سعی دارند که آن را به شکلی جدید تعریف کنند. آنچه در این کتاب میخوانیم، مهمترین اصول و قواعد تولید نرمافزار است.
وجه تمایز کتاب برنامهنویس عملگرا با دیگر کتابها، مثالهای واقعی است که تجربهٔ عملی نویسندگان را به ما منتقل میکند. برنامهنویسها باید مسیری طولانی را طی کنند تا چنین تجربهای را به چنگ آورند. در این کتاب، نویسندهها از واقعیتهایی حرف میزنند که خودشان در دل توسعۀ نرمافزار تجربه کردهاند.
در بخشی از کتاب برنامهنویس عملگرا میخوانیم:
چگونه بازسازی میکنید؟
در اصل، بازسازی همان باز طراحی است. هر چیزی را که شما یا همکارانتان طراحی کردهاید، میتوان از منظری دیگر، با درک عمیقتر، تغییر نیازمندیها و... باز طراحی کرد. اگر با عجله و بدون تأمل بخشهایی از کد را تغییر دهید، خواهید دید که در پایان، کد وضعیت بدتری پیدا کرده است.
بازسازی، فعالیتی است که نیاز دارد با دقت، از روی آگاهی و به آهستگی انجام شود. مارتین فاولر نکات زیر را پیشنهاد میدهد تا از وارد شدن آسیبهای بیشتر به کد جلوگیری شود:
1. سعی نکنید که بازسازی و اضافه کردن توانایی و کارکردهای جدید را همزمان انجام دهید.
2. پیش از شروع، مطمئن شوید که آزمونهای مناسبی در اختیار دارید. تا جایی که امکان دارد آنها را انجام دهید. به این شیوه به محض اینکه چیزی را خراب کنید از آن مطلع میشوید.
3. گامهای کوتاهِ آگاهانه بردارید؛ فیلدی از یک کلاس را به کلاس دیگر انتقال دهید، دو تابع مشابه در دو کلاس را در کلاس والد درهم ادغام کنید. بازسازی اغلب اوقات، شامل تغییرها محدود محلی است که نهایتاً، منجر به تغییر در مقیاس بزرگتر میشود. اگر گامهایتان را کوچک بردارید و پس از هر گام، کد را بیازمایید، دیگر لازم نخواهد بود که اشکالزداییهای طولانی مدتی انجام دهید.
فهرست مطالب
مقدمه
مقدمۀ مؤلف
چه چیزی یک برنامهنویس را عملگرا میکند؟
عملگرایی تکی در مقابل کار تیمی
برنامهنویسی عملگرا یک فرایند ادامهدار است
ساختار کتاب
چه معنایی در یک اسم نهفته است
فصل اول: یک فلسفه کاربردی
گربه کدهایم را خورده
آشفتگی نرمافزاری
سوپ سنگ و قورباغه و آب جوش
نرمافزارِ به اندازۀ کافی خوب
سبد سهام دانش
با دیگران ارتباط داشته باشید!
فصل دوم: یک رویکرد کاربردی
زیانهای تکرار
خاصیت تعامد
برگشتپذیری
تیرهای ردیاب
نمونهها و یادداشتهای چسبان
زبانهای دامنه
برآورد
فصل سوم: ابزارهای پایه
قدرت متن خوانا
بازی با شِل
امکانات ویرایشگر
مدیریت کد منبع
اشکالزدایی
دستکاری متن
تولیدکنندههای کد
فصل چهارم: جنون عملگرایی
طراحی براساس قرارداد
برنامههای مرده دروغ نمیگویند
برنامهنویسی ادعایی
کِی از استثنا استفاده کنیم
چگونه میان منابع سیستم تعادل برقرار کنیم
شیءها و استثنا
متعادلسازی و استثناها
چههنگام نمیتوانید منابع سامانه را متعادل کنید
بررسی تعادل منابع
فصل پنجم: یا انعطاف داشته باشید یا بشکنید
کاهش وابستگی و قانون دِمیتر
برنامهنویسی خودآرا
جفتسازی زمانی
شکل ارتباط
تختهسیاهها
فصل ششم: هنگام کدنویسی
برنامهنویسی اتفاقی
سرعت الگوریتم
بازسازی نرمافزار
کدی که آزمودن آن آسان است
چوبهای جادوی مخرب
فصل هفتم: پیش از شروع پروژه
چاه نیازمندیها
حل معماهای غیرممکن
نه تا زمانیکه آماده هستید
تلۀ توصیف خصوصیات
دایرهها و فلشها
فصل هشتم: پروژههای عملگرا
تیمهای عملگرا
خودکارسازی فراگیر
آزمودن بیرحمانه
نوشتن را سخت نگیرید
انتظارهای بزرگ
غرور و تعصب
فهرست واژگان فارسی به انگلیسی