کد نویس تمیز - خلاصه کتاب و نکات مهم

تاریخ ارسال:

کد نویس تمیز - خلاصه کتاب و نکات مهم

یکی دیگر از کتاب های بسیار توصیه شده برای برنامه نویسان. کتاب کد نویس تمیز است. که در این مطلب سعی می کنم یک خلاصه کوتاه و کاربردی را از این کتاب برای شما بنویسم.

کد نویس تمیز

چند وقت پیش مطالعه این کتاب آموزنده و سرگرم کننده را تمام کردم. در مورد اینکه چگونه یک توسعه دهنده نرم افزار حرفه ای باشیم. کتاب کد نویس تمیز نوشته شده توسط رابرت سی مارتین یا عمو باب است. (Clean Coder by Robert c. Martin).

این کتاب بر خلاف سایر کتاب ها در مورد فانکشن ها یا طراحی ها نیست. بلکه بر روی شخصیت فرد و دستورالعمل هایی روزانه تمرکز کرده است. که فرق بین یک توسعه دهنده معمولی و یک نفر حرفه ای را مشخص می کند.

کتاب شخصیت فردی را شرح می‌دهد که به دنبال تکامل گرایی و زندگی ایده آل است. نه چیزی که هرکسی در زندگی عادی به آن دست پیدا می کند. (کسی که در تمام مواقع کدهای تست محور می نویسد ( TDD). همه چیز را تست می کند. ۸ ساعت در شبانه روز می خوابد. به موقع و در زمان مناسب بله یا خیر می گوید. ۲۰ ساعت در هفته خارج از شغلش بر روی توسعه کد های شخصی وقت می گذارد. هر روز با چالش های کدنویسی جدید آشنا شده و آنها را حل می کند. مقدار مناسب و استاندارد قهوه می نوشد. به همان اندازه که به مسائل شغلی اهمیت می دهد، مسائل فنی را هم در نظر می‌گیرد. رمان های علمی تخیلی میخواند و...)

البته بعضی از مثال هایی که عمو باب در کتاب کد نویس تمیز آورده است خیلی با مسائل امروز سازگار نیست. خب بالاخره ۳۰ سال پیش با الان کمی تفاوت داشته، اما در کل ساختار کلی کتاب هنوز هم کاربردی است. البته بعضی نظرها در مورد مسائلی مانند اهمیت بیش از حد به تست نویسی جای بحث دارد.

تمام چیزی که من می خوهام بگویم این است که کلی از پروژه ها، تیم ها و محصولات من، توسط مطالبی که من در این کتاب یاد گرفتم قابلیت ارتقا داشت. آرزو می‌کردم ای کاش همان زمانی که داشتم تبدیل به یک برنامه نویس حرفه ای می شدم این کتاب را خوانده بودم.

حالا در ادامه خلاصه ای از مطالب مهم کتاب را برای شما می نویسم تا شما هم تبدیل به یک کد نویس تمیز شوید.

فصل اول: حرفه‌ای رفتار کردن

1-   به فانکشن ها و ساختار اصلی کد آسیب نزن: باگ ها را در کد به وجود نیاور ید. همیشه کد را در حالتی بنویس که قابل تست باشد. اگر تست کردن سخت بود، فرایند تست را خودکار کنید.

2-   یک حرف‌های همیشه می داند که ارائه عملکرد بهتر در ازای از بین بردن ساختار یک حرکت احمقانه است.

3-   هر زمان که به ساختار یا یک کد نگاه می کنید باید راهی برای کوچک کردن و بهبود آن پیدا کنید .کد را بهتر از آن چیزی که پیدا کرده اید تحویل دهید

4-   زندگی حرفه‌ای شما مربوط به خود شما است نه کارفرما: شما به میزان معینی برای کارفرما تعهد کار دارید. همیشه چند ساعت در هفته را به خودتان اختصاص دهید. برای آموزش، مطالعه یا تمرین کردن، تا بتوانید مهارت های شخصی خود را ارتقا دهید. و مطمئن شوید در زمینه ای که به آن علاقه دارید متخصص هستید.

5-   زمینه کاری خود را به خوبی بشناسید. دیزاین پترن ها را یاد بگیرید. قواعد، روش ها و تمرین های لازم را انجام دهید.

