Nauka rubinu. Kursy rubinowe

Jedna z pierwszych i najbardziej szczegółowych książek szkoleniowych dotyczących Railsów w Internecie. Główną zaletą jest szczegółowe omówienie najpotrzebniejszych zagadnień, regularne aktualizacje i bezpłatna podstawowa zawartość.

To prawda, że ​​​​zasób jest w całości w języku angielskim. I ważne jest, aby zrozumieć, że jest to zbudowane w formie książki - musisz sam rozwiązać wszystkie problemy. Z tego powodu nie można przewidzieć czasu trwania i złożoności szkolenia.

2. Przesyłki kolejowe

Kolejne dobrze znane źródło edukacyjne w całym Internecie. Wychowało się na nim więcej niż jedno pokolenie programistów Railsowych. Również w języku angielskim.

Nie jest on zbudowany jako kompletny kurs szkoleniowy, ale jako seria screencastów – krótkich lekcji na konkretny temat. Lekcji jest wiele, można je znaleźć na niemal każdy temat.

Niestety projekt przestał być aktualizowany w 2013 roku.

3. Szyny dla zombie

Zabawne wprowadzenie do on-rails dla początkujących w stylu gry przygodowej z atmosferą zombie. Bardzo popularny wśród zupełnie początkujących.

Jest to wygodne, ponieważ nie musisz niczego instalować na swoim komputerze. Wszystkie problemy rozwiązuje się w przeglądarce. Krok po kroku przechodzisz przez grę i zaczynasz rozumieć podstawy Ruby on Rails.

Jeśli w ogóle nie rozumiesz programowania, to twój wybór. Na kursie nie ma skomplikowanych tematów, nic nie odrywa od podstaw. Po angielsku.

3. Udemy

Duży zbiór kursów wideo. Wśród nich jest wiele dla rubinów i rubinów na szynach. Nie ma sensu podawać konkretnych linków - wybierz według własnego gustu kierując się ceną czy popularnością.

Format Udemy obejmuje dość krótkie kursy, z naciskiem na lekcje wideo. Nie oczekuj poważnych zadań domowych ani szybkiej pomocy ze strony nauczycieli.

4. Rubinowa Bursa

Potężny krótki kurs na temat podstaw programowania w Railsach. Doświadczeni nauczyciele, dobry program.

Pożądana jest osobista obecność studenta na kursie, który odbywa się wyłącznie w dużych miastach Ukrainy.

5. Rozwój Ruby on Rails od Evil Marsians

Trzydniowy intensywny kurs prowadzony przez jeden z najbardziej doświadczonych zespołów Ruby on Rails w Rosji.

Rzadko robione. Jest drogo (sądząc po opiniach, warto). Wymaga osobistej obecności. Nadaje się tylko dla zaawansowanych programistów, początkujący nie mają tu nic do roboty.

6. Intensywny kurs online Ruby on Rails od „Dobrego Programisty”

Świeży projekt od zespołu znanego na Youtube z kursów Ruby dla początkujących.

3-miesięczny intensywny program jest przeznaczony dla zupełnie początkujących i obiecuje przemienić Cię w młodszego programistę z portfolio nie mniejszym niż 12 inteligentnych aplikacji.

Kurs składa się z lekcji wideo, zadań praktycznych, wsparcia nauczyciela i regularnych seminariów internetowych.

Sądząc po kanale YouTube i komentarzach użytkowników, ci goście wiedzą, co robią i nie będziesz się nimi nudzić.

Dzisiaj znalazłem w Internecie historię o tym, jak niejaki James Fend uczył się Ruby on Rails przez 12 tygodni. Poniżej możesz przeczytać stosunkowo dokładne tłumaczenie tej historii i, miejmy nadzieję, zainspirować Cię do zbadania tej wspaniałej struktury (i wspaniałego języka).

