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