Ռուբին սովորելը. Ինչի մասին է այս դասընթացը և ինչու է այն ինձ անհրաժեշտ: Ավարտման վկայականներ

Տղերք կրակ, իհարկե կրակ, ամեն ինչ կրակ է!!! Սկսած հենց հիմունքներից և անցնելով ավելի բարդ բաների, դասընթացը տալիս է և՛ տեսական հիմք, և՛ մեծ պրակտիկա: Դասընթացը միտված է ապահովելու, որ ուսանողն իր գլխում կառուցի ճիշտ մտածողությունը ծրագրավորողի տեսանկյունից։ Ինձ շատ դուր եկավ այս դասընթացը, խորհուրդ եմ տալիս բոլորին՝ ինչպես սկսնակների, այնպես էլ նրանց, ովքեր արդեն ծանոթ են ծրագրավորման հիմունքներին։ Շնորհակալություն տղաներին իրենց արժեքավոր աշխատանքի և փորձի համար:

Շատ լավ դասընթաց - լավ արված տղաներ: Աստիճանաբար ծրագրավորողի կյանքի համար անհրաժեշտ ամբողջ նվազագույնը մտցվում է ուղեղի մեջ, և նրանք դեռ նետվում են ավելի առաջադեմ բուլկիներով։

Նյութի ներկայացումն ուղղակի կրակ է, այնքան հետաքրքիր էր դիտել բոլոր տեսանյութերը և հետո անցնել տնային առաջադրանքները, միայն մեկը. phpshnik-ի ճանաչումըինչ արժե և ամեն ինչ կա:

Անհատական ​​մոտեցում DZ ընդունելիս (ոչ ֆորմալ հիմունքներով) – կախված ձեր ակադեմիական արդյունքներից՝ ուսուցիչները կարող են բարդացնել ձեզ առաջադրանքը կամ խնդրել ձեզ դա անել՝ օգտագործելով ավելի առաջադեմ տեխնոլոգիաներ:

Ինչը շատ լավն է՝ 24/7 աջակցություն անգործության մեջ:

Հրաշալի վեբինարներ, որոնց վրա տեղի է ունենում դեբրիֆինգ, և ոչ միայն, ես մի քանի անգամ վերանայեցի դրանցից մի քանիսը, քանի որ նյութը շատ կարևոր է և շատ լավ բացատրված:

Բայց ինձ համար ամենակարևորն այն էր, որ դասընթացներն ինձ ընկղմում են բոլորովին այլ վիճակի մեջ՝ ինչ-որ նոր բանի անընդհատ ընկալման վիճակ, գիտելիքի ցանկություն, և սա ամենակարևորն է. Ես շարժվում եմ դրա շնորհիվ։ Շատ շնորհակալ եմ ուսուցիչներին նոր կյանք տալու համար՝ լցված գիտելիքի տենչով, հիասթափություն չաշխատողից և ուրախություն ֆիքսվածից։

Դասընթացը պարզապես զարմանալի է: Նյութի հստակ բացատրություն՝ անկախ դրա բարդությունից։ Շատ շնորհակալություն ուսուցիչներին: Նրանք արագ պատասխանում են հարցերին և տալիս ողջամիտ և կոնկրետ արձագանքներ կատարված առաջադրանքների վերաբերյալ: Արդյունքն ինքնին խոսում է՝ 5 ամիս, և ես հաջողությամբ անցա հարցազրույցը։ Գերազանց դասընթաց! Արժե անցնել!

Ruby on Rails ծրագրավորող, Taganrog, github

Ցնցող դասընթաց. Հարուստ, ոչ ձանձրալի, մինչև վերջ: Գերազանց ուսուցիչներ. Ես ընդհանրապես ոչ մի մինուս չգտա: Նրանց նկատմամբ մարդկայնորեն են վերաբերվում։ Ես մտա որպես լրիվ նորեկ: Հիմա ես սուպեր նորեկ եմ: Ես գրեցի ruby ​​​​ծրագիր (մեկից ավելի), գրեցի rails հավելված (ավելի քան մեկ), տեղադրեցի սերվեր, տեղադրեցի հավելված, հավելվածին կցեցի տարբեր գործառույթներ, պարզեցի տիրույթներ, ssl վկայագրեր, dns, թույլտվություններ և շատ ավելի. Ես շտապում եմ ճակատամարտ, ինքնուրույն նախագիծ եմ վերցնում: Ընդհանրապես, շատ շնորհակալ եմ, լավ ծրագրավորողներ:

Ruby on Rails ծրագրավորող, Մոսկվա, github

Ես սկզբունքորեն չէի պատրաստվում դասընթացներ անցնել, բայց այն, թե ինչպես են այս տղաները ներկայացնում նյութը, մեծ ցանկություն է առաջացնում նրանց հետ աշխատելու, սովորելու, պարզապես շփվելու։

Դասընթացի հիմնական առավելությունն այն է, որ տղաները իսկապես սիրում և ցանկանում են սովորեցնել մարդկանց։ Դասընթացը ՉԻ «Դե, մենք ձեզ նյութը տվել ենք այնտեղ, և հետո ինքներդ պարզել» ձևաչափը: Այս դասընթացն ավարտելուց հետո դուք կարող եք ապահով կերպով անցնել աշխատանքի որպես Rails-ի ծրագրավորող:

Ruby on Rails ծրագրավորող, Կրասնոդար, github

Վեբ հավելվածի մշակման ժամանակ օգտագործվող հիմնական կետերը բացատրվում են մատչելի ձևով։ Դիտարկվում են նաև ռելսերի ամենահայտնի գոհարները:

Նրանք լավ են ստուգում տնային աշխատանքը և մանրամասն մեկնաբանություններ անում: Գնահատում եմ, որ տղերքը դասընթացի ավարտից հետո քեզանից չեն հրաժարվում ու կապի մեջ են, օգնում են խոսքով ու գործով)) Կայքն այնքան էլ հարմար չէ ինֆորմացիա որոնելու առումով, մանավանդ երբ ավարտում ես բոլորը. 71 դաս, բայց մնացածը կարծում եմ տղաները կվերջացնեն, դժգոհելու բան չկա։

Թիմի առաջատար AirBnB-ում, Սան Ֆրանցիսկո

Ես առցանց ուսուցման զգալի փորձ ունեմ. սա լավագույնն է առցանց դասընթացնրանցից, ում ես երբևէ հանդիպել եմ: Ամեն ինչ մշակված է՝ որակյալ նյութ, գերազանց ներկայացում։ Եվ ամենակարևորը, դասընթացից հետո դուք իսկապես կարող եք ծրագրավորող դառնալ:

Ես ապրում եմ Սիլիկոնյան հովտում, հաճախում եմ տարբեր հանդիպումների և սեմինարների, հանդիպում տեղական գովասանական ճամբարների շրջանավարտների (որոնց արժեքը, ի դեպ, 4 ամսվա համար կազմում է 12 հազար դոլար) և հասկանում եմ, որ դասընթացից հետո իմ գիտելիքները բազմապատիկ են։ ավելին, քան Սիլիկոնային հովտի այս հայտնի ճամբարների շատ շրջանավարտները, չնայած այն հանգամանքին, որ ես սկսել եմ զրոյից և երբեք չեմ բացել տերմինալը մինչև «Լավ ծրագրավորողը»))

Կսպասեմ աշխատանքի թույլտվության ու անպայման աշխատանքի կանցնեմ։ Դասընթացից հետո ես դրա համար ուժ եմ զգում իմ մեջ, գիտեմ, որ դա հնարավոր է: Շնորհակալություն տղաներ։

Իմ կարծիքով, տղաները ստեղծել են շքեղ դասընթաց, որը հարմար է ինչպես բոլորովին սկսնակ ծրագրավորողների, այնպես էլ նրանց համար, ովքեր արդեն ունեն այլ լեզուների և գրադարանների հետ աշխատելու փորձ:

Գերազանց նյութ և ներկայացում, վերաբերմունք ընդհանրապես և վեբինարների մթնոլորտը: Տղաները քրտնաջան աշխատում են յուրաքանչյուր ուսանողի օգնելու համար՝ անհրաժեշտության դեպքում ծամելով ամենափոքր մանրուքը: Դասընթացի ավարտից հետո դուք վստահ եք զգում ձեր ուժերի վրա, հասկանում եք, որ միանգամայն հնարավոր է աշխատանքի տեղավորվել ՏՏ ոլորտում, եթե կա ցանկություն։

