ویرگول
ورودثبت نام
ابوالفضل وکیلی
ابوالفضل وکیلیinstagram : @a_vakily7
ابوالفضل وکیلی
ابوالفضل وکیلی
خواندن ۶ دقیقه·۴ ماه پیش

۹ افسانه توسعه‌دهندگان که وقت شما را می‌گیرند

«همیشه کد تمیز بنویس.»
«با جدیدترین استک به‌روز باش.»
«پوشش صددرصدی تست ها ضروری است.»

همه‌مان این جملات را شنیده‌ایم. بعضی‌ها حتی آن‌ها را در جریان کار خود حک کرده‌اند.
اما اگر این «بهترین روش‌ها» همیشه درست نباشند چه؟

در دنیای واقعی، توسعه‌دهندگان تحت فشارند تا سریع نسخه بدهند، ایرادها را رفع کنند و مدام بهبود بدهند — نه این‌که دنبال کمال بگردند.

خیلی از قوانینی که مثل وحی منزل دنبالشان می‌کنیم، در واقع افسانه‌هایی‌اند که در زرورق «نمایش بهره‌وری» پیچیده شده‌اند.

این یک غر زدن نیست. یک تلنگر به واقعیت است.
در ادامه ۹ افسانه‌ای را می‌خوانید که ظاهراً منطقی‌اند، اما پنهانی وقتتان را می‌خورند.


افسانه ۱ — برای مرتبط ماندن باید از جدیدترین تکنولوژی استفاده کنید

وسوسه‌انگیز است، نه؟ یک فریم‌ورک تازه در Hacker News ترند شده، یک یوتیوبر با تیتر «Next.js 15 دیوانه‌کننده است» ویدیو گذاشته و ناگهان استک شما حس و حال عهد بوق پیدا می‌کند.

اما حقیقت این است: بیشتر اینترنت هنوز روی تکنولوژی‌های کسل‌کننده می‌چرخد.
WordPress روی ۴۳٪ وب سوار است. PHP هنوز زنده و فعال است. Java همچنان سلطان اینترپرایز است. بک‌اند اپلیکیشن محبوبتان شاید روی Flask، Rails یا حتی... Drupal باشد.

دنبال کردن تکنولوژی‌های براق و تازه می‌تواند سرگرم‌کننده باشد، اما دنبال کردن پایداری است که قبض‌هایتان را پرداخت می‌کند.
مگر شغلتان ایجاب کند که با ابزارهای جدید کار کنید، استفاده از فناوری‌های «خسته‌کننده» کاملاً اشکالی ندارد.

جدید به معنای بهتر نیست؛ فقط یعنی تازه‌تر.

نکته:
تکنولوژی جدید را زمانی به کار ببرید که واقعاً مشکلی را حل کند، نه فقط چون در شبکه X (توییتر سابق) ترند شده است.


افسانه ۲ — کد تمیز همیشه بهتر است

نوشتن کد تمیز و خوانا چیز خوبی است… تا وقتی که تبدیل به سرگرمی تمام‌وقتتان نشود.

اگر جلسه «refactoring» شما به یک مراسم ۴ ساعته برای انتخاب نام متغیر تبدیل شود، در حالی که ویژگی اصلی هنوز کار نمی‌کند، شما در حال بهینه‌سازی نیستید — فقط دارید تعلل را شیک و حرفه‌ای جلوه می‌دهید.

فرق هست بین شفافیت و کمال‌گرایی. کد تمیز کمک می‌کند تیم‌ها راحت‌تر مقیاس بگیرند و اعضای جدید سریع‌تر جا بیفتند. اما وقتی موعد تحویل نزدیک است و قابلیت‌ها نصفه‌نیمه‌اند، وسواس روی این‌که اسم را بگذاریم userHandler یا userService کمکی نمی‌کند.

نکته:
اول کاری کنید که جواب بدهد، بعد آن را زیبا کنید. کد تمیز باید حامی سرعت باشد، نه قاتل آن.


افسانه ۳ — «خودت را تکرار نکن» یا داری اشتباه می‌کنی (DRY)

توصیه «خودت را تکرار نکن» تا وقتی خوب است که به هزارتویی از هِلپرهای انتزاعی تبدیل نشده باشد که هیچ‌کس سر درنیاورد.

