مدتیه که دارم کتاب Clean Code in JavaScript رو میخونم و تصمیم گرفتم مفاهیمش رو به شکل خلاصه و کاربردی اینجا مرور کنم. تمرکزم روی نکاتیه که واقعاً در عمل به کار میان — نه توضیحات آکادمیک اضافه. این اولین بخشه.
جاوااسکریپت از کجا اومد؟
جاوااسکریپت رو برندن ایچ در ۱۹۹۵ ساخت. هدف اولیهاش ساده بود: یه «زبان چسبنده» که به طراحان وب کمک کنه صفحات HTML رو راحتتر دستکاری کنن. این دستکاری از طریق DOM API انجام میشه.
کمی بعدتر مفهوم DHTML هم مطرح شد که امکاناتی مثل انیمیشن و اعتبارسنجی ورودی رو فراهم کرد. در اون سال کمتر کسی فکر میکرد این زبان روزی برای ساخت اپهای پیچیده وب یا حتی Node.js استفاده بشه.

در ۱۹۹۷ هم جاوااسکریپت توسط سازمان Ecma استانداردسازی شد و با نام ECMAScript شناخته شد. این استاندارد هنوزم توسط کمیته TC39 توسعه پیدا میکنه و نسخههاش بر اساس سال نامگذاری میشن — مثل ES2020.
چرا اصلاً کد مینویسیم؟
کدنویسی در اصل حل مسئلهست. وقتی کد مینویسیم داریم یه مسئله پیچیده رو به مجموعهای از مراحل ساده تبدیل میکنیم تا کاربر بتونه ازش استفاده کنه.
یه نکته مهم اینه که «کاربر» لزوماً کاربر نهایی UI نیست — ممکنه برنامهنویس دیگهای باشه که از کد ما استفاده میکنه. در هر صورت، کاربر مرکز همه تصمیمگیریهای ماست.
مثال کوچیک: فرض کن داری یه تابع برای اعتبارسنجی کد پستی مینویسی. اگه مشخص نکنی این کد برای کدوم کشوره، مشکل داری — چون کد پستی آمریکا فقط عددیه، ولی انگلستان شامل حروف هم میشه.
اول مسئله رو بشناس
تا وقتی دقیق ندونی داری چه مسئلهای رو حل میکنی، پیشرفتی نخواهی داشت. شناخت درست مسئله اولین قدم برای تعریف نیازمندیهاست.
برای فهمیدن بهتر مسئله میتونی از این سؤالها کمک بگیری:
کاربر با چه مشکلاتی روبروئه؟
الان چطور اونها رو حل میکنه؟
چه راهحلهایی وجود داره و هرکدوم چطور کار میکنن؟
مدل مسئله چیه؟
مدل (یا مدل انتزاعی) یه نمای سادهشده از واقعیته که توضیح میده یه سیستم چطور کار میکنه. ما همیشه در حال ساختن مدل هستیم — و هرچی اطلاعات بیشتری بهدست بیاریم، مدلمون به واقعیت نزدیکتر میشه.
کد برای انسانها نوشته میشه
یه چیزی که این فصل روش تأکید میکنه اینه: درست کار کردن کد کافی نیست. خوانایی و قابل فهم بودنش هم به همون اندازه مهمه.


این مفهوم مستقیماً به انتزاع (Abstraction) میرسه — وقتی بخشی از پیچیدگی رو پنهان میکنیم و یه رابط سادهتر ارائه میدیم. انتزاع معنادار یعنی دیگران بتونن بدون اینکه لازم باشه جزئیات رو بدونن، از اون بخش استفاده کنن. این یکی از پایههای اصلی فناوری مدرنه.
