هر فریمورک به یک زبان تبدیل میشود
توسعهدهندگان اغلب بر ویژگیهای فریمورک تمرکز میکنند.
آنها به مسیریابی (routing)، مدیریت وضعیت (state management) و ابزارهای ساخت (build tools) توجه میکنند. این بخشها مهم هستند، اما ویژگیها مهمترین بخش یک فریمورک ماندگار نیستند.
یک فریمورک در نهایت به یک زبان تبدیل میشود.
این یک زبان برنامهنویسی نیست؛ بلکه زبانی از ایدهها، الگوها و مقاصد است. این زبان ارزشمندتر از خودِ کد میشود.
بیشتر فریمورکها به عنوان راهکاری برای مشکلات فنی شروع به کار میکنند. آنها چگونگی مسیریابی درخواستها یا سازماندهی کد را حل میکنند. در این مرحله، فریمورک صرفاً فهرستی از ویژگیهاست.
سپس، چیزی تغییر میکند.
با استفادهی بیشترِ افراد از این ابزار، الگوها پدیدار میشوند. افراد شروع به استفاده از راهکارها و قراردادهای (conventions) یکسان میکنند. فریمورک شروع به آموزشِ «چگونه فکر کردن» به شما میکند.
شما فقط APIها را یاد نمیگیرید، بلکه فلسفه و پیشفرضها را میآموزید.
این موضوع را میتوان در توسعهدهندگان باسابقه دید. شما آنها را نه از طریق نحو (syntax) کدشان، بلکه از طریق مدلهای ذهنیشان میشناسید. آنها با زبان اکوسیستم خود صحبت میکنند.
نحو تغییر میکند. نسخهها تغییر میکنند. ویژگیها تغییر میکنند. اما زبان زیربنایی باقی میماند.
یک واژگان مشترک، پیچیدگی را کاهش میدهد. یک اصطلاح میتواند یک مفهوم کامل را توضیح دهد. یک قرارداد میتواند یک گردشکار (workflow) کامل را تبیین کند. این همان روشی است که توسعهدهندگان ایدهها را با سرعت منتقل میکنند.
این موضوع نحوهی مستندسازی شما را تغییر میدهد.
مستندات خوب، واژگان و مفاهیم را آموزش میدهند. آنها به کاربران کمک میکنند تا بفهمند سیستم چگونه فکر میکند. مستندات بد فقط ویژگیها را لیست میکنند. یکی به درک منجر میشود و دیگری به حفظ کردن.
پروژههای واقعی به این زبان شکل میدهند. شما نمیتوانید یک زبان را در انزوا طراحی کنید. زبان از کاربرد واقعی و اصطکاکهای واقعی پدید میآید. ایدههای مفید میمانند و ایدههای بد از بین میروند.
این اتفاق در هر زمینهای رخ میدهد. کسبوکارها، موسیقی و معماری همگی زبانهای خود را توسعه میدهند. واژگان مشترک، همکاری را آسان میکند.
هنگام ساخت نرمافزار، از پرسیدن این سوال که «بعد از این چه ویژگیای اضافه کنم؟» دست بردارید. در عوض، این سوالات را بپرسید:
- آیا این با زبان [فریمورک] همخوانی دارد؟
- آیا این فلسفه را تقویت میکند؟
- آیا این کار، درک سیستم را آسانتر میکند؟
ویژگیها ابزار میسازند، اما زبانها اکوسیستمها را. موفقترین فریمورکها فقط نرمافزار ارائه نمیدهند؛ آنها راهی برای بیان ایدهها فراهم میکنند.
منبع: https://dev.to/stinklewinks/every-framework-eventually-becomes-a-language-1b4h