من و “کد پاک” – قسمت 4: پایان خواندن

در نهایت دارم این سری از پستهای مربوط به کتاب “Código Limpo” را میبندم: اکنون در نهایت برداشتهای نهایی خود را در مورد خواندن و هر چیزی که شامل این متن است مینویسم.
برای دریافت تصویری کامل از آنچه در مورد آن صحبت می کنم، توصیه می کنم سه قسمت اول را مطالعه کنید:
استراتژی روایی خودم
من در مورد استراتژی روایی رابرت متین بسیار صحبت کرده ام، بنابراین برای شروع، استراتژی خود را در اینجا به اشتراک می گذارم: هدف من در این مجموعه نشان دادن برخی از جنبه های مربوط به نوشتن کتاب و اتفاقات پیرامون آن بود:
- چرا من معتقدم که در رابطه با آنچه در آنجا نوشته شده (قسمت اول) یک موضع جزمی وجود دارد.
- نویسنده تا چه اندازه می تواند مسئول این رفتار جزمی باشد (قسمت دوم).
- زبان سمی موجود در متن اصلی را افشا کنید. من این کار را با نشان دادن ساختار یک شخصیت معتبر در قسمت دوم انجام میدهم و به صراحت نشان میدهم که چگونه این سمیت خود را در قسمت سوم وقتی کالبد شکافی فصل چهارم (“نظرات”) نشان میدهد.
- روشن کنید که یک کتاب «Código Limpo» وجود ندارد، بلکه چندین کتاب وجود دارد: نسخه اصلی و نسخههای جایگزین بیشماری از متن که خود را از نظراتی که در مورد آن در همه جا منتشر میشود نشان میدهند.
من با نشان دادن فیل سفیدی که در اتاق بود شروع کردم، سپس با انگشت به زبانی که در متن نشان داده شده بود اشاره کردم و برای پایان، نشان دادم که استراتژی سمی متن در کجا به وضوح در کتاب ظاهر می شود (کلاسیک از Minas Gerais). خوردن از لبه ها).
حالا فعل را پاره می کنم و می گویم درباره کتاب چه فکر می کنم.
کد خوب نوشته شده یک چیز است و “کد پاک” چیز دیگری است
اگرچه اصطلاح “Clean Code” به کدهایی اشاره دارد که به خوبی نوشته شده اند، من فکر می کنم مهم است که یک تفاوت را در اینجا روشن کنیم: وقتی از اصطلاح “Clean Code” استفاده می کنیم، به کتاب “Clean Code” و تمام محصولاتی که رابرت مارتین می فروشد (تا لوگو موجود است).
این پدیده ای است که بسیار شبیه به آن چیزی است که به عنوان مثال از پشم فولادی به عنوان “بریل خوب” یاد می کنیم. من فکر میکنم این بد است زیرا در عمل ما با ارجاع به چیزی که نباید به یک شخص/شرکت، بلکه به یک منطقه مرتبط باشد، بازاریابی رایگان انجام میدهیم: استراتژیهایی برای نوشتن کدهای خوب انجام شده.
اقداماتی که در کتاب توضیح داده شده اختراع نویسندگان آنها نیست (برای درک این جمع، قسمت اول را بخوانید)، بلکه عاداتی است که قبلاً وجود داشته و توسط نویسندگان دیگر مستند شده است (در قسمت سوم که نشان میدهم فصل 4 نسخه قبلی دارد مراجعه کنید. سالها قبل، «atoxic» توسط استیو مککانل در Code Complete نوشته شده بود).
در اینجا مشکلی پیش می آید که موفقیت کتاب به همراه داشت: این سردرگمی اصطلاحات و شخصی سازی شیوه ها.
بنابراین از این به بعد وقتی میگویم «کد پاک» یا «کودیگو لیمپو» منظورم کتاب است، نه کد خوب نوشته شده.
همه کدهای به خوبی نوشته شده از کتاب بازی “Clean Code” پیروی نمی کنند
علیرغم اینکه ویدیوی “Clean Code Terrible Performance” توسط کیسی موراتوری (او همچنین متنی دارد که می توانید در اینجا بخوانید) را بسیار مغرضانه دیدم (لایق یک پست جداگانه است) من این واقعیت را دوست داشتم که فاش شد و به نوعی، ضربه ای که برای نوشتن این سری از پست ها نیاز داشتم.
با وجود تاسف ها، یک واقعیت بسیار مهم در آنجا مطرح شد: کد شما لزوماً نباید از آنچه در یک کتاب گفته می شود پیروی کند فقط به این دلیل که … در یک کتاب بسیار معروف و توصیه شده است. و این شاید تنها نکته ای است که من 100٪ با کیسی موراتوری موافقم، اگرچه او به صراحت در مطالب خود این را بیان نمی کند.
چرا اصطلاح “اصل” که برای تکنیک های ارائه شده در “Clean Code” به کار می رود یک انحراف است و من معتقدم که ما را با مشکل جدی مواجه کرده است. ما از اصطلاح “شروع” برای نشان دادن شروع چیزی یا شروع استفاده می کنیم پایه برای ساختن چیزی (حتی یک مفهوم اخلاقی در اینجا وجود دارد – ببینید در قسمت دوم سریال در مورد چه چیزی صحبت می کنم).
به نتایجی که هنگام جستجوی “اصول کد پاک” در Google برای من ظاهر می شود توجه کنید:
آخرین نتیجه برای من فریاد می زند: “که هستند شیوه های برنامه نویسی خوب؟ “.
در چندین مقاله (مانند این مقاله در لینکدین) “کد پاک” به شرح زیر است: “مجموعه بهترین شیوه ها برای نوشتن کدهایی که “پاک” در نظر گرفته می شوند”. در اینجا یک مشکل جدی وجود دارد که به شرح زیر است:
یک “عمل خوب” فقط زمانی معنا پیدا می کند که باشد مناسب به متن نوشته!
و اگرچه در خود کتاب، نویسندگان زمینهای را که بازآفرینیهایشان در آن اعمال میشود نشان میدهند، اما در عمل آنچه میبینیم این است که آنها به عنوان اصول به کار میروند. به هر حال … اصطلاح “تمرین” نیز بد است. به نظر من یک اصطلاح بسیار بهتر “استراتژی” است زیرا به طور ضمنی و صریح بر نیاز به یک زمینه دلالت دارد.
و من جلوتر می روم: از لحظه ای که اصطلاح “اصل” رایج شد، این تصور نیز ایجاد شد که “Clean Code” شامل تمام استراتژی های ممکن برای نوشتن کد خوب است. این کتاب تمام کتابهایی را که در قسمت اول این مجموعه ذکر میکنم و دوباره در اینجا فهرست میکنم نادیده میگیرد:
- کد کامل – استیو مک کانل فلسفه طراحی نرم افزار – جان اوسترهات کار موثر با کدهای قدیمی – مایکل فیرز برنامه نویس عملگرا – اندرو هانت و دیوید توماس کد زیبا – اندی اورم و گرگ ویلسون Refactoring – مارتین فاولر تمرین برنامه نویسی – برایان کرنیگهان و راب “مرد” از C and Go) استانداردهایی که توسط زبان برنامه نویسی شما (یا زبان ها) و مستندات رسمی آن تعریف شده است.
به طور خلاصه: “Clean Code” فقط مجموعه کوچکی از استراتژی ها است که فقط زمانی باید استفاده شوند که زمینه واقعاً مناسب باشد.
مسئولیت نویسنده
یکی از نظراتی که دریافت کردم بسیار غنی است و مرا به فکر فرو برد:
ولینگتون، در قسمت سوم سریال
به عنوان کسی که سمیت خود را دیده است که اثرات وحشتناکی دارد، من در پاسخ به ولینگتون بسیار مطمئن بودم. نویسندگان (به طور کلی تولیدکنندگان محتوا) در نهایت به شهرت، اقتدار و تبدیل شدن به الگوهایی برای افراد دیگر، به ویژه کسانی که اولین قدم های خود را برمی دارند، می پردازند.
و این بخشی از مدنیت است که بدانیم چگونه بازخوردی ارائه دهیم که تهاجمی نیست، اما صادقانه باشد، به ویژه برای کسانی که هنوز در حال ایجاد امنیت خود هستند. کسانی که شروع به کار می کنند از کسانی که تجربه بیشتری دارند یاد می گیرند، ما اینگونه کار می کنیم.
(کانت این یادگیری را با مثال به عنوان یک امر مقوله ای توصیف می کند (من مجبور بودم یک فیلسوف را در اینجا بیاورم، درست است؟))
و این کتاب معمولاً برای مبتدیان پیشنهاد می شود که به نوبه خود تمایل دارند از افراد با تجربه تر (در این مورد نویسنده) الگو بگیرند و با این کار می توانند حالت هایی را تداوم بخشند که با وجود کاریزماتیک بودن، بد هستند. ولینگتون بعداً با من موافقت کرد (به هر حال، آنجا گفتگوی خوبی بود).
بستن کتاب
در پایان: من هنوز فکر می کنم که همه باید این کتاب را اینجا در برزیل به دلیل اهمیت و تأثیر آن بخوانند، اما نه به دلیل کیفیت آن.
(شخصا تنها فصلی که دوست دارم فصل دوم است – «نام های معنادار» نوشته تیم اوتینگر)
مزیت بزرگ کتاب این بود که این همه هیجان را در مورد نوشتن کدهای خوب ایجاد کرد، اما از نظر فرهنگی به دلایلی که در طول این مجموعه توضیح دادم و در این پست به پایان رسید آن را یک فاجعه می دانم.
و اکنون می دانید که من شخصاً به همه کسانی که خواندن این کتاب را توصیه می کنم چه می گویم.
PS:
خوزه یوشیریرو (ما بحث بسیار داغی در نظرات داشتیم) کتابی درباره Clean Code نوشت که اخیراً در Casa do Code منتشر شده است.
او از من خواسته بود که در حین نوشتن نظرم را در این مورد به او بگویم. در آن زمان به او گفتم که نکته ای را در کتاب نمی بینم زیرا خواندن اصل آن لذت بخش تر است. یوشیریرو، اشتباه کردم!
این واقعیت که شما کتابی با همین موضوع نوشتهاید، اما به زبانی بسیار بهتر، دلیلی عالی برای مردم برای خواندن آن بر روی کد پاک اصلی است.
علاوه بر یوشیریرو، الکساندر آکویلز کتابی درباره SOLID نیز توسط همین ناشر نوشت. با وجود داشتن دو نسخه چاپی از کتاب (یکی از آنها الکساندر به من هدیه داد) هنوز نتوانسته ام آن را بخوانم، اما خواندن آن را نیز توصیه می کنم زیرا مطمئن هستم که زبان بسیار خوبی است.
PS 2:
آنها استراتژی هستند نه اصول!
The post Me and the “Clean Code” – Part 4: End of Reading اولین بار در /dev/Kico ظاهر شد.