Zanim zacznę, chciałbym przedstawić Josha Crewsa (http://joshcrews.com) i podziękować mu za przekonanie mnie do rozpoczęcia nauki Ruby on Rails; bez niego, jego pomocy i godzin, które spędził jako mój mentor, nie pisałbym tego dzisiaj. Dziękuję.

23 stycznia uruchomiłem mój wymarzony pomysł, Freelancify.com. Dokładnie 12 tygodni temu byłem przedsiębiorcą technologicznym, który wydał tysiące dolarów na stworzenie przyzwoitego MVP (minimalnie opłacalnego produktu), ponieważ brakowało mi wiedzy. Jednym z powodów (tak wtedy myślałem) było to, że szkolenie było dla mnie zbyt trudne lub trwałoby wyjątkowo długo. Myślałem (podobnie jak wielu innych), że programiści rodzą się (i niektórzy) z zestawem magicznych umiejętności rozwiązywania problemów i umiejętności matematycznych, które czynią ich geniuszami programowania. I dokładnie 12 tygodni temu Podjąłem najlepszą decyzję, jaką podjąłem od długiego, naprawdę długiego czasu.. Żaden z moich pomysłów nie będzie już niczym więcej niż tylko ideą. Teraz mam możliwość uruchomienia wersji produkcyjnych, wydając pieniądze jedynie na hosting i wkładając trochę wysiłku. Dzisiaj ten zestaw umiejętności przypomina ciągnięcie kilku traktorów podczas kalifornijskiej gorączki złota, podczas gdy wszyscy inni używają prostych łopat. Sugeruję każdemu nauczenie się pisania kodu. Tutaj dodam sprostowanie: wcześniej zatytułowałem post „Jak nauczyłem się Railsów w 8 tygodni”, jednak biorąc pod uwagę datę premiery, okazuje się, że jest to 12 tygodni. Jednak w ciągu 8 tygodni poczułem, że wiem wystarczająco dużo, a następne cztery tygodnie spędziłem bardziej na wykorzystywaniu zdobytej wiedzy w praktyce, niż na nauce.

Jakie umiejętności posiadałem, zanim zacząłem uczyć się Railsów?

Byłem projektantem stron internetowych ze znajomością HTML i CSS i skupiałem się głównie na projektowaniu UI i UX. Najtrudniejszą rzeczą, jaką zrobiłem z rzeczywistym kodem (nie licząc HTML), jest możliwość dostosowania Wordpressa. Krótko mówiąc, nie miałem pojęcia, czym jest framework MVC i jak ogólnie działają bazy danych. Projekt, układ i HTML dla Freelancify zostały stworzone przeze mnie w ciągu dwóch tygodni w czerwcu 2011.

Dlaczego zdecydowałem się na studia?

Wracając do czerwca 2011, kiedy układ był już gotowy, zacząłem szukać kodera, który sprawi, że układ będzie funkcjonalny. Układ był już prawie gotowy: miałem pola tekstowe, rozwijane menu, formularze, przyciski, linki prowadzące tam, gdzie było to potrzebne i tak dalej. Znalazłem programistę i jednym słowem facet mi nie odpowiadał. Zostałem z toną długów i żadnym produktem, który był nawet bliski ukończenia. Skontaktowałem się więc z Joshem Kriusem (poznałem go na spotkaniu Ruby on Rails, które zorganizował w Nashville) i spotkałem się z nim, aby sprawdzić, czy uda mi się zrobić coś z tego, co mi pozostało jako programista. Niestety naprawienie i modyfikacja kodu zajęłaby nie mniej czasu niż opracowanie go od podstaw przez kompetentnego programistę. Poczułem się zniechęcony, zdając sobie sprawę, że nie mogę sobie pozwolić na ponowne wydanie tysięcy dolarów na rozwój od zera. A potem Josh powiedział...” Dlaczego po prostu nie nauczysz się obsługi Ruby on Rails? Ten projekt byłby świetnym sposobem" i wtedy " Mogę nawet spotykać się z Tobą dwa razy w tygodniu i pomagać Ci w nauce" Całą noc spędziłem rozmyślając o tym. Miałem do wyboru: znaleźć wygodną pracę i zapłacić rachunki LUB zaryzykuj wszystko, aby nauczyć się Railsów i ostatecznie rozkoszuj się najlepszym ramenem, jaki Włochy mają do zaoferowania. Zdecydowałem. Następnego ranka zadzwoniłem do Josha. Położyłem wszystko. Pieniądze z pozostałych oszczędności rozłożyłem na trzy miesiące (na samotnego mężczyznę żyjącego samotnie i bez dzieci wystarczy tysiąc dolarów miesięcznie). Czas brać się do pracy, obecnie jestem praktykantem na pełen etat. Mając na uwadze, że wyszukiwarka Google, Stackoverflow, IRC #RubyOnRails i społeczność Rails będą mnie wspierać, gdy utknę, jestem pewien, że będzie ich mnóstwo.

Moje kolejne trzy miesiące - Misja: Zdobądź MVP, na tyle, żeby popracować, ale nie na tyle „do bani”, żeby zrobić okropne pierwsze wrażenie.

Tygodnie 1–3

To była prawdopodobnie największa nauka, ale się nie poddałem.

Ściany są stworzone dla ludzi, którzy nie chcą ich opuszczać.

Konfigurowanie działającego środowiska Railsowego dla zupełnie nowicjusza może być niezwykle irytujące. Wskazówka nr 1: Kup komputer Mac. Wskazówka nr 2: Użyj Homebrew, RVM, Git i Heroku (to naprawdę wszystko, czego potrzebujesz, aby zacząć). Instalowałem kilka dni, potem odinstalowałem wszystko i zainstalowałem ponownie. Po prostu powtórz to kilka razy, a przyzwyczaisz się do korzystania z wiersza poleceń terminala (konsoli) i zrozumiesz, dlaczego wszystko działa tak, a nie inaczej. Następnie pierwszą rzeczą, którą się zająłem, był TryRuby, Rails for Zombies i samouczek Rails Michaela Hartla. Nie martw się o zrozumienie materiału w 120%, stanie się to dopiero, gdy zaczniesz się uczyć. Skończyłem samouczek dotyczący Railsów i w ciągu około tygodnia stworzyłem aplikację przypominającą Twittera, tak naprawdę nie rozumiejąc, co zrobiłem. Później, w miarę postępów, zacząłem zdawać sobie sprawę, że wszystko zaczyna mieć sens.

Tygodnie 3–6

Dzięki aplikacji na Twitterze zbudowanej przy użyciu samouczka Rails nabrałem pewności siebie. Poradnik nie uczynił ze mnie programisty, ale teraz znam ogólne etapy tworzenia aplikacji, od stworzenia samej aplikacji po zainstalowanie jej na Heroku. Wszystko, co wydarzyło się pomiędzy, pozostało niewyraźne. Jak NAPRAWDĘ mogę teraz zacząć się uczyć? Pracę nad prawdziwym projektem, który coś dla mnie znaczy. Josh i ja zdecydowaliśmy, że powinienem swobodnie pracować nad Freelancify i zobaczyć, co da się zrobić. Pierwszą rzeczą, którą zrobiłem, było przeniesienie całego kodu HTML ze środowiska i zorganizowanie go w widoki i pliki częściowe. Stworzyłem platformy szablonów szkieletowych dla użytkowników i projektów. Potem zacząłem uczyć się mojej pierwszej prawdziwej perełki, Devise. Wtedy możliwość nawiązania relacji np. każdy Użytkownik będzie miał portfolio. Użytkownicy mogą jednak mieć wiele portfeli, a każdy portfel może należeć tylko do jednego Użytkownika. Kiedy zrozumiesz, jak działają relacje między modelami i jak wywoływać/wyświetlać rzeczy, które należą do czegoś innego, życie stanie się znacznie łatwiejsze. Jeśli utkniesz na części i nie możesz się poruszyć, pomiń ją. Jest duże prawdopodobieństwo, że podczas opracowywania innej funkcji dowiesz się również, jak wdrożyć to, co przeoczyłeś.

Tygodnie 6–9

Krok po kroku uczyłem się dalej, kopiując i powtarzając. Sprawiłbym, że pewne rzeczy zadziałałyby, a potem – bam – uderzyłbym w ścianę i nie miałem pojęcia, co dalej robić. Niezależnie od tego, czy korzystam ze Stackoverflow, czatu IRC #RubyOnRails, RailsCasts, czy szarpię Josha, w końcu wymyśliłem, jak postępować. Powtarzaj tę samą czynność w kółko, a szybko opanujesz tę czynność. Spędzanie irytujących godzin na testowaniu czyjejś odpowiedzi na Stackoverflow tylko po to, aby zdać sobie sprawę, że to nie działa, jest naprawdę przydatne. Rozumiesz, czego nie robić. A kiedy znajdziesz odpowiedź, zaczniesz rozumieć DLACZEGO to drugie nie zadziałało. Mniej więcej w tym czasie zacząłem zdawać sobie sprawę, jak duży jest obraz sytuacji i naprawdę ją rozumieć DLACZEGO wszystko działa dokładnie tak, jak działa. Poczułem się jak idiota, wróciłem i przebudowałem kod, który napisałem wcześniej, aby był bardziej wydajny. I w pewnym momencie doszłam do etapu, w którym wszystko zaczęło się układać.

Tygodnie 9–12

Byłem w niesamowitym trybie energii, doprowadzając Freelancify do etapu uruchomienia. Na tym etapie czułem się, jakbym latał, uruchamiając funkcje. Ostatni tydzień spędziliśmy na debugowaniu różnych błędów i pomyłek. W poniedziałek uruchomiłem stronę. Ale jeszcze daleko mi do ukończenia studiów... To wszystko. Pominąłem (w imię zwięzłości wpisu) drobne szczegóły i kwestie techniczne. Zachęcamy jednak do zadawania pytań w komentarzach, na pewno postaram się odpowiedzieć. Jamesa Fend’a.

P.S. - Chociaż posiadanie mentora, z którym mogłem się spotkać, bardzo pomogło, z pewnością można nauczyć się Railsów bez niego. Lub spróbuj znaleźć taką osobę, wielu programistów Railsowych uwielbia przyczyniać się do rozwoju społeczności. Poszukaj lokalnych konferencji i spotkań.

Wpis ten ma już ponad dwa lata (opublikowano 27 stycznia 2012 r.), ale mimo to nie stracił na aktualności. W tym czasie Jamesowi Fendowi udało się sprzedać Freelancify i zainwestować w nowy startup, zostawił notatkę na ten temat 27 lutego 2013 r. Uważam, że ten artykuł jest doskonałym przykładem tego, jak człowiek może osiągnąć swój cel. Wszystko, co musisz zrobić, to zacząć. :)

