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

این زبان در سال 1995 ظاهر شد و در مقایسه با C یا C ++ که به ترتیب در سال‌های 1972 و 1983 ظاهر شدند، زبانی جوان به حساب می‌آید. این زبان دارای تعدادی مزایا و ویژگی های خاص است که اگر زبان های برنامه نویسی محبوب دیگر را با هم مقایسه کنیم به طور انحصاری در آن پیاده سازی شده است.

طرح دوره

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

در طول دوره، نحوه نصب و کار با زبان، یادگیری نحو را یاد خواهیم گرفت روبی(متغیرها، حلقه ها، عبارات مشروط، و همچنین چیزهای پیچیده تر: OOP، کار با فایل ها، استثناها، روش ها و بسیاری از موضوعات دیگر.


نصب Ruby در ویندوز

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

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

در پنجره باز شده به نوبه خود عدد 1 را وارد کرده و Enter را فشار دهید، پس از انتظار برای پایان نصب، 2 و Enter را فشار دهید و در پایان با زدن 3 و Enter فرمان سوم را اجرا کنید.

نصب Ruby در مک

در مک، Ruby به طور پیش فرض نصب شده است، بنابراین نیازی به انجام کار اضافی ندارید. با دستور زیر می توانید نسخه زبان را در ترمینال بررسی کنید:

اگر نسخه قدیمی است، می توانید نسخه جدید را دانلود کنید. ابتدا باید مدیر نسخه Ruby را دانلود کنید. این کار از طریق ترمینال با دستور زیر انجام می شود:

Curl -L https://get.rvm.io | bash -s پایدار

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

لیست Rvm شناخته شده است

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

rvm نصب ruby-2.4.2

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

تا به امروز، زبان های برنامه نویسی زیادی وجود دارند که ویژگی ها و الگوهای خاص خود را دارند. این مقاله یکی از آنها را مورد بحث قرار خواهد داد.


تاریخچه روبی

Ruby برای مدت طولانی به عنوان یک زبان برنامه نویسی وجود داشته است. برای اولین بار، کار بر روی نسخه این زبان شناخته شده فعلی در سال 1993 آغاز شد. اول اول نسخه رسمیدر سال 1995 منتشر شد. خالق این زبان یوکیهیرو ماتسوموتو است. اشتیاق او به برنامه نویسی در دوران دانشجویی مورد توجه قرار گرفت، اما ایده ایجاد ابزار خود بسیار دیرتر ظاهر شد. بنابراین، ویژگی های قابل توجه این زبان برنامه نویسی چیست؟ چه چیزی باعث محبوبیت شما در صحنه جهانی شد؟

زبان برنامه نویسی Ruby نسبتاً قابل تفسیر است. این یک زبان سطح بالا است که دارای تایپ پویا و اجرای multithreading مستقل از زمان اجرا است. زباله جمع کن خودش را دارد. در زمینه ویژگی های نحوی، به زبان های پرل نزدیک ترین است. در نتیجه توسعه گسترده اکوسیستم، این پلتفرم چیزهای زیادی از Smalltalk، Python، Lisp و سایر زبان های برنامه نویسی گرفته است. همچنین بسیار مهم است که زبان روبی و اجرای آن کاملا رایگان است. از اینجا نتیجه می گیرد که هر کس این فرصت را دارد که تغییرات خود را پیشنهاد دهد. در صورت پذیرفته شدن از سوی جامعه، مشمول آن خواهند شد نسخه بعدیزبان

فلسفه یاقوت سرخ

ماتسوموتو در فرآیند ایجاد ذهنیت خود، که از طرفداران و علاقه مندان به برنامه نویسی شی گرا بود، نویسنده فلسفه خاصی برای برنامه نویسانی شد که زبان او را یاد بگیرند. بنابراین، زبان برنامه نویسی Ruby برای ایجاد برنامه های کاربردی ساده و قابل فهم طراحی شده است. تاکید اصلی بر سادگی و خوانایی کد بود و نه بر سرعت برنامه. دقیقا به همین دلیل است این پلت فرماغلب به عنوان ورودی لازم برای آموزش برنامه نویسان انتخاب می شود. جوهر اصلی که این زبان بر آن استوار است، اصل «کمترین شگفتی» است. این یعنی چی؟

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

ویژگی های اصلی

وقتی روبی را به عنوان یک زبان برنامه نویسی در نظر می گیریم به چه معناست؟ اول از همه، این یک زبان شی گرا است. فاقد انواع اولیه است، زیرا تمام ساختارها و واحدهای داده اشیاء در نظر گرفته می شوند. این همان چیزی است که آن را از همان زبان جاوا، که در آن ساختارهای داده اولیه وجود دارد، متمایز می کند. همه توابع در روبی متد هستند. بیشتر ویژگی ها و قابلیت ها توسط نویسندگانی از زبان های برنامه نویسی دیگر ارائه شده است. بنابراین، می توان با اطمینان گفت که روبی حاوی بهترین کیفیت هابسیاری از زبان ها و فن آوری های دیگر. به عنوان مثال، اکوسیستم روبی زباله جمع کن خود را دارد.

ایده او از اسمال تاک و جاوا اقتباس شد. قادر به کار با تمام اشیاء در سیستم است. این مکانیسم پاکسازی حافظه را از اشیایی که تقاضا در آنها از بین رفته است امکان پذیر می کند، که توسط کاربر برنامه و توسعه دهنده بدون توجه اتفاق می افتد. زباله جمع کن به توسعه دهنده کمک می کند تا با مدیریت حافظه برنامه پرت نشود. بنابراین، او می تواند به طور کامل بر روی عملکرد و قابلیت استفاده تمرکز کند.

پارادایم های زبان

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

سبک رویه ای برنامه نویسی؛
رویکرد شی گرا؛
رویکرد عملکردی

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

دلایل شهرت

در بیشتر موارد زبان داده شدهبه دلیل سهولت توسعه انواع اضافات به آن شهرت یافت. بنابراین، تعداد چارچوب‌ها و کتابخانه‌ها دائماً در حال افزایش است و وظایفی که به تنهایی حل می‌کنند، توسعه‌دهندگان را قادر می‌سازد تا محصول را در کوتاه‌ترین زمان ممکن به حالت نهایی برسانند. اغلب، برنامه نویسی Ruby با ایجاد برنامه های کاربردی وب و همچنین پشتیبانی از عملکرد سایت ها و پلت فرم های اینترنتی مختلف همراه است. این زبان به دلیل سادگی و سرعت توسعه خود توانست این جایگاه را اشغال کند. شایان ذکر است که پلتفرم های جایگزین (به عنوان مثال جاوا) برای حل مشکلات مشابه به دانش و تجربه بسیار بیشتری نیاز دارند.

چارچوب های قابل توجه

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

چارچوب ارائه شده قادر است اجزای یک برنامه وب را در محدوده الگوی MVC (Model-View-Controller) توصیف کند. علاوه بر این، آماده ارائه یکپارچه سازی خارج از جعبه با سرور برنامه، و همچنین رابطی است که به شما امکان می دهد دسترسی به پایگاه داده را باز کنید. این سه جزء این امکان را به معنای واقعی کلمه در عرض چند ساعت برای نوشتن و راه اندازی در اینترنت فراهم می کند وبلاگ سادهیا صفحه وب خصوصی امکان ایجاد در زبان برنامه نویسی Ruby حتی بومی وجود دارد برنامه های موبایل. این با استفاده از کتابخانه RubyMotion به دست می آید. می‌تواند کد Ruby را روی پلتفرم‌های iOS، OS X و Android اجرا کند. این کتابخانه توسط یک گروه خصوصی از تولید کنندگان توسعه یافته است. این بدان معنی است که شما باید هزینه استفاده را بپردازید، اما تأیید دیگری بر امکانات گسترده زبان است.

اهمیت تست های نوشتاری

یکی دیگر از اجزای مهم اکوسیستم زبان روبی، و همچنین بخش وب گرا آن، چارچوب ها و کتابخانه هایی است که برای تست های نوشتن طراحی شده اند. RubyOnRails از فلسفه BDD (توسعه مبتنی بر رفتار) استفاده می کند. این بدان معنی است که برنامه نویس ابتدا دنباله ای از تست ها را توسعه می دهد که رفتار مورد انتظار برنامه را توصیف می کند. سپس کد مورد نیاز برای گذراندن موفقیت آمیز آن تست ها را تولید می کند. استاندارد ناگفته در این زمینه RSpec است. این چارچوبی است که نوشتن موارد تست را به زبانی قابل فهم حتی برای کاربران بی تجربه امکان پذیر می کند.

جواهرات یاقوت

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

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

زبان برنامه نویسی روبییک زبان برنامه نویسی کاملا شی گرا است که در اصل برای برنامه نویسی طراحی شده است. ترکیبی از نحوی است که ویژگی های شی گرا Ada و Perl و Smalltalk را جذب کرده است و همچنین ویژگی های مشترکی را با Python، Lisp و ابزار به اشتراک می گذارد. خط فرمان- این یک مزیت در هنگام یادگیری اصول برنامه نویسی است.
زبان برنامه نویسی Ruby در حال حاضر تنها یک پیاده سازی از مفسر Ruby دارد، اگرچه تلاش هایی برای پیاده سازی یک رابط Ruby (به نام "Cardinal") در حال انجام است. ماشین مجازیطوطی.
زبان برنامه نویسی Ruby بسیار زیاد است ویژگی های مفید. Ruby همچنین از بارگذاری بیش از حد اپراتور و مدیریت استثنا پشتیبانی می کند. در حال حاضر زبان برنامه نویسی Ruby فاقد پشتیبانی یونیکد است. روبی دارای تکرار کننده هایی است (که شبیه CLU و Sather هستند). روبی از نمایش های انتزاعی توابع پشتیبانی می کند (همانطور که Smalltalk و بسیاری از زبان های برنامه نویسی کاربردی مبتدی). روبی دارای پشتیبانی نحوی داخلی است عبارات با قاعدهپرل در سطح زبان (نه فقط در کتابخانه ها مانند پایتون و بسیاری از زبان های دیگر). Ruby از جمع‌آوری خودکار زباله و بارگذاری پویا کتابخانه/شامل ماژول‌ها (بسته به معماری) در ویندوز مایکروسافت. روبی به پلتفرم‌های زیادی از جمله یونیکس، مایکروسافت ویندوز، داس، مک او اس ایکس، OS/2، آمیگا و غیره منتقل شده است.
روبی صرفاً شی گرا است: هر بیت از اشیاء داده شده، از جمله انواعی که در زبان های دیگر به عنوان "اولیه" تعریف شده اند. هر تابع یک روش است. این شبیه به اسمال تاک است، اما اساساً با جاوا و پایتون متفاوت است. هر نام مقدار (نام متغیر) در برنامه روبی، ارجاع به یک شی را تعریف می کند، نه خود شی. روبی از وراثت با روش‌های ارسال پویا، Mixins و Singleton پشتیبانی می‌کند. Ruby از وراثت چندگانه پشتیبانی نمی کند، اما کلاس ها می توانند ماژول ها را وارد کنند. اگرچه می‌توانید از نحو رویه‌ای در روبی استفاده کنید، اما همه چیز در روبی یک شی به معنای اسمال‌تاک است، نه برنامه‌نویسی Perl یا Python برای Dummies.
این زبان توسط یوکیهیرو ماتسوموتو (با نام مستعار "ماتز") یوکیهیرو ماتسوموتو (با نام مستعار "ماتز") در 24 فوریه 1993 ایجاد شد. نسخه پایدار فعلی 1.8.0 است. توجه داشته باشید که نام مخفف نیست - در واقع یک جناس پرل است. به گفته نویسنده، روبی برای اصل کمترین غافلگیری (POLS) طراحی شده است، به این معنی که زبان باید از دام ها و ناهماهنگی هایی که زبان های دیگر را آزار می دهد عاری باشد.
از پرسش‌های متداول روبی: اگر پرل را دوست دارید، استفاده از روبی به دلیل نحو آن احساس خوبی خواهد داشت. اگر اسمال تاک را دوست دارید، روبی را دوست خواهید داشت و معنای آن را دوست خواهید داشت. اگر پایتون را دوست دارید، ممکن است تفاوت زیادی در فلسفه طراحی بین پایتون و روبی/پرل احساس کنید یا خیر.
Ruby رایگان و منبع باز تحت مجوز GPL یا Artistic License است، درست مانند Perl.

مثال ها
در اینجا چند نمونه از کد روبی آورده شده است:

>> -199.abs # number -199 یک شی است. روش ABS برای آن نامیده می شود. => 199 >> "Ruby is cool".length # روش شیء رشته نامیده می شود - طول رشته => 13 >> "Rick".index("c") => 2 >> "John".swapcase => "jOHN" " >> #Arrays ?> .sort => >> .sort.reverse => # بلوک کد زیر 10 بار 10 بار اجرا می شود (# جایگزین " " با "، " و ذخیره در string1 string1 = "Hello world ".gsub( " "، ",") # ضمیمه "!" به متغیر "string1" string1 += "!" # print متغیر "string1"، به دنبال آن یک خط جدید string1 را قرار می دهد)

چگونه یک متخصص توسعه وب سایت شویم و شروع به کسب درآمد کنیم؟ دوره های ویدیویی ارزان با مقدمه مقدماتی.

در این لحظهوجود دارد مقدار زیادیزبان های برنامه نویسی که هر کدام ویژگی ها و الگوهای خاص خود را دارند. این مقاله یکی از آنها را مورد بحث قرار خواهد داد.

تاریخچه روبی

Ruby به عنوان یک زبان برنامه نویسی برای مدت بسیار طولانی وجود داشته است. کار بر روی اولین نسخه از این زبان فوق العاده محبوب امروزی در سال 1993 آغاز شد و اولین نسخه رسمی به سال 1995 باز می گردد. خالق این زبان، یوکیهیرو ماتسوموتو، از دوران دانشجویی علاقه‌مند به برنامه‌نویسی بوده است، اما ایده ساخت ابزار خودش خیلی دیرتر به ذهنش خطور کرد. بنابراین چه چیزی در مورد این زبان برنامه نویسی قابل توجه است که امروزه یکی از موقعیت های پیشرو در عرصه توسعه نرم افزار جهانی را به خود اختصاص داده است؟

زبان برنامه نویسی Ruby یک پیاده سازی سطح بالا و مستقل از زمان اجرا از multithreading است. آشغال‌گیر مخصوص به خود را دارد و از نظر نحو به زبان‌هایی مانند پرل نزدیک‌ترین است. با توسعه اکوسیستم، این پلتفرم از Smalltalk، Python، Lisp و دیگر زبان های برنامه نویسی نیز وام گرفت. همچنین برای وجود و توسعه مداوم بسیار مهم است که زبان روبی و اجرای آن کاملا رایگان است. این بدان معنی است که هر کسی می تواند تغییراتی را پیشنهاد دهد و در صورت پذیرش توسط جامعه، در نسخه بعدی زبان گنجانده می شود.

فلسفه یاقوت سرخ

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

بنابراین، این پلتفرم اغلب به عنوان ورودی برای یادگیری برنامه‌نویسی انتخاب می‌شود. اصل اصلی که این زبان مبتنی بر آن است، به اصطلاح اصل "کمترین شگفتی" است - این بدان معنی است که برنامه باید همانطور که نویسنده (برنامه نویس) از آن انتظار دارد رفتار کند. بخش مهم دیگری از ایدئولوژی زبان که خالق آن را معرفی کرد، تنوع زیاد آن است. نتیجه یکسانی را می توان به روش ها و عملکردهای مختلف به دست آورد. با تشکر از این، هر برنامه نویسی می تواند مشکل را به روشی که صحیح ترین و راحت ترین می داند حل کند. این امر تا حد زیادی بر محبوبیت این زبان در میان متخصصان فناوری اطلاعات تأثیر گذاشت.

ویژگی های اصلی زبان

Ruby به عنوان یک زبان برنامه نویسی چیست؟ این زبان در درجه اول یک زبان شی گرا است. هیچ نوع اولیه ای در آن وجود ندارد - همه ساختارها و واحدهای داده اشیاء هستند (برخلاف همان زبان جاوا، ساختارهای داده اولیه دارد). هر تابع در روبی یک متد است. بسیاری از ویژگی‌ها و قابلیت‌ها توسط سازندگان زبان‌های برنامه‌نویسی دیگر ارائه شده است، بنابراین به جرات می‌توان گفت که Ruby (زبان) بهترین زبان‌ها و فناوری‌های دیگر را جذب کرده است.

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

پارادایم های زبان

در پاسخ به این سوال که "روبی" به عنوان یک زبان چند پارادایم چیست، می توانید به طور غیرمنتظره ای خود را در گرماگرم بحث بیابید. از این گذشته، این زبان به شما امکان می دهد از هر یک از پارادایم های برنامه نویسی به طور مساوی با موفقیت استفاده کنید: سبک رویه ای برنامه نویسی، شی گرا، یا توسعه دهنده آزاد است که پارادایم نزدیک تر را برای خود انتخاب کند و مجموعه ابزارهای او این کار را نمی کند. محدودتر یا ضعیف تر شوند. زبان برنامه نویسی Ruby تنها این انتخاب را تشویق می کند.

دلایل محبوبیت

از بسیاری جهات، این زبان به دلیل سهولت توسعه افزونه های مختلف برای آن محبوب شده است. بنابراین، تعداد چارچوب ها و کتابخانه ها به طور مداوم در حال افزایش است و وظایفی که آنها به تنهایی حل می کنند به توسعه دهندگان اجازه می دهد تا در اسرع وقتمحصول را به حالت آمادگی برسانید. اغلب، برنامه نویسی "Ruby" با توسعه برنامه های کاربردی وب و پشتیبانی از عملکرد سایت ها و بسترهای اینترنتی مختلف همراه است. این زبان به دلیل سادگی و سرعت توسعه آن این جایگاه را اشغال کرده است. از این گذشته، پلتفرم های جایگزین (به عنوان مثال جاوا) برای حل همان مشکلات به دانش و تجربه بسیار بیشتری نیاز دارند.

چارچوب های محبوب

اگر ما در مورد چارچوب های محبوبی که امروزه در بازار وجود دارد صحبت کنیم، Rails ارزش برجسته کردن در میان آنها را دارد. بسیاری از مردم، هنگامی که از مردم پرسیده می شود که "Ruby" چیست، به طور شهودی به معنای RubyOnRails هستند. این مجموعه اجزای نرم افزاربه یک استاندارد صنعتی در بین توسعه دهندگان تبدیل شده است. این به طور مداوم توسط جامعه برنامه نویسی پشتیبانی، توسعه و تکمیل می شود، در حالی که رایگان است. این چارچوب اجزای یک برنامه وب را در چارچوب الگوی MVC (Model-View-Controller) توصیف می کند و همچنین یکپارچه سازی خارج از جعبه با و یک رابط برای دسترسی به پایگاه داده را ارائه می دهد. این 3 جزء در واقع به شما این امکان را می دهد که در عرض چند ساعت یک وبلاگ ساده یا یک صفحه وب خصوصی را در اینترنت بنویسید و راه اندازی کنید.

در زبان برنامه نویسی Ruby، به لطف کتابخانه RubyMotion، حتی می توانید برنامه های موبایلی بومی ایجاد کنید. این به شما اجازه می دهد تا کد Ruby را در سیستم عامل های iOS، OS X و Android اجرا کنید. این توسط یک گروه خصوصی از توسعه دهندگان ایجاد شده است، بنابراین برای استفاده از آن باید هزینه پرداخت کنید، اما یک بار دیگر ویژگی های غنی این زبان را تایید می کند.

اهمیت تست های نوشتاری

یکی دیگر از مؤلفه‌های مهم اکوسیستم زبان روبی و بخش وب‌گرا آن، چارچوب‌ها و کتابخانه‌هایی برای آزمون‌های نوشتن هستند. RubyOnRails فلسفه BDD (توسعه مبتنی بر رفتار) را موعظه می کند، به این معنی که ابتدا برنامه نویس دنباله ای از تست ها را ایجاد می کند که رفتار مورد انتظار برنامه را توصیف می کند و سپس کدی را ایجاد می کند که باید این تست ها را با موفقیت پشت سر بگذارد. استاندارد ناگفته در این زمینه RSpec است - این چارچوب به شما امکان می دهد موارد آزمایشی را به زبانی بنویسید که حتی برای کاربران بی تجربه در توسعه قابل درک باشد.

جواهرات یاقوت

به لطف استاندارد دقیقی که همه بسته‌ها و کتابخانه‌های Ruby باید با آن مطابقت داشته باشند، توسعه افزونه‌ها دشوار نیست. بنابراین، در میان به اصطلاح سنگهای قیمتی (از انگلیسی - یک جواهر)، می توانید ماژول هایی را برای حل تقریباً هر مشکلی پیدا کنید - از ادغام با شبکه های اجتماعی و خدمات شخص ثالث تا پلتفرم های آماده برای تجارت الکترونیک. تنها چیزی که برای استفاده از یک کتابخانه شخص ثالث لازم است این است که وابستگی پروژه شما به برخی از کتابخانه های واقع در یک مخزن راه دور یا محلی را توصیف کنید و در ساخت بعدی، این کتابخانه به طور خودکار در برنامه بارگذاری می شود. همچنین انتقال پروژه بین توسعه دهندگان را آسان تر می کند زیرا نیازی به اشتراک دستی وابستگی ها برای ساخت پروژه نیست.

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

مقدمه

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

با توجه به مطالب فوق می توان اهداف زیر را شکل داد:

مقدمه ای بر الگوریتم های بازیابی اطلاعات

نوشتن یک برنامه وب جستجو

اهداف تعیین شده با کمک وظایف انجام می شود:

کاوش در تئوری جستجو

آموزش زبان برنامه نویسی Ruby

مقدمه ای بر زبان نشانه گذاری Haml

مقدمه ای بر فرازبان ساس

با استفاده از Ruby، Haml و Sass یک برنامه وب را کدنویسی کنید

برنامه به دست آمده را اشکال زدایی کنید

بخش تئوری

نظریه بازیابی اطلاعات

ابتدا باید یک موتور جستجو را تعریف کنید.

سیستم جستجو -مجتمع نرم افزاری و سخت افزاری با رابط وب که امکان جستجوی اطلاعات در اینترنت را فراهم می کند.

با توجه به عملکردهای انجام شده و وظایفی که باید حل شوند، موتورهای جستجو به دو دسته تقسیم می شوند:

مراجع رایج ترین نوع توابع هستند سیستم های اطلاعاتی، و شامل ارائه فرصتی برای مشترکین سیستم برای دریافت داده های نصب برای کلاس های خاصی از اشیاء است.

موتورهای جستجو رایج ترین دسته از سیستم های اطلاعاتی هستند. به طور کلی، فرم را می توان به عنوان یک فضای اطلاعاتی در نظر گرفت که از نظر توصیف اطلاعاتی-منطقی از حوزه موضوعی ارائه شده است).