6-   تمرین کنید، تمرین کنید و تمرین کنید. حرفه ای ها مهارت هایشان را مانند یک خنجر، تیز و آماده کار نگه میدارند. موسیقی دان ها با اجرا کردن در کنسرت بهتر نمیشود، آنها با تمرین بهتر می شوند. این مسئله در مورد مهندس ها نیز وجود دارد.

فصل دوم: نه گفتن

1-   حرف ها شجاعت کافی برای "نه" گفتن به کارفرمای خود را دارند. اهداف خود را قاطعانه دنبال کنید. اگر می‌دانید که در زمان مشخص شده، نمی‌توانید کار را انجام دهید آن را بیان کنید. اما اگر گفتید که "تلاشم را می کنم" بدانید که کار خود را درست انجام نداده اید.

2-   مدیرتان از شما توقع دارد تا از اهدافتان دفاع کنید. نه اینکه فقط تایید کننده حرف های او باشید. نظراتان را بیان کنید. شما و مدیرتان بهترین نتیجه را از مذاکرات بدست می آورید.

3-   زمانی که نمی توانید به موقع کار را تحویل دهید، "چرایی" اهمیت کمتری نسبت به خود موضوع "ناتوانی شما در تحویل پروژه" دارد.

4-   مطمئن شوید مستند سازی کافی برای زمان هایی که ریسک بالا دارند آماده کرده اید.

فصل سوم: بله گفتن

1-   بگویید، به آن باورد داشته باشید و به آن عمل کنید.

2-   نداشتن تعهد در کلمات خود و دیگران را تشخیص دهید. کلماتی مانند "نیاز"، "امیدوارم"، "بگذار ببینم اگر تونستم" و ...

3-   کلمات برای تشخیص تعهد صادقانه به کار میروند. "من این کار را تا فلان زمان انجام می دهم".

4-   اگر شما برای انجام کاری متکی به کس دیگری هستید. اجازه ندهید که او مانع کار شما شود. بلکه تمام کاری که از دستتان بر می آید را برای کمک به او انجام دهید.

5-   اگر پرچم قرمز به شما نشان داد، یا سد راهتان شد. به محض دسترسی با او ارتباط برقرار کنید و مشکل را حل کنید.

6-   حرفه ای ها نیازی ندارند که به هر سوالی که از آنها می شود جواب بله بدهد. اما باید بله هایی را که گفته‌اند تبدیل به واقعیت کند. (با سخت کوشی و راه های خلاقانه).

فصل چهارم: کد نویسی

1-   چگونه برای یک روز خوب کد نویسی آماده شوید: اول با مقداری چالش های کد نویسی گرم می کنیم. در آخر هم به وسیله همین چالش‌ها خود را سرد می کنیم.

2-   هیچ موقع ساعت ۳ صبح یا زمان‌هایی که درگیر یک مشکل شخصی هستید، کد ننویسید. چون بعدا مجبور می‌شوید آنها را دوباره بنویسیدد یا بدتر، با آنها زندگی کنید.

3-   قبل از کار، زمان های شخصی خود را برای حل مشکلات شخصی اختصاص دهید. بنابراین می‌توانید در زمان کار بسیار با انرژی بیشتر چالش ها را حل کنید.

4-   زمانی که به مشکلی بر می خورید که نمی توانید آن را حل کنید. مطمئن شوید که قبل از حل آن استراحت کافی، غذای کافی و تمرین کافی داشته اید. همچنین برای افزایش خلاقیت خود داستان‌های علمی تخیلی بخوانید. (به جز فیلم ها و یا مطالبی که در اینترنت میبینیم).

5-   زمان کافی برای دیباگ کردن و نوشتن تست ها به خود اختصاص دهید. دیباگ کردن را کاری جدا از توسعه نبینید. بلکه دیباگ کردن بخشی از کدنویسی خلاقانه است.

6-   کد نویسی و توسعه نرم‌افزار یک ماراتون است نه یک مسابقه دویدن سرعتی. پس انرژی ذهنی خود را در طول روز تقسیم کنید.

7-   کلمه امیدوارم شما را به دردسر می‌اندازد. مثلاً امیدوارم که امروز تمومش کنم. به جای آن دقیقا بر أساس زمانبندی پیش بروید. و در مورد توقعات واقعبین باشید. به جای آن از حدودا استفاده کنید.

8-   از بقیه کمک بگیرید. یا به بقیه به عنوان مشاور کمک کنید.

فصل پنجم: TDD (طراحی تست محور) (Test Driven Design)

1-   تست خوب مانند داکیومنت خوب است.

