رکورد تصمیم معماری: زبان برنامهنویسی Go
عنوان: اتخاذ زبان برنامهنویسی Go
وضعیت: پذیرفتهشده
زمینه
سازمان ما عمدتاً برای ساخت برنامههای وب از زبان برنامهنویسی Java استفاده میکرده است. با این حال، به دلیل پرگویی Java و پیچیدگی برخی چارچوبها با چالشهایی روبهرو بودهایم. همچنین تیم ما به بررسی زبانهای برنامهنویسی مدرن برای توسعهٔ کارآمدتر و مقاومتر علاقه نشان داده است. پس از پژوهش، Go را بهعنوان راهحل بالقوه برای مشکلاتی که با Java داریم شناسایی کردهایم.
تصمیم
از این پس زبان برنامهنویسی Go را برای ساخت برنامههای وب اتخاذ خواهیم کرد.
دلیل و منطق
سادگی و خوانایی: Go به سادگی و نحو موجزش شناخته میشود. این امر خواندن و نوشتن کد را آسان میکند و پیچیدگی فرایند توسعهٔ ما را کاهش میدهد.
کارایی بالا و مقیاسپذیری: Go به کد ماشین کامپایل میشود که بهصورت بومی روی سرور اجرا میشود. این به زمان اجرای سریعتر و کارایی بهتر در مقایسه با زبانهای تفسیری مانند Java میانجامد. علاوه بر این، مدل همروندی Go چندین درخواست را همزمان مدیریت میکند و آن را بسیار مقیاسپذیر میسازد.
پشتیبانی قوی جامعه: Go جامعهای پویا از توسعهدهندگان دارد که طی سالها در رشد آن مشارکت کردهاند. این یعنی منابع، کتابخانهها و چارچوبهای فراوانی برای کمک به شروع و ساخت برنامههای مقاوم وجود دارد.
انعطافپذیری: Go را میتوان هم برای توسعهٔ فرانتاند و هم بکاند به کار برد. این یعنی میتوانیم از مزایای آن در هر دو حوزه برای پروژههای توسعهٔ خود بهره ببریم.
پیامدها
آموزش: توسعهدهندگان ما باید آموزش ببینند تا زبان برنامهنویسی Go و ظرایف آن را یاد بگیرند.
تجربه: ممکن است در گذار از Java به Go با چالشهایی روبهرو شویم. ممکن است مدتی طول بکشد تا توسعهدهندگان ما در زبان جدید مسلط شوند.
ابزارها: باید ابزارها و چارچوبهای جدید ویژهٔ Go را اتخاذ کنیم. با این حال، میتوانیم از زیرساخت موجود خود بهره ببریم تا تأثیر این تغییر را به حداقل برسانیم.
قفلشدگی به تأمینکننده: Go یک زبان برنامهنویسی متنباز است و به هیچ تأمینکننده یا ارائهدهندهٔ خدماتی وابسته نخواهیم بود.
نتیجهگیری
اتخاذ زبان برنامهنویسی Go به ما در بهبود فرایند توسعه و ساخت برنامههای مقاوم کمک خواهد کرد. باید برای پشتیبانی از این گذار در آموزش و ابزارها منابع سرمایهگذاری کنیم، اما باور داریم مزایای این تصمیم بر هزینهها میچربد.