توافق. وظیفه سیستم پردازش اطلاعات موجود در سیستم بر اساس الگوریتم های محاسباتی خاص برای اهداف مختلف است.

با توجه به ماهیت ارائه سازماندهی منطقی اطلاعات ذخیره شده، موتورهای جستجو به دو دسته فاکتوگرافی، اسنادی و اطلاعات جغرافیایی تقسیم می شوند.

بنابراین موتورهای جستجوی فاکتوگرافی داده ها را در قالب نمونه های زیادی از یک یا چند نوع عنصر ساختاری جمع آوری و ذخیره می کنند. هر یک از این موارد از عناصر ساختاری یا ترکیبی از آنها اطلاعاتی را در مورد هر واقعیت و رویدادی منعکس می کند. ساختار هر نوع شی اطلاعاتی شامل مجموعه ای محدود از جزئیات است که جنبه ها و ویژگی های اصلی اطلاعات را برای اشیاء این حوزه موضوعی منعکس می کند.

در سیستم‌های بازیابی اسنادی، یک عنصر اطلاعاتی، سندی است که به عناصر کوچک‌تر تقسیم نمی‌شود و اطلاعاتی که وارد می‌شوند، قاعدتاً ساختارمند نیستند یا به شکل محدودی ساختار یافته‌اند. برای سند ورودی، برخی از موقعیت های رسمی را می توان تنظیم کرد - تاریخ ساخت، اجرا کننده، موضوع. برخی از انواع سیستم های اطلاعات اسنادی برقراری رابطه منطقی بین اسناد وارد شده - تبعیت از نظر محتوای معنایی را تضمین می کنند.

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