Հիանալիորեն տրված է ծրագրավորման հիմնական ըմբռնման հիմքերը: Տրված են հետաքրքիր ու իրական առաջադրանքներ, որոնց լուծումը կօգնի ու օգտակար կլինի հետագայում։

Ես ամփոփում եմ. Այս դասընթացը համարում եմ լավագույններից մեկը, և անպայման խորհուրդ եմ տալիս բոլորին, ովքեր կորոշեն իրենց կյանքը նվիրել ծրագրավորման ոլորտին։ Այս պահին ակտիվ աշխատանք փնտրելիս պահանջարկը բավականին մեծ է, հետևաբար ամեն ինչ ձեր ձեռքերում է։ Շատ շնորհակալ եմ տղերք, և մաղթում եմ ձեզ լավագույնը ապագայում:

Ruby on Rails-ի մշակողը

Դասընթացը օգնեց, ես սովորեցի, թե ինչպես ծրագրավորել Ruby-ով և Rails-ով, ես սուպեր-թույն ծրագրավորող չեմ, բայց գիտեմ, որ կարող եմ գրել ամեն ինչ, գուցե կարիք լինի լրացուցիչ կարդալ:

Նպատակն էր «սովորել, թե ինչպես ծրագրավորել և աշխատանք գտնել»: Առաջադրանքը կատարվեց 100%-ով, ես սովորեցի ծրագրավորել, նրանք գործի անցան։

"Բարեւ Ձեզ! Ինչ ես անում?" - Այո, ես մի բան կծրագրավորեմ Ruby-ում: - «Դա վարակակա՞ն է:-)»:
Ահա մի խոսակցություն, որ այսօր ունեցել եմ ընկերոջս հետ. Ինչու Ռուբին:

Ինչու՞ սովորել Ռուբին

Այս հարցը վերաբերում է նրանց, ովքեր երկար ժամանակ և հաջողությամբ ծրագրավորում են PHP-ով։ Դուք տիրապետել եք մեկ լեզվի, որը հիանալի է, բայց մի կանգնեք դրանով: Շատերը կարող են առարկել, որ նրանք գիտեն լեզուն, կողմնորոշված ​​են nyoi-ում և արդեն սովորել են դրա հետ բոլոր հնարքները: Ես կնշեմ Ռուբին սովորելու մի քանի պատճառ:

  1. Հետաքրքրասիրություն. Օրինակ՝ ինձ համար շատ հետաքրքիր էր բաց դասերի հետ աշխատելը։ Ահա թե ինչպես կարելի է վերցնել և ներարկել ձեր մեթոդը համակարգի դասի մեջ. իմ կարծիքով դա հիանալի է: Արդյո՞ք խառնաշփոթ կլինի: Իսկ ինչպե՞ս դա անել։ Ընդհանրապես, ամեն նորը հետաքրքիր է։
  2. . Որովհետեւ Ես երկար ժամանակ ծրագրավորում եմ PHP-ով, մտածում եմ, թե ինչով կարող է պարծենալ Ռուբին PHP-ի դիմաց /
  3. Ruby Speed. Թվիթերը պատրաստվում է Ruby-ով (չնայած այն վերջերս լքվել է): Ես կցանկանայի իրականում փորձարկել դրա կատարումը:
  4. Խնդրի դաս. Ruby-ը լավ է վեբ հավելվածների համար: Այդպե՞ս է։
  5. Մետածրագրավորում.Թերևս ամենագլխավոր պատճառը.

Ինչպես սովորել Ռուբին: Կոնսպեկտ.

Այստեղ իմ առաջին սխալն այն էր, որ ես սկսեցի սովորել շրջանակը՝ առանց լեզուն իմանալու: Հիմա ես հասկանում եմ, որ դա պետք չէ։ Մի որոշ ժամանակ մոռանալով Ruby on Rails-ի մասին, ես սկսեցի ուսումնասիրել հենց Ruby-ին, քանի որ տոմսերի համակարգում երկար ժամանակ կախված էր համակարգային խնդիր, որը դժվար էր լուծել php-ով։ Ես իսկապես չէի ուզում դրան արմատական ​​թույլտվություններ տալ: Այսպիսով, ծրագիրը սա է.

  1. Գործառույթներ, դասեր, հանրային դասեր: Հատկանիշներ (աքսեսուարներ և մուտատորներ):
  2. Աշխատում է լարերի հետ, զանգվածներով։ Ենթատողերի որոնում և փոխարինում և այլն: Տիպի փոխակերպում.
  3. Ֆայլերի հետ աշխատելը.
  4. Համակարգային միջավայրի հետ աշխատելը:
  5. Հավելվածի ձևավորում, գոհարների հետ աշխատանք (մոդուլներ).
  6. Աշխատում է DB-ի հետ:
  7. Ruby-ի տեղադրում Rails-ում, .

Այս գրառման մեջ ես կհրապարակեմ իմ առաջին Ruby հավելվածը և կհրավիրեմ բոլորին քննարկման։ Նշեք սխալները, առաջարկեք լավագույն փորձը, հարցեր տվեք:

Եկեք միասին սովորենք Ռուբին:

Դաս 1. Առաջին հավելվածը Ruby-ում:

Խնդիրը սա է. Հոսթինգում կա DNS սերվեր, և ruby ​​կոնսոլի կոմունալ ծառայությունը զանգահարելիս անհրաժեշտ է ավելացնել գոտի տիրույթի համար, ինչպես նաև գոտիների մուտքագրում գոտիների ցանկում (domains.list) և փոխել մեկ մուտք տվյալների բազան, որտեղ գրանցել այս տիրույթը: Տվյալների բազայի մուտքի կարգավորումները պահվում են php հավելվածում, մասնավորապես նրա INI ֆայլում: Բոլոր քայլերից հետո դուք պետք է վերագործարկեք DNS սերվերը (bind):

Աշխատանքային սեղան Ռուբիի համար

Որպես IDE, ես կօգտագործեմ RubyMine-ը JetBrains-ից: Ինձ շատ դուր եկան։ Չնայած խոսքը phpStorm-ի մասին էր, բայց որակն անմիջապես տեսանելի է։ Մենք տեղադրում ենք Ruby-ը RVM-ի միջոցով նախ բոլոր օգտատերերի համար, այնուհետև այն տեղադրում ենք root-ի և մեր օգտվողի համար:

Ռուբիի հանրային դասերի ընդլայնում

Ruby-ում INI ֆայլերի հետ աշխատելու համար մենք օգտագործում ենք gem inifile-ը: Բայց դա մի փոքր խնդիր ունի. ZF INI ֆայլում դուք կարող եք ապահով կերպով օգտագործել հաստատունները, և տողերն այսպիսի տեսք ունեն.

IncludePaths = APPLICATION_PATH «/../vendors/Doctrine/»

Այստեղ APPLICATION_INI-ից այնուհետև քանդում է ադամանդների վերլուծիչը: Մասնավորապես, այս տողը չի համապատասխանում որևէ օրինաչափության.