"Cześć! Co robisz?" - „Tak, zaprogramuję jedną rzecz w Ruby.” - "Czy to zaraźliwe :-)"
Taki dialog odbyłem dzisiaj z przyjacielem. Dlaczego rubin?

Po co uczyć się Ruby

To pytanie dotyczy tych, którzy programują w PHP od dłuższego czasu i z sukcesem. Opanowałeś jeden język, to świetnie, ale nie poprzestawaj na tym. Wielu może argumentować, że znają ten język, znają go i nauczyli się już z nim wszystkich sztuczek. Podam Ci kilka powodów, dla których warto uczyć się Ruby.

  1. Ciekawość. Bardzo mnie na przykład zainteresowała praca z klasami otwartymi. Po prostu moim zdaniem pobieranie i wstrzykiwanie swojej metody do klasy systemowej jest świetne. Czy nie będzie zamieszania? Jak to zrobić? Ogólnie wszystko, co nowe, jest interesujące.
  2. . Ponieważ Programuję w PHP od dłuższego czasu, zastanawiam się, czym Ruby może się pochwalić nad PHP/
  3. Rubinowa prędkość. Twitter powstał w języku Ruby (choć ostatnio został porzucony). Chciałbym przetestować jego działanie w rzeczywistości.
  4. Klasa problemów do rozwiązania. Ruby jest dobry do aplikacji internetowych. Czy to prawda?
  5. Metaprogramowanie. Być może najważniejszy powód.

Jak nauczyć się Rubiego. Konspekt.

Tutaj moim pierwszym błędem było to, że zacząłem uczyć się frameworka nie znając języka. Teraz zdałem sobie sprawę, że nie ma potrzeby tego robić. Zapominając na chwilę o Ruby on Rails, zacząłem studiować sam Ruby, na szczęście w systemie zgłoszeń wisiał już dłuższy czas problem systemowy, który był trudny do rozwiązania w PHP. Naprawdę nie chciałem dawać mu praw root Oto plan.

  1. Funkcje, klasy, klasy publiczne. Atrybuty (akcesory i mutatory).
  2. Praca z ciągami i tablicami. Wyszukaj i zamień podciągi itp. Konwersja typu.
  3. Praca z plikami.
  4. Praca ze środowiskiem systemowym.
  5. Projektowanie aplikacji, praca z klejnotami (modułami).
  6. Praca z bazą danych.
  7. Instalowanie Ruby on Rails, .

W tym poście opublikuję moją pierwszą aplikację w Ruby i zapraszam wszystkich do dyskusji. Wskazuj błędy, sugeruj najlepsze praktyki, zadawaj pytania.

Uczmy się Ruby razem!

Lekcja 1. Pierwsza aplikacja w Ruby.

Zadanie jest takie. Na hostingu znajduje się serwer DNS i wywołując narzędzie konsoli w Ruby należy dodać strefę dla domeny oraz wpis strefy na liście stref (domains.list) i zmienić jeden wpis w bazie danych gdzie aby zarejestrować tę domenę. Ustawienia dostępu do bazy danych przechowywane są w aplikacji php, a konkretnie w jej pliku INI. Po wykonaniu wszystkich kroków należy zrestartować serwer DNS (powiązanie).

