خلاصه کتاب clean code - بخش ششم

وزش سنت در گیسوی مدرنیتهجوگیرساختن مخاطب برای خواندن تا تهبه ندرت پیش میاد که افسار کل نرم افزاری که داریم مینویسیم دست خودمون باشه. بلخره کپی پیستی از این ور اون ور باشه یا اضافه کردن یه کتابخونه یک فرد عاشق دنیای متن باز یا حتی گاهی استیل اینه که از سیستمی که بقیه بچه های شرکت زدن استفاده کنیم. توی این فصل میخوایم یادبگیریم که چطور با این جور مواقع تمیز برخورد کنیم.فصل هشتم - BoundariesUsing Third-Party Codeهمیشه اونی که اره کدها و اینترفیس هارو طراحی میکنه سعی میکنه کدی بزنه که جهان شمول باشه و همه بتونن ازش استفاده کنن . اما اون عزیزی که حالا میخواد از این کدها استفاده کنه یک نیاز خاص داره و شاید دقیقا همون کد به کارش نیاد. گاهی توی استفاده از کد ملت نیاز داریم که یک لایه دیگه بهش اضافه کنیم و طبق نیاز های خودمون یه بازنویسی کوچیک انجام بدیم روش. مثلا فرض کنید که هنرمند اولیه کد یه کلاس sensor به ما داده که نوعی map هستش.Map sensors = new HashMap();حالا ما هروقت بخوایم همچین چیزی رو به کلاس sensor پاس بدیم اول باید یبار cast کنیم :Sensor s = (Sensor)sensors.get(sensorId);این میره رو مخ آدمی. فک کن صدجا میخوای ازش استفاده کنی و هردفه هم باید cast کنی. به خاطر همین کار خفنی که میشه انجام داد اینه که بیای کلاس sensor رو اینطوری بنویسی به راحتی :public class Sensors {private Map sensors = new HashMap();public Sensor getById(String id) {return (Sensor) sensors.get(id);}}دیگه الان بدون درد وخونریزی میشه هرچقد که بخوای sensor تعریف کنی و لذت ببری !Exploring and Learning Boundariesوقتی میخوایم از کد یه بابایی استفاده کنیم به خودمون میگیم که ایول، کلی کار رو این کتابخونه داره برام انجام میده و چقدر من توی زمان صرفه جویی میکنم ععهههه.ولی خب واقعیت ماجرا اینه که یادگرفتن کدهای ملت ممکنه زمان‌بر باشه و اینکه بخوای با کدای خودت خوب چفت بشه باید تلاش زیادی بکنی. میفرماید که به جایه اینکه با آزمون و خطا بیای یه کد خارجی رو امتحان کنی ببینی چطوریه تا با صرف زمان زیادی به جواب برسی بیا نیازمندیات از کد رو پیدا کن و واسش تست بنویس. اینکار باعث میشه بعدا هم که به خطایی چیزی برخوردی بفهمی مشکل خودتی و به هنرمند کد بیرونی ناسزا نگی.Learning Tests Are Better Than Freeخداوکیلی بیاید برای کدهای بیرونی که توی پروژه ازش استفاده میکنید تست بنویسید و مطمئن باشید که هیچ هزینه ای نخواهد داشت بلکه این کمک رو به شما میکنه که وقتی با مشت های گره کرده این تست ها به استقبال ورژن بعدی اون کد بیرونی برید به راحتی میتونید بفهمید که آيا اصن باید ورژنتونو آپدیت کنید یا نه اصلا رو همینی که هستید خوبه و نسخه جدید دیگه نیازهای شما رو پر پر کرده.Using Code That Does Not Yet Existچیزهایی که از کد ملت میدونیم رو از اونهایی که نمیدونیم سوا کنیم. یکجاهایی هست که بهشون برمیخوریم توی کتابخونه های مختلف که هنوز از یک بخشش سر درنمیاریم یا هنوز اون بخش طراحی درستی نشده. اونجاهاس که باید یدونه interface برا دل خودمون بنویسیم تا فعلا کد کار کنه تا بعدا که تونستیم بهترش کنیم.Clean Boundariesاز جمله چیزهایی که توی این کدهای خارجی رخ میده تغییره. نرم افزار خوب نرم افزاریه که وقتی یه چیزی در درونش تغییر کرد بتونه با کمترین هزینه خودشو وفق بده. وقتی از کد ملت استافده میکنیم حواسمون به این نکته باشه که پسفردا اگر اون کتابخونه تغییر کرد بشه با کمترین تغییر پروژه رو اوکی کرد.وبسایت: https://mrbug.irاینستاگرام: https://www.instagram.com/mrbug_irتوییتر: https://www.twitter.com/mrbug_irتلگرام: https://www.t.me/mrbug_ir https://virgool.io/@mrbug_ir/cleancode-part7-fawdsuo7prgr https://virgool.io/@mrbug_ir/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-l47w7ybbafgw