معرفی و دانلود کتاب کدنویس تمیز
برای دانلود قانونی کتاب کدنویس تمیز و دسترسی به هزاران کتاب و کتاب صوتی دیگر، اپلیکیشن کتابراه را رایگان نصب کنید.
معرفی کتاب کدنویس تمیز
رابرت سی. مارتین در کتاب کدنویس تمیز، به برنامهنویسان یاد میدهد که چطور حرفهای به نظر برسند و با دیگر اعضای تیم و مشتریان تعاملاتی حرفهای برقرار سازند. این کتاب دستورالعملهایی اخلاقی، راهنماییها، تکنیکها، ابزارها و تمریناتی را پیشنهاد میدهد که به مهندسین نرمافزار کمک میکنند سطحشان را از تکنسینی معمولی ارتقا دهند و به دنیای حرفهای گام بگذارند.
دربارهی کتاب کدنویس تمیز
در سال 1986، فضاپیمای چلنجر، چند ثانیه پس از پرتاب، به خاطر نقص فنی منفجر شد و فاجعهای انسانی رخ داد. 7 فضانورد درون این فضاپیما بلافاصله جانشان را از دست دادند و یک پروژهی چندسالهی تحقیقاتی به شکست کامل انجامید. بررسیها نشان داد که نقص در بوستر جامد راکت سمت راستی باعث این حادثه شد. در قطعات این راکت حلقهای O شکل وجود داشت که در آن روز نتوانستند مانع از نشت گاز داغ شوند. مسأله اینجا بود که مهندسین ناسا و سازندگان این حلقه میدانستند این قطعه مشکل دارد و پیشتر هم نقص آن را دیده بودند. پیش از پرتاب چلنجر این متخصصین با مدیران بالادستیشان جلسه گذاشتند تا عملیات به تعویق بیافتد. ولی مدیران به بهانهی فشار سیاسی و مالی این پیشنهاد را نپذیرفتند. مهندسین هم پافشاری نکردند تا در نهایت، این فاجعه رخ دهد.
در این حادثه مهندسین مقصر نبودند، چون سعی کردند مانع از اتفاق شوند. ولی آیا رفتارشان حرفهای بود؟ به نظر میرسد که نه. آنها به خاطر اینکه نتوانستند به مدیرانشان «نه» بگویند و بر روی حرفشان بمانند، رفتاری غیرحرفهای از خود نشان دادند. رابرت سی. مارتین (Robert C. Martin)، مهندس نرمافزار و برنامهنویس بزرگ آمریکایی این رفتار را در میان متخصصین رایج میداند و آن را نقد میکند. او اعتقاد دارد که نتیجهی این رویکرد غیرحرفهای میتواند هولناک باشد و آسیب زیادی به افراد و سیستم وارد کند. مارتین در کتاب کدنویس تمیز (The Clean Coder) میکوشد اصول رفتار حرفهای را به برنامهنویسها یاد بدهد و به آنها کمک در تعاملاتشان حرفهایتر به نظر برسند.
رابرت سی. مارتین کتابش را با یک پرسش اساسی آغاز میکند: به چه کسی متخصص نرمافزار میگویند؟ او میگوید یک متخصص چند شاخصه مهم دارد: رفتارش حرفهای است، میداند چطور و کجا «نه» بگوید، قادر است با انواع فشارها کنار بیاید و نمیگذارد بر رویش تأثیر بگذارند، بلد است با مدیران غیرمنطقی کار کند و زمانبندیها و برنامههای سخت را مدیریت میکند. اما همهی اینها برای او توام با صداقت، احترام، عزتنفس و غرور است. به تعبیر دیگر، فرد حرفهای در عین مقاومت در برابر فشارها و تعامل با مدیرانش، نباید تن به هر شرایطی بدهد و اصول انسانی و اخلاقی را زیر پا بگذارد. و این نشاندهندهی یک کار خوب و تمیز است. مارتین در کتاب کد تمیز، دستورالعملها، نکات، راهنماییها، استراتژیها و ابزارهایی پیشنهاد میدهد که به این مهم کمک میکنند. او به برنامهنویس یاد میدهد چطور از تکنسینی پاییندست به کدنویسی قدرتمند و حرفهای تبدیل شود.
کتاب کد تمیز را ارجاسب محمدی و علیرضا کشاورز باحقیقت برای انتشارات نبض دانش ترجمه کردهاند.
دربارهی مجموعهی رابرت سی. مارتین
مجموعهی رابرت سی. مارتین (Robert C. Martin Series)، کتابهایی هستند که به اصول اخلاقی و حرفهای در مهندسی نرمافزار میپردازند و مبانی این رشته را یاد میدهند. مارتین، برنامهنویس افسانهای آمریکایی، در این کتابها با زبانی ساده و راحت به برنامهنویسها نکات و دستورالعملهایی را یادآور میشود تا بازدهی خود و مجموعهشان را افزایش دهند. «کد تمیز»، «کدنویس تمیز»، «معماری تمیز»، «چابک تمیز» و «مهارت تمیز» از جمله آثاری هستند که از این سری به چاپ رسیدهاند.
نکوداشتهای کتاب کدنویس تمیز
- درسهای این کتاب را بخوانید، یاد بگیرید و زندگی کنید، آنوقت میتوانید بهراستی خودتان را مهندس نرمافزار بدانید. (جورج بولاک، مدیر برنامهی ارشد مایکروسافت)
- این کتاب چیزی بیش از مجموعه قوانین و راهنماست. در آن خرد و دانشی است که معمولاً بهواسطهی سالها شاگردی و آزمونوخطا به دست میآید. بهعنوان یک مهندس نرمافزار حرفهای باید حتماً این کتاب را بخوانید. (آر. ال. بوگتی، دیزاینر ارشد سیستم)
کتاب کدنویس تمیز برای چه کسانی مناسب است؟
این راهنما به متخصصین نرمافزار و برنامهنویسهای حرفهای پیشنهاد میشود.
در بخشی از کتاب کدنویس تمیز میخوانیم
از نظر من، شما به این دلیل کتاب جاری را در دست گرفتهاید که یک برنامهنویس کامپیوتر هستید و با مفهوم حرفهایگرائی مواجه شدهاید. شما باید حرفهای باشید. حرفهایگرائی، چیزی است که حرفه ما شدیدا به آن نیازمند است. من نیز یک برنامهنویس هستم. من به مدت 42 سال به این حرفه مشغول هستم و در این دوره – به شما خواهم گفت همه چیز را تجربه کردم. اخراج شدم. به من خندیدند. رهبر تیم، مدیر تیم، عضو تیم و حتی مدیر عامل بودم. با برنامهنویسان سطح بالا و با برنامهنویسان خام و تنبل کار کردم. بر روی سیستمهای تعبیه شده پیشرفته نرمافزاری/سختافزاری کار کردم. روی سیستمهای پرداخت حقوق شرکتی هم کار کردم. به زبانهای کوبول، فرترن، بال، PDP-8، PDP-11، سی، سی پلاس، جاوا، رابی، اسمال تاک و بسیاری زبانها و سیستمهای دیگر برنامه نوشتم. با سارقین چک کار کردم و با متخصصین سطح بالا هم کار کردم. این دستهبندی آخر، موضوع کتابمان است. در صفحات این کتاب، سعی میکنم تعریفی از برنامهنویس حرفهای ارائه دهم. نگرشها، انضباط و اقداماتی که پیشنیازهای حرفهای بودن هستند را بیان میکنم.
بنظرتان چطور با این مفاهیم آشنا شدم، نگرش، انضباط و اقدام؟ چونکه مجبور شدم آنها را بسختی یاد بگیرم. خواهید دید از زمانی که در اولین شغلم بعنوان برنامهنویس مشغول کار شدم، حرفهای بودن، آخرین کلمه ایست برای که توصیف من به کار خواهید برد. سال 1969 بود، 17 سال داشتم. پدرم مالک یک کسب و کار خرده فروشی محلی به نام ASC بود که مرا بعنوان یک برنامهنویس پاره وقت موقت استخدام کرد (بله، پدرم، میتوانست چنین کارهایی انجام دهد. یک بار دیدم جلوی یک خودروی در حال حرکت با سرعت بالا دوید و دستش را به نشانه دستور توقف بالا برد. یادم است خودرو ترمز کرد. بله، کسی به پدر من نه نمیگفت). من در اتاقی مشغول به کار شدم که همه راهنماهای رایانههای آیبیام در آن نگهداری میشدند. من بایستی چندین سال بروزرسانی را روی این راهنماها اعمال میکردم. آن زمان بود که اولین بار با عبارت "این صفحه، عمدا خالی در نظر گرفته شده است" مواجه شدم.
فهرست مطالب کتاب
مقدمه
کدنویسی تمیز
دیباچه
مقدمه
درباره این کتاب
کتاب شناسی
در مورد نویسنده
معرفی پیش نیازها
فصل اول: حرفهایگرائی
مسئولیت پذیری
قبل از هر چیز، آسیب وارد نکنید
به کارکرد آسیب وارد نکنید
تضمین کیفیت (QA) مشکلات را پیدا نمیکند
باید بدانید که نرمافزار کار میکند
تضمین کیفی خودکار
به ساختار سیستم آسیب وارد نکنید
با رعایت اصول اخلاقی کار کنید
حوزه کاری خود را بشناسید
یادگیری پیوسته
تمرین
همکاری
مربی گری
دامنه کاری خود را بشناسید
با کارفرما و مشتریانتان آشنایی داشته باشید
حقارت
کتاب شناسی
فصل دوم: نه گفتن
نقشهای متخاصم
پرسش در مورد علت
ریسکهای بزرگ
بازیگر تیمی بودن
تلاش (trying)
تجاوز منفعلانه
هزینه نه گفتن
کد غیرممکن
پس اگر گوریلا مارت، مقصر نیست، چه کسی مقصر است؟
فصل سوم: بله گفتن
زبان تعهد
تشخیص کمبود تعهد
تعهدپذیری به چه صورتی است؟
وحشتناک است، درسته؟
متوجه تفاوت شدید؟
جواب نمیدهد چونکه من نخواهم توانست
خلاصه
سعی کردن (try) از دیدگاه دیگر
نتیجهگیری
فصل چهارم: کدنویسی
آمادگی
کدنویسی در ساعت 3 بامداد
کد دلواپس
منطقه سبکبالی
موسیقی
وقفهها (توقفها)
مسدودشدن ذهن نویسنده
و اما این راهکار ساده چیست؟ یافتن یک همکار.
ورودی خلاق
اشکالزدایی
زمان اشکالزدایی
سرعتتان را تنظیم کنید
بدانید کی دست از کار بکشید
به سمت منزل رانندگی کنید
دوش گرفتن
دیر کردن (تاخیر در انجام کار)
امید
یورش ناگهانی
اضافه کار
تحویل دروغ
تعریف انجام شدن (done)
کمک
کمک به دیگران
کمک دیگران را بپذیرید
مربی گری
کتاب شناسی
فصل پنجم: توسعه تستمحور
مسئله روشن شد
سه قانون توسعه تستمحور (TDD)
مزایا
نرخ تزریق خطا
جرات
مستندسازی
طراحی
انتخاب حرفهای
TDD چه چیزی نیست
کتابشناسی
فصل ششم: تمرین
مقدماتی در مورد تمرین
22 صفر
زمان گردش
مدرسه کدنویسی
کاتا
واسا (Wasa)
Randori
توسعه تجربه
متنباز
اخلاق تمرین
نتیجهگیری
کتابشناسی
فصل هفتم: تست پذیرش
انتقال نیازها
دقت زودهنگام (ضعیف)
اصل عدم قطعیت
اضطراب تخمین
ابهام دیرهنگام
تستهای پذیرش
تعریف انجام شدن (done)
ارتباطات
خودکارسازی (اتوماسیون)
کار اضافی
چه کسی و چه زمانی تستهای پذیرش را مینویسد؟
نقش توسعهدهنده
گفتگو در مورد تست و هجوم منفعلانه
تستهای پذیرش و تستهای واحد
واسط گرافیکی کاربر (GUI) و دیگر مسائل
تست از طریق واسط صحیح
یکپارچهسازی پیوسته (CI)
توقف انتشار
نتیجهگیری
فصل هشتم: راهبردهای تست
واحد تضمین کیفیت نباید باگ پیدا کند
تضمین کیفیت، بخشی از تیم است
واحد تضمین کیفی بعنوان تصریحکننده
واحد تضمین کیفی بعنوان مشخصکننده
هرم خودکارسازی (اتوماسیون) تست
تستهای واحد
تستهای مولفه
تستهای یکپارچه سازی
تستهای سیستم
تستهای دستی اکتشافی
نتیجهگیری
کتاب شناسی
فصل نهم: مدیریت زمان
جلسات
نپذیرفتن جلسه
ترک جلسه
دستور کار و هدف داشته باشید
جلسات سرپایی
بازنگری و نمایش تکرار
بحث ها/عدم توافقها
مانای تمرکز
خواب
کافئین
شارژ مجدد
تمرکز ماهیچهای
ورودی در مقابل خروجی
جعبه زمان و گوجه
طفرهروی
وارونسازی اولویتها
بنبست
مرداب، باتلاق و دیگر آشفتگیها
نتیجهگیری
فصل دهم: تخمین
تخمین چیست؟
تعهد
تخمین
تعهدات ضمنی
PERT
تخمین وظایف
روش تخمین دلفی پهنباند
انگشتهای پرنده
روش پوکر برنامهریز
تخمین نزدیکی (وابستگی)
تخمینهای سهمتغیره
قانون ارقام بزرگ
نتیجهگیری
کتابشناسی
فصل یازدهم: فشار (استرس)
جلوگیری از فشار
تعهدات
تمیز ماندن
رعایت اصول در دوران بحران
مدیریت فشار
نترسید
اطلاعرسانی
به اصولتان تکیه کنید
کمک خواستن
نتیجهگیری
فصل دوازدهم: همکاری
برنامهنویسان در مقابل افراد عادی
برنامهنویسان در مقابل کارفرمایان
کد تحت مالکیت
مالکیت جمعی
برنامهنویسی دونفری (paring)
مخچه
نتیجهگیری
فصل سیزدهم: تیمها و پروژهها
آیا پروژه مخلوط هستند؟
تیم ژله ای
تخمیر
کدام یک اولویت دارد: تیم یا پروژه؟
مدیریت به چه نحوی انجام میشود؟
مسئله مالک پروژه
نتیجهگیری
کتابشناسی
فصل چهاردهم: مربیگری، کارآموزی (شاگردی) و استادکاری
مدرک و شکست
مربیگری
اولین کامپیوتر من، Digi-Comp 1
ECP-I8 در دبیرستان
مربیهای غیرمتعارف
ضربههای سخت
کارآموزی (شاگردی)
کارآموزی نرمافزار
اساتید
متخصصین (تجربهدارها)
کارآموز/اینترن
واقعیت
استادی
قانع کردن دیگران
نتیجهگیری
ضمیمه
ابزار
ابزار
کنترل سورس کد
سیستم کنترل سورس سازمانی
قفل گذاری بدبینانه در مقابل خوش بینانه
CVS/SVN
انشعاب
Git
محیط توسعه یکپارچه (IDE) /ویرایشگر
Vi
Emacs
ایکلیپس/اینتل ج
TextMate
ردیابی مسائل
تعداد باگ
Continuous build (build مداوم)
ابزار تست واحد
ابزار تست مولفه
تعریف Done (انجام شدن کار)
FitNesse
ابزار دیگر
ابزار تست یکپارچه سازی
UML/MDA
جزئیات
ما برنامهنویسان، چه نوع جزئیاتی را مدیریت میکنیم؟
نه امیدی و نه تغییری
نتیجهگیری
مشخصات کتاب الکترونیک
نام کتاب | کتاب کدنویس تمیز |
نویسنده | رابرت سی. مارتین |
مترجم | ارجاسب محمدی، علیرضا کشاورز باحقیقت |
ناشر چاپی | انتشارات نبض دانش |
سال انتشار | ۱۴۰۲ |
فرمت کتاب | EPUB |
تعداد صفحات | 150 |
زبان | فارسی |
شابک | 978-622-7848-22-9 |
موضوع کتاب | کتابهای اصول و مبانی برنامه نویسی |