2-   طراحی و مبنای تست قاعده‌ای است که قاطعیت، شجاعت، کاهش نقص، مستندسازی و طراحی را تحت تاثیر قرار و بهبود می دهد.

3-   استفاده از TDD یک کار حرفه ای است.

فصل ششم: تمرین کردن

1-   وظیفه کارفرمای شما نیست که مهارت های شما را به روز نگه دارد. این فقط وظیفه خود شماست.

2-   بیرون از محل کار تمرینات کاتا را انجام دهیم. "کد نویسی کاتا" به این معناست که سعی کنید بعضی از مسائلی که راه حل آنها را هم اکنون می دانید را تمرین کنید. انجام این کار باعث می شود که حل این مسائل را به ضمیر ناخودآگاه خود بسپارید.

3-   راه دیگر تمرین، شرکت در پروژه های صورت اپن سورس است.

4-   تمرین کردن زمانی است که شما کاری را انجام می‌دهیم ولی پولی دریافت نمی کنید.

فصل هفتم: ارتباط برقرار کردن

1-   برنامه نویسان و توسعه ‌دهندگان حرفه‌ای، ابهامات را از الزامات حذف می کنند.

2-   تست های مورد قبول باید خودکارسازی شوند. و توسط خود کسب و کار برای بیزینس نوشته شوند.

فصل هشتم: تست کردن

1-   تیم‌های حرفه ای باید یک استراتژی برای تست نویسی داشته باشند.

2-   هرم خودکارسازی تست را ببینید.

فصل نهم: مدیریت زمان

1-   توسعه دندان حرفه ای بسیار در مدیریت زمان کوشا هستند.

2-   قرارهای ملاقات بسیار مهم و همچنین تلف کننده وقت می باشند.

3-   مجبور نیستید سر همه قرار ملاقات حاضر شوید. اما مراقب باشید که کدام را برای حضور انتخاب می کنید و کدام یک را از دست می دهد. اولین تعهد شما پروژه تان است. شما باید با یک مدیر کار کنید که می داند چگونه قرار ملاقات ها را از زمانبندی شما کم کند.

4-   اگر یک قرار ملاقات ارزش زمان را شما نداشت، قاطعانه آن را ترک کنید.

5-   میتینگ ها باید یک دستورالعمل مشخص داشته باشند. و اگر جلسه از دستورالعمل مشخص شده فاصله گرفت، یک نفر باید جلسه را به زمان دیگری موکول کند تا طبق دستورالعمل پیش برود.

6-   هر جلسه روزانه (استنداپ) باید برای هر به ‌روزرسانی ۲۰ تا ۳۰ ثانیه طول بکشد. باید بیان کنید که، چه کارهای دیروز انجام شد، چه کارهایی در حال انجام است و چه مشکلاتی وجود دارد.

7-   درباره جلسات IPM بیشتر مطالعه کنید. (Iteration planning meeting)

8-   بسته بندی زمان یا زمانبدی گوجه را امتحان کنید. مدت زمان ۲۵ دقیقه را مشخص کنید، کار را شروع کنید و بر روی یک وظیفه تمرکز کنید. اگر مشکلی خارج از آن وظیفه پیش آمد، آن را به بعد واگذار کنید. در پایان ۲۵ دقیقه مشکلات پیش آمده را مشخص کنید. استراحت کوتاهی انجام دهید. سپس ۲۵ دقیقه بعدی را آغاز کنید. و این کار را آنقدر ادامه دهید تا ببینید در طول روز چند ۲۵ دقیقه را میتوانید انجام دهید.

فصل دهم: برآورد

1-   شما باید چیزی را که نمی توانید به آن متعهد بمانید را رد کنید. تعهد یعنی یقین داشتن.

2-   افراد حرفه ای تفاوت بین برآوردها و تعهدات را می دانند.

3-   تخمین ها فقط حدس و گمان هستند. تخمین ها در یک بازه هستند (نه اعداد دقیق).

4-   از کلمه "تلاش" استفاده نکنید. این یک اصطلاح کلیشه ای  است.

5-   روشی مانند PERT برای به دست آوردن تخمین بهتر است. به آن توجه کنید!

6-   توسعه دهندگان حرفه‌ای، علیرغم فشارهایی که برای افزایش سرعت به آن ها وارد می شوند. بسیار مراقب هستند تا انتظارات خود را در حد معقول تعیین کنند.

7-   روش‌های برآورد: wide band delphi, flying fingers, planning poker .*

