uy - Mobil qurilmalar
Ruby dasturlash tili. PHP, Ruby, Python - uchta dasturlash tillarining qisqacha tavsifi Ruby dasturlash asoslari

Ruby eng yosh dasturlash tillaridan biridir. U o'z nomini qimmatbaho tosh yoqutiga bog'liq (boshqa keng tarqalgan Perl dasturlash tiliga o'xshash - marvaridlar). Rubyni uning yaratuvchisi yapon dasturchisi Yukixiro Matsumoto shunday ta'riflaydi: "Bu men 1993 yilda ishlab chiqa boshlagan kuchli va dinamik ochiq manbali ob'ektga yo'naltirilgan tildir. Ruby ko'plab platformalarda ishlaydi, jumladan Linux va ko'plab Unix, MS ilovalari. -DOS, Windows 9x/2000/NT, BeOS va MacOS. Ruby-ning asosiy maqsadi dastur ishlab chiqishda samaradorlikdir va foydalanuvchilar unda dasturlashni samarali va hatto qiziqarli topadilar."

Yaponiyada Ruby Python va Perl kabi mashhur tillarni siqib chiqardi (va "Ruby Object-oriented Scripting Language" kitobi bestsellerga aylandi) va butun dunyo bo'ylab tarqala boshladi. So'nggi bir yil ichida Rubyga bag'ishlangan uchta ingliz tilidagi kitoblar paydo bo'ldi (afsuski, ularning rus tiliga tarjimasi hali yo'q). Bu tilning chinakam ommabop bo'lish imkoniyati juda yaxshi - axir u boshqa tillarning kamchiliklarini hisobga olgan holda afzalliklarini o'ziga singdirgan.

Ruby Linux OS ning standart distribyutsiyasiga kiritilgan (7.2 versiyasidan boshlab) va MS Windows foydalanuvchilari uni birinchi tanishish uchun tavsiya qilishlari kerak. eskirgan versiya, u til tarjimoni va kutubxonalarga qo'shimcha ravishda foydalanuvchi qo'llanmasi, FAQ (tez-tez beriladigan savollarga javoblar) va ko'plab misollarni o'z ichiga oladi. Ruby bepul mavjud, shuning uchun siz uning narxi yoki undan foydalanishdagi cheklovlar haqida tashvishlanishingiz shart emas.

Bu til, shubhasiz, talabalar va maktab o'quvchilari tomonidan o'rganilgan birinchi dasturlash tili sifatida eng yaxshi tillardan biridir. Tez rivojlanish tsikli (tahrirlash - ishga tushirish - tahrirlash), tarjimondan foydalanish, tilning boshlang'ich ob'ektga yo'naltirilganligi, deklaratsiyani talab qilmaydigan tiplanmagan o'zgaruvchilar - bularning barchasi o'quvchilar e'tiborini dasturlashning umumiy tamoyillariga jamlash imkonini beradi. . Keyingi taqdimotda biz Linux operatsion tizimida ishlashga e'tibor qaratamiz. Ruby-ni boshqa operatsion tizimlarda ishlatish deyarli farq qilmaydi va bajarilish natijalari ishlatiladigan operatsion tizimga bog'liq emas.

Birinchidan, Ruby tarjimoni tizimda o'rnatilganmi yoki yo'qligini tekshirib ko'raylik. Qobiq oynasida ruby ​​-v buyrug'ini kiriting (bu kalit til versiyasini ko'rsatishni talab qiladi). Agar quyidagi xabar paydo bo'lsa, Ruby o'rnatilgan (versiya, sana va platforma farq qilishi mumkin):

ruby 1.6.4 (2001-06-04)

"Salom, dunyo!"

Ushbu dasturni ishga tushirish uchun buyruq qatori kiriting

Dasturni bajarish natijasida buyruq oynasida kerakli ibora chop etiladi.

Dasturlarni bajarishning ikkinchi usuli Ruby ishlaydigan barcha operatsion tizimlarning foydalanuvchilari uchun mavjud emas. Linux OS foydalanuvchilari dastur matn faylining boshiga quyidagi qatorni qo'yishlari kerak:

#!/usr/bin/env ruby

U Majburiy birinchi pozitsiyadan boshlash kerak. Keyin dastur fayliga kirish huquqlarini o'zgartirishingiz kerak, uni bajariladigan qilib qo'yishingiz kerak: chmod +x hello.rb Endi dasturni ishga tushirish uchun buyruqni kiritish kifoya.

Dasturni o'qiyotgan odamga tushunarli bo'lishi uchun sharhlar kiritiladi. Bir qatorli izohlar # belgisidan boshlanadi va satr oxirigacha davom etadi. Ko'p qatorli izohlar maxsus "qavslar" ichiga olinadi - =begin va =end qatorlari orasida joylashgan hamma narsa izoh hisoblanadi. Masalan,

#!/usr/bin/env ruby  =begin Bu izoh =end "Salom, dunyo!" # Bu ham izoh

Ruby dasturi, odatda skript deb ataladi, ko'rsatmalar (bayonotlar, jumlalar) ketma-ketligidir. Har bir ko'rsatma sukut bo'yicha satr oxirida tugaydi. Agar biron sababga ko'ra bir qatorda bir nechta ko'rsatmalarni joylashtirish kerak bo'lsa, ular belgi bilan ajratilishi kerak; (nuqta vergul). Boshqa tomondan, ba'zida ko'rsatma bir qatorga to'g'ri kelmaydi. Bunda \ belgisi uning davomi keyingi qatorda joylashganligini bildiradi.

Misol

#!/usr/bin/env ruby ​​# Ko'rsatma satr oxirida tugaydi, "Salom, dunyo!" # Bir qatorda bir nechta ko'rsatmalar "Bu sinov,"; "Ruby qanday ishlashini ko'rsatish" ni qo'yadi. # Tugallanmagan bayonot, keyingi qatorda davom ettirilgan # "Ruby'da dasturlash " + "qiziq tajriba." # Bir necha qatorlarga bo'lingan bayonotda \ "Va biz buni albatta o'rganamiz!"

Ko'rsatma (bayonot) ko'pincha turli iboralar va (ehtimol) funktsiya chaqiruvlariga qo'llaniladigan bayonotlar ketma-ketligidir.

Bugungi kunda o'ziga xos xususiyatlar va naqshlarga ega bo'lgan juda ko'p dasturlash tillari mavjud. Ushbu maqolada ulardan biri muhokama qilinadi.


Ruby tilining tarixi

Ruby dasturlash tili sifatida anchadan beri mavjud. Hozirda ma'lum bo'lgan ushbu tilni nashr etish bo'yicha ishlar birinchi marta 1993 yilda boshlangan. Birinchi birinchi rasmiy versiya 1995 yilda nashr etilgan. Tilning yaratuvchisi Yukixiro Matsumoto. Uning dasturlashga bo'lgan ishtiyoqi hali talabalik paytida sezilgan, ammo o'z asbobini yaratish g'oyasi ancha keyin paydo bo'lgan. Xo'sh, ushbu dasturlash tilining o'ziga xos xususiyati nimada? Nima sababdan sizni jahon sahnasida bu qadar mashhur qildi?

Ruby dasturlash tili juda yaxshi talqin qilingan. Bu dinamik matn terish va ko'p ish zarralarini bajarish muhitidan mustaqil ravishda amalga oshiriladigan yuqori darajadagi til. Uning o'z axlat yig'uvchisi bor. Sintaksis xususiyatlari jihatidan u Perl tillariga eng yaqin. Ekotizimning keng miqyosda rivojlanishi natijasida ushbu platforma Smalltalk, Python, Lisp va boshqa dasturlash tillaridan ko'p narsalarni oldi. Ruby tili va uni amalga oshirish mutlaqo bepul ekanligi katta ahamiyatga ega. Bundan kelib chiqadiki, har bir kishi o'z o'zgarishlarini taklif qilish imkoniyatiga ega. Agar ular hamjamiyat tomonidan qabul qilinsa, ular tilning keyingi versiyasiga kiritiladi.

Ruby falsafasi

Matsumoto o'z aqlini yaratish jarayonida ob'ektga yo'naltirilgan dasturlashning sodiq muxlisi va ishqibozi bo'lib, uning tilini o'rganishni tanlagan dasturchilar uchun ma'lum bir falsafa muallifiga aylandi. Shunday qilib, Ruby dasturlash tili oddiy va tushunarli ilovalar yaratish uchun mo'ljallangan. Asosiy e'tibor dastur tezligiga emas, balki kodning soddaligi va o'qilishiga qaratildi. Aynan shu sababli ushbu platforma ko'pincha dasturchilarni tayyorlash uchun zarur bo'lgan kirish platformasi sifatida tanlanadi. Ushbu tilning asosi bo'lgan asosiy g'oya "hech bo'lmaganda ajablanish" tamoyilidir. Bu nimani anglatadi?

Va dastur o'zini dasturchi kutganidek tutishi kerakligi. Ijodkor tomonidan kiritilgan til mafkurasining muhim qismi uning katta o‘zgaruvchanligidir. Shunday qilib, turli xil usullar va funktsiyalarda bir xil natijaga erishish mumkin. Bu har bir dasturchiga muammoni o'zi xohlagancha to'g'rilik va qulaylik nuqtai nazaridan hal qilish imkonini beradi. Bu, aksariyat hollarda, axborot texnologiyalari mutaxassislari orasida tilning mashhurligiga ta'sir ko'rsatdi.

Asosiy xususiyatlar

Ruby uni dasturlash tili sifatida ko'rib chiqishda nimani anglatadi? Birinchidan, bu ob'ektga yo'naltirilgan tildir. Primitiv tiplar mavjud emas, chunki barcha tuzilmalar va ma'lumotlar birliklari ob'ektlar hisoblanadi. Bu uni ibtidoiy ma'lumotlar tuzilmalari mavjud bo'lgan bir xil Java tilidan ajratib turadi. Ruby'dagi barcha funktsiyalar usuldir. Ko'pgina xususiyatlar va imkoniyatlar boshqa dasturlash tillari mualliflari tomonidan kiritilgan. Shunday qilib, biz ishonch bilan ayta olamizki, Ruby o'z ichiga oladi eng yaxshi fazilatlar ko'plab boshqa tillar va texnologiyalar. Masalan, Ruby ekotizimida o'zining axlat yig'uvchisi bor.

Uning g'oyasi Smalltalk va Java-dan olingan. U tizimdagi barcha ob'ektlar bilan ishlashga qodir. Bu mexanizm ilova foydalanuvchisi va ishlab chiquvchisi tomonidan sezilmasdan sodir bo'ladigan endi kerak bo'lmagan ob'ektlardan xotirani tozalash imkonini beradi. Axlat yig'uvchi dastur xotirasini boshqarish orqali dasturchiga chalg'itmaslikka yordam beradi. Shunday qilib, u butun e'tiborini funksionallik va qulaylikka qaratishi mumkin.

Til paradigmalari

Ruby ko'p paradigmali til sifatida nimani ifodalaydi degan savolga javob bergan ba'zi dasturchilar bahs-munozaralar qizg'inligiga duch kelishdi. Ushbu til har qanday dasturlash paradigmalarini teng muvaffaqiyat bilan qo'llash imkonini beradi. Ulardan quyidagilarni ta'kidlash joiz:

Protsessual dasturlash uslubi;
ob'ektga yo'naltirilgan yondashuv;
funktsional yondashuv.

Ishlab chiquvchiga o'ziga eng yaqin bo'lgan paradigmani tanlashga ruxsat beriladi. Shuni yodda tutish kerakki, bu uning asboblar to'plamini yanada cheklangan yoki zaifroq qiladi. Ruby dasturlash tili faqat ushbu tanlovga amal qiladi.

Shon-sharaf sabablari

Ko'pgina hollarda, bu til unga turli xil qo'shimchalarni ishlab chiqish qulayligi tufayli mashhur bo'ldi. Shunday qilib, ramkalar va kutubxonalar soni doimiy ravishda o'sib bormoqda va ular mustaqil ravishda hal qiladigan vazifalar ishlab chiquvchilarga mahsulotni eng qisqa vaqt ichida tayyor holatga keltirish imkonini beradi. Ruby dasturlash ko'pincha veb-ilovalarni yaratish, shuningdek, turli saytlar va Internet platformalarining ishlashini qo'llab-quvvatlash bilan bog'liq. Til o'zining soddaligi va rivojlanish tezligi tufayli ushbu o'rinni egallashga muvaffaq bo'ldi. Shuni ta'kidlash kerakki, muqobil platformalar (masalan, Java) shunga o'xshash muammolarni hal qilish uchun mo'ljallangan sezilarli darajada ko'proq bilim va tajribani talab qiladi.

Mashhur ramkalar

Bugungi kunda bozorda mavjud bo'lgan taniqli ramkalar haqida gapirganda, ular orasida Railsni ta'kidlash kerak. Ruby nima degan savolga javob beradigan ko'pchilik foydalanuvchilar intuitiv ravishda RubyOnRails degan ma'noni anglatadi. Ushbu dasturiy elementlar to'plami ishlab chiquvchilar orasida sanoat standartidir. U muntazam ravishda qo'llab-quvvatlanadi, doimiy rivojlanishda va dasturiy hamjamiyat tomonidan to'ldiriladi. Shunisi e'tiborga loyiqki, bularning barchasiga qaramay, u bepul bo'lib qolmoqda.

Taqdim etilgan ramka veb-ilovaning tarkibiy qismlarini MVC (Model-View-Controller) sxemasi chegaralarida tasvirlashga qodir. Bundan tashqari, u dastur serveri bilan tayyor integratsiyani, shuningdek, ma'lumotlar bazasiga kirish imkonini beruvchi interfeysni taqdim etishga tayyor. Ushbu uchta komponent bir necha soat ichida Internetda oddiy blog yoki shaxsiy veb-sahifani tom ma'noda yozish va ishga tushirish imkonini beradi. Ruby dasturlash tilida hatto mahalliy tillarni ham yaratish mumkin mobil ilovalar. Bunga RubyMotion kutubxonasidan foydalanish orqali erishiladi. U iOS, OS X va Android platformalarida Ruby kodini ishga tushirishi mumkin. Ushbu kutubxona xususiy sotuvchilar guruhi tomonidan ishlab chiqilgan. Bu shuni anglatadiki, siz foydalanish uchun pul to'lashingiz kerak bo'ladi, ammo bu tilning keng imkoniyatlarining yana bir tasdig'idir.

Yozish testlarining ahamiyati

Ruby tili ekotizimining yana bir muhim komponenti, shuningdek, uning vebga yo'naltirilgan qismi testlarni yozish uchun mo'ljallangan ramkalar va kutubxonalardan iborat. RubyOnRails BDD (xulq-atvorga asoslangan rivojlanish) falsafasidan foydalanadi. Bu shuni anglatadiki, dasturchi birinchi navbatda dasturning kutilgan harakatini tavsiflovchi testlar ketma-ketligini ishlab chiqadi. Keyin ushbu testlardan o'tish uchun zarur bo'lgan kodni yaratadi. RSpec bu sohada aytilmagan standart hisoblanadi. Bu hatto tajribasiz foydalanuvchilar ham tushunadigan tilda test holatlarini yozish imkonini beruvchi ramka.

Ruby Gems

Ruby paketlari va kutubxonalari mos kelishi kerak bo'lgan batafsil standart tufayli qo'shimchalarni yaratish oson. Shunday qilib, qimmatbaho toshlar orasida integratsiyadan tortib, deyarli har qanday muammoni hal qilish uchun mo'ljallangan modullarni topish mumkin ijtimoiy tarmoqlar Va uchinchi tomon resurslari va elektron tijorat uchun tayyor platformalar bilan yakunlanadi. Uchinchi tomon kutubxonasidan foydalanish uchun o'z loyihangizning masofaviy yoki boshqarmada joylashgan ma'lum bir kutubxonaga bog'liqligini tavsiflash kifoya. mahalliy ombor. Keyingi yig'ish paytida ushbu kutubxona ilovaga yuklanadi avtomatik rejim. Ushbu yechim yaratuvchilar o'rtasida loyiha migratsiyasini sezilarli darajada soddalashtiradi, chunki loyihani qo'lda qurish uchun bog'liqliklarni bo'lishishga hojat yo'q.

Shunday qilib, biz Ruby nafaqat tajribali dasturchilar uchun, balki yangi boshlanuvchilar uchun ham mos keladigan kuchli va ko'p qirrali dasturlash tili degan xulosaga kelishimiz mumkin.

Ruby dasturchilar- Bular katta tajribaga ega, texnik bilimga ega, dinamik dasturlash tilidan foydalanadigan mutaxassislardir. Dasturchilar ushbu tildan veb-saytlar, veb-interfeyslar, korporativ ilovalar, dasturiy ta'minot. Kasb informatikaga qiziquvchilar uchun javob beradi (Maktab fanlariga qiziqish asosida kasb tanlashga qarang).

Qisqa Tasvir

Ruby ochiq tildir manba kodi, 90-yillarning boshlarida yapon dasturchisi tomonidan yaratilgan va 1995 yilda ommaga taqdim etilgan. Ruby Yaponiyani darhol tark etmadi, chunki uning mavjudligining birinchi yillarida Evropa tillariga biron bir hujjat tarjima qilinmagan. Faqat 90-yillarning oxirida texnologiya paydo bo'ldi. hujjatlar ingliz tilida va ko'plab ishlab chiquvchilar ushbu dasturlash tiliga qiziqish bildirishdi.

E'tibor bering, rus tiliga tarjima qilingan texnik adabiyotlar hali juda kam, shuning uchun ishlab chiquvchi ingliz yoki yapon tilini bilishi kerak. Bugungi kunda ushbu dasturlash tili Java, JavaScript va PHP tillarining yetakchi o'rinlarini bo'shatib, eng ommabop beshtalikka kiradi.

Rubyni o'zlashtirish maxsus ma'lumotga ega bo'lmagan odam uchun qiyin bo'ladi. U bilan bir necha yillardan beri C#, C++ yoki Java dan foydalanayotgan dasturchilargina ishlay oladi. Ruby-da oddiy sintaksis, ko'p tarmoqli dasturlash, istisnolardan foydalanishni qo'llab-quvvatlash va ma'lumotlar ob'ektlardir.

Kasbning xususiyatlari

Ruby dasturchilarining ishi JavaScript yoki PHP dan foydalanadigan dasturchilar ishidan farq qilmaydi. Ularning vazifalari dasturiy ta'minotni yaratish, uni tuzatish va keyingi texnik xizmat ko'rsatishni o'z ichiga oladi. Dasturchining majburiyatlari u ishlayotgan kompaniya tomonidan belgilanadi:

  • onlayn-do'konlar, ilovalar va boshqalarning funksionalligini takomillashtirish va yakunlash;
  • turli tizimlardagi plaginlarni texnik qo'llab-quvvatlash;
  • Android ilovalari, veb-ilovalar, o'yinlar, platformalar va boshqa mahsulotlarni yaratish;
  • ma'lumotlar bazasi arxitekturasini loyihalash;
  • yaratilgan dasturiy ta'minotni sinovdan o'tkazish va disk raskadrovka qilish;
  • dizaynerlar, ishlab chiquvchilar va boshqa jamoa a'zolari bilan o'zaro aloqa;
  • loyihalar boshqaruvi.

Kasbning ijobiy va salbiy tomonlari

pros

  1. Oddiy va tushunarli dinamik dasturlash tili.
  2. Ish beruvchining nazarida kasb qiymatini oshiradigan tajribali Ruby ishlab chiquvchilari kam sonli.
  3. Agar sizda professional bilim bo'lsa, Ruby-ni tezda o'zlashtira olasiz.
  4. Barqaror va yuqori ish haqi, muvaffaqiyatli ishlash sharti bilan bonuslar olish.
  5. Siz ofisda yoki masofadan turib, o'zingizning ish kuningizni rejalashtirishingiz mumkin.
  6. Doimiy martaba o'sishi.
  7. Ishlab chiquvchilar muvaffaqiyatga juda tez erishadilar, chunki siz 25-30 yoshda Ruby Senior bo'lishingiz mumkin.
  8. Siz hali ham o'qish paytida ishlashni boshlashingiz mumkin, bu ham foyda, ham tajriba olib keladi.
  9. Ko'p sonli onlayn kurslar va bepul dasturchilar talabalarga dars berishga tayyor.

Minuslar

  • Ko'p ma'lumotni eslab qolish zarurati.
  • Ish ko'pincha odatiy holdir.
  • Ishlab chiquvchi odamlar bilan kam muloqot qiladi, ayniqsa masofadan turib ishlasa.
  • Mutaxassis kompyuterda ko'p vaqt o'tkazadi, shuning uchun yoshligida u ko'rishning xiralashishi, bel og'rig'i va boshqa kasbiy kasalliklarga duch kelishi mumkin.
  • Muhim shaxsiy fazilatlar

    1. Tinchlik, chunki siz tez-tez favqulodda rejimda ishlashingiz kerak.
    2. To'liq fidoyilik va sabr-toqat, ayniqsa ish jadvalining yo'qligi, cheksiz o'zgarishlar va xatolarni tuzatish bilan bog'liq.
    3. Muloqot qobiliyatlari, chunki siz topishingiz kerak umumiy til dizaynerlar, mijozlar, uchinchi tomon dasturchilari bilan.
    4. Kamtarlik va aql.
    5. Halollik va texnik malaka.
    6. Ijodiy sayohat.
    7. Butunlik.
    8. Yomon odatlar yo'q.
    9. Topqirlik.

    Ruby dasturchi tayyorlash

    Universitetlar

    Ish joyi

    1. IT kompaniyalari.
    2. Reklama agentliklari.
    3. Xususiy dasturiy ta'minot ishlab chiqaruvchilari.
    4. Bank tizimi.
    5. Faoliyati uchun dasturchi kerak bo'lgan boshqa tashkilotlar.

    Karyera

    Ruby dasturchisi, boshqa har qanday dasturchi kabi, barqaror professional o'sishni kutishi mumkin, ammo uning tezligi insonning bilimi, ko'nikmalari va shaxsiy ambitsiyalariga bog'liq. Ishning dastlabki 3 oyida dasturchi shogird bo'lib, undan so'ng har bir yillik tajriba unga yangi maqom olib keladi:

    • Kichik (18 oygacha tajriba);
    • O'rta (3-4 yilgacha ish tajribasi);
    • Katta (4 yildan ortiq tajriba).

    Tasniflash boshqacha bo'lishi mumkin, lekin printsip bir xil bo'lib qoladi: ko'proq tajriba yaxshi mavqe va yuqori ish haqini anglatadi.

    Ruby dasturchisi ish haqi

    02.03.2020 dan boshlab ish haqi

    Rossiya 30000—120000 ₽

    Moskva 50000-230000 ₽

    Kasbiy malaka

    1. Ruby va Ruby on Rails haqida bilim.
    2. PHP, Java, C++ va boshqalar bilan ishlash tajribasi.
    3. Dasturlash sohasida kamida 2-3 yillik tajriba talab etiladi.
    4. Chet tillarini bilish shart.
    5. MySQL, PostgreSQL, JSP, HTML, UnitTest, Grails, CSS-ni bilish.
    6. Git, Subversion yoki Mercurial.
    7. Texnik hujjatlarni ishlab chiqish.

    Foydali materiallar

    1. Ruby haqida rus tilidagi forum: onrails.club.
    2. Ruby uchun tarjimalari bilan veb-sayt: rusrails.ru.
    3. Kris Payn kodlashni o'rganing.
    4. Maykl Fitsjerald "Rubyni o'rganish".
    5. Jovanni Sakti, Nia Mutiara, Hafis Bari Lubis "Reylar uchun o'rganish qurilmasi".

    Bu men Ruby va Ruby on Rails-ning xususiyatlari haqida gapirib beradigan va Ruby-ni o'rganishni qaerdan boshlash, savollarga javoblarni qayerdan topish, kerakli tajribani qanday olish va qanday qilib maslahatlar bilan bo'lishadigan maqolalar seriyasining birinchisidir. o'zingizni boshqa nomzodlardan qanday ajratib olishingiz mumkin. Agar mening maslahatim kimgadir o'z mutaxassisligi bo'yicha qaror qabul qilishda va o'qish va ishlash uchun Rubyni tanlashda yordam bersa, xursand bo'lardim.

    Rubyning asosiy xususiyatlari va farqlari

    Men tez-tez savolni eshitaman: Rubyni o'rganishga arziydimi? Qoida tariqasida, savol shubhalarga asoslanadi: bu mutaxassislik bo'yicha ish topish qanchalik oson, qiziqarli loyihalar bo'ladimi va hokazo. Ruby - bu zamonaviy, doimiy rivojlanayotgan dasturlash tili bo'lib, uni qo'llash sohalari ko'p. Albatta siz Chef, Vagrant, Homebrew haqida eshitgansiz, lekin ko'pincha biz hammamiz Rails haqida eshitamiz. Bu erda Rails-ni o'rganish nima uchun arziydiganligi haqida ramka muallifining sharhi bilan post.

    Albatta, har kim qaysi vositadan foydalanishni o'zi hal qiladi. Va nima uchun bir texnologiya boshqasidan yaxshiroq ekanligi haqida cheksiz bahslashishning ma'nosi yo'q. Men Ruby-ni tanladim, chunki u bir xil muammoni ko'p jihatdan hal qilishga imkon beruvchi ajoyib ifodali va moslashuvchan til.

    Ruby - kuchli dinamik yozishga ega bo'lgan talqin qilingan, to'liq ob'ektga yo'naltirilgan dasturlash tili. U Perl-ga o'xshash sintaksisni ob'ektga yo'naltirilgan yondashuv bilan birlashtiradi. Shuningdek, ba'zi xususiyatlar Python, Lisp, Dylan va CLU dasturlash tillaridan olingan. Ruby tili tarjimonining platformalararo tatbiq etilishi ochiq kodli dasturiy ta'minot ostida tarqatiladi. Ruby tilida yozilgan kodni dasturlashni tushunmaydigan odam ham tushuna oladi. RoRda Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb va boshqalar kabi loyihalar yaratilgan.

    Node.js-ning yuksalishi bilan Ruby on Rails-ning mashhurligi biroz pasaydi, biroq texnologik startaplar prototiplash qulayligi tufayli tez-tez RoR-dan foydalanadilar. Ruby TIOBE indeksida eng ommabop tillar orasida 11-o‘rinda turadi.

    Rubyning afzalliklari

    • Katta va do'stona jamoa.
    • Kirish uchun to'siq ancha yuqori, ya'ni Ruby dasturchisi kamida bitta boshqa dasturlash tili bilan tajribaga ega bo'lishi mumkin.
    • Siz faqat kerakli kutubxona va modullardan foydalanasiz.
    • Foydalanishga tayyor bo'lgan juda ko'p foydali kutubxonalar mavjud (Ruby Gems).
    • Ruby haqida Internetda tuzilgan va elenmiş shaklda juda ko'p ma'lumotlar mavjud.
    • Ruby-ni muhokama qilish kontekstida eng mashhur Ruby on Rails ramkasini eslatib o'tish mumkin emas.

    Endi Rubyning ba'zi afzalliklari haqida batafsilroq gaplashamiz.

    Rivojlanish tezligi

    Ruby va RoR ramkalarining afzalliklaridan biri rivojlanish tezligidir. Shaxsiy tajriba va hamkasblar tajribasi shuni ko'rsatadiki, Rails-da muammolarni hal qilish boshqa shunga o'xshash ramkalarga nisbatan bir yarim barobar tezroq. Ruby vosita sifatida juda oddiy va ularning soni juda ko'p tayyor echimlar har xil turdagi vazifalar uchun.

    Ma'lumotlarni keshlashning standart vositalari

    Keng miqyosli loyihani ishlab chiqishda eng muhim jihatlardan biri keshlashdir. Ruby on Rails standart bilan birga keladi muntazam vositalar ma'lumotlarni keshlash. Ya'ni, siz darhol loyihadagi ma'lumotlarni keshlash vositalariga ega bo'lasiz va siz alohida kod bloklarini yoki hatto butun sahifalarni osongina keshlashingiz mumkin.

    Avval sinov, keyin kod

    Ko'pincha rivojlanishda yirik loyihalar Sinov haqida savol tug'iladi va testchilarning alohida guruhi uchun qo'shimcha mablag' yo'qligi odatiy hol emas. Railsda ham bu muammoning yechimi bor. Agar siz RoR-ni ilovalarni sinovdan o'tkazish kontekstida boshqa ramkalar bilan taqqoslasangiz, siz integratsiya yoki birlik bo'lsin, har qanday turdagi testlar uchun juda ko'p tayyor echimlarni topasiz. Bu kutubxonalarning barchasi qutidan tashqarida ishlaydi. Ideal holda, Ruby on Rails loyihasida testlar yozilmaguncha kod yozilmaydi. RoR mafkurasi BDD (Behavior Driven Development) yoki TDD (Test Driven Development) usullaridan dastlabki foydalanishni o'z ichiga oladi.

    Ruby dasturchilari uchun umumiy qabul qilingan ishlab chiqish jarayoni standartlari

    Rubyning afzalliklari haqida gapirganda, men yana Ruby jamoasini eslatib o'tmayman. U doimo o'sib boradi, rivojlanadi va doimo yordam berishga tayyor. Har doim muammoni qanday hal qilish kerakligini aytib beradigan va har qanday masalada o'z tajribasi bilan o'rtoqlashadigan kimdir bor.

    Shuningdek, juda muhim nuqta- Ruby hamjamiyatida ko'p yillar davomida rivojlanish jarayoni uchun standartlar, muayyan qoidalar/jamoa kelishuvlari mavjud bo'lib, ularga muvofiq ishlab chiqish amalga oshiriladi, bu ishni sezilarli darajada osonlashtiradi. Ushbu standartlar tufayli har bir loyiha yuqori darajada tuzilgan; shunga ko'ra, jamoadagi yangi ishlab chiquvchi tezda tezlashadi va ishning birinchi kunlaridanoq foydali bo'ladi. Va bundan ham ko'proq: agar loyihani bir jamoa boshlagan bo'lsa va boshqasi tugatgan bo'lsa, bu ham umuman muammo emas. Rivojlanish yuqorida aytib o'tilgan qoidalar va jamoat kelishuvlariga muvofiq amalga oshirilganligi sababli, yangi jamoa loyihani tez va oson tushunadi va ko'p vaqtni yo'qotmasdan muvaffaqiyatli yakunlaydi.

    Ruby on relslarda ham juda ko'p turli xil tayyor echimlar mavjud ochiq kirish. Aksariyat echimlar sizdan oldin kimdir tomonidan allaqachon amalga oshirilgan va hamjamiyat tomonidan sinovdan o'tgan, bu esa noldan ishlab chiqish zaruratini kamaytiradi. Bu autentifikatsiya, avtorizatsiya, sharhlash tizimlari, to'lov tizimlari, pochta ro'yxatlari va boshqalar bo'lishi mumkin.

    Loyihaning ko'p tilliligi uchun tayyor echimlar

    Rails loyihani mahalliylashtirish uchun juda kuchli vositalar bilan birga keladi. Dastlab bir nechta tillarni qo'llab-quvvatlash va keyinroq amalga oshirish mumkin. Loyihada atamalarni tarjima qilish uchun maxsus fayllar, turli tillarda shablonlarni ko'rsatish vositalari va boshqalar mavjud.

    Ma'lumotlarni himoya qilishning yuqori darajasi

    Hozirgi kunda turli manbalarni buzish haqidagi maqolalar ko'pincha Internetda nashr etiladi. Ruby on Rails ramkasini ishlab chiquvchilar ma'lumotlarni himoya qilish masalasiga juda jiddiy yondashdilar. RoR dastlab parollar va ma'lumotlarni shifrlashni o'z ichiga oladi kredit kartalari va boshqa shaxsiy foydalanuvchi ma'lumotlari, SQL in'ektsiyasi va XSS hujumlari ham bundan mustasno. Barcha kirish parametrlari sukut bo'yicha chiqarib tashlanadi.

    Rubyni o'rganish

    Keling, Rubyni qanday qilib aniq o'zlashtirishingiz mumkinligi haqida gapiraylik.

    Nazariya

    Biz, albatta, adabiyotdan boshlashimiz kerak. Men ushbu manbalarni tavsiya qilaman:

    • 20 daqiqada Ruby - yaxshi resurs to'liq yangi boshlanuvchilar uchun. Yarim soatdan kamroq vaqt ichida tilning asosiy tuzilmalari bilan tanishish va o'zingizning kichik dasturlaringizni yozishni boshlash imkonini beradi.
    • Codecademy - bu turli sohalarda, jumladan, sof Ruby va Rails bo'yicha onlayn kurslarga ega platforma. Bu erda o'quv jarayoni juda qiziqarli tuzilgan, nazariy material berilgan va darhol uni mustahkamlash uchun amaliy vazifa. Yakuniy vazifalar to'lanadi, lekin ularsiz ham siz kerakli ko'nikmalarga ega bo'lishingiz mumkin.
    • Ruby va Rails bo'yicha materiallar - Ruby va Railsni o'rganishga bag'ishlangan turli saytlar va kitoblarga havolalar to'plami.
    • Ayniqsa, Flanagan D., Matsumoto Y. “The Ruby Programming Language” kitobini tavsiya qilishim mumkin. U eng yaxshilaridan biri hisoblanadi, uning muallifi Ruby tilini yaratuvchisidir.
    • Google :)

    Boshlash uchun bir nechta manbalar:

    • w3schools.com/sql - bu yerda siz o'qishingiz, SQL bo'yicha bilimingizni sinab ko'rishingiz va sinab ko'rishingiz mumkin.
    • quizful.net/test - bu yerda suhbat davomida tez-tez beriladigan savollarni topishingiz mumkin.

    Ingliz

    Menimcha, bu haqda batafsil to'xtalib o'tishning ma'nosi yo'q, chunki bu alohida maqola mavzusi. Ingliz tili juda muhim va bu hammaga ma'lum fakt. Men ikkita eng muhim jihatni qisqacha aytib o'tmoqchiman.

    Birinchidan, ingliz tili xalqaro hamjamiyatning asosiy tilidir, shunga ko'ra, foydali adabiyotlarning aksariyati ingliz tilida bo'ladi, ko'plab yangiliklar, hisobotlar va muhim maqolalar ingliz tilida ham birinchi bo'lib chiqadi. Agar siz biron bir savolga javobni bilmoqchi bo'lsangiz, birinchi navbatda uni ingliz tilida topishingiz ehtimoli juda yuqori.

    Ikkinchidan, ingliz tilini qanchalik yaxshi bilsangiz, ish topish imkoniyati shunchalik yuqori bo'ladi. Aksariyat mijozlar chet elliklardir, shuning uchun ingliz tilini bilish samarali muloqot, texnik xususiyatlarni aniq tushunish va mijoz bilan yaxshi aloqa qilish uchun muhimdir.

    Amaliyot

    Bir nechta manbalarni o'rganib chiqqandan so'ng, muhimroq qismga, ya'ni amaliyotga o'tishga arziydi. Internetda onlayn-do'kon yoki oddiy blog bilan ishlashning ko'plab misollari mavjud (bu erda ulardan biri), ayniqsa Rails haqida gap ketganda. Haqiqiy vazifalarga biroz yaqinroq bo'lgan vazifalarni bajarish jarayonida siz albatta ba'zi muammolarga duch kelasiz va keyin siz eng muhim fazilatlardan biri - Google qobiliyatini o'rgatishga o'tasiz. Afsuski, men ushbu mahoratga bag'ishlangan hech qanday qo'llanma yoki kurslarni topa olmadim, lekin u, albatta, kundalik ishda juda muhim rol o'ynaydi.

    Kurslar

    Nazariyani o'qib chiqqandan va bir nechta "uy hayvonlari loyihalari" ni yozgandan so'ng, siz, albatta, intervyu olishga harakat qilishingiz mumkin, lekin ko'pincha bu bilim etarli emas. Bu nomzodlarning ko'p oqimi bilan bog'liq va raqobatni hisobga olgan holda, hamma ajralib turishga va imkon qadar yaxshi tayyorgarlik ko'rishga harakat qilmoqda.

    Ta'limning yana bir muhim jihati, bu ish qidirishda sizga foyda keltirishi mumkin bo'lgan dasturlash kurslaridir. Agar, albatta, sizda topshiriqlar ishlab chiqish va ularni ko'rib chiqish uchun ma'lum vaqt sarflashga tayyor bo'lgan murabbiyingiz bo'lmasa.

    Men darhol aytamanki, men hech qanday holatda ma'lumotga ega bo'lmagan holda kurslarga borishni tavsiya etmayman. Men kurslarni mustaqil ishlash orqali olingan bilimlarni mustahkamlashning ajoyib usuli deb bilaman. Va endi men biron bir maktabni reklama qilmoqchi emasman, lekin bundan qanday foyda olish mumkinligini tushuntiraman:

    U erda yuqori ehtimollik darajasi bilan avval bilmagan narsangizni bilib olasiz. Kurslar tuzilgan shaklda taqdim etilgan juda katta hajmdagi materiallarga ega, bu sizga materialni yaxshiroq o'zlashtirishga imkon beradi.

    Kurs davomida sizga ega bo'lasiz ustoz, kim sizning muammolaringizning yechimlarini ko'rib chiqadi va ishora qiladi zaif joylar va xatolar.

    Motivatsiya. Bu, birinchi navbatda, o'z-o'zini tarbiyalashda yordamga muhtoj bo'lganlar uchun. Ba'zida ufqda qanday istiqbollar paydo bo'lishidan qat'i nazar, o'zingizni biror narsa qilishga majburlash juda qiyin. Kurslarga borganingizda, siz aniq jadvalga ega bo'lasiz va bajarilishi kerak bo'lgan topshiriqlar yoki siz o'qishdan chetlatilasiz. Bu erda pullik kurslarda moliyaviy motivatsiya ham muhim rol o'ynaydi. Axir, siz mashaqqat bilan ishlab topgan pulingizni berganingizda, siz bu masalaga butunlay boshqacha munosabatda bo'lasiz va shunchaki sayr qilish haqidagi fikrlar kamroq paydo bo'ladi.

    Yana bir afzallik - sertifikat. Oxir-oqibat siz rezyumeingizda qog'oz varaqlari mavjudligiga emas, balki bilimingizga qarab baholanishi aniq. Ammo shunga qaramay, bu ortiqcha bo'ladi, ayniqsa shunga o'xshash bilim darajasiga ega, ammo hujjatli dalillarsiz nomzod bo'lsa.

    Yana bitta GitHub-dagi loyiha cho'chqachilik bankingizga. Agar siz yangi ishlab chiquvchi bo'lsangiz, unda kurslarda yozilgan loyiha ilgari yozilganlarga qaraganda texnologiya nuqtai nazaridan qiziqroq bo'ladi.

    Va eng muhimi - bandlik. Kurslar haqida gapirganda, men faqat pul to'lashingiz kerak bo'lganlarni nazarda tutmayapman. Ko'pincha kompaniyalarning o'zlari keyinchalik eng yaxshilarini ishga olishlari uchun o'qitish uchun yollaydilar. Bu ichki kurs yoki stajirovka/stajirovka bo'lishi mumkin. Ushbu variant eng yaxshisidir, chunki siz hech narsa uchun pul to'lashingiz shart emas, siz tajriba va yuqoridagi barcha afzalliklarga ega bo'lasiz va bundan tashqari, haqiqiy ish istiqboliga ega bo'lasiz. Ularga kirish qiyinroq, ammo istiqbollar muhimroq.

    Jami

    Ruby - bu kuchli terilgan tillar bilan birga keladigan ko'p qiyinchilik va shov-shuvlarsiz ishlashga imkon beruvchi til. Ruby bilan ishlashni boshlash oson, ayniqsa sizda boshqa dasturlash tillarida ishlash tajribangiz bo‘lsa va Ruby on Rails yordamida tezda prototip yaratishingiz mumkin bo‘ladi. U paydo bo'lgan Yaponiyada Ruby o'yinlarni yaratish uchun ishlatilgan. Ruby ixcham va ingliz tili kabi o'qiydi, bu kodni yangi boshlanuvchilar uchun tushunishni osonlashtiradi.

    Rubyni o'rganish haqida gap ketganda, men takror aytmoqchiman: siz kichikdan boshlashingiz kerak. Bir nechta kitoblarni o'qing, o'zingiz bir nechta topshiriqlarni bajaring, so'ngra ko'proq bilim va tajriba yoki qo'shimcha motivatsiya olish zarurligini his qilsangiz, o'zingiz olgan ma'lum miqdordagi bilimga ega bo'lgan kurslarga o'tishingiz mumkin.

    Ideal holda, bular kompaniyaning kurslari bo'lib, agar siz yaxshi natijalarga erishsangiz, tugagandan so'ng sizga taklif qiladi. Muqobil variant - bu sizning bilimlaringizni mustahkamlashga, rezyumega boshqa loyihani qo'shishga va tajriba orttirishga yordam beradigan pullik kurslardir, bu boshida eng muhimi. Ammo siz pullik kurslarni tugatganingizdan so'ng, sertifikatingizni ko'rsatib, suhbatdan osongina o'tasiz deb o'ylamasligingiz kerak. Har qanday holatda ham bilim baholanadi.

    Shu bilan birga, agar sizda etarlicha motivatsiya, sabr-toqat, qobiliyat va boshqa dasturlash tillari bilan tajribangiz bo'lsa, siz Ruby-ni o'zingiz osongina o'zlashtirishingiz mumkin, chunki Internetda juda ko'p foydali va yaxshi tuzilgan ma'lumotlar mavjud. Bundan tashqari, ochiq va katta Ruby hamjamiyati tufayli siz yuqori ehtimollik bilan kimdir sizdan oldin so'ragan ko'plab mumkin bo'lgan savollarga onlayn javoblarni osongina topishingiz mumkin.

    Maroqli o'rganing! Va keyingi maqolada biz kod haqida gapiramiz.

    Qiziqarli bo'sh ish o'rinlari, amaliyotlar, kurslar, maqolalarni o'tkazib yubormaslik uchun o'smirlar uchun Telegram kanalimizga obuna bo'ling.

    Ruby eng yosh dasturlash tillaridan biridir. Uning yaratuvchisi, professional yapon dasturchisi Yukixiro Matsumoto (shuningdek, Matz nomi bilan ham tanilgan) deydi:<<Я начал разработку Ruby 24 февраля 1993 года. Первая hello world программа на Ruby заработала летом того же года, а aльфа-версия была готова к декабрю 1994.>> Tilning nomi qimmatbaho tosh yoqut nomidan kelib chiqqan (boshqa keng qo'llaniladigan Perl dasturlash tiliga o'xshash: pearl).

    Uning muallifi Rubyni qanday tavsiflaydi:<<Это мощный и динамический объектно-ориентированный язык с открытыми исходниками. Ruby работает на многих платформах, включая Linux и другие реализации Unix, MS-DOS, Windows 9x/2000/NT, BeOS и MacOS. Главная цель Ruby — эффективность разработки программ, и пользователи найдут, что программирование на нем эффективно и даже забавно>> .

    Yaponiyada Ruby 1995 yilda ommaga ochiq bo'lgan birinchi versiyasidan beri mashhur bo'ldi, ammo hujjatlarning faqat yapon tilida mavjudligi uning keyingi qabul qilinishini cheklab qo'ydi. Faqat 1997 yilda Rubyning tavsifi paydo bo'ldi Ingliz tili, va 1998 yilda ruby-talk forumi ochildi. Shu paytdan boshlab Ruby butun dunyo bo'ylab yurishini boshladi. So'nggi bir yil ichida unga bag'ishlangan uchta ingliz tilidagi kitoblar paydo bo'ldi (qarang), garchi, afsuski, ularning hech biri hali rus tiliga tarjima qilinmagan. Ruby endi ko'pgina Linux distributivlariga kiritilgan va boshqa operatsion tizimlarning foydalanuvchilari uchun ham mavjud.

    Shuni esda tutingki, ushbu maqola til uchun qo'llanma emas. Qisqacha kirishni elektron darslikdan topish mumkin va to'liqroq ma'lumotni yuqorida aytib o'tilgan Internet saytlari bilan bir qatorda topish mumkin. Maqolaning asosiy maqsadi - turli xil dasturlash tillari bilan tanish bo'lgan odamlarga Ruby-ning xususiyatlari haqida umumiy tushuncha berish, uning kuchi va go'zalligini ko'rsatish, uning birinchi dasturlash tili kabi yaxshi ekanligini tushuntirishdir. va professional dasturchi va tizim administratori ishi uchun vosita sifatida.

    Dasturchilar Ruby haqida gapirishadi

    Ushbu bo'limda biz turli manbalardan to'plangan Ruby tili haqidagi bayonotlarni taqdim etamiz va ularni ko'rsatadigan misollarni ko'rib chiqishni biroz kechiktiramiz. Ko'tariladigan masalalarning aksariyati o'quvchining til nazariyasi va ob'ektga yo'naltirilgan dasturlash sohasida ma'lum bilimga ega ekanligini taxmin qiladi. Smalltalk, Lisp, C, C++ va Perlni biladiganlar uchun Rubyni tushunish oson.<<Джентльменский>> Perl, Java va C++ to'plami ham Rubyni o'rganish uchun juda yaxshi boshlang'ich pozitsiyadir.

    Bunday bilim bilan maqtana olmaydiganlar buni bilishdan juda xursand bo'lishadi

    * <<если для изучения языка Perl Вам нужно потратить, скажем, три недели, то Python Вы изучите за неделю, а Ruby — за один день!>>

    * <>.

    Kirish qismida biz Ruby yaratuvchisi Yukixiro Matsumotodan iqtibos keltirgan edik. Mana u bu til haqida yana nima deydi. Shunday qilib, Ruby

    * oddiy sintaksisga ega;

    * istisnolardan foydalanishni qo'llab-quvvatlaydi;

    * operatorlarni qayta belgilash imkonini beradi;

    * - bu sof ob'ektga yo'naltirilgan til (to'liq, to'liq, sof ob'ektga yo'naltirilgan til), unda Java yoki Perldan farqli o'laroq, hamma narsa ob'ektdir;

    * ixtiyoriy kattalikdagi butun sonlar bilan ishlash imkonini beradi;

    * o'zgaruvchilar deklaratsiyasini talab qilmaydi;

    * o'zgaruvchilar doirasini belgilash uchun prefikslardan (@, $, @@) foydalanadi;

    * ko'p bosqichli dasturlashni qo'llab-quvvatlaydi.

    Rubyga e'tibor qaratgan birinchi maqolalardan biri Xel Fultonning biroz eskirgan maqolasi edi.<<Тридцать семь причин, по которым мне нравится Ruby>>. Mana ulardan ba'zilari.

    Ruby dinamik tildir. C++ yoki Java kabi statik tillardan farqli o'laroq, Ruby-dagi usullar va o'zgaruvchilar ish vaqtida qo'shilishi yoki bekor qilinishi mumkin. Bu, masalan, C tili tomonidan talab qilinadigan #ifdef shartli kompilyatsiya direktivalaridan qochish imkonini beradi.Bu erda Rubyning Lisp va Smalltalk kabi tillarga o'xshashligi o'ynaydi.

    Ruby - bu talqin qilinadigan til. Ushbu xususiyat ishlashga salbiy ta'sir ko'rsatganligi sababli, men ba'zi izohlar bermoqchiman. Birinchidan (va eng muhimi), tez rivojlanish tsikli eng muhim afzallikdir<<перевешивает>> ba'zi kamchiliklar. Ikkinchidan, Ruby halokatli darajada sekin bo'lmasa-da, tezlik juda zarur bo'lgan holatlarda siz kodning bir qismini C tilida yozishingiz mumkin. Va nihoyat, uchinchidan, hech kim qachondir Ruby kompilyatori yozilmaydi, deb aytmadi.

    Ruby muntazam iboralar bilan ishlash qobiliyatiga ega. Bir vaqtlar ular faqat UNIX tizimlarining ba'zi utilitlarida (grep, sed, vi) ishlatilgan. Keyin, Perl tili tufayli, ko'p odamlar uning so'zlarni qayta ishlashdagi kuchini tan olishdi. Ruby bu kuchdan yanada qulayroq foydalanish imkonini beradi.

    Isaak Nyutonning mashhur iborasini eslang<<Если я видел дальше, чем другие, то только потому, что стоял на плечах гигантов>>? Ruby, albatta<<стоит на плечах гигантов>>, jumladan Smalltalk, CLU, Lisp, C, C++, Perl, Kornshell va boshqa tillar. Ruby insoniyat dasturlash tillari sohasida to'plagan eng yaxshi narsalarni o'z ichiga oladi. Shu bilan birga, quyidagi uchta tamoyilga amal qilinadi: g'ildirakni qayta ixtiro qilmang, buzilmagan narsani tuzatmang, dasturchilarda mavjud bo'lgan bilim va tajribadan foydalaning. Ruby dasturida UNIX OT dan fayllar va oqimlar, C tilining standart kiritish/chiqarish kutubxonasidan printf funksiyasining spetsifikatsiyalari hamda Perlda muntazam ifodalar bilan ishlash qobiliyati foydali bo'ladi.

    Ruby - bu skript tili. Bu tilni xarakterlovchi sifatida qaralmasligi kerak<<игрушечный>> yoki etarlicha kuchli emas. Bunday tilni talqin qilish va o'zaro aloqada bo'lgan ommaviy ish fayllarini almashtirishga qodir bo'lishi kerak operatsion tizim va boshqa dasturlarning xatti-harakatlarini nazorat qilish.

    Ruby ko'p qirrali va moslashuvchan tildir. Uning yordami bilan siz an'anaviy tarzda Kornshell tarjimonidan foydalangan holda bajariladigan narsalarni ham, odatda C tilida yozilgan narsalarni ham bir xil darajada oqlangan tarzda amalga oshirishingiz mumkin.

    Satrlar va massivlar bilan ishlashning soddaligi va imkoniyatlarining boyligi nuqtai nazaridan Ruby tilining raqobatchilari yo'q. Massivlar dinamik bo'lib, to'plamlar, steklar va navbatlar kabi boshqarilishi mumkin. Bundan tashqari, assotsiativ massivlar ham mavjud, ular bilan ishlash juda oddiy va qulay.

    Ruby tili uchun allaqachon ko'plab kutubxonalar yozilgan. Mavzular, rozetkalar, dasturni ishga tushirish oralig'ida saqlangan ob'ektlar, CGI dasturlari, ma'lumotlar bazalari, grafik interfeyslar - bularning barchasi Ruby-da dasturlashda ishlatilishi mumkin.

    Ingliz tilida nashr etilgan birinchi Ruby kitobining hammualliflari Deyv Tomas va Endi Xant, Dr. Dobb's Journal" (2001 yil yanvar) shunday deydi:<<Возьмите чисто объектно-ориентированный язык Smalltalk и избавьтесь от его причудливого синтаксиса. Добавьте комфорт и мощь языка Perl, но без всяких специальных случаев и магических преобразований. Заверните получившееся в ясный синтаксис, основанный частично на языке Eiffel, и добавьте понемногу от Scheme, CLU, Sather и Common Lisp. У вас получится Ruby.>> Aslida, bu Ruby zamonaviy dasturlash tillari evolyutsiyasining tabiiy va deyarli muqarrar natijasi ekanligini anglatadi. Ushbu maqola mualliflari ushbu nuqtai nazarga qo'shiladilar.

    Shuni ta'kidlashni istardimki, Ruby barcha dasturchilar muammolarini hal qilish uchun davo emas. Java va C++ tillaridan foydalanish o'rinli bo'lsa, ulardan voz kechmaslik kerak. Boshqa tomondan, Ruby-ning haqiqiy loyihalarda amaliy qo'llanilishini e'tiborsiz qoldirish oqilona emas.

    Keling, endi Rubyni boshqa tillar bilan taqqoslaydigan dasturlash hamjamiyatining eng yaxshi vakillarining bayonotlarini tinglaymiz.

    Java tilidan boshlaylik:

    * Ruby - bu talqin qilinadigan til;
    * Ruby'da hamma narsa ob'ekt (Javada int va Integer turlari mavjud bo'lib, ular ma'lum noqulayliklar tug'diradi);
    * Ruby'dagi o'zgaruvchilar statik tarzda yozilmagan va deklaratsiyani talab qilmaydi;
    * Ruby-dagi modullar sizga foydalanishga imkon beradi<<миксинов>> (aralashmalar) Java tilining interfeyslari (interfeyslari) bilan o'xshashliklarni yaratadi, shu bilan birga ulardagi usullarni amalga oshirishga imkon beradi.

    Endi uni Perl bilan solishtiramiz:

    * Ruby o'rganish ancha oson, dasturlash osonroq va yozma dasturlarni saqlash osonroq;
    * Ruby'da prefikslar (@, $, @@) o'zgaruvchining turini emas, balki qamrovni tavsiflaydi;
    * Ruby muntazam ifodalarni, $_ o'zgaruvchisini va boshqa ko'p narsalarni Perl'dan oladi.

    Keling, Rubyni boshqa tillar bilan taqqoslashni eng yaqin tillardan birini ko'rib chiqaylik<<конкурентов>> - Python tili. Bu taqqoslash ayniqsa qiziq, chunki Python hozirda ko'pchilik tomonidan birinchi dasturlash tili roliga yaxshi nomzod sifatida qaralmoqda. Shunday qilib, keling, Rubyni Python bilan taqqoslaylik:

    * Ruby tilidagi boshqaruv tuzilmalari va usullari end kalit so'zi bilan tugaydi, Python esa shunday deb ataladigan so'zdan foydalanadi.<<двумерный>> dasturning keyingi qatoridagi bosh bo'shliqlar sonining o'zgarishi yakuniy belgi bo'lsa sintaksis;
    * Ruby'da o'z o'rniga @ prefiksi misol o'zgaruvchilarini belgilash uchun ishlatiladi;
    * Ruby-da, Python-dan farqli o'laroq, tip va sinf tushunchalari sinonimdir;
    * Python merosni qo'llab-quvvatlamaydi va mavjud turlarga usullarni qo'shishga ruxsat bermaydi;
    * Ruby-da qo'llaniladigan axlat yig'ish algoritmi C tilida usullarning amalga oshirilishini yozishni osonlashtiradi;
    * C/C++ da yozilgan Ruby uchun kengaytmalar yangi sinflarni aniqlash imkonini beradi;
    * Ruby ko'pincha Python'dan tezroq.

    Va yana so‘zni til ijodkoriga beramiz. Uning tilning boshqaruv tuzilmalaridan biri ko'rinishida ifodalangan Ruby bo'yicha keyingi ish rejalari haqidagi bayonoti bizga haqiqiy dasturlarning misollarini ko'rib chiqishga muammosiz o'tishga imkon beradi.

    loop do read and reply mails kod yozish hujjat/maqola/kitob yozish kodining oxiri

    Dasturchilar Rubyda yozishadi

    C va C++ tillarining kirish/chiqarish kutubxonalarini bilish Ruby-da ham foydali ekanligini ko'rsatadigan misollardan boshlaylik.

    printf "Raqam: %5.2f; Qator: %s", 1.23, "Salom!" endl = "n"; $stdout<< 17 << " красных шариков" << endl line = gets; print line

    Maxsus global o'zgaruvchi $_ har doim oxirgi o'qish operatsiyasining natijasini o'z ichiga oladi. Bundan tashqari, u ko'plab konstruktsiyalarda standart argument sifatida ishlatiladi. Quyidagi dastur, masalan, Ruby so'zini o'z ichiga olgan kirish oqimidan barcha satrlarni chop etadi.

    while # oladi, agar /Ruby/ # oʻzgaruvchiga keyingi satrni $_ oʻzgaruvchisiga tayinlaydi, agar /Ruby/ # Ruby naqshiga mos kelsa print # chop etish $_ end end

    ARGF.each ( |chiziq| bosma satr, agar chiziq =~ /Ruby/ )

    Ruby-dagi ARGF - nomlari buyruq satrida berilgan barcha fayllar mazmunini yoki oddiygina standart kirish oqimini (argumentlar bo'lmagan taqdirda) birlashtirishni ifodalovchi ob'ekt.

    Ruby dasturi buyruq qatori argumenti sifatida berilgan raqamning faktorialini hisoblash uchun qanday ko'rinishga ega:

    def fact(n) return 1 if n == 0 f = 1 while n>0 f *= n n -= 1 end return f end print fact(ARGV.to_i), "n"

    Fact.rb faylida joylashgan ushbu dastur yordamida hisoblash uchun qiymat 100 ga teng! shunchaki ruby fact.rb 100 buyrug'ini bajaring.

    30-Fibonachchi raqamini rekursiv hisoblaydigan quyidagi uchta dastur Ruby, Python va Perl ish faoliyatini taqqoslaydi.

    # Ruby def fib(n), agar n<2 n else fib(n-2)+fib(n-1) end end print fib(30), "n" # Python def fib(n): if n<2: return n else: return fib(n-2)+fib(n-1) print fib(30) # Perl sub fib { my($n)=@_; if ($n<2) { return $n; } else { return fib($n-2)+fib($n-1); } } print fib(30), "n";

    Yana bir klassik muammo, Eratosfen elakidan foydalanib, berilgan sondan oshmaydigan barcha tub sonlar ro'yxatini aniqlashdir (sukut bo'yicha 100).

    max = Integer(ARGV.shift || 100) elak = i uchun 2da .. maks elak[i] = i uchun 2da tugaydi .. Math.sqrt(max) keyingi, elak[i] (i*i) bo‘lmasa .qadam(maks, i) bajar |j| sieve[j] = nil end end sieve.compact.join "," qo'yadi.

    Keyingi misol sifatida, C/C++ kursining birinchi kurs talabalari tomonidan tez-tez so'raladigan muammoning Ruby-da yechimini ko'rib chiqing: matn fayli berilgan, undagi har bir so'zning takrorlanish sonini aniqlang. Assotsiativ massivlar va bir qator standart fayl va string texnikasidan foydalanish nihoyatda ixcham va tushunarli dastur yozish imkonini beradi.

    freq = Hash.new(0) while gets() $_.split(/W+/) da soʻz uchun freq += freq.keys.sort da soʻz uchun 1 oxiri! bosma so'z, " -- ", freq, "n" oxiri

    Bu erda standart sinf kutubxonasidan foydalanishning ikkita oddiy misoli keltirilgan. Birinchi dasturni bajarish natijasida 7/8+1/8=1, va 7/8*1/8=7/64; ikkinchisi (1 + i)64 ni hisoblab chiqadi.

    "ratsional" talab a = Ratsional(7,8) b = Ratsional(1,8) chop a, "+", b, "=", a+b, "; ", a, "*", b, " =", a*b, "n" uchun "kompleks" talab qilinadi a = Kompleks(1,1); a**64 chop eting

    Qo'shimcha tushuntirishlarsiz, bu erda SongList sinfi uchun operatorning bekor qilinishini ko'rsatadigan ikkita ekvivalent dastur mavjud. Assotsiativ massiv (xesh yoki lug'at) nafaqat butun sonlar, balki ixtiyoriy ob'ektlar tomonidan indeksatsiya qilish imkonini beradi. Bunday holda, operator kerakli qo'shiqni nafaqat raqam, balki uning nomi bilan ham topishga imkon beradi.

    class SongList def (kalit) if key.kind_of?(Integer) i uchun @songs elseni qaytaring [elektron pochta himoyalangan] qaytish @songs[i] agar kalit == @songs[i].name end end qaytish nil end end sinf SongList def (kalit) return @songs if key.kind_of?(Integer) return @songs.find ( |aSong| aSong .name == kaliti ) end end

    Ruby ko'plab tillarning eng yaxshi xususiyatlarini meros qilib olganligi sababli, odatda standart vazifalarni bajarish uchun bir nechta turli xil variantlar mavjud. 0 dan 9 gacha raqamlarni yozishning 13 (!) xil usuli:

    i bo'lganda i = 0 i = 0< 10 begin print i , " " print i , " " i += 1 i += 1 end end while i < 10 i = 0 i = 0 until i >= 10 start i, " " print i, " " i += 1 i += 1 end end qadar i >= 10 for i in for i in (0..9) print i, " " i ni chop etish, " " end end for i in (0...10) 10.times do |i| print i, " " print i, " " end end 0.upto(9) do |i| 9.downto(0) do |i| chop i, " " print i, " " end end (0..9).har biri do |i| (0...10).har biri |i| qiladi chop i, " " chop i, " " end end i = 0 loop do if i< 10 then print i, " " else break end i += 1 end

    Va nihoyat, Ruby-ni bilmaganlar uchun savol: keyingi dastur nimani chop etadi?

    chop etish ["L", "R", "H", "T"].to'plash ( |x| x.succ )

    Agar siz javobni taxmin qila olsangiz, bu Ruby intuitiv til ekanligining eng yaxshi tasdig'i bo'ladi. Agar siz taxmin qilmasangiz, uni o'rganish uchun yana bir sababingiz bo'ladi.

    Ruby va yangi boshlanuvchilar

    Bu til, shubhasiz, birinchi dasturlash tili sifatida eng yaxshi tillardan biridir. Tez rivojlanish tsikli (tahrirlash-ishlash-tahrirlash), tarjimondan foydalanish, mahalliy ob'ektga yo'naltirilganlik, deklaratsiyani talab qilmaydigan yozilmagan o'zgaruvchilar - bularning barchasi o'quvchilar e'tiborini dasturlashning umumiy tamoyillariga jamlash imkonini beradi.

    Ruby-ning ko'p platformali tabiati va uning bepul dasturiy ta'minot olamiga a'zoligi bundan kam emas. Uning foydasiga yana bir jiddiy dalil - bu tilni turli sohalarda amaliy qo'llash imkoniyati, bu boshlang'ichdan o'sgan mutaxassisga behuda sarflangan vaqtdan afsuslanishga yo'l qo'ymaydi.

    Shuni ta'kidlash mumkinki, yuqorida sanab o'tilgan talablarning katta qismi Python, Java, C++ va hattoki (kamroq darajada) Delphi tomonidan qondiriladi. Biroq, ularning oxirgisi tijorat mahsuloti bo'lib, uni avtomatik ravishda ko'rib chiqishdan chiqarib tashlashga olib kelishi kerak. Biroq, Rossiyada, hatto maktab o'quvchilari uchun dasturlash musobaqalari tashkilotchilari orasida, Delphi tarqatish narxi taxminan 70 rublni tashkil qiladi, deb da'vo qiladigan odamlar bor!

    Keling, avvalo Ruby va Java tillarini solishtirishga harakat qilaylik, ularga dasturlash olami bilan endigina tanishishni boshlagan odamning nigohi bilan qaraymiz. Bunday odam uchun dasturlarning ravshanligi va qisqaligi, ularda g'alati va tushunarsiz narsalarning yo'qligi nihoyatda muhimdir.<<магических>> so'zlar. An'anaviy birinchi dasturning Java versiyasi asosan ulardan iborat!

    public class Salom ( public static void main(String args) ( System.out.println("Salom, dunyo!"); ) )

    Ruby-dagi shunga o'xshash dasturni tushuntirish uchun ko'p vaqt talab qilinmaydi:

    "Salom, dunyo!"

    Ruby bu ma'noda juda do'stona tildir. Yangi boshlovchi tomonidan yozilgan dastur juda qisqa bo'lishi mumkin va ortiqcha hech narsa o'z ichiga olmaydi, lekin bunday dasturni yaratish, asosan, faqat sog'lom fikrni talab qiladi.

    Java tilidan farqli o'laroq, Ruby-da hech qanday muammo yo'q<<больших>> raqamlar. Raqam yoki Fibonachchi raqamlarining faktorialini hisoblash uchun yuqoridagi dasturlar Ruby tilida yozilganda har doim to'g'ri natija beradi. Java tilida ifodalanadigan butun sonlar oralig'idagi cheklovlar absurd (maktab o'quvchisi yoki birinchi kurs talabasi nuqtai nazaridan) tengliklarga olib keladi.

    Dasturlashni endigina o'rgana boshlagan odam uchun noxush syurpriz!

    Yana bir muhim omil - Ruby klaviaturadan yoki fayldan ma'lumotlarni kiritish uchun foydalanadigan usullarning soddaligi. Java tiliga kelsak, ushbu operatsiyalarning murakkabligi yangi boshlanuvchini keraksiz muammolardan himoya qilib, ehtiyotkorlik bilan maskalanishi kerak.

    Ruby tarqatilishining ixchamligi va uni har qanday operatsion tizimga o'rnatish qulayligi maktab o'quvchisi yoki talabaga uy kompyuterida muammosiz ishlash imkonini beradi. Yana taqqoslash Java foydasiga emas!

    Python ko'p jihatdan Rubyga o'xshaydi. Ushbu ikki til o'rtasidagi yuqoridagi farqlardan, biz ko'rib chiqayotgan dastlabki dasturlashni o'rgatish holati uchun bu ayniqsa ahamiyatli bo'lib chiqdi.<<двумерный>> Python tilida ishlatiladigan sintaksis. Bu xususiyat dastlab aniq emas va birinchi navbatda yo'lda bo'ladi. Umuman olganda, birinchi dasturlash tili sifatida Ruby foydasiga asosiy dalil uning boshqa ko'pgina afzalliklari emas, balki intuitiv ravshanligi va bashorat qilinishidir.

    Ruby va professionallar

    Ruby professional dasturchi va tizim ma'muri uchun nima yaxshi? Yuqorida ko'p narsa aytilgan, ammo bu erda yana bir nechta qiziqarli misollar va qisqacha sharhlar mavjud.



     


    O'qing:



    Android uchun minecraftni yuklab oling: barcha versiyalari

    Android uchun minecraftni yuklab oling: barcha versiyalari

    - bu Android qurilmalari uchun mavjud bo'lgan juda mashhur o'yin! An'anaga ko'ra, unda siz band bo'lgan qahramonni boshqarasiz...

    Minecraft 1 uchun modlarni yuklab oling

    Minecraft 1 uchun modlarni yuklab oling

    Ushbu bo'limda siz Minecraft Pocket Edition o'yiniga kerak bo'lgan modni mutlaqo bepul va tez yuklab olishingiz mumkin. Bizning veb-saytimizda ...

    ModPack Zeus002 mods yuklab olish bu yerda World Of Tanks mod to'plami

    ModPack Zeus002 mods yuklab olish bu yerda World Of Tanks mod to'plami

    Tankerlar orasida eng mashhur bo'lim - bu WoT uchun turli xil mods to'plamlari. WoT uchun mod birikmalarining turlari Mashhur video ishlab chiqaruvchilar tomonidan yaratilgan....

    Nega minecraft men uchun ishlamaydi?

    Nega minecraft men uchun ishlamaydi?

    Minecraft-ni ishga tushirish bilan bog'liq muammolar tez-tez yuzaga keladi. Buning bir qancha sabablari bor. Kompyuterda Java qo'shimchasi bo'lmasligi mumkin, ularsiz ...

    tasma tasviri RSS