apeescape2.com
  • Glavni
  • Tehnologija
  • Trendovi
  • Mobilni
  • Uspon Daljinskog Upravljača
Tehnologija

Koje su prednosti Ruby on Rails? Nakon dva desetljeća programiranja, koristim se šinama

Ponekad čujem kako se ljudi žale na svoje klijente, govoreći da jesu inzistirati na korištenju Railsa, da su imali previše Kool Aida. Ako su novaci, gotovo da im pozli u želucu zbog toga što će morati pronaći još jednog programera Ruby on Rails 'primadona'. Tada izvuku nešto slično ovom nevjerojatno neukom usporedba između Gita i PHP-a kako bi dokazali svoju poantu. 'Oni ni sami ne znaju što traže', kažu.

Za nas kao programeri , ponekad se doista čini da naši klijenti nemaju pojma. Volimo pretjerivati ​​s ovakvim slučajevima. Kad malo razmislite, ne čini se ispravnim pomisliti da je osoba koja mi daje novac za izgradnju stvari nekako ograničena i ‘jednostavno ne shvaća’. Zapravo, Vjerujem da većina klijenata dobro poznaje svoje mogućnosti, a opet još odluči ići s Railsom.



Pokušat ću objasniti što, po mom mišljenju, čini Rails dovoljno korisnim da se ozbiljno razmotri za mnoštvo projekata i potreba.



ukrasni uzorak obično je povezan s

Prednosti Ruby

Moguće je da nitko ne bi ni znao za blagodati Rubyja da nije bilo same Rails. Neki ljudi vole omalovažavati Ruby govoreći da je 'tako lako za Ruby' sa svojim 'vitezom u sjajnom oklopu zvanom Rails' i da bi bez Railsa 'Ruby bila nebitna'. Ne mogu sa sigurnošću reći je li to istina ili ne, ali znam da bi bila velika šteta kad bi svijet propustio tako vrhunski jezik. Činjenica je: autor Railsa namjerno je odabrao Ruby, a njegova se 'divlja' oklada isplatila s ogromnim zanimanjem. Ono što je on vidio tada, mnogi drugi mogu vidjeti i danas. Ruby nekako omogućuje programerima na poseban način koji je tako teško objasniti ‘neopranoj masi’. Pa, zašto koristiti Ruby on Rails? Ruby usrećuje programera, kao što se reklamira.

Iako se većina programera slaže da je Ruby zgodan, neki to vide kao previše tako. Brinu se što bi se moglo dogoditi sa svim slobodama koje Ruby dopušta, kao i sa svim mogućnostima zlouporabe. Dopustite mi da ilustriram s nekim krpanjem majmuna:



'1'.to_i #=> 1 class String def to_i raise 'foobar' end end '1'.to_i #=> RuntimeError: foobar

To je tako jednostavno: sa samo pet redaka koda uzeli smo postojeću klasu i nadjačali njezino ponašanje. Nohting je sveto - čak ni Gudač. Ovu posebnu pogrešku bilo bi lako uočiti, ali stvari mogu postati puno zlokobnije:

class String def to_i self.to_f - 1.13 end end '2'.to_i #=> 0.8700000000000001

Upravo smo tako u klasu String unijeli pogrešku koja se može umotati i zakloniti slojem po sloju složenosti.

Dakle, možda mislite: Mogu li svi i njihova majka zbrkati moju dragocjenu prijavu? Iako ovo ponašanje doista izgleda zastrašujuće - zapravo nije. U pet godina koristeći Ruby , Imao sam točno nula problema s ovim ponašanjem. Možda se čini neintuitivnim, ali opet, tako je i s vožnjom automobila brzinom od 60 km / h u suprotnim smjerovima odvojenim samo tankom bijelom linijom nasred ceste. U praksi oboje djeluju izvanredno dobro.



s korporacija i c korporacija
Možda se čini neintuitivnim, ali opet, tako je i s vožnjom automobila brzinom od 60 km / h u suprotnim smjerovima odvojenim samo tankom bijelom linijom nasred ceste. U praksi oboje djeluju izvanredno dobro.

