همیشه یکی از سوالات مهم برنامه نویسی همینه: کد رو specific بنویسیم یا generic؟

این خیلی موضوع جذابیه

یکی از دغدغه های همیشگی و مهم مهندسی نرم افزار این سواله که

«کد رو اختصاصی بنویسم، صرفا برای نیازمندی های فعلی یا جنریک بنویسم که نیازمندهای احتمالی آینده رو هم پوشش بده؟»

این ارائه نکات قشنگی داشت از جمله اینکه کد generic معادل high coupling میشه که خب ما دنبال low coupling هستیم.

من خودم هم تجربه ای در این مورد داشتم که یه سری common functionality رو بردم تو یه پکیج و بقیه پروژه هارو به اون پکیج couple کردم و بعدا سر تغییرات هر کدومشون اذیت شدم. باید حواست باشه همه پروژه هارو بروز کنی، گاها تفاوت استفاده وجود داره و غیره.

یه مفهوم قشنگی رو که اشاره کرد locality بود، یعنی بهتره که وقتی میخوای یه کدی رو بنویسی local تو یه پروژه بتونی انجامش بدی و وابستگی و coupling به چیزای دیگه نداشته باشی، اینطوری سرعت کارت بالاست و توسعه ت راحته.
پیشنهاد میکنم ارائه رو مشاهده کنید.

2 پسندیده

بسیار عالی بود حسین جان
فکر میکنم در برخی موارد بشه پکیج هایی عمومی ساخت که وابستگی نداشته باشند و بشه در هر پروژه ایی مورد استفاده قرار بگیرند.
مثلا اخیرا برای گرفتن خروجی اکسل یک پکیج درست کردم که مواردی همچون مسیر , فرمت فایل و … را ورودی میگیرد و فایل خروجی را میسازد.
شاید بستگی به نحوه نوشتن کد (clean code) هم داشته باشد و نباید طوری کد نوشت که فراتر از یک وظیفه را دربر بگیرد.
اگر کارم درست باشه و اشتباه نباشه یک مسیر در goroot به نام global درست کرده ام و پکیج های اینطوری را آنجا میریزم و در تمام پروژه ها استفاده میکنم. شاید هم بهتر باشه بذارم روی git و …

سلام سلام
کاری که کردی از نظر من هم درسته، نکته این مقاله این نیست که هیچ جا پکیج مشترک نداشته باشیم. در مورد اینکه تو همون پروژه هم پکیج بسازی یا یه پروژه جدا روی گیت، من تجربه شخصی م اینو میگه که بهتره همونجا باشه، چون روی گیت باز کار رو سخت تر میکنه برای تغییر دادن و آپدیت کردن پروژه ها.

2 پسندیده

درود من توی پروژه شخصی خودم به این مشکل خوردم توی کد بیسی که از قبل داشتم و همیشه اونو رو بروز میگردم
اما بازم مشکلاتی داشت برام
تا اینکه با کد بیس و نحوه چینش مدل ها و توابع عمومی و خصوصی ریپوی اقای بیل کندی اشنا شدم و لذت بردم

1 پسندیده