Stół warsztatowy dla Ruby

Użyję RubyMine z JetBrains jako IDE. Bardzo mi się podobały. Mimo że chodziło o phpStorm, jakość jest od razu widoczna. Najpierw instalujemy Ruby przez RVM dla wszystkich użytkowników, następnie konfigurujemy go dla roota i naszego użytkownika.

Rozszerzanie klas publicznych Ruby

Aby pracować z plikami INI w Ruby, używamy klejnotu inifile. Ale jest z tym mały problem. W pliku ZF INI możesz bezpiecznie używać stałych, a linie będą wyglądać następująco:

IncludePaths = APPLICATION_PATH "/../vendors/Doctrine/"

To APPLICATION_INI psuje parser klejnotów. W szczególności ta linia nie pasuje do żadnego wzorca:

@rgxp_comment = %r/\A\s*\z|\A\s*[#(@comment)]/ @rgxp_section = %r/\A\s*\[([^\]]+)\] /o @rgxp_param = %r/\A([^#(@param)]+)#(@param)\s*”?([^"]*)"?\z/

Tak wygląda sytuacja w przypadku korzystania z klas publicznych. Zastąpmy funkcję IniFile::parse naszą własną. Wszystkie dodatki umieszczę w pliku fucntion.rb

Klasa IniFile private # # call-seq # parse # # Przeanalizuj zawartość pliku ini. # def parse return chyba, że ​​plik.plik?(@fn) sekcja = 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 # utwórz zmienne tmp do wskazania że multine się rozpoczęło # i następne wiersze pliku ini zostaną # sprawdzone z innymi mutline rgxps. if line =~ @rgxp_multiline_start then tmp_param = $1.strip tmp_value = $2 + "\n" # znaleziono końcowy ogranicznik mutline # usuń zmienne tmp i dodaj parę param/wartość do sekcji elsif line =~ @rgxp_multiline_end && tmp_param != "" następnie sekcja = tmp_value + 1 $ tmp_value, tmp_param = "", "" # cokolwiek innego pomiędzy początkiem i końcem multilinii elsif line =~ @rgxp_multiline_value && tmp_param != "" następnie tmp_value += 1 $ + "\n" # ignoruj ​​​​puste linie i linie komentarzy elsif line =~ @rgxp_comment następnie następny # to jest deklaracja sekcji elsif line =~ @rgxp_section następnie sekcja = @ini[$1.strip] # w przeciwnym razie mamy parametr elsif line =~ @rgxp_param następnie rozpocznij sekcję[$1.strip] = $2.strip ratunek NoMethodError podnieś błąd, „napotkano parametr przed pierwszą sekcją” zakończ linię elsif =~ %r/APPLICATION_/ następnie następny podnieś błąd, „nie można przeanalizować linii „#(linia)” end end # i upewnij się, że fd.close jest zdefiniowane? fd i fd end end

Rozszerzę także klasę String, aby umożliwić sprawdzanie poprawności domeny.

Ciąg klasy def ważna_nazwa_domeny? nazwa_domeny = self.split(".") nazwa = /(?:+)+/.match(nazwa_domeny).nil? tld = /(?:(2)|aero|ag|asia|at|be|biz|ca|cc|cn|com|de|edu|eu|fm|gov|gs|jobs|jp|in|info| me|mil|mobi|muzeum|ms|nazwa|net|nu|nz|org|tc|tw|tv|uk|us|vg|ws)/.match(nazwa_domeny).nil? (nazwa_domeny.liczba > 1 i nazwa != fałsz i tld != fałsz) koniec koniec

Źródła

Cóż, teraz pokażę ci rzeczywiste źródła.
indeks.rb

#coding: utf-8 wymaga „mysql2” wymaga „socket” wymaga „pliku ini” wymaga „./functions.rb” # Hash adresów serwerów hosts = ( :production => „83.168.22.1”, :test => „ 84.22 .11.1" ) util = Util.new(hosts) util.releative_config_path="/site.com/application/config/application.ini" # Sprawdzanie parametrów kończy się, jeśli (ARGV.count != 2) domena = ARGV nazwa hosta = ARGV .split(".") Quit("Nieprawidłowa nazwa domeny") if (nie domena.prawidłowa_nazwa_domeny?) # Wyszukaj firmę w bazie danych wynik = Mysql2::Client.new(util.get_db_settings).query("WYBIERZ id FROM `sites` GDZIE `nazwa hosta` = "#(nazwa hosta)"") Quit("Nie znaleziono firmy") ifresult.count != 1 # Zaktualizuj nazwę hosta wierszy = Array.new wynik.each(|wiersz|wiersze<< 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"

Plik klejnotu
Ten plik opisuje zależności projektu.

Źródło: klejnot Rubygems „mysql2”, klejnot „0.2.6” „inifile”

No i faktycznie zawarte funkcje.
funkcje.rb

#coding: klasa utf-8 Ciąg znaków def ważna_nazwa_domeny? nazwa_domeny = self.split(".") nazwa = /(?:+)+/.match(nazwa_domeny).nil? tld = /(?:(2)|aero|ag|asia|at|be|biz|ca|cc|cn|com|de|edu|eu|fm|gov|gs|jobs|jp|in|info| me|mil|mobi|muzeum|ms|nazwa|net|nu|nz|org|tc|tw|tv|uk|us|vg|ws)/.match(nazwa_domeny).nil? (nazwa_domeny.count > 1 i nazwa != false i tld != false) end end class IniFile private # # call-seq # parse # # Przeanalizuj zawartość pliku ini. # def parse return chyba, że ​​plik.plik?(@fn) sekcja = 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 # utwórz zmienne tmp do wskazania że multine się rozpoczęło # i następne wiersze pliku ini zostaną # sprawdzone z innymi mutline rgxps. if line =~ @rgxp_multiline_start then tmp_param = $1.strip tmp_value = $2 + "\n" # znaleziono końcowy ogranicznik mutline # usuń zmienne tmp i dodaj parę param/wartość do sekcji elsif line =~ @rgxp_multiline_end && tmp_param != "" następnie sekcja = tmp_value + 1 $ tmp_value, tmp_param = "", "" # cokolwiek innego pomiędzy początkiem i końcem multilinii elsif line =~ @rgxp_multiline_value && tmp_param != "" następnie tmp_value += 1 $ + "\n" # ignoruj ​​​​puste linie i linie komentarzy elsif line =~ @rgxp_comment następnie następny # to jest deklaracja sekcji elsif line =~ @rgxp_section następnie sekcja = @ini[$1.strip] # w przeciwnym razie mamy parametr elsif line =~ @rgxp_param następnie rozpocznij sekcję[$1.strip] = $2.strip ratunek NoMethodError podnieś błąd, „napotkano parametr przed pierwszą sekcją” zakończ linię elsif =~ %r/APPLICATION_/ następnie następny podnieś błąd, „nie można przeanalizować linii „#(linia)” end end #, upewniając się, że fd.close jest zdefiniowane? fd i fd end end end def exit(message=nil) banner = " ========== ==== | Narzędzie dodawania DNS | ============================ Użycie: ruby ​​​​./index.rb domain.com olddomain.site.com” jeśli nie wiadomość .nil ? następnie banner = koniec wiadomości umieszcza wyjście banera na końcu klasy Util attr_accessor:hosts, :releative_config_path, :environment def inicjalizacja(hosts =Array.new) self.hosts = hosts end # Uzyskaj lokalny adres IP def local_ip orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # wyłącz tymczasowo odwrotne rozpoznawanie DNS UDPSocket.open do |s| s.connect "64.233.187.99", 1 s.addr.last end zapewnienia Socket.do_not_reverse_lookup = orig end # Pobieranie środowiska def get_environment if @środowisko.nil? następnie hosts = self.hosts.invert if(hosts.include?(self.local_ip)) then @environment = hosts else @environment = "development" end else @environment.to_s end end def get_config_path nazwa_użytkownika lokalnego = get_local_username "/home/" +local_username+"/sandbox"+self.releative_config_path end # Zwraca nazwę użytkownika, jeśli narzędzie zostanie uruchomione przez rvmsudo lub bezpośrednio def get_local_username if ENV["SUDO_USER"].nil? Quit("Narzędzie powinno zostać uruchomione przez rmvsudo, \r\neprzykład: rvmsudo ruby ​​​​./index.rb domain.ru Some.subdomain.ru") else ENV["SUDO_USER"] end end def get_db_settings config = IniFile:: loading( self.get_config_path) nazwa_sekcji = self.get_environment.to_s + " : bootstrap" exit("Brak odpowiedniej sekcji w pliku konfiguracyjnym"), chyba że config.has_section?(nazwa_sekcji) dsn = config.to_h["resources.doctrinedata.connections. default. dsn"] # Przeanalizuj dsn dsn.sub!("mysql://", "") arr = dsn.split("@") dbconfig = ( :username => arr.split(:"), : hasło = > arr.split(":"), :host => arr.split("/"), :database => arr.split("/") ) koniec koniec

A co z PHP?

Ten post nie jest o porzuceniu PHP i rozpoczęciu nauki Ruby. PHP to najpopularniejszy język programowania stron internetowych, zaimplementowano w nim tysiące ciekawych rzeczy i algorytmów, m.in. nawet sieci neuronowe. I ja go kocham) Z biegiem lat można powiedzieć, że zbliżyłam się do niego, pomimo wszystkich jego wad. Ale to nie znaczy, że nie musisz uczyć się czegoś nowego dla siebie.

