با سلام خدمت دوستان و همراهان همیشگی 

توی این مقاله میخوام در مورد یک عنوان دهن پر کن براتون صحبت کنم که خیلی خیلی توی مقالات حوزه برنامه نویسی این روزها داره دیده میشه اونم این جملست که میگند "چرخ رو دوباره اختراع نکن " اگر شما هم دنبال کننده مقالات حوزه برنامه نویسی و در کل IT باشید حتما این جمله بارها و بارها به چشم و گوشتون خورده خب منم میخوام نظر شخصیمو در موردش بگم .

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

ولی نکته مهمش اینجاست که بعضی وقتها هست که یا اضافه کردن اون کتابخانه ای که این کار رو براتون انجام میده هزینه بره و بصرفه نیست مثلا سر یک برنامه کوچیک مجبور بشید یک کتابخانه با چند صد مگ دی ال ال رو اضافه کنید تا یک قابلیت ابتدایی بهتون بده یا اصلا کتابخونه ای پیدا نشه که اون کار رو براتون انجام بده اینجاست که باید دست به کد بشید و قدمی در پیشرفت دنیای برنامه نویسی داشته باشید . 

خب این روند منطقیش هست ولی حالا یه عده هستند که بدون در نظر گرفتن موارد بالا از همون اول کمر همت میبندند که یک کتابخانه قدرت مند برای انجام کاری که مبتدی ترین کتابخانه های سی پلاس پلاس هم انجام میدند بنویسند وقتیم بهشون میگی و باهاشون بحث میکنی تهش میرسی به این که میگند این کتابخونه ای که دارم توسعه میدم خاصه چون من دارم توسعش میدم یجورایی انگار با خودشون لج کردند و متقاعد هم نمیشند تا به یه مشکل اساسی بخورند که دانششون قد نده به رفع کردن مشکل اونجاست که با اولین جستجو به یک کتابخونه میرسند که همون کاری رو که به خاطرش در حال توسعه کتابخانه خودشون هستند رو با کیفیت بالاتری و یا بالاترین کیفیت به ساده ترین روش انجام میده ولی اونجا هم متقاعد نمیشند تمام تلاششون هم اینه که نادیده بگیرند بقیه رو ولی یک جایی مجبور میشند با کتابخانه های موجود کار کنند اونجاست که میفهمند زندگی راحت تر از این حرفاست .

 و اما برعکس افرادی که بالا گفتم کسایی هستند که اصلا حاضر به کد نوشتن نیستند و فقط سعی میکنند از لقمه های آماده استفاده کنند حتی اگر موارد موجود دقیقا کاری که میخواند رو انجام نده باز سعی میکنند سطح توقعاتشون رو بیارند پایین تا با همون موارد موجود بسازند و دست به کد نشند وقتیم سعی میکنی متقاعدشون کنی میگند که "چرغ رو دوباره نباید اختراع کرد " یعنی از این جمله فقط برای توجیه تنبلیشون استفاده میکنند . و اما بهتر کسیه که اول ببینه کار رو با کیفیت قابل قبولی میتونه با کتابخانه های موجود انجام بده یا نه اگر شدنی نیست خودش دست به کد بشه و در مورد همیشه دست به کد بودن هم بگم که در مواقعی درسته که دست به کد شدن و زدن همه چیز از صفر تا صد شاید در نظر اول جالب باشه ولی همیشه اینو در نظر بگیرید که ممکنه شما توی شروع یک راهی هستید که کسانی تا تهش رفتند شما میای طبق نظر خودت کتابخانه رو توسعه میدی بعدها به مشکل میخوری و مجبور به تغییرش میشی و میشه مثل یکی از کتابخانه های موجود یا حتی در بیشتر مواقع کتابخانه هایی مینویسی که خودتم حاضر به استفاده ازشون تیستی و از کتابخانه های دیگه استفاده میکنی ولی در کل خوبه آدم معتدل باشه "خیر الامور اوسطها " هم از کتابخانه های موجود بجاش استفاده کنید و هم دست به کد باشید طرف هرکدوم لغزش کنید روند طوری پیش میره که از راه جا میمونید .

امیدوارم موفق و پیروز باشید