@rgxp_comment = %r/\A\s*\z|\A\s*[#(@մեկնաբանություն)]/ @rgxp_section = %r/\A\s*\[([^\]]+)\] /o @rgxp_param = %r/\A([^#(@param)]+)#(@param)\s*"?([^"]*)"?\z/

Ահա թե ինչ իրավիճակ է հանրային դասերի օգտագործման համար. Եկեք փոխարինենք IniFile::parse ֆունկցիան մերով: Բոլոր լրացումները կավելացնեմ funntion.rb ֆայլին

Class IniFile private # # call-seq # parse # # Վերլուծել ini ֆայլի բովանդակությունը: # def parse return, եթե File.file?(@fn) բաժինը = nil tmp_value = "" tmp_param = "" fd = (RUBY_VERSION >= "1.9" && @encoding) ? File.open(@fn, "r", :encoding => @encoding) : File.open(@fn, "r") while line = fd.gets line = line.chomp # mutline start # ստեղծել tmp փոփոխականներ նշելու համար որ multine-ը սկսել է #, և ini ֆայլի հաջորդ տողերը կստուգվեն # մյուս mutline rgxps-ի հետ: եթե տող =~ @rgxp_multiline_start, ապա tmp_param = $1.strip tmp_value = $2 + "\n" # mutline end-delimiter-ը գտնվել է # մաքրել tmp vars-ը և ավելացնել պարամ / արժեք զույգը բաժին elsif տողում =~ @rgxp_multiline_end && tmp_param != "" ապա բաժին = tmp_value + $1 tmp_value, tmp_param = "", "" # ցանկացած այլ բան բազմագիծ սկզբի և վերջի էլսիֆ տողի միջև =~ @rgxp_multiline_value && tmp_param != "" ապա tmp_value += $1 + "\n" # անտեսել դատարկ տողերը և մեկնաբանությունների տողերը elsif տող =~ @rgxp_comment, ապա հաջորդ # սա հատվածի հայտարարագիր է elsif տող =~ @rgxp_section ապա բաժին = @ini[$1.strip] # հակառակ դեպքում մենք ունենք պարամետր elsif տող =~ @rgxp_param, ապա սկսել բաժինը[$1.strip] = $2.strip rescue NoMethodError բարձրացում Սխալ, «parameter has been first section» end elsif line =~ %r/APPLICATION_/ then next other raise Error, «could not parse line "#(line)" վերջի վերջը # իսկ ապահովել fd.close, եթե սահմանված է.fd և fd վերջ վերջ

Ես նաև ընդլայնելու եմ String դասը՝ տիրույթների վավերացումը թույլ տալու համար:

Դաս String սահմանել valid_domain_name? domain_name = self.split(".") name = /(?:+)+/.match(domain_name).nil? tld = /(?:(2)|aero|ag|asia|at|be|biz|ca|cc|cn|com|de|edu|eu|fm|gov|gs|աշխատատեղեր|jp|in|info| me|mil|mobi|թանգարան|ms|անուն|ցանց|nu|nz|org|tc|tw|tv|uk|us|vg|ws)/.match(domain_name).nl? (domain_name.count > 1 and name != false and tld != false) վերջ վերջ

Աղբյուրներ

Դե, հիմա ես ձեզ ցույց կտամ իրական աղբյուրը:
index.rb

#coding. utf-8-ը պահանջում է «mysql2»-ը պահանջում է «socket»-ը պահանջում է «inifile»-ը պահանջում է «./functions.rb» # սերվերի մեքենայի հասցեների հոսթինգներ = ( :production => "83.168.22.1", :test => " 84.22 .11.1" ) util = Util.new(hosts) util.releative_config_path="/site.com/application/config/application.ini" # Ստուգեք պարամետրերը դադարեցնել, եթե (ARGV.count != 2) տիրույթ = ARGV հոսթի անունը = ARGV split(".") quit("Անվավեր տիրույթի անուն") if (not domain.valid_domain_name?) # Որոնել ընկերություն տվյալների բազայի արդյունքներում = Mysql2::Client.new(util.get_db_settings).query("SELECT id FROM `sites` WHERE `hostname` = "#(hostname)") quit("Ընկերությունը չի գտնվել") if result.count != 1 # Թարմացրեք իր հոսթի անվան տողերը = Array.new result.each(|տող| տողեր<< row} company_id = rows["id"] result = Mysql2::Client.new(util.get_db_settings).query("UPDATE `dbname`.`sites` SET `domain` = "#{domain}" WHERE `dao_companies`.`id` =#{company_id};") # Добавление зоны bind_config_path = "/etc/bind" default_zone_file = bind_config_path + "/zones/DEFALT" new_zone_file = bind_config_path + "/zones/#{domain}.zone" zones_list_file = bind_config_path + "/domains.lst" quit("File with default zone does not exists") unless File.exist?(default_zone_file) quit("File with zones list does not exists") unless File.exist?(zones_list_file) zone = IO.read(default_zone_file).gsub("SERIAL",Time.now.strftime("%Y%m%d%S")).gsub("DOMAIN", domain) if not File.exist?(new_zone_file) then File.open(new_zone_file, "w") {|f| f.puts(zone) } else quit("Domain "+domain+" zone already exists!") end # Добавление зоны в список zone = "zone \"#{domain}\" { type master; file \"/etc/bind/zones/#{domain}.zone\"; };" if not IO.read(zones_list_file).include?(domain) then File.open(zones_list_file, "a") {|f| f.puts(zone) } end # Перезапуск сервисов (bind9) system("service bind9 restart") puts "Completed"

թանկարժեք ֆայլ
Այս ֆայլը նկարագրում է նախագծի կախվածությունը:

Աղբյուր.rubygems gem «mysql2», «0.2.6» gem «inifile»

Դե, իրականում ներառված գործառույթներ:
գործառույթներ.rb

#կոդավորում՝ utf-8 դասի String def valid_domain_name? domain_name = self.split(".") name = /(?:+)+/.match(domain_name).nil? tld = /(?:(2)|aero|ag|asia|at|be|biz|ca|cc|cn|com|de|edu|eu|fm|gov|gs|աշխատատեղեր|jp|in|info| me|mil|mobi|թանգարան|ms|անուն|ցանց|nu|nz|org|tc|tw|tv|uk|us|vg|ws)/.match(domain_name).nl? (domain_name.count > 1 and name != false and tld != false) end end class IniFile private # # call-seq # parse # # Վերլուծել ini ֆայլի բովանդակությունը: # def parse return, եթե File.file?(@fn) բաժինը = nil tmp_value = "" tmp_param = "" fd = (RUBY_VERSION >= "1.9" && @encoding) ? File.open(@fn, "r", :encoding => @encoding) : File.open(@fn, "r") while line = fd.gets line = line.chomp # mutline start # ստեղծել tmp փոփոխականներ նշելու համար որ multine-ը սկսել է #, և ini ֆայլի հաջորդ տողերը կստուգվեն # մյուս mutline rgxps-ի հետ: եթե տող =~ @rgxp_multiline_start, ապա tmp_param = $1.strip tmp_value = $2 + "\n" # mutline end-delimiter-ը գտնվել է # մաքրել tmp vars-ը և ավելացնել պարամ / արժեք զույգը բաժին elsif տողում =~ @rgxp_multiline_end && tmp_param != "" ապա բաժին = tmp_value + $1 tmp_value, tmp_param = "", "" # ցանկացած այլ բան բազմագիծ սկզբի և վերջի էլսիֆ տողի միջև =~ @rgxp_multiline_value && tmp_param != "" ապա tmp_value += $1 + "\n" # անտեսել դատարկ տողերը և մեկնաբանությունների տողերը elsif տող =~ @rgxp_comment, ապա հաջորդ # սա հատվածի հայտարարագիր է elsif տող =~ @rgxp_section ապա բաժին = @ini[$1.strip] # հակառակ դեպքում մենք ունենք պարամետր elsif տող =~ @rgxp_param, ապա սկսել բաժինը[$1.strip] = $2.strip rescue NoMethodError բարձրացում Սխալ, «parameter has been first section» end elsif line =~ %r/APPLICATION_/ then next other raise Error, «could not parse line "#(line)" վերջի վերջը # իսկ ապահովել fd.close եթե սահմանված է: fd and fd end end def quit(message=nil) banner = " ====================== = === | DNS ավելացման գործիք | ============================ Օգտագործում՝ ruby ​​./index.rb domain.com olddomain.site.com», եթե ոչ հաղորդագրություն .nil, ապա դրոշակ = հաղորդագրության վերջը դնում է դրոշակի ելքի ավարտի դասը Util attr_accessor:hosts, :releative_config_path, :environment def initialize(hosts =Array.new) self.hosts = hosts end # Ստացեք տեղական IP հասցեն def local_ip orig, Socket.do_notverse_re = Socket.do_not_reverse_lookup, true # անջատել հակադարձ DNS լուծումը ժամանակավորապես UDPSocket.open անել |s|s.connect "64.233.187.99", 1 s.addr.last end ապահովել Socket.do_not_reverse_lookup = orig end # Get the denvironf @ ambient.nil? ապա hosts = self.hosts.invert if(hosts.include?(self.local_ip)) ապա @environment = hosts else @environment = «զարգացում» end else @environment.to_s end end def get_config_path local_username = get_local_username "/home/" +local_username+"/sandbox"+self.releative_config_path end # Վերադարձնում է օգտանունը, եթե կոմունալն աշխատում է rvmsudo-ի միջոցով կամ ուղղակիորեն def get_local_username, եթե ENV["SUDO_USER"]. զրո՞: quit («Util-ը պետք է գործարկվի rmvsudo-ով, \r\օրինակ՝ rvmsudo ruby ​​./index.rb domain.ru some.subdomain.ru») այլապես ENV[«SUDO_USER»] վերջի վերջը def get_db_settings config = IniFile:: load(self.get_config_path) section_name = self.get_environment.to_s + " : bootstrap" quit("Կարգավորման ֆայլում համապատասխան բաժին չկա"), եթե config.has_section?(section_name) dsn = config.to_h["resources.doctrinedata.connections. լռելյայն. գաղտնաբառը = > arr.split(":"), :host => arr.split("/"), :database => arr.split("/") ) վերջ վերջ

Բայց ինչ վերաբերում է PHP-ին:

Այս գրառումը PHP-ից հրաժարվելու և ռուբին սովորելու մասին չէ: PHP-ն ամենահայտնի վեբ ծրագրավորման լեզուն է, որի վրա ներդրված են հազարավոր հետաքրքիր բաներ և ալգորիթմներ, ներառյալ։ նույնիսկ նեյրոնային ցանցեր։ Իսկ ես սիրում եմ նրան) Տարիների ընթացքում կարելի է ասել, որ ես նրա հետ հարազատ դարձա՝ չնայած նրա բոլոր թերություններին։ Բայց դա չի նշանակում, որ դուք չպետք է նոր բան սովորեք ինքներդ ձեզ համար։