همچنین طبقه بندی زیر از موتورهای جستجو وجود دارد (شکل 1.)

عکس. 1. طبقه بندی موتورهای جستجو

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

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

قانون اول فراوانی وقوع (وقوع) یک کلمه خاص را با رتبه این بسامد مرتبط می کند. به کلماتی که بیشترین تکرار را دارند رتبه ای برابر با یک اختصاص می دهند. کلماتی که کمتر رایج هستند - رتبه ای برابر با دو و غیره. Zipf دریافت که حاصل ضرب فراوانی وقوع یک کلمه و رتبه آن یک مقدار ثابت است.

چنین وابستگی معمولاً به صورت هذلولی نشان داده می شود. مقدار ثابت Zipf برای زبانهای مختلفمتفاوت است، اما در یک گروه زبانی بدون تغییر باقی می ماند. برای زبان روسی، ثابت تقریباً 0.06-0.07 است.

Zipf تعیین کرد که فراوانی وقوع کلمات و تعداد کلمات موجود در متن با فرکانس مشخص نیز به هم مرتبط هستند.

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

قوانین Zipf جهانی هستند. آنها نه تنها برای متون اعمال می شوند. در شکلی مشابه، برای مثال، رابطه بین تعداد شهرها و تعداد ساکنان ساکن در آنها ریخته می شود. ویژگی های محبوبیت منابع اینترنتی با قوانین Zipf مطابقت دارد. قوانین Zipf منشأ "انسانی" اشیا را منعکس می کند.

