
این نوشته برگردان پست منتشر شده در وبلاگ آقای Brent Roose میباشد. (دیدن نوشته اصلی)
هفته پیش وقتی 30 سالم شد، متوجه شدم نصف بیشتر عمرم رو صرف کد زدن کردم. مقداری زمان گذاشتم تا درباره مهارتهای کدنویسیم بعد از یک دهه فکر کنم و متوجه شدم که منِ 20 ساله بعد از دیدن کدهای امروزم احتمالا کلی تاسف بخوره.
اول از همه تقریبا تمام انتراعات[1] رو رها کردم و چقدر منِ جوونتر عاشق این انتزاعات بودم! منِ امروز به ندرت سراغ این انتزاعات میروم. به این باور رسیدهام که 95٪ چالشها نیاز به انتزاع ندارد و با راهحل سادهتری میتوان از آنها عبور کرد. به خاطر دارم که تقریبا در هر چالشی که میشد از این انتزاعات استفاده میکردم به جای آنکه تنها زمانی از آنها استفاده کنم که واقعا به آن نیاز دارم. امروز دیگه این کار رو نمیکنم.
دوم اینکه متوجه شدم روز به روز به ذهنیت تابعگرایی[2] علاقه بیشتری پیدا میکنم؛ به نظرم رویکرد سادهتری است. فکر میکنم جداکردن داده و منطق تا جایی که کد را خطی نگه دارد راحتی بیشتری به همراه دارد. من هنوز از کلاسها، شیها و حالتهای درونیشون استفاده میکنم اما به صورت کلی این شیها شبیه به تابع هستند؛ داده وارد و خارج میشود. همین.
چیزی که بهش افتخار نمیکنم اینه که هنوز هم با تستنویسی دست و پنجه نرم میکنم. با اینکه میدونم که تستنویسی زندگی رو راحتتر میکنه و در بلندمدت مفیده اما همچنان مثل کوه کندن برام مشکله. فکر میکنم دلیلش تا اندازهای بار روانی و اصطکاکی هست که روند تستنویسی به همراه داره؛ از ابزارهای تستنویسی گرفته تا آماده کردن داده و... باعث خجالته که تستنویسی برام راحتتر نیست و من خودم رو مجبور به انجامش میکنم با اینکه همیشه به دردم خورده، اما خب...
مورد بعدی اینه که خلاصهنویسیهای فانتری کمتری انجام میدم. دیگه به کدهای یک خطی و هوشمندانه اهمیتی نمیدم. ترجیح میدم if/else های ساده بنویسم تا اینکه همون منطق رو در یک خط بگنجونم. کمتر نوشتن همیشه بهتر نیست.
یک درک دیگر که به آن رسیدم اینه که دیگه نمیتونم بدون تحلیلهای ایستا[3] زندگی کنم! به خاطر دارم که 2 یا 3 سال اول برنامهنویسی حرفهایم از محیط Sublime استفاده میکردم اما متوجه نیستم که چطور از پس این کار برمیومدم. آیا تنبل شدم؟ آیا زیاد از اندازه به ابزارهام وابسته شدم؟ فکر نمیکنم. به نظرم در گذر سالها ابزارهایی که استفاده میکردم رو به شکلی بهینه کردم که بهتر به دردم بخوره. اجازه میدم کامپیوتر کارهای خستهکننده رو انجام بده و من روی چیزهایی که دوست دارم تمرکز میکنم.
در آخر، هنوز هم از PHP استفاده میکنم. مشکلات خودش رو داره، زبان قدیمیای هست و این مشخصه و من هم اینو میدونم. اما همچنان... موردی نداره؛ کار رو انجام میده. در حقیقت نسبت به دهه گذشته بیشتر این زبان رو دوست دارم. فکر میکنم ده سال گذشته برای PHP مفید بوده است.
به سلامتی ده سال بعدی 🍻!
پاورقی
- انتزاع در برنامه نویسی شیگرا به نشان دادن ویژگی های اساسی یک چیزی و پنهان کردن هرگونه اطلاعات پیاده سازی که برای کاربر غیرضروری است اشاره دارد.
- ذهنیت تابعگرایی اشاره به علاقه نویسنده به برنامهنویسی تابعی یا Functional Programming دارد.
- تحلیل ایستا یک روش تست برنامه است که کد را در یک محیط غیر زمان اجرا (non-runtime environment) میسنجد. (جستجو بیشتر)