Ostatnio zadawano mi pytanie, z jakich książek warto uczyć się języka Ruby. Czytam teraz ten.

Ta książka jest oficjalnym przewodnikiem po dynamicznym języku programowania Ruby. Zespół autorów jest naprawdę znakomity: David Flanagan to uznany ekspert w dziedzinie programowania, autor wielu bestsellerowych książek o JavaScript i Javie; Yukihiro „Matz” Matsumoto jest twórcą i głównym programistą Ruby.
Książka zawiera szczegółowy opis wszystkich aspektów języka: strukturę leksykalną i syntaktyczną Rubiego, typy danych i wyrażenia elementarne, definicje metod, klas i modułów. Dodatkowo w książce znajdują się informacje o funkcjach API platformy Ruby.

Publikacja zainteresuje zarówno doświadczonych programistów, którzy zapoznają się z nowym językiem Ruby, jak i tych, którzy już programują w Ruby i chcą osiągnąć wyższy poziom zrozumienia i opanowania pracy. Książkę znajdziesz na temat ozonu lub w Biblioglobusie.

Czekam z niecierpliwością na Wasze komentarze na temat kodu i wszelkie ciekawe pomysły!)

Dziękuję!

Jeśli ten artykuł Ci pomógł lub chcesz wesprzeć moje badania i blog, oto najlepszy sposób, aby to zrobić:

Ruby to potężny i popularny język programowania. Oprócz swojej popularności jest podstawą znanego frameworka, który pozwala na tworzenie fajnych i dynamicznych stron internetowych o różnej tematyce. Jeśli spojrzeć na ocenę TIOBE, język ten jest jednym z dwudziestu najpopularniejszych języków na świecie.

Język pojawił się w 1995 roku i jest uważany za język młody w porównaniu z C lub C++, które pojawiły się odpowiednio w 1972 i 1983 roku. Język ten ma szereg zalet i specyficznych cech, które są zaimplementowane wyłącznie w nim, jeśli porównamy inne popularne języki programowania.

Plan kursu

Podczas kursu wideo nauczysz się języka Ruby bez korzystania z dodatkowych frameworków. Dodatkowe kursy dot Rubin znajdziesz go pod adresem .

Na kursie dowiemy się jak zainstalować i pracować z językiem, poznamy składnię Rubin(zmienne, pętle, instrukcje warunkowe), a także rzeczy bardziej złożone: OOP, praca z plikami, wyjątki, metody i poruszymy wiele innych tematów.


Instalowanie Rubiego w systemie Windows

Aby zainstalować Ruby w systemie Windows, użyj Instalator Ruby, który można pobrać z oficjalnej strony internetowej, korzystając z tego linku. Pobierz najnowszą wersję i zainstaluj ją jak zwykły program. Po zakończeniu instalacji zobaczysz podobne okno:

W tym oknie upewnij się, że pole wyboru jest zaznaczone, wówczas otworzy się kolejna aplikacja do instalacji. Rubin do systemu.

W oknie, które się otworzy, wpisz kolejno 1 i naciśnij Enter, poczekaj, aż instalacja się zakończy, naciśnij 2 i Enter, a na koniec wykonaj trzecie polecenie, naciskając 3 i Enter.

Instalowanie Ruby na Macu

Na komputerze Mac Ruby jest instalowany domyślnie, więc nie musisz robić nic więcej. Wersję językową możesz sprawdzić w terminalu za pomocą następującego polecenia:

Jeśli wersja jest nieaktualna, możesz pobrać nową. Najpierw musisz pobrać menedżera wersji Ruby. Odbywa się to poprzez terminal za pomocą polecenia:

Curl -L https://get.rvm.io | bash - jest stabilny

Po zainstalowaniu menedżera należy ponownie uruchomić terminal. Uruchom następujące polecenie:

Lista Rvm znana

Po ponownym uruchomieniu możesz zainstalować żądaną wersję. W naszym przypadku zainstalowana została wersja 2.4.2:

Rvm zainstaluj Ruby-2.4.2

Na koniec możesz ponownie sprawdzić wersję i jeśli jest nadal stara, po prostu domyślnie zainstaluj nową wersję.

To pierwszy z serii artykułów, w których opowiem o funkcjach Ruby i Ruby on Rails oraz podzielę się wskazówkami, od czego zacząć naukę Ruby, gdzie znaleźć odpowiedzi na pytania, jak zdobyć potrzebne doświadczenie i jak wyróżnić się na tle innych kandydatów. Będzie mi miło, jeśli moja rada pomoże komuś w podjęciu decyzji o specjalizacji i wyborze Ruby do nauki i pracy.

Kluczowe cechy i różnice Rubiego

Często słyszę pytanie: czy warto uczyć się Ruby? Z reguły pytanie opiera się na wątpliwościach: jak łatwo znaleźć pracę z tą specjalizacją, czy będą ciekawe projekty i tak dalej, i tak dalej. Ruby to nowoczesny, stale rozwijający się język programowania, dla którego istnieje wiele obszarów zastosowań. Na pewno słyszałeś o Chef, Vagrant, Homebrew, ale najczęściej wszyscy słyszymy o Railsach. Poniżej post z komentarzem autora frameworka o tym dlaczego warto uczyć się Railsów.

Oczywiście każdy sam decyduje, z jakiego narzędzia skorzystać. I nie ma sensu bez końca spierać się, dlaczego jedna technologia jest lepsza od drugiej. Wybrałem Ruby, ponieważ jest to niezwykle wyrazisty i elastyczny język, który pozwala rozwiązać ten sam problem na wiele sposobów.

Ruby to interpretowany, w pełni obiektowy język programowania z silnym dynamicznym typowaniem. Łączy w sobie składnię podobną do Perla z podejściem obiektowym. Ponadto niektóre funkcje są zapożyczone z języków programowania Python, Lisp, Dylan i CLU. Wieloplatformowa implementacja interpretera języka Ruby jest rozpowszechniana w ramach oprogramowania open source. Kod napisany w Ruby może być zrozumiany nawet przez osobę nie znającą programowania. Na RoR powstały projekty takie jak Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb i inne.

Wraz z rozwojem Node.js popularność Ruby on Rails nieco spadła, ale startupy technologiczne często korzystają z RoR ze względu na łatwość tworzenia prototypów. Rubinowy jest 11. najpopularniejszym językiem w indeksie TIOBE.

Korzyści z Ruby

  • Duża i przyjazna społeczność.
  • Bariera wejścia jest dość wysoka, co oznacza, że ​​programista Ruby prawdopodobnie będzie miał doświadczenie z co najmniej jednym innym językiem programowania.
  • Używasz tylko tych bibliotek i modułów, które są potrzebne.
  • Istnieje duża liczba przydatnych bibliotek, które są gotowe do użycia (Ruby Gems).
  • W Internecie jest mnóstwo informacji na temat Ruby, w uporządkowanej i przesianej formie.
  • W kontekście omawiania Ruby nie sposób nie wspomnieć o najpopularniejszym frameworku Ruby on Rails.

Porozmawiajmy teraz bardziej szczegółowo o niektórych zaletach Ruby.

Szybkość rozwoju

Jedną z zalet Ruby i frameworku RoR jest szybkość rozwoju. Osobiste doświadczenie i doświadczenie kolegów pokazuje, że rozwiązywanie problemów w Railsach jest półtora razy szybsze w porównaniu do innych podobnych frameworków. Ruby jest bardzo prostym narzędziem, a istnieje ogromna ilość gotowych rozwiązań na różnego rodzaju problemy.

Standardowe narzędzia do buforowania danych

Podczas opracowywania projektu na dużą skalę jednym z najważniejszych aspektów jest buforowanie. Ruby on Rails jest standardowo wyposażony w standardowe narzędzia do buforowania danych. Oznacza to, że od razu będziesz mieć narzędzia do buforowania danych w projekcie i możesz z łatwością buforować pojedyncze bloki kodu, a nawet całe strony.

Najpierw testy, później kod

