Skip to main content

چند سال پیش، این وبسایت راه‌اندازی شد تا محلی برای افرادی باشد که در پی یادگیری زبان برنامه‌نویسی روبی هستند. متاسفانه، از آنجایی که در دنیای امروز، روبی تقریبا جایگاه خود برای توسعه نرم‌افزارهای پردازش متن را از دست داده و بیشتر به عنوان زبانی برای توسعه وب و همچنین مدیریت سیستم شناخته می‌شود، استقبال خوبی از این وبسایت نشد چرا که تمرکزی روی توسعه وب با روبی نداشتیم و همچنین به ابزارهایی مانند chef که برای مدیریت سیستم به کار می‌روند، نپرداختیم.

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

روبی آن ریلز برای کسب و کار - قسمت اولچرا روبی آن ریلز؟

روبی آن ریلز (به انگلیسی: Ruby On Rails) که به اختصار به آن ریلز هم گفته می‌شود (و جهت اطلاعات بیشتر می‌توانید به وبسایت آن مراجعه کنید) یک چارچوب (framework) برای توسعه نرم‌افزارهای مبتنی بر وب با زبان روبی است که در سال ۲۰۰۵ توسط شخص «دیوید هاینمایر هنسون» (به انگلیسی: David Heinmier Hansson) که به نام DHH نیز شناخته می‌شود، در حاشیه ایجاد کمپانی Basecamp ارائه شد.

در واقع شخص DHH به هنگامی که در حال کار بر روی بیس‌کمپ بود، چارچوبی که بیس‌کمپ را به یک نرم‌افزار قابل اجرا در محیط وب تبدیل می‌کرد را به صورت جداگانه و به صورت آزاد و متن‌باز (با مجوز MIT) به جهان عرضه کرد. این چارچوب در واقع معماری MVC را به جهان معرفی می‌کرد (که در این مطلب می‌توانید پیرامون آن بخوانید و در این مطلب نیز با مزایا و معایب آن آشنا شوید.) و همین امر باعث شد افراد زیادی، ترجیح دهند که کسب و کارها و نرم‌افزارهای اینترنتی خود را مبتنی بر ریلز ارائه کنند.

در سال ۲۰۰۶ نخستین نسخه‌های شبکه اجتماعی توییتر و پس از آن وبسایت‌هایی چون گیت‌هاب و کسب و کارهایی چون Shopify و AirBnB نیز به استفاده از این چارچوب روی آوردند و هجوم جامعه استارتاپی سیلیکون ولی به ریلز به عنوان چارچوبی برای توسعه،  توسعه‌دهندگان دیگری مانند تایلر اوتول (سازنده فرمورک لاراول) را برانگیخت تا مفاهیم MVC را در زبان‌های دیگر نیز پیاده‌سازی کنند.

از آنجایی که این وبسایت نیز با هدف گردهمایی توسعه‌دهندگان روبی ایجاد شده است، تصمیم شد تا فرایند توسعه کسب و کار اینترنتی با استفاده از این فرمورک بررسی شود.

روبی آن ریلز برای کسب و کار - قسمت اول

پروسه سلسله مقالات «روبی آن ریلز برای کسب و کار»

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

برای این مقالات، بخش‌های مختلفی در نظر گرفته شده است که در ادامه با آن‌ها آشنا می‌شویم:

استارتاپ در هفت روز

استارتاپ در هفت روز، نام کتابی است به قلم دن نوریس که در آن، داستان ایجاد کسب و کار خود در هفت روز را توضیح می‌دهد. البته ما قرار نیست در هفت روز همه‌چیز را به نتیجه برسانیم، اما قرار است از آموزش‌های این کتاب بهره لازم و کافی را به جهت ایجاد یک کسب و کار اینترنتی ببریم.

در این کتاب، تقریبا تمامی مفاهیم مرتبط با استارتاپ به خلاصه‌ترین شکل ممکن توضیح داده شده است. به همین خاطر، این کتاب به عنوان الگوی این سلسله مقالات انتخاب شد. اگرچه توصیه شخصی نگارنده این است که اگر آشنایی لازم و کافی با استارتاپ‌ها را ندارید، بهتر از است از کتاب‌هایی مانند Lean Startup (نوپای ناب) آغاز کنید و سپس به سراغ کتاب‌های آموزش سریع بروید.

پیاده‌سازی محصول کمینه ارزشمند (MVP) با MVC در ریلز

پس از آن که یاد گرفتیم که چطور می‌توانیم کسب و کار خود را راه‌اندازی کنیم و طرحی برای کسب و کار خود آماده کردیم، لازم است تا پیاده‌سازی MVP خود را آغاز کنیم. در ابتدا قرار است که MVC را بررسی کنیم و یک MVP بسیار ساده با آن ایجاد کنیم. این مرحله، صرفا برای آشنایی ما با روبی آن ریلز خواهد بود.

پیاده‌سازی محصول کمینه ارزشمند با REST

در دنیای امروز عمده وبسایت‌ها و سرویس‌های اینترنتی، از معماری REST استفاده می‌کنند. ما پس از آن که به قدر کافی با ریلز آشنا شدیم، به این معماری مهاجرت می‌کنیم تا محصول خود را به استانداردهای بازار شبیه‌تر کنیم. البته باید توجه کنید که پس از این که MVP خود را با معماری REST پیاده‌سازی کنیم، نیاز خواهیم داشت تا بخش front-end آن را نیز  طراحی کنیم.

پیاده‌سازی front-end