در هر صورت هر کدام پرس و جو جستجورا می توان بر اساس سه ویژگی طبقه بندی کرد: طول پرس و جو، وضوح پرس و جو، مرحله جستجو.

بنابراین، با توجه به طول، تمام درخواست ها به تقسیم می شوند

تک کلمه ای ("ترفیع")

دو کلمه ای (" ارتقاء جستجو»

سه کلمه ای ("پیشبرد جستجوی حرفه ای")

پرمخاطب ("تبلیغ جستجوی حرفه ای ارزان")

با وضوح، تمام درخواست ها به موارد زیر تقسیم می شوند:

درخواست صریح ("قیمت برای iPad 2")

درخواست فازی («اوزون» که هم می تواند گاز باشد و هم اسم فروشگاه و هم نام کارگردان)

با توجه به مرحله جستجو، تمام درخواست ها به موارد زیر تقسیم می شوند:

آگاهی از مشکل ("سایت کار نمی کند")

جستجو برای راه حل ("میزبانی وب سایت")

انتخاب تصمیم ("کدام میزبانی را انتخاب کنیم")

جستجوی محل تراکنش ("تعرفه هاست هاست")

زبان برنامه نویسی RUBY

روبی یک زبان برنامه نویسی سطح بالا پویا، بازتابنده و تفسیر شده برای برنامه نویسی شی گرا سریع و راحت است. زبان مستقل از سیستم عاملاجرای multithreading، تایپ پویا قوی، جمع آوری زباله و بسیاری ویژگی های دیگر. روبی از نظر نحو به پرل و ایفل نزدیک است، در رویکرد شی گرا - به اسمال تاک. همچنین برخی از ویژگی های زبان از پایتون، لیسپ، دیلان و کلو گرفته شده است. تا به امروز، مفسر Ruby تقریباً برای تمام پلتفرم ها (یونیکس، Win32، OS X) پیاده سازی شده است. خالق این زبان یوکیهیرو ماتسوموتو است.

Ruby یک زبان برنامه نویسی کاملاً شی گرا است. همه چیز یک شی است و توابع روش های آن اشیا هستند.

خواص اصلی روبی:

زبان تفسیر شده:

امکان تماس مستقیم سیستمی.

پشتیبانی قدرتمند از عملیات با رشته ها و قوانین (عبارات منظم).

تجلی فوری تغییرات در طول رشد.

بدون مرحله تدوین

برنامه نویسی ساده و سریع:

نیازی به تعریف متغیرها نیست.

متغیرها به صورت پویا تایپ می شوند.

نحو ساده و سازگار.

کنترل خودکارحافظه کاری

برنامه نویسی شی گرا:

همه چیز یک شی است. حتی نام کلاس هم نمونه ای از کلاس Class است.

کلاس ها، روش ها، وراثت، چندشکلی، کپسولاسیون و غیره.

روش های تک

میکس با استفاده از ماژول ها (قابلیت گسترش یک کلاس بدون ارث).

تکرار کننده ها و بسته ها.

قابلیت فرابرنامه ریزی گسترده

امکانات:

محدوده نامحدود مقادیر عدد صحیح

مدل هندلینگ استثنایی

همه عملگرها، حتی ساختارهای کنترلی، مقادیر را برمی گردانند.

مکانیزم گرفتن استثنا

پشتیبانی از موضوع؛ هم بومی و هم سیستم های خانواده یونیکس.

ایرادات:

عدم مدیریت برخی از فرآیندها (مانند تخصیص حافظه)، ناتوانی در تنظیم ساختارهای داده سطح پایین یا زیر روال ها.

عدم امکان کامپایل و همراه با آن بهینه سازی برنامه؛

باز بودن کد منبعحتی در برنامه تمام شده

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

همچنین شایان ذکر است که ماژول‌های (افزونه‌های) زیادی برای Ruby برای تقریباً هر نوع کار (برنامه‌نویسی رابط، محاسبات پیچیده ریاضی، کار با صدا، تصویر، سه بعدی و غیره) وجود دارد. از این رو این زبان برنامه نویسی به عنوان زبان اصلی برای نوشتن قسمت عملی انتخاب شد.

1.3. زبان نشانه گذاری ساده شده HAML

Haml یک زبان نشانه گذاری برای تولید ساده XHTML است. HAML به HTML کامپایل می شود. Haml بسیار ساده‌تر از Html است، زیرا به شما امکان می‌دهد نوشتن برنامه‌های وب را ساده‌تر و سرعت بخشید.

به عنوان مثال، این قطعه کد Haml

%html( html_attrs("en") )

%title وبلاگ من

%meta(http-equiv="Content-Type" content="text/html; charset=utf-8")

stylesheet_link_tag "اصلی"

%h1 وبلاگ من

%h2 رکوردها

- @entries.each انجام | ورود|

%h3.title= entry.title

%p.date= entry.posted.strftime("%A، %B %d، %Y")

%p.body= entry.body

کلیه حقوق محفوظ است © Ivan

کد Html تبدیل شده است

وبلاگ من