Druga je prednost što je Ruby svestran alat. Kao takav ima oštre rubove nalik na nož. Volim misliti da odrasli mogu sasvim dobro rukovati noževima - zaštita djece je za, pa, djecu ( Cvrkut ). A ako se u IT-u s vama postupa kao s djetetom, ostavljate žrtvu Paula Grahama Paradoks Bluba : mislite da vam je bolje bez određenih značajki koje ne razumijete ili za koje vam je netko rekao da su preopasne. Naravno, danas se pitamo 'zašto koristiti Ruby na tračnicama'; dakle, ovo je rasprava za neki drugi put. Doduše, Ruby propušta neke značajke koje imaju drugi jezici (Lisp hmm, hmm). Sve u svemu, Ruby je blizu vrha 'kontinuuma jezične snage'.

Mojih prvih nekoliko godina s Ruby bilo je ponizno. Toliko sam naučio čitajući tuđi kod. Ponekad sam bio zapanjen; ponekad sam bila luda; no na kraju mi ​​je to znanje omogućilo da komuniciram s računalom mnogo učinkovitije nego prije. Gotovo mi je žao nekih drugih ‘birokratskih’ jezika zbog kojih skačete kroz obruče samo da biste ih preskočili, a sve dok vam kažem „Ja samo radim ono što je najbolje za vas, to je za vaše dobro!“

Pragmatizam

Duboko se poštuje pragmatizam upleten u Railsov DNK na najnižoj mogućoj razini. U kombinaciji s prednostima Rubyja, ovaj pragmatizam daje elegantna rješenja i potiče / nadahnjuje Zajednica za razvoj Ruby on Rails učiniti isto. Pragmatizam se često oglašava kao šator šina, tako da ova tvrdnja nije nova, ali podsjetio sam na to da je istinitost nedavno kada mi je prijatelj pokušao pokazati koliko sam 'cool' Hibernate stvarno jest. Mučio se. Osjetio sam njegovu bol jer nije uspio postaviti bezbroj opcija i konfiguracijskih parametara koji bi uopće trebali biti zadane vrijednosti okvira.

S godinama su moji standardi za umjetnu složenost postajali sve viši i viši. S obzirom na to da sam proizvodni kod počeo pisati davne 1989. godine u dobi od 11 godina (počevši od projekta za mog susjeda iz Clipper Ljeto ‘87 ), Imam blizu nulte tolerancije na nepotrebne komplikacije. A Rails ima jako visoke rezultate na tom odjelu. To je više od puke 'konvencije oko konfiguracije'; Govorim o cijelom pragmatičnom načinu razmišljanja koji je visoko cijenjen unutar i koji se prožima kroz zajednicu Rails.

Izražajnost

Rails je najbliži engleskom jeziku (osim ako ne koristite COBOL). Koristi ono što je poznato kao interno DSL , proširujući Ruby vlastitom semantikom. Konstruiranje DSL-a uvijek je opasno jer učinkovito razvijate novi jezik. Budući da je interni, ne trebate koristiti vanjski parser, ali u određenom se smislu čini kao novi jezik. Rails tim postigao je dobru ravnotežu sa svojim DSL-om, koristeći ga tamo gdje to ima smisla i rijetko pretjerujući, pokazujući izvrsnu samokontrolu. Mislim da bi svaki programer, bez obzira na Railsovo iskustvo, (pa čak i neki ne-programeri) ovo mogao razumjeti:

class User true acts_as_taggable acts_as_taggable_on :certificates, :expertise_kinds validates_presence_of :first_name, :last_name, :email has_many :translations has_attached_file :avatar, :styles => {:small => '240x240>'} has_attached_file :cv ...

Zapravo, ako niste upoznati s Rubyjem, ovo bi moglo izgledati čudno - gotovo kao da nije programski jezik. Jednom kad shvatite da su to samo pozivi metoda bez zagrada, spremni ste za početak. Ipak, Rails DSL osjeća se kao da je ovo poseban jezik za opisivanje zahtjeva, a zapravo je to samo pametno imenovanje i svojstvena upotreba izvrsne Rubyne sintakse.

Zajednica

Rails ima vojsku obveznika koji osiguravaju da ostane u top-top stanju. Mnogi se projekti s godinama utapaju, no kod Rails-a iskre i dalje lete kad treba donijeti odluke. Čini se da održavatelji (još uvijek) istinski brinu i žele da ljudi koriste Ruby on Rails i shvate njegove prednosti.

Mnogi se projekti s godinama utapaju, no kod Rails-a iskre i dalje lete kad treba donijeti odluke. Cvrkut

Ispod Rails-a, kao trešnja na vrhu, stoji Ruby sa svojim strašnim upraviteljem paketa, RubyGems , usporedivo s CPAN s obzirom na broj paketa - a s obzirom na CPAN-ovu dob, ta je tvrdnja (blago rečeno) vrlo impresivna. Rails je nakratko skrenuo s tračnica kada je pokušao izraditi vlastite 'Rails plugins'. Srećom, ovo se nije držalo, pa RubyGems ostaje jedinstveni, vrhunski izvor koda koji programiraju vrlo pametni pojedinci.

kako stvoriti api u javascriptu

Sinergija između cool jezika, pragmatičnog mrežnog okvira i izvrsne zajednice daje Railsu rezultat mnogo bolji od zbroja njegovih dijelova.

Zrelost

Tračnice su oko bloka. Na neki hipsterski način, to više nije ni tako cool. To je dobra stvar što se tiče odabira tehnološkog snopa: želite nešto provjereno. A Rails je upravo to. Nedavno smo napisali članak koji govori o širokoj paleti Tumači i vrijeme izvođenja Rubyja koji su sada dostupni.

Marketing

Ja znam ja znam. Kao IT stručnjak, stvarno bih trebao cijeniti 'ozbiljan' stvari i zanemarite ‘Sjaj’ . Možda se čini plitko, ali suočavamo se s tim:

  1. U usporedbi s konkurencijom, Stranica šina izgled dobro .
  2. Railsova prva uloga na ekranu, tada, bila je jednostavno oduzimajući dah . Danas to možda neće izgledati toliko impresivno, ali imajte na umu da je jedini razlog zašto svi znamo o Javi taj što su svi bili toliko otpušteni zbog mogućnosti pokretanja Java Aplet u pregledniku. Ispostavilo se da to ipak nije toliko važno, ali ipak, ovo je Javu stavilo na radar. Slično tome, ovaj 15-minutni prijenos videozapisa na blogu bio je velik pogodak koji je uzbudio mnoge ljude.

Ovdje se čak ne radi ni o taštini; radi se o angažiranju što većeg broja pametnih ljudi da stave vodu u mlin. Kad se razmatraju okviri, najbolje je biti u gužvi. Odabir okvira na koji se ovi pametni ljudi usredotočuju jednostavno znači da je za vas već pokriveno puno više terena. I ovo me dovodi do moje sljedeće točke.

(Ne) Ponovno pronalazak kotača

Imam blago mjesto za sićušne okvire. Volim kad mogu razumjeti što određeni okvir radi i zašto. U tom smislu, Rails je pomalo napuhan, a ponekad i neodoljiv.

kako zaobići cvv kod

Ovdje je nedoumica: koliko puta želite iznova pisati iste stvari? Siguran sam da se neki od njih mogu bolje napisati, ali treba vremena - puno vremena. Što više dopustite Rails-u da učini za vas, to ćete manje morati brinuti o ponovnom pisanju ili ponovnoj implementaciji svoje funkcije.

Rails je (kako se kaže) 'baterije uključene'. To nije dobra stvar ako ste ljubitelj rijetkosti ili ako osjećate potrebu za širokim znanjem o tome kako sve funkcionira. U praksi, ako se oslobodite strahova, čini se da to djeluje. Rails ima razumne zadane vrijednosti za gotovo sve što vam treba i dovoljno je modularan da vas izbjegne da vas stisnu u usko mjesto.

Zaključak

Zapitajte se opet, zašto koristiti Ruby na tračnicama ? Rails je prikladan i za najsuvremenije javne web stranice koje se natječu s JavaScript aplikacijama s jednom stranicom i za složene poslovne programe korporativnog sustava koji obično izgledaju pomalo 'ružnije' (s generičnijim korisničkim sučeljem niže vjernosti), ali to nadoknađuju mrlja s gomilom složenih poslovnih pravila i logike. Njegova je prednost što je svestran i sposoban se natjecati i s elegantnim i s moćnim.

Za većinu najčešćih problema, Rails vam na raspolaganju ima komponentu koja je gotovo izravno s dokumentacijom koja je stalno iznadprosječna (nekako je osnovni tim Railsa uvjerio suradnike da je pisanje dokumentacije cool (iako svi znamo da je to not), što dovodi do dobro napisanih, konciznih i dokumenata koji štede vrijeme).

Kad ostavite po strani jednoroge i zagrljaje u petak, na kraju ćete dobiti moćni okvir koji možete koristiti i za buduću izmjenu igara i za svoju sljedeću poslovnu stranicu na sredini puta. A s vašim bazenom vrhunskih dragulja, na dohvat ruke imate arsenal koji provodi neke od najsjajnijih ideja u računalnom programiranju. Bez frke.

Povezano: Skraćivanje vremenske oznake: Priča o Ruby on Rails ActiveRecord

Udaljene radionice o strategiji robne marke: Krajnji korak-po-korak vodič

Alati I Vodiči

Udaljene radionice o strategiji robne marke: Krajnji korak-po-korak vodič
Zašto se više poduzetnika odlučuje za izgradnju fondova za pretraživanje preko startupa

Zašto se više poduzetnika odlučuje za izgradnju fondova za pretraživanje preko startupa

Financijski Procesi

Popularni Postovi
Avanture u programiranju i razvoju GPS-a: geoprostorni vodič
Avanture u programiranju i razvoju GPS-a: geoprostorni vodič
TAM metodologija: Objašnjenje i primjer ukupne adresirane analize tržišta
TAM metodologija: Objašnjenje i primjer ukupne adresirane analize tržišta
Omjeri vrednovanja: Ključni metrički podaci koje stručnjaci za financije trebaju znati
Omjeri vrednovanja: Ključni metrički podaci koje stručnjaci za financije trebaju znati
Agile dokumentacija: Usklađivanje brzine i zadržavanja znanja
Agile dokumentacija: Usklađivanje brzine i zadržavanja znanja
Rizik portfelja industrije-savjetnika u industriji: učinkovitost ili rezanje kutova?
Rizik portfelja industrije-savjetnika u industriji: učinkovitost ili rezanje kutova?
 
Kako provesti učinkovito UX istraživanje - Vodič
Kako provesti učinkovito UX istraživanje - Vodič
Skok u VR / AR dizajn
Skok u VR / AR dizajn
Upoznajte RxJavu: Nestala knjižnica reaktivnog programiranja za Android
Upoznajte RxJavu: Nestala knjižnica reaktivnog programiranja za Android
10 UX isporuka vrhunskih dizajnera
10 UX isporuka vrhunskih dizajnera
Pregled Microsoftovog HoloLens - Premošćavanje praznine između AR i VR
Pregled Microsoftovog HoloLens - Premošćavanje praznine između AR i VR
Popularni Postovi
  • koji bi alat programer koristio za vizualizaciju odnosa između modula
  • python niz instanci klase
  • kako izvesti jedinstveno testiranje
  • provjera autentičnosti na temelju proljetnog sigurnosnog tokena
  • najbolje prakse dizajniranja sql baze podataka
Kategorije
Investitori I Financiranje Dizajn Marke Rast Prihoda Ux Dizajn Tehnologija Okretan Talent Planiranje I Predviđanje Životni Ciklus Proizvoda Upravljanje Projektima Inovacija

© 2021 | Sva Prava Pridržana

apeescape2.com