Վերջերս ինձ հարց տվեցին, թե ինչ գրքերից սովորեմ Ռուբին: Ես կարդում եմ այս մեկը հենց հիմա:

Այս գիրքը ռուբի դինամիկ ծրագրավորման լեզվի պաշտոնական ուղեցույցն է: Հեղինակների թիմն իսկապես աստղային է. Դեյվիդ Ֆլենագանը ծրագրավորման ոլորտում հայտնի մասնագետ է, JavaScript-ի և Java-ի մի շարք ամենավաճառվող գրքերի հեղինակ; Յուկիհիրո «Մաց» Մացումոտոն Ruby-ի ստեղծողն ու գլխավոր մշակողն է:
Գիրքը մանրամասն նկարագրում է լեզվի բոլոր ասպեկտները՝ Ruby-ի բառային և շարահյուսական կառուցվածքը, տվյալների և տարրական արտահայտությունների տարատեսակները, մեթոդների, դասերի և մոդուլների սահմանումները: Բացի այդ, գիրքը պարունակում է տեղեկատվություն Ruby հարթակի API-ների մասին:

Հրապարակումը կհետաքրքրի փորձառու ծրագրավորողներին, ովքեր ծանոթանում են Ruby-ի նոր լեզվին, ինչպես նաև նրանց, ովքեր արդեն ծրագրավորում են Ruby-ով և ցանկանում են հասնել ըմբռնման և վարպետության ավելի բարձր մակարդակի: Դուք կարող եք գտնել օզոնի մասին գիրք կամ բիբլիո-գլոբուս:

Ես անհամբեր սպասում եմ ձեր մեկնաբանություններին կոդի և ցանկացած հետաքրքիր գաղափարի վերաբերյալ:)

Շնորհակալություն!

Եթե ​​հոդվածն օգնեց ձեզ, կամ ցանկանում եք աջակցել իմ հետազոտությանը և բլոգին, ապա այստեղ Լավագույն միջոցըԱրա:

Ես վաղուց էի ուզում սովորել Ruby on Rails-ը որոշների վրա հիմնական մակարդակ. Ոչ մի կոնկրետ նպատակ: Ավելի շուտ, միայն ինձ համար, որպեսզի ավելի լավ հասկանամ, թե ինչն է այդքան առանձնահատուկ դրանում (ի տարբերություն 100,500 այլ տեխնոլոգիաների և շրջանակների), ինչը թույլ է տալիս արագ ստեղծել և մասշտաբավորել բավականին ծանրաբեռնված ինտերնետային նախագծեր: Երկրորդական պատճառը սովորելու նոր մոտեցումներ փորձելու ցանկությունն էր: Երբ ես ծրագրավորող էի սովորում, մենք ունեինք միայն գրքեր և ֆորումներ, որտեղ կարող ես խորհուրդներ խնդրել: Այժմ կան ինտերակտիվ դասագրքեր և առցանց ծրագրավորման դպրոցներ, հսկայական թվով էկրաններ (գրեթե երազանք. դիտել, թե ինչպես են գուրուների կոդավորումը), գիտելիքների բազաներ, ինչպիսիք են stackoverflow.com-ը և հազարավոր ելակետային կոդ GitHub-ում, որտեղ կարող եք ժամեր անցկացնել՝ ուսումնասիրելով ելակետային կոդերը: իրական առավելություններից: Ես որոշեցի հաջորդ մի քանի գիշերները (իսկ ցերեկը ժամանակ չկա) նվիրել սովորելու նոր եղանակներ գործողության մեջ:

գիշեր մեկ

Տարօրինակ կլիներ սկսել Ruby on Rails-ը սովորել առանց Ruby-ի առնվազն նվազագույն իմացության ուղղակիորեն: Ես նախկինում վերցրել եմ ruby-lang.org ինտերակտիվ ուղեցույցը: Բայց երբ անցա այն, անմիջապես մոռացա ամեն ինչ։ Դրա ստեղծողները խոստանում են, որ տասնհինգ րոպե կպահանջվի Ruby-ի շարահյուսությունը յուրացնելու համար: Ինձնից երեսուն տարավ։ Ճիշտ է, Twitter-ում անընդհատ շեղումով: Գործընթացը մոտավորապես այսպիսի տեսք ունի. Նրանք ասում են ձեզ. «Ruby-ի զանգվածները հայտարարված են այսպես, և տվյալները վերցվում են նման զանգվածներից: Այժմ փորձենք կազմել զանգված և դրանից հանել N տարր։ Եվ մենք կստուգենք»: Դուք կարդում եք, թե ինչպես է ամեն ինչ դասավորվել, և անմիջապես փորձեք: Ռուբին դու, իհարկե, չես սովորի։ Ավելի լավ է մտածել այն որպես սուպեր-էքսպրես դասընթաց, որն աշխատում է:

Այնուամենայնիվ, Ruby-ն ինքնին շատ հեռու է Ruby on Rails-ի շրջանակից: Ես ուզում էի տիրապետել ռելսերին։ Առցանց կրթության մասին մեր հոդվածից ես հաստատ հիշեցի Railsforzombies.org սենսացիոն Zombie for Rails դասընթացը։ Դա ճիշտ այնպես, ինչպես «Փորձեք Ruby»-ն է՝ ինտերակտիվ ձեռնարկ, որը ձեզ սկսում է չղջիկից՝ սովորեցնելով, թե ինչպես պատրաստել երկաթուղային հավելվածներ: Նախ, նրանք ձեզ մինի դասախոսություն են տալիս (անգլերեն, բայց ամեն ինչ շատ պարզ է. միացրեք ենթագրերը) երկաթուղային հավելվածի ֆայլի կառուցվածքի, տվյալների հետ աշխատելու CRUD մոտեցման մասին, բացատրում են, թե ինչպես է MVC մոդելն իրականացվում ռելսերում: , և այլն։ Յուրաքանչյուր տեսանյութից հետո ձեզ առաջարկվում է կատարել առաջադրանքներ՝ նյութը համախմբելու համար: Ամեն ինչ պարզ և հասկանալի է թվում, դասընթացը մեկ-երկու ժամում աննկատ է անցնում (դա փոքր է): Բայց! Դասընթացից հետո ես զգացի՞, որ կարող եմ երկաթուղային հայտ գրել: Ցավոք, ոչ!

Գիշեր երկու

Պատճառներից մեկը, թե ինչու Rails for Zombies-ից հետո կան որոշ տարրական գիտելիքներ, բայց վստահություն չկա, վիրտուալ միջավայրն է, որում տեղի է ունենում թրեյնինգը: Մի կողմից, այն նվազեցնում է մուտքի շեմը մինչև սահմանը. պետք չէ անհանգստանալ շրջակա միջավայրի համար: Մյուս կողմից, դուք ճանապարհին իրական ոչինչ չեք ստեղծում. վերջում ձեզ համար «Բարև աշխարհ» չկա: Եվ ամենակարեւորը, թե որ կողմից մոտենալ դրա ստեղծմանը, պարզ չէ։ Այդ պահից ես ուզում էի փորձել Ruby on Rails-ը գործողության մեջ՝ իրականում տեղադրելով այն համակարգում (մինչ այդ ես նույնիսկ ստիպված չէի փորձել) և զրոյից ստեղծել պարզ հավելված։

Չեմ հիշում, թե ինչպես, բայց միանգամայն պատահաբար հանդիպեցի ռուսական rails.hasbrains.org-ում էկրանների շատ հաջող ընթացքի: Շնորհակալություն հեղինակին գրագետ ներկայացման համար. նա մեթոդաբար մանրամասնորեն բացատրում է երկաթուղային կիրառման սկզբունքները՝ ընկղմելով ձեզ ճանապարհին անհրաժեշտ բոլոր նրբությունների մեջ: Մի խոսքով, փորձի ողջ երկրորդ գիշերը ես դիտեցի այս էկրանավորումների ավելի քան երեսուն դրվագների առաջին կեսը:

Պատկերը վերջապես մնաց գլխումս, ինչպես է ստեղծվում հավելվածը, ինչպես աշխատել երկաթուղային կոնսոլի հետ, ինչպես ստեղծել մոդելներ և միգրացիաներ, ինչպես թարմացնել մոդելները և ինչպես վավերացնել դրանցում տվյալները, RESTful կարգավորիչներ և այլն: Դիտելով յուրաքանչյուր դրվագ՝ ես անմիջապես փորձեցի ամեն ինչ գործողության մեջ՝ կառուցելով լիովին աշխատող երկաթուղային հավելված։ Պարզ դարձավ, թե ինչպես են սկզբունքորեն դասավորված ռելսերը։

Գիշեր երրորդ

Երրորդ գիշերը մնացին էկրանների վերջին դրվագները, որոնք ես հասցրեցի դիտել մեկ նիստում՝ ռելսերի հետ աշխատելն այլևս այդքան վայրի չէր թվում։ Այս պահին ինչ-որ մեկն ինձ ասաց, որ Rails for Zombies դասընթացն ունի խելամիտ և շատ ավելի խորը շարունակություն: Ճիշտ է, դասընթացն արդեն վճարովի է և անցկացվում է Code School www.codeschool.com ծրագրավորման դպրոցի շրջանակներում։ 25 դոլար վճարելը դպրոցի բոլոր դասընթացներին մուտք գործելու համար ափսոս չէր։ Սա ամսական արժեքն է, այնպես որ, եթե այն ձեզ դուր չի գալիս, մի ​​մոռացեք չեղարկել ձեր բաժանորդագրությունը:

Rails for Zombies 2 դասընթացն իսկապես հաջողված էր: Ճիշտ է, շատ բան կրկնվում էր այն ամենի, ինչ ես տեսա էկրաններում, բայց նույնիսկ մի տեսակ հաճելի էր: Հինգ մակարդակ և վարժությունների հինգ բլոկ, որոնք դուք անում եք հենց ինտերակտիվ վահանակում: Այս պահին ռելսերն արդեն տրամաբանական, հասկանալի և օգտագործելի էին թվում:

Code School-ում դուք կարող եք ծրագրավորել անմիջապես բրաուզերում՝ կատարելով դասընթացի առաջադրանքները

Ի՞նչ է հաջորդը:

Սովորե՞լ եմ բարդ նախագծեր անել: Ոչ Բայց ես միանշանակ գիտակցում էի ռելսերում օգտագործվող մոտեցումները և հասկացա դրանց հարմարությունը: Սովորել եմ արագ ստեղծել պարզ հավելվածներև գերկարճ ժամանակում բարձրացնել իր ֆունկցիոնալությունը համայնքի կողմից գրված գոհարների օգնությամբ: Ես համարձակություն ձեռք բերեցի և հաճույքով շարունակում եմ ուսումնասիրել Code School ծրագրերի լավագույն փորձը (այժմ դիտում եմ միավորի թեստերի դասընթացը): Եվ ես անչափ գոհ եմ, որ սովորելու տեխնոլոգիան այդքան հեշտ է դարձել:

Համացանցում Rails-ի առաջին և ամենաընդգրկուն ձեռնարկներից մեկը: Հիմնական առավելությունն ամենաանհրաժեշտ հարցերի մանրամասն լուսաբանումն է, կանոնավոր թարմացումները և անվճար բովանդակությունը:

Ճիշտ է, ռեսուրսն ամբողջությամբ անգլերեն է։ Եվ կարևոր է հասկանալ, որ սա կառուցված է գրքի տեսքով. բոլոր հարցերը պետք է ինքներդ պարզեք: Այդ պատճառով մարզումների տևողությունը և բարդությունը հնարավոր չէ կանխատեսել:

2. Երկաթուղիներ

Մեկ այլ հայտնի Ինտերնետում ուսումնական ռեսուրս. Rails-ի մշակողների մեկից ավելի սերունդը մեծացել է դրա վրա: Նաև անգլերեն։

Այն կառուցված է ոչ թե որպես ամբողջական վերապատրաստման դասընթաց, այլ որպես էկրանային հեռարձակումների շարք՝ կարճ դասեր կոնկրետ թեմայով: Դասերը շատ են, կարող եք գտնել գրեթե ցանկացած թեմա:

Ցավոք, նախագիծը դադարել է թարմացվել 2013թ.

3. Ռելսեր զոմբիների համար

Սկսնակների համար ռելսերի ներածություն քվեստ ոճի խաղի մեջ՝ զոմբիի տրամադրությամբ: Այն շատ տարածված է ամբողջական սկսնակների շրջանում:

Հարմար է, որ ձեզ հարկավոր չէ որևէ բան տեղադրել ձեր համակարգչում։ Բոլոր հանելուկները լուծվում են բրաուզերում: Քայլ առ քայլ դուք անցնում եք խաղի միջով և սկսում եք հասկանալ Ruby on Rails-ի հիմունքները:

Եթե ​​դուք ընդհանրապես չեք հասկանում ծրագրավորումը, սա ձեր ընտրությունն է: Դասընթացում բարդ թեմաներ չկան, ոչինչ չի շեղում հիմունքներից: Անգլերեն.

3. Ուդեմի

Տեսադասընթացների մեծ հավաքածու։ Դրանցից շատերն են ռուբինի վրա և ռուբինի վրա ռելսերի վրա: Անիմաստ է կոնկրետ հղումներ տալ՝ ընտրեք ըստ ձեր ճաշակի՝ ըստ գնի կամ ժողովրդականության:

Udemy ձևաչափը ներառում է բավականին կարճ դասընթացներ՝ շեշտը դնելով վիդեո դասերի վրա: Ուսուցիչներից լուրջ տնային աշխատանք կամ օպերատիվ աջակցություն մի սպասեք:

4. Ռուբի Բուրսա

Հզոր կարճ դասընթաց Rails-ի զարգացման հիմունքների վերաբերյալ: Փորձառու ուսուցիչներ, լավ ծրագիր։

Դասընթացին ուսանողի անձնական ներկայությունը ցանկալի է և այն տեղի է ունենում միայն Ուկրաինայի խոշոր քաղաքներում:

5. Զարգացում Ruby on Rails-ի վրա Չար մարսիացիներից

Եռօրյա ինտենսիվ՝ Ռուսաստանի ամենափորձառու Ruby on Rails թիմերից մեկից:

Հազվադեպ է արվում: Դա թանկ է (դատելով ակնարկներից, արժե այն): Պահանջում է անձնական ներկայություն: Հարմար է միայն առաջադեմ ծրագրավորողների համար, սկսնակների համար այնտեղ ոչինչ չկա անելու:

6. Ruby on Rails Online Intensive Good Programmer-ից

Թարմ նախագիծ մի թիմի կողմից, որը հայտնի է Youtube-ում իրենց Ruby դասընթացներով սկսնակների համար:

3-ամսյա ինտենսիվ ծրագիրը նախատեսված է լրիվ սկսնակների համար և խոստանում է ձեզ դարձնել կրտսեր ծրագրավորող՝ ոչ ավելի, քան 12 խելացի հավելվածների պորտֆոլիոյով:

Դասընթացը բաղկացած է տեսադասերից, գործնական առաջադրանքներից, ուսուցիչների աջակցությունից, կանոնավոր վեբինարներից:

Դատելով youtube-ի ալիքից և օգտատերերի մեկնաբանություններից՝ այս տղաները գիտեն, թե ինչ են անում, և դուք չեք ձանձրանա նրանցից։

Սա հոդվածների շարքից առաջինն է, որտեղ ես կխոսեմ Ruby-ի և Ruby on Rails-ի առանձնահատկությունների մասին և կկիսվեմ խորհուրդներով, թե ինչպես սկսել Ruby սովորել, որտեղ գտնել հարցերի պատասխանները, ինչպես ստանալ ճիշտ փորձ և ինչպես: դուք կարող եք առանձնանալ մյուս թեկնածուներից: Ուրախ կլինեմ, եթե իմ խորհուրդը օգնի ինչ-որ մեկին որոշել մասնագիտությունը և ընտրել Ռուբին սովորելու և աշխատելու համար։

Ruby-ի հիմնական հատկանիշներն ու տարբերությունները

Հաճախ եմ լսում հարց՝ արժե՞ սովորել Ռուբին: Որպես կանոն, հարցը հիմնված է կասկածների վրա՝ որքանո՞վ է հեշտ այս մասնագիտությամբ աշխատանք գտնելը, արդյոք կլինեն հետաքրքիր նախագծեր և այլն, և այլն։ Ruby-ը ժամանակակից, անընդհատ զարգացող ծրագրավորման լեզու է, դրա համար շատ հավելվածներ կան։ Դուք, անշուշտ, լսել եք Chef-ի, Vagrant-ի, Homebrew-ի մասին, բայց ամենից հաճախ բոլորս էլ լսում ենք Rails-ի մասին: Ահա մի գրառում՝ շրջանակի հեղինակի մեկնաբանությամբ, թե ինչու պետք է սովորել Rails-ը:

Իհարկե, յուրաքանչյուրն ինքն է որոշում, թե որ գործիքն օգտագործել: Եվ իմաստ չկա անվերջ վիճել այն մասին, թե ինչու է մի տեխնոլոգիան մյուսից լավը: Ես ընտրեցի Ruby-ն, քանի որ այն աներևակայելի արտահայտիչ և ճկուն լեզու է, որը թույլ է տալիս լուծել նույն խնդիրը բազմաթիվ առումներով:

Ruby-ը մեկնաբանված, ամբողջությամբ օբյեկտի վրա հիմնված ծրագրավորման լեզու է՝ ուժեղ դինամիկ մուտքագրմամբ: Այն համատեղում է Perl-ի նման շարահյուսությունը օբյեկտի վրա հիմնված մոտեցման հետ: Նաև որոշ առանձնահատկություններ փոխառված են Python, Lisp, Dylan և CLU ծրագրավորման լեզուներից: Ruby լեզվի թարգմանչի միջպլատֆորմային իրականացումը բաշխվում է բաց պայմաններով ծրագրային ապահովում. Ruby-ով գրված կոդը կարող է հասկանալ նույնիսկ այն մարդը, ով չի հասկանում ծրագրավորումը: RoR-ում ստեղծվել են այնպիսի նախագծեր, ինչպիսիք են Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb և այլն:

Node.js-ի աճով Ruby on Rails-ի հանրաճանաչությունը որոշ չափով նվազել է, սակայն տեխնոլոգիական ստարտափները հաճախ օգտագործում են RoR՝ նախատիպերի հեշտության պատճառով: Ruby-ը TIOBE-ի ինդեքսում 11-րդ ամենատարածված լեզուն է:

Ruby-ի առավելությունները

  • Բազմաթիվ և բարեկամական համայնք:
  • Բավականին բարձր խոչընդոտ է մուտքի համար, ինչը նշանակում է, որ Ruby ծրագրավորողը, ամենայն հավանականությամբ, կունենա փորձ առնվազն մեկ այլ ծրագրավորման լեզվով:
  • Դուք օգտագործում եք միայն ձեզ անհրաժեշտ գրադարաններն ու մոդուլները:
  • Կան մեծ թվով օգտակար գրադարաններ, որոնք պատրաստ են օգտագործման (Ruby Gems):
  • Ինտերնետում Ռուբիի մասին շատ տեղեկատվություն կա կառուցվածքային և մաղված տեսքով:
  • Ruby-ի քննարկման համատեքստում անհնար է չհիշատակել ամենահայտնի Ruby on Rails շրջանակը։

Հիմա եկեք ավելի մանրամասն խոսենք Ruby-ի որոշ առավելությունների մասին:

Զարգացման արագություն

Ruby-ի և RoR շրջանակի առավելություններից մեկը զարգացման արագությունն է: Անձնական փորձև գործընկերների փորձը ցույց է տալիս, որ Rails-ում խնդիրների լուծումը մեկուկես անգամ ավելի արագ է, համեմատած այլ նմանատիպ շրջանակների: Ruby-ը որպես գործիք շատ պարզ է, և կան հսկայական թվով պատրաստի լուծումներ տարբեր տեսակի խնդիրների համար:

Տվյալների քեշավորման կանոնավոր գործիքներ

Լայնածավալ նախագիծ մշակելիս ամենակարևոր կետերից մեկը քեշավորումն է: Ruby on Rails-ը գալիս է ստանդարտ տվյալների քեշավորման բնիկ գործիքներով: Այսինքն՝ դուք անմիջապես կունենաք նախագծում տվյալների քեշավորման գործիքներ, և հեշտությամբ կարող եք քեշավորել կոդերի առանձին բլոկներ կամ նույնիսկ ամբողջ էջեր։

Նախ թեստեր, ապա կոդ

Հաճախ խոշոր նախագծերի մշակման գործընթացում առաջանում է թեստավորման հարցը, և հազվադեպ չէ, երբ լրացուցիչ միջոցներ չկան փորձարկողների առանձին թիմի համար: Ռեյլսը այս խնդրին էլ լուծում ունի։ Եթե ​​դուք համեմատում եք RoR-ը այլ շրջանակների հետ հավելվածների թեստավորման համատեքստում, ապա դուք կգտնեք շատ պատրաստի լուծումներ ցանկացած տեսակի թեստերի համար՝ լինի դա ինտեգրացիոն, թե միավորի թեստեր: Այս բոլոր գրադարաններն աշխատում են առանց տուփի: Իդեալում, Ruby on Rails նախագծում կոդը չի գրվում, քանի դեռ դրա համար թեստեր չեն գրվել: RoR գաղափարախոսությունը ներառում է BDD (Behavior Driven Development) կամ TDD (Test Driven Development) մեթոդների նախնական օգտագործումը:

Ընդհանուր ընդունված զարգացման գործընթացի ստանդարտներ Ruby մշակողների համար

Խոսելով Ruby-ի առավելությունների մասին, ես չեմ կարող կրկին չնշել ռուբինի համայնքը: Այն անընդհատ աճում է, զարգանում և միշտ պատրաստ է օգնելու: Միշտ կա մեկը, ով ձեզ կասի, թե ինչպես լավագույնս լուծել խնդիրը, կիսվել փորձով ցանկացած հարցում:

Մեկ այլ շատ կարևոր կետ այն է, որ Ռուբի համայնքը երկար տարիներ ունի զարգացման գործընթացի չափանիշներ, որոշ կանոններ/համայնքային համաձայնագրեր, որոնք կարգավորում են զարգացումը, ինչը մեծապես հեշտացնում է աշխատանքը: Այս ստանդարտների շնորհիվ յուրաքանչյուր նախագիծ շատ կառուցվածքային է, համապատասխանաբար, թիմում նոր մշակողը արագ կհասնի իր արագությանը և կկարողանա օգտակար լինել աշխատանքի առաջին իսկ օրերից: Եվ նույնիսկ ավելին. եթե նախագիծը սկսել է մի թիմը և ավարտել մեկ այլ թիմ, սա նույնպես ընդհանրապես խնդիր չէ։ Քանի որ մշակումն իրականացվում է արդեն նշված կանոնների և համայնքային պայմանավորվածությունների համաձայն, նոր թիմը արագ և հեշտությամբ կխորանա ծրագրի մեջ և հաջողությամբ կավարտի այն առանց ժամանակի մեծ կորստի:

Նաև Ruby on rails-ն ունի մեծ թվով տարբեր պատրաստի լուծումներ հանրային տիրույթում: Լուծումների մեծ մասն արդեն իրականացվել է ձեզնից առաջ ինչ-որ մեկի կողմից, ինչպես նաև փորձարկվել է համայնքի կողմից, ինչը նվազեցնում է զրոյից զարգանալու անհրաժեշտությունը: Դրանք կարող են լինել նույնականացում, թույլտվություն, մեկնաբանությունների համակարգեր, վճարային համակարգեր, փոստային ցուցակներ և այլն:

Նախագծային բազմալեզվության պատրաստի լուծումներ

Rails-ը գալիս է շատ հզոր գործիքներով նախագծի տեղայնացման համար: Հնարավոր է ինչպես սկզբնական շրջանում մի քանի լեզուների աջակցություն տրամադրել, այնպես էլ հետագայում այն ​​իրականացնել: Նախագիծը պարունակում է տերմինների թարգմանության հատուկ ֆայլեր, տարբեր լեզուներով կաղապարներ ցուցադրելու գործիքներ և շատ ավելին։

Տվյալների պաշտպանության բարձր մակարդակ

Այժմ ցանցում հաճախ են հրապարակվում հոդվածներ տարբեր ռեսուրսների կոտրման մասին։ Ruby on Rails շրջանակի մշակողները շատ լուրջ են վերաբերվել տվյալների պաշտպանության խնդրին: RoR-ն ի սկզբանե գաղտնագրում է գաղտնաբառերը, վարկային քարտի տվյալները և օգտվողի այլ անձնական տվյալները, բացառվում են նաև SQL ներարկումները և XSS հարձակումները: Բոլոր մուտքագրման պարամետրերը լռելյայնորեն դուրս են մնացել:

Սովորելով Ռուբին

Հիմա եկեք խոսենք այն մասին, թե ինչպես կարող եք տիրապետել Ռուբիին:

Տեսություն

Պետք է սկսել, իհարկե, գրականությունից։ Ես խորհուրդ եմ տալիս այս աղբյուրները.

  • Ruby-ը 20 րոպեում լավ ռեսուրս է լիարժեք սկսնակների համար: Այն թույլ է տալիս կես ժամից էլ քիչ ժամանակում ծանոթանալ լեզվի հիմնական կոնստրուկցիաներին ու սկսել գրել սեփական փոքրիկ ծրագրերը։
  • Codecademy-ն առցանց դասընթացներով հարթակ է բազմաթիվ ոլորտներում, ներառյալ մաքուր Ruby-ը և Rails-ը: Այստեղ ուսուցման գործընթացը բավականին հետաքրքիր է կառուցված, տրված է տեսական նյութ և անմիջապես գործնական առաջադրանք՝ այն համախմբելու համար։ Վերջնական առաջադրանքները վճարովի են, բայց առանց դրանց դուք կարող եք ձեռք բերել անհրաժեշտ հմտություններ:
  • Ruby and Rails Resources - Ռուբի և Ռեյլս սովորելուն նվիրված տարբեր կայքերի և գրքերի հղումների հավաքածու:
  • Առանձին-առանձին կարող եմ խորհուրդ տալ Flanagan D., Matsumoto Y. «The Ruby Programming Language» գիրքը։ Այն համարվում է լավագույններից մեկը, դրա հեղինակը հենց ինքը Ruby լեզվի ստեղծողն է։
  • Google :)

Ահա մի քանի ռեսուրսներ՝ սկսելու համար.

  • w3schools.com/sql - Կարդացեք, փորձեք և ստուգեք ձեր գիտելիքները SQL-ի մասին այստեղ:
  • quizful.net/test - Այստեղ դուք կարող եք գտնել հարցեր, որոնք հաճախ տրվում են հարցազրույցների ժամանակ:

Անգլերեն

Կարծում եմ, որ իմաստ չունի մանրամասն անդրադառնալ այս կետին, քանի որ սա առանձին հոդվածի թեմա է։ Անգլերենը շատ կարևոր է, և սա հայտնի փաստ է: Կցանկանայի համառոտ նշել ամենակարևոր կետերից երկուսը.

Նախ, անգլերենը միջազգային հանրության հիմնական լեզուն է, ուստի օգտակար գրականության մեծ մասը կլինի նաև անգլերեն, շատ նորություններ, զեկույցներ և կարևոր հոդվածներ նույնպես առաջինը կհայտնվեն անգլերենով: Եթե ​​ցանկանում եք իմանալ ցանկացած հարցի պատասխանը, ապա շատ հավանական է, որ այն առաջին հերթին անգլերենով կարողանաք գտնել։

Երկրորդ՝ որքան լավ իմացնես անգլերենը, այնքան ավելի հավանական է, որ աշխատանք գտնես: Հաճախորդների մեծ մասը օտարերկրյա են, հետևաբար անգլերենի իմացությունը կարևոր է արդյունավետ հաղորդակցության, տեխնիկական պահանջների հստակ ընկալման և հաճախորդի հետ լավ շփման համար:

Պրակտիկա

Մի քանի ռեսուրսներ ուսումնասիրելուց հետո ժամանակն է անցնել ավելի կարևոր մասին՝ պրակտիկան: Համացանցում առցանց խանութի կամ պարզ բլոգի հետ կապված առաջադրանքների բազմաթիվ օրինակներ կան (այստեղ դրանցից մեկը), հատկապես, եթե մենք խոսում ենք Rails-ի մասին: Առաջադրանքներն ավարտելու ընթացքում, որոնք արդեն մի փոքր մոտ են իրականությանը, դուք անպայման կհանդիպեք որոշ խնդիրների, այնուհետև կանցնեք մարզելու ամենակարևոր որակներից մեկը՝ google-ի կարողությունը: Ցավոք սրտի, ես չկարողացա գտնել այս հմտությանը նվիրված որևէ ձեռնարկ կամ դասընթաց, բայց դա միանշանակ շատ կարևոր դեր է խաղում առօրյա աշխատանքում:

Դասընթացներ

Տեսությունը կարդալուց և մի քանի «ընտանի կենդանիների նախագծեր» գրելուց հետո, իհարկե, կարող եք փորձել գնալ հարցազրույցների, բայց հաճախ է պատահում, որ այդ գիտելիքները բավարար չեն: Դա պայմանավորված է թեկնածուների մեծ հոսքով, եւ մրցակցությունը հաշվի առնելով՝ բոլորը փորձում են աչքի ընկնել ու հնարավորինս լավ պատրաստվել:

Վերապատրաստման մեկ այլ կարևոր կետ, որը կարող է առավելություն լինել ձեր օգտին աշխատանք փնտրելիս, ծրագրավորման դասընթացներն են։ Եթե, իհարկե, չունեք մենթոր, ով պատրաստ է որոշակի ժամանակ հատկացնել առաջադրանքների մշակմանը և դրանք վերանայելուն:

Անմիջապես պետք է ասեմ, որ ոչ մի դեպքում խորհուրդ չեմ տալիս գնալ դասընթացների առանց արդեն ինչ-որ գիտելիքների բազա ունենալու։ Դասընթացները ես տեսնում եմ որպես ինքնաուսուցման գործընթացում ձեռք բերված գիտելիքները համախմբելու հիանալի միջոց: Եվ հիմա ես չեմ փորձում գովազդել որևէ կոնկրետ դպրոց, բայց հստակ կբացատրեմ, թե ինչ օգուտներ կարելի է ստանալ դրանից.

