Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
The Clean Coder

The Clean Coder

A Code of Conduct for Professional Programmers
توسط Robert C. Martin 2011 256 صفحات
4.26
8k+ امتیازها
گوش دادن

نکات کلیدی

1. حرفه‌ای‌گری در توسعه نرم‌افزار مستلزم پذیرش مسئولیت و گفتن "نه" است

"حرفه‌ای‌ها حقیقت را به قدرت می‌گویند. حرفه‌ای‌ها شجاعت گفتن نه به مدیران خود را دارند."

پذیرش مسئولیت در قلب حرفه‌ای‌گری در توسعه نرم‌افزار قرار دارد. این به معنای پذیرش اشتباهات، انجام تعهدات و ارائه کار با کیفیت بالا است. حرفه‌ای‌ها درک می‌کنند که اقداماتشان پیامدهایی دارد و آماده‌اند که مسئولیت آن‌ها را بپذیرند.

گفتن "نه" نیز جنبه‌ای مهم از حرفه‌ای‌گری است. این شامل:

  • رد کردن مهلت‌های غیرواقعی
  • مقابله با روش‌های ضعیف
  • امتناع از سازش بر سر کیفیت
  • اجتناب از تعهد بیش از حد

حرفه‌ای‌ها تشخیص می‌دهند که گفتن "نه" در مواقع ضروری، هم خودشان و هم تیمشان را از شکست‌های احتمالی محافظت می‌کند و یکپارچگی کارشان را حفظ می‌کند.

2. توسعه مبتنی بر تست (TDD) برای تولید کد با کیفیت بالا ضروری است

"هیئت منصفه تصمیم گرفته است. بحث به پایان رسیده است. TDD کار می‌کند."

مزایای TDD شامل:

  • بهبود کیفیت کد
  • کاهش نرخ نقص‌ها
  • طراحی و معماری بهتر
  • افزایش اعتماد به تغییرات کد

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

اجرای TDD نیاز به انضباط و تمرین دارد. ممکن است توسعه اولیه را کند کند، اما در درازمدت با کاهش باگ‌ها، بهبود کیفیت کد و آسان‌تر کردن بازسازی و نگهداری کد، سودمند است.

3. مدیریت زمان مؤثر و تمرکز برای بهره‌وری حیاتی است

"برنامه‌نویسی یک تمرین فکری است که نیاز به دوره‌های طولانی تمرکز و توجه دارد."

مدیریت مؤثر زمان برای توسعه‌دهندگان نرم‌افزار حیاتی است. این شامل:

  • اولویت‌بندی وظایف
  • اجتناب از حواس‌پرتی‌ها
  • استفاده از تکنیک‌هایی مانند روش پومودورو
  • گرفتن استراحت‌های منظم برای تجدید قوا

حفظ تمرکز نیز به همان اندازه مهم است. توسعه‌دهندگان باید ساعات اوج بهره‌وری خود را بشناسند و کار خود را بر این اساس سازماندهی کنند. ایجاد محیطی که برای کار عمیق مناسب باشد و به حداقل رساندن وقفه‌ها در این دوره‌ها ضروری است.

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

4. تخمین‌زنی مهارتی است که نیاز به تمرین و ارتباط واضح دارد

"تخمین یک حدس است. هیچ تعهدی ضمنی نیست. هیچ وعده‌ای داده نمی‌شود."

بهبود مهارت‌های تخمین‌زنی شامل:

  • شکستن وظایف به قطعات کوچکتر و قابل مدیریت‌تر
  • استفاده از داده‌های تاریخی و تجربیات گذشته
  • در نظر گرفتن ریسک‌ها و عدم قطعیت‌های احتمالی
  • مرور و تنظیم منظم تخمین‌ها

حرفه‌ای‌ها درک می‌کنند که تخمین‌ها تعهد نیستند. آن‌ها به وضوح درباره عدم قطعیت‌های موجود ارتباط برقرار می‌کنند و در صورت لزوم محدوده‌ها را به جای اعداد واحد ارائه می‌دهند.