در این بخش، قرار است که یاد بگیریم چطور می‌توانیم یک front-end زیبا برای وبسایت خود طراحی کنیم. در بسیاری از آموزش‌ها از چارچوب‌ها و کتابخانه‌هایی چون next, nuxt, react یا vue استفاده می‌شود، اما به احتمال بسیار زیاد، ما از Svelte استفاده خواهیم کرد. یکی از دلایل انتخاب Svelte نیز سادگی فراگیری آن است.

استقرار MVP روی سرور و ارائه آن به جهان بیرون

در نهایت، پس از پیاده‌سازی MVP و تست کردن آن روی سیستم محلی (Local) نوبتی هم باشد، نوبت انجام مراحل Dev Ops یا استقرار و توسعه عملیات است (چنانچه با DevOps آشنایی ندارید توصیه می‌شود این مطلب را مطالعه کنید). پس از آن که back-end و front-end را ساختیم، آن‌ها رو روی یک یا چند سرور قرار داده، دامنه‌ای برایشان انتخاب می‌کنیم و سپس دامنه را به سرور خود متصل کرده، پیکربندی‌های وب‌سرور را انجام می‌دهیم و به این شکل، یک کسب و کار اینترنتی داریم.

روبی آن ریلز برای کسب و کار - قسمت اول

سخن آخر

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

همچنین، امید است که نوشتن این سلسله مقالات، باعث شود افراد بیشتری برای خود شغل ایجاد کنند و در شرایط اقتصادی فعلی، بتوانند با استفاده از دانش، هنر و محصولات خود؛ کسب درآمد کنند.

موفق باشید.

به تازگی یک سرویس PaaS (یا Platform as a Service ) ایرانی به نام فندق (لینک) راه اندازی شده است که بر اساس داکر کار می‌کند، در این آموزش، قرار است که یک اپلیکیشن ساده سیناترا نوشته و سپس توسط فندق آن را دیپلوی کنیم.

راه اندازی فندق

ابتدا، باید در وبسایت فندق ثبت نام کنید، سپس ابزار خط‌فرمان آن را توسط pip نصب نمایید :

pip install fandogh-cli --upgrade

سپس، باید در فندق، لاگین کنیم :

fandogh --login --username=USERNAME --password=PASSWORD

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

ساخت اپلیکشن

اکنون یک سناریوی ساده را پیاده‌سازی خواهیم کرد. در ابتدا، یک ‌Gemfile ساخته و این خطوط را اضافه میکنیم :

source 'https://rubygems.org'
 
gem 'sinatra'

سپس، یک فایل با نام app.rb باز می‌کنیم. دقت کنید سناریویی که قرار است پیاده سازی کنیم؛ بسیار ساده‌است. ما یک برنامه ساده مینویسیم که یک پارامتر را از کاربر گرفته، سپس رشته برعکس شده را در خروجی نشان دهد.

کد برنامه به شکل زیر خواهد بود :

require 'sinatra'
 
set :bind, '0.0.0.0'
 
get '/:par' do
 
 params[:par].reverse
 
end

اکنون، پروژه را ذخیره کرده و سپس، باید یک Dockerfile برای پروژه خودمان بنویسیم.

نوشتن داکرفایل

داکرفایل، به ما کمک می‌کند تا یک تصویر، با آن شرایطی که نیاز داریم ساخته شود. قبل از نوشتن داکرفایل، الزامیست تا دستور زیر را اجرا کنیم :

bundle install

تا Gemfile.lock ساخته شود. سپس، از نسخه روبی خود مطلع می‌شویم (در اینجا 2.4 ) و سپس اقدام به نوشتن داکرفایل می‌کنیم :

FROM ruby:2.4-onbuild
 
RUN mkdir -pv /usr/src/app
ADD . /usr/src/app
WORKDIR /usr/src/app 
 
CMD ["ruby", "/usr/src/app/app.rb"]

حال، باید فایل های خود را، توسط ابزار خط فرمان فندق، دیپلوی کنیم.

دیپلوی کردن پروژه توسط فندق

اکنون، کافیست با استفاده از دستورات پایه فندق، عمل دیپلوی را انجام دهیم. لازم است ابتدا یک تصویر بسازیم :

fandogh image init --name=string_reverse

پس از اجرای این دستور، شما پیامی مبنی بر موفقیت آمیز بودن ساخت تصویر، دریافت خواهید کرد. سپس، این دستور را وارد می‌کنیم :

fandogh image publish --version 0.0.1

پس از اجرای این دستور، تصویر مورد نظر شما ساخته می‌شود. پس از این که تصویر ساخته شد، میتوانیم با این دستور، آن را روی سرویس فندق؛ میزبانی کنیم.

fandogh service deploy --version 0.0.2 -p 4567

توجه داشته باشید که پس از اجرای این دستور، نام سرویس از شما پرسیده خواهد شد.

سرویسی که در این مطلب تولید کردیم، در این آدرس : stringreverse-haghiri75.fandogh.cloud در دسترس است. شما میتوانید با اجرای دستور زیر، یک رشته را برعکس تحویل بگیرید :

curl http://stringreverse-haghiri75.fandogh.cloud/salam

مطالعه بیشتر

در این مطلب، سرویس ساده‌ای مد نظر داشتیم که دیتابیس نداشت و نیازی هم به پیاده سازی دیتابیس و اسکریپت نویسی برای ارتباط با آن نداشتیم. در مطالب آینده، سعی خواهیم کرد که این موضوع نیز پوشش داده شود. همچنین، برای آشنایی بیشتر با فندق، میتوانید مستندات این سیستم (لینک) را مطالعه فرمایید.