ابهام تا دیر وقت
راه حل مشکلِ دقت زودرس آن است که دقت را تا حد امکان به تعویق بیندازیم. توسعه دهندگان حرفه ای، یک نیاز را تا زمانی که قرار باشد آن را توسعه دهند، بزرگ نخواهند کرد. با این حال، این میتواند منجر به ناهنجاری دیگری شود: ابهام تا دیروقت. ذی نفعان، اغلب مخالفت میکنند. زمانی که این کار را انجام دهند، ممکن است به جای حل آن، به بحث در مورد اختلافات بپردازند. آن ها راهی را برای بیان الزاماتی که تماماً با آن موافق هستند، پیدا خواهند کرد، بدون اینکه واقعاً اختلاف را حل کنند. یک بار از تام دماکرو شنیدم که میگفت «ابهام در سند الزامات، نشان دهنده بحثی میان ذی نفعان است[1].». البته بحث یا اختلاف نظر نیست که باعث ایجاد ابهام میشود. گاهی اوقات ذی نفعان به سادگی فرض میکنند که خوانندگان متوجه منظورشان هستند.
ممکن است در زمینه آن ها، چیزی کاملاً واضح باشد اما معنی کاملاً متفاوتی برای برنامه نویسی که آن را میخواند، داشته باشد. همچنین این نوع از ابهام میتواند زمانی رخ دهد که مشتریان و برنامه نویسان به صورت رودررو در حال صحبت کردن باشند.
سم (ذی نفع): «خب، حالا نیازه از این فایل های لاگ (گزارش)، بک آپ گرفته بشه.»
پائولا: «باشه، هرچند وقت یک بار؟»
سم: «روزانه»
پائولا: «درسته؛ میخوای کجا ذخیره بشن؟»
سم: «منظورت چیه؟»
پائولا: «آیا میخوای در یک زیر دایرکتوری (sub-directory) خاص ذخیره کنم؟»
سم: «بله این خوبه.»
پائولا: «اسم دایرکتوری را چی بزاریم؟»
سم: «(Backup) چطوره؟»
پائولا: «خیلی خوبه. پس فایل لاگ را هرروز در دایرکتوری Backup ایجاد میکنیم. اما چه زمانی اینکار را انجام بدیم؟»
سم: «هرروز.»
پائولا: «نه منظورم اینه که میخوای چه زمانی از روز نوشته بشه؟»
سم: «هر زمانی.»
پائولا: «ظهر؟»
سم: « در ساعت های معاملاتی نه. نیمه شب بهتره.»
پائولا: «باشه، پس نیمه شب.»
سم: «عالیه، ممنونم!»
پائولا: «عالیه.»
پس ازآن، پائولا به هم گروهی خود، پیتر، درباره این وظیفه میگوید.
پائولا: «خب، ما باید هر شب ساعت ۱۲، یک کپی از فایل لاگ در یک زیر دایرکتوری به نام بک آپ ذخیره کنیم.»
پیتر: «باشه، باید از چه اسمی برای ذخیره فایل استفاده کنیم؟»
پائولا: «log.backup»
پیتر: «متوجه شدم.»
در یک دفتر دیگر، سم تلفنی به مشتری اش میگوید.
سم: «بله فایل های لاگ ذخیره میشن.»
کارل: «خب، این برای ما حیاتی است که هیچ لاگی را از دست ندیم. ما نیاز داریم بتونیم بین تمام فایل های لاگ جست و جو کنیم و حتی فایل های مربوط به ماه ها یا سال های قبل را هم ببینیم، هر وقتی که دچار قطعی برق بشیم، یا رویداد و بحثی داشته باشیم.»
سم: «نگران نباشید، من با پائولا حرف زدم. پائولا لاگ ها را در یک دایرکتوری به نام بک آپ، هر شب ساعت ۱۲ ذخیره میکنه.»
کارل: «باشه، خیلی خوبه.»
احتمال میدهم ابهام را تشخیص داده باشید. مشتری انتظار دارد که تمام فایل های لاگ ذخیره شوند و پائولا به سادگی فکر کرد که آن ها میخواهند فایل لاگ شب قبل را ذخیره کنند. زمانی که مشتری به دنبال لاگ های ارزشمند ماه پیش بگردد، تنها لاگ شب قبل را پیدا خواهد کرد.
در این مورد، پائولا و سم هردو اشتباه کردند. این مسئولیت توسعه دهندگان حرفهای (و ذی نفعان) است که اطمینان حاصل کنند ابهام به کلی از الزامات حذف شده است. این کار سخت است و من تنها یک راه برای انجام آن میشناسم.
کد نویس تمیز در نگاه دیگران
«رابرت مارتین (معروف به عمو باب) با آخرین کتاب خود، قطعا تحولی عظیم را رقم زده است. او در این کتاب انتظاراتش از یک برنامه نویس حرفهای در مورد تعاملات مدیریتی، مدیریت زمان، فشارهای موجود روی همکاری و روی انتخاب ابزاری که قرار است استفاده شود را بیان میکند. فراتر از TDD و ATDD ، مارتین مسائلی را توضیح میدهد که هر برنامه نویسی که خود را حرفهای حساب میکند، نه تنها لازم است بداند بلکه حتی لازم است آن موضوعات را دنبال کند تا در حرفه توسعه نرم افزار، رشد کند».
«اگر اخذ مدرک در علوم کامپیوتر نیاز به مطالعه کتابی بعد از فارغ التحصیلی داشت، آن کتاب احتمالاً همین کتاب خواهد بود. در دنیای واقعی، کد نویسی بد شما ، بعد از پایان ترم ناپدید نمیشود، برای نوشتن سریع کد در شب قبل از تحویل تکلیف نمره A نمیگیرید و بدتر از همه اینکه باید با مردم ارتباط برقرار کنید! درنتیجه کسانی که تجربه زیادی درزمینه کد نویسی دارند، الزاماً حرفهای نیستند. کتاب The Clean Coder مسیر حرفهای شدن را توصیف میکند… و راه برنامه نویس حرفهای شدن را به کاری سرگرم کننده تبدیل میکند».
«بعضی از کتاب های فنی، الهام بخش و آموزنده و برخی نیز لذت بخش و سرگرم کننده هستند. به ندرت کتابی فنی پیدا میشود که هر چهار کار فوق را شامل شود. به نظر من، رابرت مارتین همیشه چنین کتاب هایی مینویسد و The Clean Coder از این نظر استثناء نیست. درس های این کتاب را بخوانید، یاد بگیرید و با آن ها زندگی کنید تا در این صورت بتوانید خودتان را یک حرفهای (در زمینه) نرم افزار بدانید».
«The Clean Coder چیزی بیش از مجموعهای از قوانین یا دستورالعمل ها است. این کتاب شامل عقل و دانشی است که به سختی و معمولاً از طریق چندین سال آزمون و خطا یا کار کردن به عنوان کارآموز زیر نظر استادکار به دست میآید. اگر خودتان را یک حرفهای (درزمینه) نرم افزار میدانید، به این کتاب نیاز دارید».
کتاب Clean Coder
کتابی که امروز مطالعه اش رو تموم کردم یکی از بهترین کتاب هایی بود که تا بحال خونده بودم و به نظرم حتما باید هر برنامه نویسی این کتاب رو مطالعه کنه، کتاب Clean Coder نوشته ی آقای Robert Cecil Martin ملقب به Uncle Bob در دنیای It هست،اکثر برنامه نویس های که من دیدم حداقل یکی از کتاب های ایشون رو مطالعه کرده اند،یکی از معروف ترین کتاب های ایشون Clean Code هست. که واقعا توصیه می کنم تمام دوستان حتما این کتاب رو مطالعه کنند به طبق گفته ی دوست عزیزم هادی احمدی
یکی از تاثیر گذارترین کتاب های ممکنه هست
و من هم کاملا با ایشون موافقم (صحبت در مورد کتاب Clean Code رو به بعد موکول می کنیم فعلا بر می گردیم به کتاب خودمون Clean Coder و در مورد این کتاب با هم صحبت می کنیم)،در صفحات اولیه این کتاب، افراد مختلف مطالعه این کتاب رو توصیه کرده اند،و در اولین نقل قول موجود که کاملا با نظر من بعد از مطالعه کامل کتاب یکی بود،این چنین گفته شده بود
‘Uncle Bob’ Martin definitely raises the bar with his latest book. He explains his
expectation for a professional programmer on management interactions, time
management, pressure, on collaboration, and on the choice of tools to use. Beyond
TDD and ATDD, Martin explains what every programmer who considers him- or
herself a professional not only needs to know, but also needs to follow in order to
.make the young profession of software development grow
نقل قول بالا به صورت اختصار گویای شرح کتاب هست و من اگه بخوام نقل قول بالا را در یک خط خلاصه کنم به این جمله بسنده می کنم
این کتاب رو هر برنامه نویسی باید مطالعه کنه و بعد از مطالعه کامل کتاب باید به بند بند کتاب عمل کنه!
وقتی من این کتاب رو می خوندم تو اکثر فصل ها دقیقا اشاره به رفتار های غیر حرفه ای خودم در محیط کار،زمان کد زنی و… داشت،با مطالعه کتاب تمام اون موارد به صورت یک خاطره از جلوی چشمام عبور می کرد(می تونم بگم که اکثر شما دوستان هم در زمان مطالعه کتاب چنین تجربه ای خواهید داشت)
مورد خیلی مهمی که در مورد این کتاب باید بگم اینه که
شما به هیچ وجه در این کتاب یک تکنولوژی جدید یاد نمی گیرد.
پس لطفا با این پیش زمینه سمت کتاب نیاید لطفا!!!
آقای Robert Cecil Martin در این کتاب به تجربیات شخصیشون در برنامه نویسی می پردازن مشکلاتی که براشون پیش آمده و درس هایی که بعد از حل این موارد گرفته اند و دقیقا تمام این تجارب رو به صورت یک کتاب با نام Clean Coder در اختیار ما قرار دادند.
خوب بریم یکم در مورد فصل های کتاب صحبت کنیم و یک خلاصه ی خیلی سریع برای شما دوستان بدم
فصل اول : حرفه ای
حرفه ای شدن به چه معنایی هست ؟ به کی باید گفت حرفه ای ؟ شاید خیلی از ماها،خیلی از افراد رو دیده باشیم که به خودشون می گن حرفه ای و این سئوال برای ما پیش می امد که واقعا حرفه ای هستن یا نه ؟! چه جوری به این نکته برسیم،با قاطعیت می گم که تمام دوران کاری من به عنوان برنامه نویس تا قبل از مطالعه ی این کتاب به هیچ وجه دوران حرفه ای نبوده چون به هیچ وجه به عنوان یک برنامه نویس، حرفه ای عمل نمی کردم و این موضوع رو بعد از مطالعه این کتاب و درک معنای برنامه نویس حرفه ای، و وظایف یک برنامه نویس حرفه ای متوجه شدم.
اقای Robert Cecil Martin در همین فصل از کتاب می گن
برنامه نویس حرفه ای شدن سختی هایی داره، و برای تبدیل شدن به یک برنامه نویس حرفه ای باید تلاش بسیاری کرد
من یکم جمله رو عامیانه تر گفتم،
فصل دوم :بگو نه!
شاید یکم گیچ کننده باشه، چیو بگم نه ، به کی بگم نه ، من دقیقا عنوان فصل خود کتاب رو انتخاب کردم و اینجا قرار دادم و به نظرم بهترین عنوان ممکنه هست، من معرفی این فصل کتاب رو با یک سئوال خلاصه می کنم.
رئیست پیش تو میاد و بهت می گه که آقا یا خانم x این ماژول رو باید طراحی کنیم تا کی آماده میشه ؟
و شما در جواب می گی ۱۰ روز دیگه!!!
رئیست می گه چه خبره اینو اینجوری می کنی و اونم اینجوری می کنی و حله دیگه سه روزه تمومش کن
(با فرض این که شما در بهترین حالت ۱۰ روز زمان برای اتمام کار نیاز دارید) شما چی جواب رئیستون رو می دید ؟!
تمام سعی ام رو می کنم ( جوابی که من همیشه می دادم و یه جورایی اگه اماده نمی شد هم می گفتم متاستفانه تمام سعی ام رو کردم و آماده نشد) یا می گید نه ماژول، تا اون موقع آماده نمیشه ؟ اونم به رئیستون که امکانش هست همون لحظه اخراجتون کنه ؟ تمام این فصل در مورد همین موضوع و شیوه ی بیان این موضوع هست.
فصل دهم : محاسبه
درسته این فصل دهم کتاب Clean Coder هست ولی مرتبط به فصل دوم هست که بالا خدمتون توضیح دادم ؟ به نظرتون اون ده روز رو چه جوری باید بدست بیاریم ؟ فصل دهم کتاب این شیوه ی محاسبه رو بهتون می گه، دقت کنید دقیقا نمیاد بگه که اگه کدت اینه اینقدر و انقدر و می گه خودت می دونی که اگه این کد رو تغییر بدی ۶ روز طول می کشه در حالت عادی (حالت عادی اینه که چششو دست می زنی پاش شل نشه) ولی خوب اگه غیر عادی باشه چی ؟ اصلا چی غیر عادیه ؟ تو خود کتاب اقای Robert Cecil Martin می گن
It should
include everything except hurricanes, nuclear war, stray black holes, and
other catastrophes
فکر نکنم بیشتر از این نیاز به توضیح باشه، با این شرایط و این دو عدد و یه عدد سومی که با مطالعه کتاب متوجه میشید چی هست، می تونید زمان بندی رو ارائه کنید (البته اکثر ما ایرانیا همیشه میایم عدد حالت غیر عادی رو می گیم، و با خودمون هم می گیم که اگه پروژه رو زود تر تمام کردم که کردم اگه هم نه که زمان هست و تمومش می کنم، غافل از این موضوع که بقا و رشد شرکت به همین تصمیم های کوچیک ما وابسته هست و بازهم اشاره به همین کتاب
هممون در یک قایق سوار هستیم
فصل سوم : بگو بله!
راستش یه جورایی تو توضیح فصل دوم توضیحش دادم و مطمئن هستم بعد خوندن این دو فصل کتاب متوجه اشاره من به طور کامل می شید.
فصل چهارم : امادگی ذهنی موقع کد زدن
اسمی که من به این فصل دادم با اسمی که مؤلف دادن یکم متفاوته،این فصل در مورد این موضوع صحبت می کنه که قبل از کد زدن حتما تمرکز داشته باشید و می گه چی کار کنیم این تمرکز وجود داشته باشه،و از این قبیل موارد یکی از قسمت های جالب این فصل اسمش هست کد زدن ساعت سه صبح فکر کنم خطاب صحبت اقای Robert Cecil Martin دقیقا شخص خوده من بوده و نتونستن بگن سهیل منظورم خودته بگیر بخواب(الان که دارم این مقاله رو برای شما دوستان می نویسم ساعت ۲:۱۱ دقیقه ی صبح هست) البته من بعد خوندن این فصل درسته هنوز این ساعت نمی خوابم (تمرکز کافی برای کار کردن تو روز کاری بعدی رو ندارم ) ولی خوب این موقع هم کد نمی زنم. اینجا که رسید لازمه یک جمله از دوست عزیزم آقای ولایتی بگم ایشون وقتی متوجه شیوه ی رفتاری من یعنی ۳ صبح خوابیدن و ۷ صبح بیدار بودن شدن جمله ی قشنگی به من گفتن با این مضمون
الان شما(من) کار می کنی که در سن های بیشتر برداشت کنی، نه این که در اون سن به فکر درمان بیماری هایی باشی که از رفتار غلطت در این دوران بوجود آمدن
دقیقا درست گفتن و بعد از این دومورد جمله ای ایشون و خوندن این فصل کتاب ساعت خواب خودم رو یک ساعت زیاد تر کردم و در آینده ی نچندان دور حتما به روزی ۶ ساعت می رسونمش.
فصل پنجم : TDD
از اسم فصل کاملا مشهوده که در مورد چی قراره صحبت بشه، نکته ای که داخل این فصل نظر من به خودش رو جلب کرد این بود که آقای Robert Cecil Martin شخصی به این بزرگی و سر شناسی، وقتی متوجه میشه موضوعی رو بلد نیست به راحتی قبول می کنه و می گن رفتم پیشه اقای Kent Beck و به ایشون گفتم که این مورد رو به من یاد بده و به این موضوع در کتابشون هم اشاره می کنن، واقعا چنین رفتار هایی هست که باید از این بزرگان یاد بگیریم.
فصل ششم : من به عنوان یه برنامه نویس چطوری تمرین کنم ؟ اصلا تمرین نیازه ؟ یا فقط باید کد بزنم ؟ تمرین چجوریه ؟
یک روز که از شرکت به خونه بر می گشتم تو تاکسی که نشسته بودم یک روحانی رو دیدم که در هنگام رانندگیش در حال راز و نیاز، و گفتن ذکر بود، چند شب قبلش خواهرم یک متنی رو نشونم داده بود که می شه نماز های مستحبی رو در حین انجام کار های روزمره خواند. و حدود چند ماه قبلش وقتی با دوستانم در حال عبور از خیابان شریعتی بودیم یک نوازنده رو دیدیم که همگام با راه رفتنش، با دستانش در حال نواختن ساز بود بدون این که سازی در دست داشته باشه، برام جالب بود که خوب این افراد برای بالا تر بردن مهارتاشون چنین تمرین هایی دارن من چه جوری بهتره تمرین کنم ؟ این فصل کتاب راهنمایی بسیار بسیار خوبی بود برام.
فصل هفتم : کی می تونم بگم پروژه اماده ی تحولیه ؟
بازهم نامگذاری من با خود کتاب متفاوت هست ولی اگر فصل رو مطالعه کنید متوجه منظور من میشید، درسته خیلی کم به لغت Done پرداخته شده و بیشتر جنبه های Acceptance Test پرداخته شده. ولی به نظر من این جمله خلاصه ای از این فصل می تونه باشه.
فصل هشتم :چجوری برنامه ای که نوشتم رو تست کنم ؟
یادمه اولین برنامه ای که نوشتم و تحویل مشتری دادم با این که n بار تست کرده بودمش ولی بازم مشکلی هایی مشتری بر می خورد که من اصلا ندیده بودمش! و تغییراتی که می دادم هم مشکلات رو بیشتر می کرد(طراحی اشتباهی که برنامه داشت ) این فصل شیوه ی پیاده سازی و نوشتن تست ها رو به صورت خلاصه در اختیار ما قرار می ده(البته فصل پنجم هم می تونه همگام با این فصل در نظرش گرفت )
یکی از قسمت های جالب این فصل این جمله هستش
QA Is PART OF THE TEAM
یکی از دوستانم همیشه می گفت
ای کاش می شد یکی از همکارام رو خفه کنم
(دقیقا درست حدس زدید اون بنده خدا یا در آینده مقتول یکی از اعضای تیم تست بود که با این دوست من به طور مستقیم کار می کرد) با شناختی که من از دوستم دارم خدا بهش رحم کنه (و مطمئن هستم به من حق می دید که چرا به اسم دوستم به طور مستقیم اشاره نکردم)
فصل نهم :مدیریت زمان
این فصل هم به طور کامل مشهود هست که در مورد چه موضوعی صحبت می کنه، ولی یک قسمت جالب این فصل این هست که می گه اخه برادر من یا خواهر من وقتی جلسه ای می دونی برای شما و کارت منفعت نداره چرا می ری اخه ؟! (تو ایران ما که خیلی هست)
فصل دهم : قبلا گفتم دیگه بعد فصل دو
فصل یازدهم :مدیرت فشار ها و یا استرس های کاری و غیر کاری
در اول این فصل یک مثال می بینیم با این شرح
فرض کنید در زمان عمل جراحی شما از بدنتون خارج شده اید و می تونیم عمل جراحی رو مشاهده کنید،حالا به عنوان بیمار دوست دارید دکتر چه رفتاری داشته باشه؟
من به عنوان یک برنامه نویس در مواجه با فشار کاری چه رفتاری باید داشته باشیم،چه جوری جلوگیری کنیم از فشار کاری زیاد و …
فصل دوازدهم :همکاری
یکی از قسمت های جالب این فصل به علایق من اشاره می کنه، یک سیستم بهم بدن با خوراک روزانه بفرستنم تو یک اتاق و هر روز هم لیست وظایفمو بهم بدن (این زندگی ایده آلی به نظر میاد البته فقط از نظر کاری ) ولی…
فصل سیزده ام :همگام شدن با تیم و تحویل پروژه
تیم باید مثل ژل باشه ؟!!!!!! چی می گن اقای Robert Cecil Martin ؟ اگه این فصل رو مطالعه کنید مطمئن هستم که به جواب این سئوالتون خواهید رسید
فصل چهارده ام : یادگیری،یاد دادن
اقای Robert Cecil Martin مثال جالبی در این فصل می زنن که چجوری اولین برنامه ی خودشون رو نوشتن و داستان پرداخت یک دلاری (اخه با یک دلار می شه چی کار کرد ) و این که چجوری یاد گرفتن و پیشرفت کردن
یک بخش جالبی داره کتاب و باز هم منو به یاد اولین برنامه ای که نوشتم (برنامه ی تستی) و شادی پس از اون و از اون روز به بعد یک برنامه نویس شدم .
پیوست :ابزارها
من به شخصه همیشه دوست داشتم بدونم فلان برنامه نویس از چه ابزاری استفاده می کنه و یا این که الان برای این کار ایا ابزاری هست ؟ و این فصل کتاب اقای Robert Cecil Martin از ابزار هایی که خودشون استفاده می کنن و ابزار های مشابه برامون می گن، (با معرفی کوتاهی از علاقه ی خودم در خط اول همین پارگراف مطمئن هستم حدس زدید چقدر خوشحال شدم از خودندن این فصل)
من برداشت خودم از هر بخش کتاب را بعد از مطالعه به صورت مختصر برای شما دوستان در این مقاله نوشتم، تا شما دوستان بعد از خواندن این مقاله شناختی جزئی و انگیزه ای صد چندان از قبل برای مطالعه ی کتاب Clean Coder داشته باشید.برای دانلود کتاب Clean Coder نیز می توانید از لینکی که در ادامه قرار داده شده است استفاده کنید.
دانلود کتاب Clean Coder
و در آخر امیدوارم مطالعه ی این مقاله برای شما دوستان مفید بوده باشه.
سهیل کرمی
سلام.با این وجود که برنامه نویس نیستم.اما راهکارها و توصیه هاش خیلی جالب و عالی بود برام.با آرزوی موفقیت.
با سلام
بسیار ممنونم بابت معرفی این کتاب خوب تا فصل سه کتاب خوندم و واقعا عالی بوده .بسیار سپاسگذارم
خوشحالم که شما هم از مطالعه کتاب لذت برده اید
ممنون که کتابی که به نظرتون مفید هست رو با دیگران به اشتراک میزارید
به نظر من این کار باعث پیشرفت سطح برنامه نویسی در کشورمون میشه
امیدوارم شما هم از خواندن این کتاب نهایت استفاده رو ببرید و به دوستان دیگه هم معرفی نمایید.
سلام
این کتاب خوشبختانه توسط دو نفر از بچه های برنامه نویس ترجمه شده. و نسخه چاپ شده کتاب در سایت زیر در دسترس هست.
zerobook.ir
در پاسخ به این کامنت لازمه ذکر کنم که من ترجمه ی دوستان مطالعه نکردم و اگاهی از چگونگی ترجمه و کیفیت ترجمه نداشته .
فقط به دلیل احترام به دوست عزیزمون اقا حسین که داخل سایت نظر گذاشته بودن نظر رو تایید کردم
با سلام
داشتم تو نت دنبال لینک دانلود این کتاب میگشتم که بااین وب سایت آشنا شدم. حمل بر پر مدعایی نشه ولی تقریبا هرگز سایتهای فارسی رو برنامه نویسی رو مطالعه نمیکنم و این اولین بار بود که یه شیوه نگارش اینقدر برام جذابیت داشت که باعث شد تا آخر مطلب رو بخونم و همچنین باانگیزه بسیار بسیار بیشتری خوندن کتاب مذکور رو شروع کنم. از شما ممنونم
یک برنامه نویس میانسال
سلام دوست عزیز
ممنون،خواندن کامنت شما انگیزه ای شد بر نوشتن بیشتر در وب سایت خیلی ممنون از شما.
و امیدوارم از خواندن کتاب لذت ببرید.
من دنبال کتاب clean code که آقای هادی احمدی بهم معرفی کردن بودم که سر از اینجا درآوردم :)))).
فک کنم خوندن این یکی کتاب و بزارم اولویت تر تا اون یکی کتاب
هر دو کتاب Clean Code و Clean Coder کتاب های عالی هستن و توصیه می کنم هر دو کتاب رو حداقل یک بار مطالعه کنید.
خیلی خیلی ممنونم واقعا پیش زمینه ی خوبی بود.
امیدوارم از مطالعه ی کتاب لذت ببرید
سلام مرسی بابت ترجممه ای که گذاشتین . من قبلا اینجا مطالعه کرده بودم و کتاب رو خوندم . و دوباره اینجا به جمع بندی رسیدم
سلام، خوشحالم که از مطالعه کتاب لذت بردید.
اقای کرمی کتاب به زبان اصلی است لینک ترجمه شده را قرار نداده ای!!!!!!!!۱
بله، کتاب زبان اصلی هست دوست عزیز، من توصیه می کنم تا اونجایی که می تونی زبان اصلی کتاب های حوزه ی کاری t(Programming) رو بخونی
کلمات کلیدی
clean code pdf clean code book clean code w clean coder clean code epub clean code audiobook clean coder pdf clean code summary clean code java clean code s clean code amazon clean code architecture clean code a handbook of agile craftsmanship clean code academy clean code and clean coder clean code android clean code agile clean code architecture golang clean code acronym a clean coder pdf the clean coder the clean coder pdf free download the clean code pdf the clean coder epub the clean coder ebook free download the clean code blog the clean coder review the clean coder ebook the clean coder mobi clean code bob clean code book review clean code book reddit clean code bob martin clean code barnes and noble clean code book summary clean code by robert c. martin clean code by uncle bob clean code cheat sheet clean code chapters clean code chapter summary clean code clean coder clean code concepts clean code criticism clean code cheat sheet pdf clean code constants clean code course clean code definition clean code download clean code design patterns clean code dont return null clean code documentation clean code diagram clean code developer clean code design clean code download epub clean code development ovgu clean code d.o.o clean code d&r clean code ebook clean code ebay clean code editions clean code examples java clean code exceptions clean code ebook download clean code exercises clean code evangelist clean code from uncle bob clean code functional programming clean code for javascript clean code free clean code functions clean code from uncle bob pdf clean code for python clean code function length clean code flag argument clean code for java f# clean code clean code github clean code github pdf clean code goodreads clean code guidelines clean code golang clean code guide clean code google clean code go clean code google books clean code git g code clean nozzle g code clean clean code handbook clean code hardcover clean code html clean code hacker news clean code helion clean code html css clean code hungarian notation clean code handbook pdf clean code handbook leetcode clean code handbook pdf leetcode clean code in python clean code in python pdf clean code in python review clean code if else clean code is dead clean code interview questions clean code if statements clean code in javascript clean code in python amazon clean code in r clean code java book clean code java pdf clean code java github clean code java 8 clean code java examples clean code javadoc clean code java tutorial clean code jquery clean code kindle clean code kindle download clean code key points clean code knjiga clean code kotlin clean code kitap clean code kata clean code knyga clean code könyv clean code ksiazka clean code latest edition clean code logging clean code language clean code level of abstraction clean code là gì clean code laravel clean code livro clean code logo clean code lessons clean code linter clean code martin clean code martin fowler clean code magic numbers clean code meaning clean code medium clean code mobi clean code multiple return statements clean code methods clean code martin fowler pdf clean code manifesto clean code naming clean code notes clean code no comments clean code nested if statements clean code number of parameters clean code null check clean code null clean code new edition clean code node js clean code nedir clean code online clean code objects and data structures clean code paperback clean code practices clean code php clean code principles java clean code pluralsight oreilly clean code o que é clean code clean code quotes clean code quora clean code quiz clean code questions clean code quality clean code que es clean code qiita clean qr code generator clean qr code clean code robert martin clean code reddit clean code rules clean code react clean code refactoring clean code review reddit clean code robert cecil martin pdf clean code ruby clean code returning null clean code.pdf r martin clean code r shiny clean code writing cleaner code clean code sw clean code solid clean code solid principles clean code summary github clean code sample clean code series clean code swift clean code standards clean code small functions clean s code fabric frigidaire dishwasher clean s code clean code talks clean code techniques clean code testing clean code training clean code tips clean code tutorial clean code typescript clean code ternary operator clean code try catch t-sql clean code clean code t shirt clean code uncle bob pdf clean code used book clean code udemy clean code unit tests clean code uncle bob amazon clean code uncle bob summary clean code use cases clean code uncle bob github clean code uncle bob cheat sheet u clean coupon code clean code videos clean code vs clean architecture clean code vs pragmatic programmer clean code videos free clean code variable names clean code vs refactoring clean code vs messy code clean code vs dirty code clean code wiki clean code ws couch clean code w ashley furniture clean code with python clean code w washing machine clean code wordpress theme clean code wtf per minute clean code workshop clean code what is clean code writing how to clean w code upholstery clean code xcode clean code xkcd clean xml code how to clean code x upholstery clean slate xtra code cleanmymac x code xaml clean code visual studio code clean xml codeigniter xss_clean xing clean code clean code youtube clean code yagni clean your code code clean your car stream clean code yellow steam clean code yellow uncle bob clean code youtube discount code clean your car clean up your code promotional code clean your car clean code zasady clean code zusammenfassung clean code zertifikat clean code zitate clean harbors zip code clean code zertifizierung clean code 101 clean code chapter 14 clean code chapter 17 clean code chapter 13 clean code ep 1 git clean exit code 1 maven clean exit code 1 clean code 2 pdf clean code 2018 clean code 2nd edition pdf clean code 2017 clean code 2008 pdf clean code chapter 2 clean code episode 2 clean code angular 2 clean code part 2 clean eatz coupon code 2018 angular 2 clean code clean code 2 maid2clean discount code coda 2 clean up code clean code chapter 3 clean code swift 3 clean code episode 3 cleanmymac 3 code cleanmymac 3 activation code cleanmymac 3.9 code clean code (p37-39) clean code chương 3 python 3 clean code sublime text 3 clean code clean code 3 fallout 3 clean water code clean code chapter 4 clean code angular 4 clean code swift 4 clean code episode 49 colt 45 clean angular 4 clean code clean code 5s clean code chapter 5 clean code chapter 5 summary clean code ep 5 angular 5 clean code clean code chapter 6 clean code episode 6 clean code episode 6 part 2 angular 6 clean code clean code chapter 7 clean code episode 7 7 tips on writing clean code java 8 clean code lesson 8 clean code and debugging answers lesson 8 clean code and debugging java 8 lambda clean code clean code chapter 9 clean 9 discount code top-9-principles-clean-code
کتاب clean coder دانلود کتاب clean code ترجمه کتاب clean code خرید کتاب clean code دانلود ترجمه کتاب clean code دانلود کتاب clean code a handbook of agile software craftsmanship