برنامه نویسی

پشته توسعه روبی پیش فرض ما

پشته توسعه روبی پیش فرض ما

1%2ArM zztnKMWoKkJloXgPPmw

خیلی وقت پیش من پیوستم JetThoughts. در این زمان من تیم، گردش کار، ذهن همکاران (فقط کمی) و فناوری های مورد استفاده برای ساخت برنامه ها را مطالعه کردم.

توسعه مبتنی بر متدولوژی های چابک است که به این معنی است که مشتریان به طور مداوم در حال به کارگیری و نگهداری عملکردهای جدید یا تغییر یافته برای محصول خود هستند.

برنامه هایی که من در مورد آنها می دانم نوشته شده اند روبی روی ریل. فن‌آوری‌هایی که توسط تیم استفاده می‌شود بیشتر برای توسعه‌دهندگان RoR رایج است، اما در نتیجه برای برآورده کردن نیازهای مشتریان انعطاف‌پذیر است. ما از پشته های فناوری های پیش فرض (omakase) و پیشرفته استفاده می کنیم.

رایج ترین انتخاب پایگاه داده PostgreSQL است اما MongoDB یا هر SQL دیگری (که به پشته پیش فرض مربوط می شود)، یا پایگاه داده NoSQL نیز می تواند استفاده شود.

فن آوری های جلویی عبارتند از ERB، Haml، Bootstrap، Javascript، Coffeescript، AngularJS.

ERB – حدس می‌زنم همه شما در مورد آن بدانید. به پشته پیش فرض تعلق دارد. Erb به ما امکان می دهد کد :surprise: ruby ​​را در اسناد متنی جاسازی کنیم، ما از آن در قالب های html استفاده می کنیم. می توان آن را با بوت استرپ اضافه کرد تا طعم چندین دستگاه و پشتیبانی از اندازه صفحه نمایش را دریافت کند.

سپس بالا می آید غالبا، یک زبان نشانه گذاری سبک است که به ما کمک می کند تا الگوهای خود را آسان تر و سریع تر نشانه گذاری کنیم.

جاوا اسکریپت و СoffeeScript هر دو به شما اجازه می دهند تا مقداری پویایی به برنامه خود اضافه کنید. از Rails نسخه 3.1 СoffeeScript پیش فرض می شود. ممکن است کسی قهوه دوست نداشته باشد، اما چه کسی اهمیت می دهد؟ همیشه می توانید آن را از پروژه خود حذف کنید. AngularJS یک چارچوب وب جلویی است. Angular توسط گوگل برای برنامه های تک صفحه ای نگهداری می شود. یک روز من هم از آن استفاده خواهم کرد، اما این داستان دیگری است.

برای رسیدگی به وظایف ناهمزمان ما از Sidekiq یا DelayedJob استفاده می کنیم. DelayedJob از پایگاه داده SQL برای ذخیره سازی استفاده می کند. Sidekiq از redis برای ذخیره سازی استفاده می کند و عملکرد بهتری را برای کارهای بزرگ ارائه می دهد.

آزمایش کردن. ابتدا به برخی از داده های آزمایشی نیاز دارد. برای این منظور ما از وسایل/دختر کارخانه استفاده می کنیم. من قصد ندارم عمیقاً در بحث هایی که از کدام یک استفاده کنم غوطه ور شوم، فقط باید ذکر کنم که وسایل متعلق به پشته omakase هستند. پس از تنظیم داده های تست، آماده نوشتن هستید تست های واحد. در JetThoughts ما این کار را با استفاده از Minitest و Rspec انجام می دهیم. Rspec جادوی DSL خود را به دست آورد، Minitest راه روبی بیشتری دارد. برای تست یکپارچه سازی ما از capybara و phantomjs استفاده می کنیم. به عنوان یک پیش بارگذاری ما از Spring استفاده می کنیم، برنامه را در پس زمینه در حال اجرا نگه می دارد و زمان صرف شده برای اجرای آزمایش را به میزان قابل توجهی کاهش می دهد. تست ها به صورت محلی و همچنین بر روی سرور یکپارچه سازی مداوم که Teamcity را اجرا می کند اجرا می شود.

برای نوشتن کد ما از Vim، Sublime و RubyMine استفاده می کنیم. اکثر تیم ها از RubyMine استفاده می کنند زیرا IDE است، نه فقط یک ویرایشگر متن، و جادوی آن فرآیند کدنویسی را ساده می کند. من هنوز نمی توانم به آن عادت کنم، بنابراین انتخاب من vim+plugins است. کد نوشته شده در Github یا Bitbucket ذخیره می شود. من حدس می زنم Github یک انتخاب واضح است:

محصولات نتیجه را می توان تقریباً در هر کدام مستقر کرد سرور می تواند Ruby را اجرا کند، اما برای استیجینگ اغلب از Heroku استفاده می کنیم زیرا به حداقل تنظیمات نیاز دارد و می تواند بسیاری از نسخه های مختلف را به راحتی اجرا کند. همچنین ما از Chef برای تنظیم خودکار سرورها استفاده می کنیم.

زیاد کتابخانه های منبع باز / سنگ های قیمتی همچنین برای توسعه برای دستیابی به نتیجه سریع و راحت استفاده می شود. توسعه دهندگان ما در اکثر این پروژه ها با ادای احترام و حمایت از جامعه مشارکت می کنند.

کل تیم بر فن آوری های پیش فرض پشته تسلط دارند، بقیه اختیاری است. همانطور که مربی معنوی من یک بار گفت: “شما می توانید هر کاری را با یک تیغ انجام دهید. اگر نمی‌توانید مشکل را با تیغه حل کنید، خودتان باعث ایجاد مشکل شده‌اید.» به نظر من این یک استعاره است که به این معنی است که پشته omakase برای ساخت یک برنامه کافی (و بیش از اندازه کافی) است. به همین دلیل است که ما با پشته omakase به یک پشته پایه مرتبط می شویم. تیم می تواند تصمیم بگیرد که آیا به چیز غیرعادی نیاز دارد یا خیر.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا