به ندرت پیش میاد که افسار کل نرم افزاری که داریم مینویسیم دست خودمون باشه. بلخره کپی پیستی از این ور اون ور باشه یا اضافه کردن یه کتابخونه یک فرد عاشق دنیای متن باز یا حتی گاهی استیل اینه که از سیستمی که بقیه بچه های شرکت زدن استفاده کنیم. توی این فصل میخوایم یادبگیریم که چطور با این جور مواقع تمیز برخورد کنیم.
همیشه اونی که اره کدها و اینترفیس هارو طراحی میکنه سعی میکنه کدی بزنه که جهان شمول باشه و همه بتونن ازش استفاده کنن . اما اون عزیزی که حالا میخواد از این کدها استفاده کنه یک نیاز خاص داره و شاید دقیقا همون کد به کارش نیاد. گاهی توی استفاده از کد ملت نیاز داریم که یک لایه دیگه بهش اضافه کنیم و طبق نیاز های خودمون یه بازنویسی کوچیک انجام بدیم روش. مثلا فرض کنید که هنرمند اولیه کد یه کلاس 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 تعریف کنی و لذت ببری !
وقتی میخوایم از کد یه بابایی استفاده کنیم به خودمون میگیم که ایول، کلی کار رو این کتابخونه داره برام انجام میده و چقدر من توی زمان صرفه جویی میکنم ععهههه.
ولی خب واقعیت ماجرا اینه که یادگرفتن کدهای ملت ممکنه زمانبر باشه و اینکه بخوای با کدای خودت خوب چفت بشه باید تلاش زیادی بکنی. میفرماید که به جایه اینکه با آزمون و خطا بیای یه کد خارجی رو امتحان کنی ببینی چطوریه تا با صرف زمان زیادی به جواب برسی بیا نیازمندیات از کد رو پیدا کن و واسش تست بنویس. اینکار باعث میشه بعدا هم که به خطایی چیزی برخوردی بفهمی مشکل خودتی و به هنرمند کد بیرونی ناسزا نگی.
خداوکیلی بیاید برای کدهای بیرونی که توی پروژه ازش استفاده میکنید تست بنویسید و مطمئن باشید که هیچ هزینه ای نخواهد داشت بلکه این کمک رو به شما میکنه که وقتی با مشت های گره کرده این تست ها به استقبال ورژن بعدی اون کد بیرونی برید به راحتی میتونید بفهمید که آيا اصن باید ورژنتونو آپدیت کنید یا نه اصلا رو همینی که هستید خوبه و نسخه جدید دیگه نیازهای شما رو پر پر کرده.
چیزهایی که از کد ملت میدونیم رو از اونهایی که نمیدونیم سوا کنیم. یکجاهایی هست که بهشون برمیخوریم توی کتابخونه های مختلف که هنوز از یک بخشش سر درنمیاریم یا هنوز اون بخش طراحی درستی نشده. اونجاهاس که باید یدونه interface برا دل خودمون بنویسیم تا فعلا کد کار کنه تا بعدا که تونستیم بهترش کنیم.
از جمله چیزهایی که توی این کدهای خارجی رخ میده تغییره. نرم افزار خوب نرم افزاریه که وقتی یه چیزی در درونش تغییر کرد بتونه با کمترین هزینه خودشو وفق بده. وقتی از کد ملت استافده میکنیم حواسمون به این نکته باشه که پسفردا اگر اون کتابخونه تغییر کرد بشه با کمترین تغییر پروژه رو اوکی کرد.
وبسایت: https://mrbug.ir
اینستاگرام: https://www.instagram.com/mrbug_ir
توییتر: https://www.twitter.com/mrbug_ir
تلگرام: https://www.t.me/mrbug_ir