Często podczas opracowywania dużych projektów pojawia się kwestia testowania, a nierzadko nie ma dodatkowych środków na oddzielny zespół testerów. Railsy również mają rozwiązanie tego problemu. Jeśli porównasz RoR z innymi frameworkami w kontekście testowania aplikacji, znajdziesz wiele gotowych rozwiązań dla każdego rodzaju testów, czy to integracyjnych, czy jednostkowych. Wszystkie te biblioteki działają od razu po wyjęciu z pudełka. W idealnej sytuacji w projekcie Ruby on Rails nie jest pisany żaden kod, dopóki nie zostaną napisane dla niego testy. Ideologia RoR zakłada początkowe wykorzystanie metod BDD (rozwój oparty na zachowaniu) lub TDD (rozwój oparty na testach).

Powszechnie przyjęte standardy procesu programowania dla programistów Ruby

Mówiąc o zaletach Ruby, nie mogę powstrzymać się od ponownego wspomnienia społeczności Ruby. Stale rośnie, rozwija się i zawsze jest gotowa do pomocy. Zawsze znajdzie się ktoś, kto podpowie Ci, jak najlepiej rozwiązać problem i podzieli się swoim doświadczeniem w każdej sprawie.

Również bardzo ważna kwestia - w społeczności Ruby od wielu lat obowiązują standardy procesu rozwoju, określone zasady/umowy społeczności, według których prowadzony jest rozwój, co znacznie ułatwia pracę. Dzięki tym standardom każdy projekt jest wysoce ustrukturyzowany, dzięki czemu nowy programista w zespole szybko nabierze tempa i przyda się już od pierwszych dni pracy. Co więcej: jeśli projekt rozpoczął jeden zespół, a zakończył inny, to również nie stanowi to żadnego problemu. Ponieważ rozwój odbywa się według wspomnianych już zasad i porozumień społecznych, nowy zespół szybko i łatwo zrozumie projekt i pomyślnie go ukończy bez dużej straty czasu.

Ruby on Rails posiada także dużą liczbę różnych gotowych rozwiązań dostępnych w domenie publicznej. Większość rozwiązań została już wdrożona przez kogoś przed Tobą, a także przetestowana przez społeczność, co zmniejsza potrzebę tworzenia od zera. Mogą to być systemy uwierzytelniania, autoryzacji, komentowania, systemy płatności, listy mailingowe i tak dalej.

Gotowe rozwiązania dla wielojęzyczności projektów

Railsy są dostarczane z bardzo potężnymi narzędziami do lokalizacji projektów od razu po wyjęciu z pudełka. Można zarówno początkowo zapewnić obsługę kilku języków, jak i wdrożyć ją później. Projekt zawiera specjalne pliki do tłumaczenia terminów, narzędzia do wyświetlania szablonów w różnych językach i wiele więcej.

Wysoki poziom ochrony danych

Obecnie w Internecie często publikowane są artykuły dotyczące hakowania różnych zasobów. Twórcy frameworka Ruby on Rails bardzo poważnie podeszli do kwestii ochrony danych. RoR początkowo obejmuje szyfrowanie haseł, danych kart kredytowych i innych osobistych danych użytkownika; wykluczone są również zastrzyki SQL i ataki XSS. Domyślnie wszystkie parametry wejściowe są pomijane.

Nauka Rubiego

Porozmawiajmy teraz o tym, jak dokładnie możesz opanować Ruby.

Teoria

Zacznijmy oczywiście od literatury. Polecam te źródła:

  • Ruby w 20 minut to dobre źródło informacji dla zupełnie początkujących. Pozwala zapoznać się z podstawowymi strukturami języka w niecałe pół godziny i rozpocząć pisanie własnych małych programów.
  • Codecademy to platforma z kursami online z różnych dziedzin, w tym czystego Ruby i Rails. Proces edukacyjny jest tutaj dość ciekawie zorganizowany, podany jest materiał teoretyczny i od razu praktyczne zadanie jego utrwalenia. Zadania końcowe są płatne, ale nawet bez nich możesz zdobyć niezbędne umiejętności.
  • Materiały o Ruby i Railsach — zbiór linków do różnych stron i książek poświęconych nauce Ruby i Railsów.
  • Szczególnie polecam książkę Flanagan D., Matsumoto Y. „The Ruby Programming Language”. Uważany jest za jeden z najlepszych, jego autorem jest twórca języka Ruby.
  • Google :)

Oto kilka zasobów na dobry początek:

  • w3schools.com/sql - tutaj możesz przeczytać, spróbować i przetestować swoją wiedzę na temat SQL.
  • quizful.net/test - tutaj znajdziesz pytania najczęściej zadawane podczas rozmów kwalifikacyjnych.

język angielski

Uważam, że nie ma sensu szczegółowo rozwodzić się nad tą kwestią, ponieważ jest to temat na osobny artykuł. Angielski jest bardzo ważny i jest to powszechnie znany fakt. Chciałbym tylko krótko wspomnieć o dwóch najważniejszych kwestiach.

Po pierwsze, angielski jest głównym językiem społeczności międzynarodowej, w związku z tym większość przydatnej literatury będzie również w języku angielskim, wiele wiadomości, raportów i ważnych artykułów będzie pojawiać się również najpierw w języku angielskim. Jeśli chcesz poznać odpowiedź na jakieś pytanie, istnieje bardzo duże prawdopodobieństwo, że znajdziesz ją przede wszystkim w języku angielskim.

Po drugie, im lepsza znajomość języka angielskiego, tym większe szanse na znalezienie pracy. Większość klientów to klienci zagraniczni, dlatego dla produktywnej komunikacji, dobrego zrozumienia specyfikacji technicznych i dobrego kontaktu z klientem ważna jest znajomość języka angielskiego.

Ćwiczyć

Po przestudiowaniu kilku zasobów warto przejść do ważniejszej części, czyli praktyki. Przykładów zadań ze sklepem internetowym czy prostym blogiem w Internecie jest mnóstwo (tutaj jeden z nich), szczególnie jeśli chodzi o Railsy. W trakcie wykonywania zadań już trochę bliższych realnym na pewno napotkasz pewne problemy i wtedy przejdziesz do szkolenia jednej z najważniejszych cech - umiejętności korzystania z Google. Niestety nie udało mi się znaleźć żadnych tutoriali ani kursów poświęconych tej umiejętności, ale z pewnością odgrywa ona bardzo ważną rolę w codziennej pracy.

Kursy

Po przeczytaniu teorii i napisaniu kilku „zwierzęcych projektów” można oczywiście spróbować pójść na rozmowę kwalifikacyjną, jednak często zdarza się, że ta wiedza nie wystarczy. Wynika to z dużego napływu kandydatów, a biorąc pod uwagę konkurencję, każdy stara się wyróżnić i przygotować jak najlepiej.

Kolejnym ważnym punktem szkolenia, który może być zaletą przy poszukiwaniu pracy, są kursy programowania. Chyba, że ​​masz mentora, który jest skłonny poświęcić pewną ilość czasu na wymyślanie zadań i ich przeglądanie.

Od razu powiem, że w żadnym wypadku nie polecam brać udziału w kursach bez wcześniejszej wiedzy. Kursy postrzegam jako świetny sposób na utrwalenie wiedzy zdobytej podczas samodzielnej nauki. I teraz nie chcę reklamować żadnej konkretnej szkoły, ale wyjaśnię dokładnie, jakie korzyści można z tego wyciągnąć:

Z dużym prawdopodobieństwem dowiesz się czegoś, czego wcześniej nie wiedziałeś. Kursy charakteryzują się dość dużą objętością materiału, który jest przedstawiony w ustrukturyzowanej formie, co pozwala na lepsze przyswojenie materiału.

W trakcie kursu będziesz mieć mentor, który przeanalizuje rozwiązanie Twoich problemów i wskaże słabe strony i błędy.

Motywacja. Jest to przeznaczone przede wszystkim dla tych, którzy potrzebują pomocy w samodyscyplinie. Czasami dość trudno jest zmusić się do zrobienia czegoś, niezależnie od tego, jakie perspektywy rysują się na horyzoncie. Uczęszczając na kursy, będziesz mieć jasny harmonogram do wykonania i zadania do wykonania, w przeciwnym razie zostaniesz wydalony. W przypadku kursów płatnych rolę odgrywa tu także motywacja finansowa. Przecież oddając swoje ciężko zarobione pieniądze, masz zupełnie inne podejście do sprawy, a myśli o zwykłym spacerze pojawiają się znacznie rzadziej.

Kolejna zaleta - certyfikat. Oczywiste jest, że ostatecznie będziesz oceniany na podstawie swojej wiedzy, a nie obecności kawałków papieru w CV. Niemniej jednak będzie to plus, zwłaszcza jeśli jest kandydat o podobnym poziomie wiedzy, ale bez dokumentów potwierdzających.

Plus jeden projekt na GitHubie do swojej skarbonki. Jeśli jesteś początkującym programistą, najprawdopodobniej projekt napisany na kursach będzie ciekawszy z technologicznego punktu widzenia niż te, które zostały napisane wcześniej.

I najważniejsze - zatrudnienie. Mówiąc o kursach nie mam na myśli tylko tych, za które trzeba zapłacić. Często firmy same rekrutują na szkolenia, aby później móc zatrudnić najlepszych. Może to być kurs wewnętrzny lub staż/staż. Ta opcja jest najlepsza, ponieważ nie musisz za nic płacić, zyskujesz doświadczenie i wszystkie powyższe zalety, a dodatkowo realną perspektywę pracy. Trudniej się do nich dostać, ale perspektywy są większe.

Całkowity

Ruby to język, który pozwala pracować bez wielu kłopotów i zamieszania, jakie towarzyszą językom z silną typizacją. Rozpoczęcie pracy z Ruby jest łatwe, zwłaszcza jeśli masz już doświadczenie w programowaniu w innych językach programowania i będziesz w stanie szybko tworzyć prototypy za pomocą Ruby on Rails. W Japonii, skąd się wziął, Ruby był używany do tworzenia gier. Ruby jest zwięzły i czyta się jak angielski, dzięki czemu kod jest łatwy do zrozumienia dla początkujących.

Jeśli chodzi o naukę języka Ruby, chcę powtórzyć: musisz zacząć od małych rzeczy. Przeczytaj kilka książek, wykonaj samodzielnie kilka zadań, a następnie, jeśli poczujesz potrzebę zdobycia większej wiedzy i doświadczenia lub dodatkowej motywacji, możesz przystąpić do kursów, mając już pewien zasób wiedzy zdobytej samodzielnie.

Najlepiej, jeśli są to kursy oferowane przez firmę, która po ich ukończeniu przedstawi Ci ofertę, jeśli osiągniesz dobre wyniki. Alternatywną opcją są płatne kursy, które pomogą Ci utrwalić wiedzę, dodać kolejny projekt do CV i zdobyć doświadczenie, które jest najważniejsze na starcie. Nie należy jednak oczekiwać, że po ukończeniu płatnych kursów bez problemu przejdziesz rozmowę kwalifikacyjną, okazując certyfikat. W każdym razie wiedza będzie oceniana.

Jednocześnie, jeśli masz wystarczającą motywację, cierpliwość, umiejętności i doświadczenie z innymi językami programowania, możesz łatwo opanować Ruby samodzielnie, ponieważ w Internecie jest wiele przydatnych i dobrze ustrukturyzowanych informacji. Ponadto, dzięki otwartej i dużej społeczności Ruby, możesz łatwo znaleźć w Internecie odpowiedzi na wiele możliwych pytań, które z dużym prawdopodobieństwem ktoś już zadał przed Tobą.

Miłej nauki! A w następnym artykule porozmawiamy o kodzie.

Subskrybuj nasz kanał na Telegramie dla juniorów, aby nie przegapić ciekawych ofert pracy, staży, kursów, artykułów.