اپلیکیشن‌های در مراحل ابتدایی معمولاً از کمی تکرار سود می‌برند. تکرار یک تابع سه‌خطی بسیار ساده‌تر از این است که آن را در یک ابزار کلی (generic util) بیندازید که شش تیم بعدی مجبور شوند با کامنت‌هایی مثل // به این دست نزنید، همه‌چیز را خراب می‌کند، آن را مهندسی معکوس کنند.

افراط در انتزاع، تله بهره‌وری است. شما کد را «یک‌بار» می‌نویسید اما برای همیشه دیباگش می‌کنید.

نکته:
با آگاهی تکرار کنید. اگر امروز کپی‌پیست کار را شفاف‌تر می‌کند، انجامش دهید. refactor را زمانی انجام دهید که تکرار واقعاً دردسر ایجاد کند، نه قبل از آن.


افسانه ۴ — پوشش تست یعنی کد شما امن است

نشان «۱۰۰٪ پوشش تست» در README فوق‌العاده به نظر می‌رسد، اما این سپری در برابر باگ‌ها نیست. اغلب فقط یک حس امنیت کاذب ایجاد می‌کند.

چرا؟ چون همه تست‌ها یکسان نیستند. شما می‌توانید با تست‌هایی که فقط مسیر اجرای کد را طی می‌کنند (نه رفتار واقعی را)، به پوشش صددرصد برسید، در حالی که سناریوهای واقعی بی‌خبر رها می‌شوند.

نکته:
تست‌هایی بنویسید که استفاده واقعی را شبیه‌سازی کنند، نه فقط آمار را پر کنند. به دنبال پوشش معنادار باشید، نه اعداد تزئینی.


افسانه ۵ — باید یک پارادایم برنامه‌نویسی «واقعی» را انتخاب کنید

بعضی توسعه‌دهندگان به برنامه‌نویسی شی‌ءگرا (OOP) سوگند خورده‌اند. بعضی دیگر با برنامه‌نویسی تابعی (FP) نفس می‌کشند. انجمن‌ها این را به جنگ مذهبی تبدیل می‌کنند، انگار استفاده از هر دو باعث خطای segmentation fault می‌شود.

واقعیت؟ بیشتر کدهای واقعی ترکیبی از پارادایم‌ها هستند و این اشکالی ندارد.

نکته:
وسواس «پاکی» را کنار بگذارید. طوری بنویسید که فهم، نگهداری و دیباگ کد آسان‌تر شود. عمل‌گرایی همیشه بر کمال‌گرایی برتری دارد.


افسانه ۶ — همیشه باید از ابتدا برای عملکرد (Performance) بهینه کنید

افسانه این است: اپ شما باید از روز اول سرعت آتشین، کش لبه‌ای (edge caching)، یک شبکه CDN و مقیاس‌پذیری (serverless auto-scaling) داشته باشد، وگرنه کارتان اشتباه است.

اما مگر این‌که تعداد کاربران شما از اعتیاد به قهوه‌تان بیشتر باشد، بهینه‌سازی زودهنگام فقط اتلاف وقت است.

یک اپ to-do برای پنج کاربر به Redis، Kafka و سه Lambda نیاز ندارد. شما هنوز Netflix نیستید.

نکته:
ساده بسازید. استفاده واقعی را اندازه بگیرید. بعد بهینه‌سازی کنید. تنظیم عملکرد واکنشی به مقیاس است، نه پیش‌نیازی برای انتشار.


افسانه ۷ — هرگز بیرون از ساعات کاری کدنویسی نکنید (فرهنگ کار بیش‌ازحد بد است)

بعضی‌ها در اینترنت داد می‌زنند: «بعد از ساعات کاری کدنویسی نکن، این همون فرهنگ مسموم کار بیش‌ازحده!» درست است، فرسودگی شغلی واقعی است و مرزگذاری اهمیت دارد.
اما خب، بیرون از ساعات کاری کدنویسی کردن همیشه به معنای «جان کندن» نیست.
گاهی شبیه یک بازی است. گاهی هم زمین بازی شخصی خودت.
پروژه‌های جانبی چیزهایی به شما یاد می‌دهند که هیچ شغل رسمی نمی‌تواند: مالکیت واقعی کار، کنجکاوی، باگ‌های عجیب و غریب، و آن حس لذت وقتی که اپلیکیشن‌تان ساعت ۲:۴۷ صبح بالاخره درست کار می‌کند.