فصل یازدهم: فشار

1-   یک توسعه دهنده حرفه ای تحت فشار آرام و قاطع است. با افزایش فشار، او همجنان به نظم و انضباط پایبند است. او می داند که آنها بهترین راه برای دستیابی به  ضرب الاجل ها و تعهداتی هستند که بر او فشار می آورند.

2-   تحت فشار هستید؟ مطمئن شوید که تعهدات خود را مدیریت کنید. از قوانین پیروی کنید و کدها را تمیز نگه دارید. ارتباط برقرار کنید و کمک بخواهید.

فصل دوازدهم: همکاری

1-   اکثرا برنامه نویسان در همکاری با برنامه نویسان دیگر مشکل دارند. هر چند این بهانه ی قابل قبولی نیست. توسعه دهنده بودن یعنی کار با مردم.

2-   کل تیم مالک کد است، نه شخص.

3-   حرفه ای ها جفت می شوند (و عادات همکاری خوبی دارند).

4-   جفت شدن یک راه عالی برای به اشتراک گذاشتن دانش است تا مردم در سیلوهای دانش گیر نیافتند.

5-   همه اعضای تیم باید بتوانند نقش سایر اعضای تیم را در شرایط حساس بازی کنند. همه اعضا باید کد یکدیگر را متوجه شوند.

فصل سیزدهم: تیم ها و پروژه ها

1-   برای داشتن یک تیم "ژل زده" تلاش کنید. یک تیم ژل زده، تیمی است که روابط را شکل می دهد، همکاری می کند و ویژگی ها و نقاط قوت همه اعضا را یاد می گیرد.

2-   تیم های ژل زده  می توانند معجزه کنند. آنها با هم برنامه ریزی می کنند، با هم مشکلات را حل می کنند و کارها را پیش می برند.

فصل چهاردهم: مربیگری، کارآموزی و پیشه وری

1-   شما نمی توانید مهارت صنعتگر بودن (یا حرفه ای بودن) را از مدرسه بیاموزید. شما این را از مربیگری (یا مشاوره) و کارآموزی یاد می گیرید.

در پایان

مطالب کتاب کد نویس تمیز یا Clean Coder ممکن است که برای برنامه نویسان این دوره و زمانه کمی کلیشه ای و تکراری باشد. یا حتی تاکید بیش از آن بر روی تست نویسی دیگر خیلی اهمیت نداشته باشد. اما نکات ذکر شده در این کتاب هنوز هم برای برنامه نویسان مبتدی و تازه کار یا حتی برنامه نویسان حرفه ای (همان قانون تمرین کاتا در فصل ششم) بسیار کاربردی می باشد.

ارادتمند شما داریان.

آخرین بروز رسانی: دوشنبه 4 مهر 1401 ( 426   )

پست های مشابه

نظرات کاربران

برای نظر دادن وارد شوید.

0 نظر

جدیدترین مطالب! آخرین مطالب بلاگ

آموزش گیت در ویندوز

آموزش گیت در ویندوز

شنبه 17 ارديبهشت 1401 ( 244   )

گیت هاب ابزار بررسی و نگهداری تاریخچه هرگونه فایل و پروژه می باشد. هدف از توسعه چنین ابزاری کمک به ت...

بخوانید
کد نویس تمیز - خلاصه کتاب و نکات مهم

کد نویس تمیز - خلاصه کتاب و نکات مهم

چهارشنبه 10 فررودين 1401 ( 426   )

خلاصه کتاب کد نویس تمیز می گوید که برنامه نویس حرفه ای چگونه...

بخوانید
خلاصه نکات مهم از کتاب کد تمیز (CLEAN CODE)

خلاصه نکات مهم از کتاب کد تمیز (CLEAN CODE)

سه‏ شنبه 2 فررودين 1401 ( 430   )

کد زمانی تمیز است که به راحتی توسط تمام افراد حاضر در تیم قا...

بخوانید
معرفی کتاب اثر مرکب

معرفی کتاب اثر مرکب

شنبه 28 اسفند 1400 ( 313   )

"بر اساس این اصل که تصمیمات کوچک و روزمره یا شما را به زندگی...

بخوانید
شباهت های موجود در کاتلین و سی شارپ

شباهت های موجود در کاتلین و سی شارپ

چهارشنبه 11 اسفند 1400 ( 379   )

بیان شباهت های موجود بین زبان سی شارپ و کاتلین برای برنامه ن...

بخوانید