ارتباط مؤثر تخمین‌ها حیاتی است. این شامل توضیح فرضیات پشت تخمین، ارائه زمینه و به‌روزرسانی ذینفعان در صورت تغییر شرایط است. حرفه‌ای‌ها در برابر فشار برای ارائه تخمین‌های غیرواقعی یا تعهد به مهلت‌هایی که می‌دانند غیرممکن است، مقاومت می‌کنند.

5. مدیریت فشار به صورت حرفه‌ای شامل حفظ آرامش و تکیه بر انضباط‌ها است

"توسعه‌دهنده حرفه‌ای در زیر فشار آرام و قاطع است."

حفظ آرامش تحت فشار نشانه‌ای از حرفه‌ای‌گری است. این شامل:

  • حفظ دیدگاه
  • تمرکز بر راه‌حل‌ها به جای مشکلات
  • ارتباط واضح با اعضای تیم و ذینفعان
  • اجتناب از وسوسه برای کاهش کیفیت یا سازش

حرفه‌ای‌ها در زمان فشار بر انضباط‌ها و بهترین شیوه‌های خود تکیه می‌کنند. آن‌ها درک می‌کنند که رها کردن شیوه‌های خوب در زمان استرس اغلب منجر به مشکلات بیشتری در درازمدت می‌شود.

مدیریت انتظارات نیز در مواجهه با فشار حیاتی است. این شامل صادق بودن درباره چالش‌ها، ارائه به‌روزرسانی‌های منظم و پیشنهاد راه‌حل‌های واقع‌بینانه به جای وعده‌هایی است که نمی‌توان به آن‌ها عمل کرد.

6. همکاری و کار تیمی برای توسعه موفق نرم‌افزار اساسی است

"برنامه‌نویسی همه چیز درباره کار با مردم است."

همکاری مؤثر شامل:

  • ارتباط واضح
  • گوش دادن فعال
  • احترام به دیدگاه‌های متنوع
  • تمایل به سازش و یافتن راه‌حل‌های مشترک

حرفه‌ای‌ها درک می‌کنند که توسعه نرم‌افزار یک ورزش تیمی است. آن‌ها به طور فعال برای شکستن سیلوها، به اشتراک‌گذاری دانش و حمایت از همکاران خود کار می‌کنند.

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

7. یادگیری و تمرین مداوم برای رشد حرفه‌ای حیاتی است

"حرفه‌ای‌ها تمرین می‌کنند. حرفه‌ای‌های واقعی سخت کار می‌کنند تا مهارت‌های خود را تیز و آماده نگه دارند."

یادگیری مداوم در زمینه به سرعت در حال تحول توسعه نرم‌افزار ضروری است. این شامل:

  • به‌روز ماندن با فناوری‌ها و بهترین شیوه‌های جدید
  • خواندن کتاب‌ها و مقالات
  • شرکت در کنفرانس‌ها و کارگاه‌ها
  • آزمایش با ابزارها و تکنیک‌های جدید

تمرین عمدی نیز به همان اندازه مهم است. این شامل:

  • کار بر روی پروژه‌های جانبی
  • شرکت در چالش‌های کدنویسی
  • مشارکت در پروژه‌های منبع باز
  • مرور و بهبود منظم مهارت‌های بنیادی

حرفه‌ای‌ها درک می‌کنند که یادگیری یک سفر مادام‌العمر است و مسئولیت رشد و توسعه خود را بر عهده می‌گیرند.

8. تست پذیرش تضمین می‌کند که ارتباطات نیازمندی‌ها واضح است

"هدف از تست‌های پذیرش، ارتباط، وضوح و دقت است."

مزایای تست پذیرش شامل:

  • درک واضح‌تر از نیازمندی‌ها
  • کاهش سوءتفاهم‌ها بین توسعه‌دهندگان و ذینفعان
  • شناسایی زودهنگام مسائل و ناسازگاری‌ها
  • بهبود کیفیت کلی نرم‌افزار

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