نکته:

اگر لذت می‌برید، انجامش بدهید. نه برای کف‌زدن‌های LinkedIn. نه برای رؤیای استارتاپ. فقط چون ساختن چیزها سرگرم‌کننده است. اشتیاق، کار بیش‌ازحد نیست — بازی است.


افسانه ۸ — ابزارها از اصول مهم‌ترند

وسوسه‌انگیز است که فکر کنیم مسلط شدن به آخرین framework شما را به یک توسعه‌دهنده ۱۰برابری تبدیل می‌کند. اما حقیقت این است: ابزارها تغییر می‌کنند، اصول باقی می‌مانند.
React تغییر خواهد کرد. Python ترفندهای تازه پیدا می‌کند. شاید کتابخانه محبوب شما هفته بعد کنار گذاشته شود.
اما حل مسئله، ساختمان داده‌ها، الگوریتم‌ها و تفکر منطقی این‌ها همان قدرت‌های واقعی‌اند.

نکته:

ابزارها را یاد بگیرید تا محصول بسازید، اما اصول را بیاموزید تا رشد کنید. توسعه‌دهنده‌ای که بازگشت (recursion) را می‌فهمد، همیشه از کسی که فقط قطعات آماده را کپی‌پیست می‌کند جلوتر است.


افسانه ۹ — هوش مصنوعی همه برنامه‌نویس‌ها را جایگزین خواهد کرد

این یکی از پر سر و صداترین افسانه‌هاست. بله، هوش مصنوعی کد می‌نویسد. گاهی درست، گاهی هم کاملاً پرت.
می‌تواند کدهای تکراری بسازد، کامپوننت طراحی کند، حتی تست بنویسد. اما در عین حال:

  • متغیرهایی می‌سازد که وجود ندارند.

  • توابعی می‌نویسد که اصلاً اجرا نمی‌شوند.

  • مثل یک توسعه‌دهنده تازه‌کار در روز اول، نیاز به مراقبت دائمی دارد.

هوش مصنوعی یک ابزار است، نه جایگزین شما. برای سرعت‌بخشیدن به کار، نمونه‌سازی سریع، یا سپردن کارهای تکراری عالی است. اما فاقد همان درک، قضاوت و غریزه حل مسئله واقعی است که شما دارید.

نکته:
اگر با هوش مصنوعی مثل یک هم‌تیمی در بازی رفتار کنید مفید است، اما شما همچنان بازیکن اصلی هستید. کارها را به او بسپارید، اما مسئولیت را واگذار نکنید.


جمع‌بندی: بنویسید، تست کنید، منتشر کنید، تکرار کنید

در دنیایی پر از نظرهای تند، اصطلاحات پرزرق‌وبرق و میم‌های ترندی برنامه‌نویسی، خیلی راحت می‌توان احساس کرد که عقب افتاده‌اید اگر از آخرین چارچوب استفاده نمی‌کنید، پوشش تست ۱۰۰٪ ندارید، یا طبق یک قانون نانوشته بهره‌وری زندگی نمی‌کنید.
اما حقیقت این است: بیشتر این افسانه‌ها فقط سروصدا هستند.
تنها معیار واقعی که اهمیت دارد این‌ است که در حال یادگیری باشید. در حال ساختن. در حال حل مسائل واقعی.

پس اگر کد شلخته مشکل را حل می‌کند، بنویسید. اصول را بیاموزید. منتشر کنید. بازسازی کنید. دوباره تکرار کنید.

با افتخار ترجمه شده از

https://medium.com/@dev_tips/dev-myths-debunked-9-rules-you-were-told-to-follow-that-might-just-slow-you-down-a54872b9846b

کد تمیزهوش مصنوعی
۱۲
۴
ابوالفضل وکیلی
ابوالفضل وکیلی
instagram : @a_vakily7
شاید از این پست‌ها خوشتان بیاید