Ամենայն հավանականությամբ այնտեղ դուք կսովորեք մի բան, որը նախկինում չգիտեիք. Դասընթացներն ունեն բավականին մեծ քանակությամբ նյութ, որը ներկայացված է կառուցվածքային ձևով, ինչը թույլ է տալիս ավելի լավ յուրացնել նյութը։

Դասընթացի ընթացքում կունենաք դաստիարակ, որը կվերանայի ձեր առաջադրանքների լուծումը և կմատնանշի թույլ կողմերն ու սխալները։

Մոտիվացիա. Սա առաջին հերթին նրանց համար է, ովքեր օգնության կարիք ունեն ինքնակարգավորման հարցում: Երբեմն բավականին դժվար է ինքդ քեզ ստիպել ինչ-որ բան անել, անկախ նրանից, թե ինչ հեռանկարներ են երեւում հորիզոնում: Դասընթացներին հաճախելիս դուք կունենաք հստակ ժամանակացույց, որը պետք է հետևեք և կատարեք առաջադրանքներ, հակառակ դեպքում ձեզ կհեռացնեն: Այստեղ դեր է խաղում նաև ֆինանսական մոտիվացիան՝ վճարովի դասընթացների դեպքում։ Ի վերջո, երբ դուք տալիս եք ձեր դժվարությամբ վաստակած գումարը, դուք արդեն բոլորովին այլ վերաբերմունք ունեք գործի նկատմամբ, և պարզապես բաց թողնելու մտքերը շատ ավելի հազվադեպ են առաջանում:

Մեկ այլ առավելություն - ատեստատ. Պարզ է, որ ի վերջո ձեզ կգնահատեն գիտելիքներով, այլ ոչ թե ձեր ռեզյումեում թղթի կտորների առկայությամբ։ Բայց, այնուամենայնիվ, դա կլինի պլյուս, հատկապես, եթե կա գիտելիքի նման մակարդակ ունեցող թեկնածու, բայց առանց նրանց փաստաթղթային ապացույցների։

Գումարած մեկ նախագիծը GitHub-ումձեր խոզուկ բանկում: Եթե ​​դուք սկսնակ ծրագրավորող եք, ապա, ամենայն հավանականությամբ, դասընթացներում գրված նախագիծը տեխնոլոգիական առումով ավելի հետաքրքիր կլինի, քան ավելի վաղ գրվածները:

Եվ ամենակարևորը - զբաղվածություն. Խոսելով դասընթացների մասին՝ ես նկատի չունեմ միայն նրանց, որոնց համար պետք է գումար վճարել։ Հաճախ ընկերություններն իրենք են հավաքագրում վերապատրաստման համար, որպեսզի հետագայում կարողանան աշխատանքի ընդունել լավագույններին։ Դրանք կարող են լինել ներքին դասընթացներ կամ պրակտիկա/պրակտիկա: Այս տարբերակը լավագույնն է, քանի որ ձեզ հարկավոր չէ որևէ բանի համար վճարել, դուք ստանում եք փորձ և վերը նշված բոլոր առավելությունները, և բացի այդ՝ աշխատանքի իրական հեռանկար: Նրանց հասնելն ավելի դժվար է, բայց հեռանկարներն ավելի նշանակալից են։

Ընդամենը

Ruby-ը լեզու է, որը թույլ է տալիս աշխատել առանց մեծ անհարմարությունների և արարողությունների, որոնք գալիս են խիստ տպագրված լեզուներով: Ruby-ի հետ հեշտ է սկսել, հատկապես, եթե դուք արդեն ունեք զարգացման փորձ այլ ծրագրավորման լեզուներով և կարող եք արագորեն նախատիպել Ruby on Rails-ի հետ: Ճապոնիայում, որտեղից այն եկել է, Ռուբին օգտագործում էին խաղեր պատրաստելու համար։ Ruby-ը հակիրճ է և կարդում է անգլերենի պես, ինչը հեշտացնում է ծածկագիրը սկսնակների համար:

Ինչ վերաբերում է Ռուբին սովորելուն, ես ուզում եմ կրկնել. պետք է սկսել փոքրից: Կարդացեք մի քանի գիրք, ինքնուրույն կատարեք մի քանի առաջադրանքներ, այնուհետև, եթե ավելի շատ գիտելիքներ և փորձ ձեռք բերելու կամ լրացուցիչ մոտիվացիա եք զգում, կարող եք գնալ դասընթացների՝ արդեն իսկ ինքնուրույն ձեռք բերելով որոշակի գիտելիքներ:

Իդեալում, սրանք դասընթացներ են ընկերության կողմից, որոնք, ի վերջո, ձեզ առաջարկ կանեն, եթե լավ կատարեք: Այլընտրանքային տարբերակ է վճարովի դասընթացները, որոնք կօգնեն ձեզ համախմբել ձեր գիտելիքները, ավելացնել մեկ այլ նախագիծ ձեր ռեզյումեն և ձեռք բերել փորձ, որն ամենակարևորն է սկզբում: Բայց մի սպասեք, որ վճարովի դասընթացներն ավարտելուց հետո դուք հեշտությամբ կանցնեք հարցազրույցը՝ ցույց տալով վկայական։ Ամեն դեպքում, գիտելիքը կգնահատվի։

Միևնույն ժամանակ, ունենալով բավականաչափ մոտիվացիա, համբերություն, ունակություններ և փորձ այլ ծրագրավորման լեզուների հետ, դուք հեշտությամբ կարող եք ինքնուրույն տիրապետել Ruby-ին, քանի որ ինտերնետում շատ օգտակար և լավ կառուցվածքային տեղեկատվություն կա: Բացի այդ, շնորհիվ բաց և բազմաթիվ Ruby համայնքի, դուք հեշտությամբ կարող եք առցանց գտնել բազմաթիվ հնարավոր հարցերի պատասխաններ, որոնք, ամենայն հավանականությամբ, ինչ-որ մեկն արդեն ձեզնից առաջ տվել է:

Հաջողություն ձեր ուսումնասիրության մեջ: Իսկ հաջորդ հոդվածում կխոսենք կոդի մասին։

Բաժանորդագրվեք մեր Telegram ալիքին պատանիների համար, որպեսզի բաց չթողնեք հետաքրքիր թափուր աշխատատեղեր, պրակտիկա, դասընթացներ, հոդվածներ:

 
Հոդվածներ Ըստթեմա:
Ավտոմատ վճարման ծառայություն մեգաֆոն Սբերբանկից Մեգաֆոնի հաշվի ավտոմատ համալրում
Ամենօրյա վազքի ընթացքում կարող է ժամանակ չմնա ձեր բջջային հեռախոսի հաշիվը լրացնելու համար: Արդյունքում մենք ունենք բոլոր հնարավորությունները մնալու առանց հաղորդակցության, այն էլ ամենավճռական պահին։ Եթե ​​դուք չունեք անվճար րոպե գնալու վճարման տերմինալ և
ՄՏՍ-ի սակագին
Մեծ հաշվով, ինձ համար դժվար է մեղադրել նրան, որ ես շատ արագ հրաժեշտ տվեցի 40 UAH գումարին։ Մի կողմից ես աչքաթող արեցի դա։ Բայց մյուս կողմից, օպերատորը օգտագործեց «փոքր տպագրության» կեղծ տեխնիկան, որին ես ընկա: Այսպիսով, հաստատ
Հեռախոսի առանձնահատկություն
Արագաչափը (կամ G-սենսորը) սարքի դիրքի տվիչ է տիեզերքում: Որպես հիմնական գործառույթ, արագացուցիչն օգտագործվում է էկրանի վրա պատկերի կողմնորոշումը ավտոմատ կերպով փոխելու համար (ուղղահայաց կամ հորիզոնական): Նաև կիրառվում է G սենսոր
Վնասված լազերային սկավառակների վերակենդանացման կոմունալ ծառայություններ
Ցուցադրում է տարբեր տեղեկություններ տեղադրված CD/DVD կրիչների, դրանց բնութագրերի և տարբեր տեսակի լրատվամիջոցներ կարդալու/գրելու ունակության մասին: Բացի այդ, VSO Inspector-ը կարող է սկանավորել սկավառակները սխալների համար և ստուգել դրանց գրված տվյալների ընթեռնելիությունը: Անվճար