خودکارسازی تست‌های پذیرش امکان بازخورد سریع‌تر را فراهم می‌کند و به شناسایی زودهنگام بازگشت‌ها کمک می‌کند. حرفه‌ای‌ها از تست پذیرش خودکار حمایت می‌کنند و آن را به عنوان بخشی از فرآیند توسعه خود پیاده‌سازی می‌کنند.

9. راهنمایی و مهارت‌ورزی برای توسعه حرفه‌ای‌های ماهر کلیدی است

"مدرسه می‌تواند نظریه برنامه‌نویسی کامپیوتر را آموزش دهد. اما مدرسه نمی‌تواند و نمی‌تواند انضباط، تمرین و مهارت یک صنعتگر بودن را آموزش دهد."

راهنمایی نقش مهمی در توسعه حرفه‌ای‌های ماهر ایفا می‌کند. این شامل:

  • به اشتراک‌گذاری دانش و تجربه
  • ارائه راهنمایی و بازخورد
  • به چالش کشیدن راهنمایی‌شوندگان برای رشد و بهبود
  • مدل‌سازی رفتار و شیوه‌های حرفه‌ای

مهارت‌ورزی در توسعه نرم‌افزار بیش از مهارت‌های فنی است. این شامل:

  • تعهد به کیفیت
  • بهبود مستمر
  • رفتار اخلاقی
  • افتخار به کار خود

حرفه‌ای‌ها مسئولیت خود را در راهنمایی و هدایت توسعه‌دهندگان کم‌تجربه‌تر می‌شناسند و به پرورش نسل بعدی از متخصصان ماهر و حفظ استانداردهای بالا در صنعت کمک می‌کنند.

آخرین به‌روزرسانی::

نقد و بررسی

4.26 از 5
میانگین از 8k+ امتیازات از Goodreads و Amazon.

کتاب کدنویس پاک نقدهای متفاوتی دریافت کرده است، بسیاری از خوانندگان از دیدگاه‌های آن در مورد توسعه نرم‌افزار حرفه‌ای تمجید می‌کنند. خوانندگان از حکایات و توصیه‌های نویسنده در مورد اخلاق کاری، تخمین و ارتباطات قدردانی می‌کنند. برخی کتاب را قدیمی یا در انتظاراتش افراطی می‌دانند، به‌ویژه در مورد ساعات کاری. منتقدان به داستان‌های تکراری و لحنی خودمحور اشاره می‌کنند. با وجود اختلاف‌نظرها، اکثر منتقدان آن را به‌عنوان منبعی ارزشمند برای برنامه‌نویسان حرفه‌ای آینده توصیه می‌کنند و بر اهمیت انضباط، مسئولیت‌پذیری و یادگیری مستمر تأکید می‌کنند.

درباره نویسنده

رابرت سیسیل مارتین، که به عمو باب معروف است، یک مهندس نرم‌افزار و مشاور برجسته است. او از روش‌های توسعه‌ی چابک حمایت می‌کند و رئیس شرکت آبجکت منتور اینک است. حرفه‌ی مارتین دهه‌ها را در بر می‌گیرد و در این مدت با مشتریان جهانی در زمینه‌ی طراحی شیءگرا، الگوها، UML و روش‌های چابک مشاوره کرده است. او از سال 1996 تا 1999 به عنوان سردبیر مجله‌ی C++ Report فعالیت داشته است. مارتین به عنوان یک چهره‌ی برجسته در جامعه‌ی توسعه‌ی نرم‌افزار، سخنران محبوبی در کنفرانس‌ها و نمایشگاه‌های بین‌المللی است. تخصص و تأثیر طولانی‌مدت او در این حوزه، او را به صدایی محترم در زمینه‌ی مهندسی نرم‌افزار و توسعه‌ی حرفه‌ای تبدیل کرده است.

Other books by Robert C. Martin

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Unlock Unlimited Listening
🎧 Listen while you drive, walk, run errands, or do other activities
2.8x more books Listening Reading
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jan 25,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →