A határ átlépése a titka a Ruby on Rails

Ez a tartalom része a sorozat: Crossing Borders

Stay tuned a közelgő cikkek ebben a sorozatban.

A csalás és szkepticizmus

Vita síneket a Java-közösség intenzíven, és nincs jele a pusztulás. Támogatók Rails büszkélkedhet hihetetlen teljesítményt, egyesek szerint, azzal 10-1 képest Java-fejlesztő. Mint minden Java-fejlesztő, a természetes reakció, hogy ne bízzon semmilyen biztosítékot a szörnyű teljesítményt, mert már hallott ilyet, és csalódottak voltak. Java ügyvédei azt állítják, hogy a Ruby on Rails egy játék, ami nem skálázható, pedig rossz kódot, és nem működik kívül egyszerű alkalmazások. De ahogy a dicséretet továbbra Rails (gyakran a megbízható forrásból származó), lehetséges, óvatosabb megközelítést megértésében Rails jól van, és hozza azokat az ötleteket vissza a Java platform. Ebben a cikkben lesz szó az alapvető funkciókat (rejtett íz), alkotják a lényegét nagyteljesítményű Rails.

Erről a sorozat

Ebben a cikksorozatban bemutatott fogalmakat és programozási technikák, amelyek gyökeresen eltérnek Java-fejlesztés, hanem közvetlenül alkalmas rá. Bizonyos esetekben szükség van, hogy integrálja a technológiát, hogy kihasználják annak előnyeit. Más esetekben, akkor lehet alkalmazni, közvetlenül a koncepciót. Az egyes eszköz önmagában nem olyan fontos, mint a gondolat, hogy más nyelvek és rendszerek befolyásolhatják a fejlesztés, az integrált rendszereket és még alapvető megközelítéseket a Java-közösség.

sínek filozófia

  • Zökkenőmentes integráció. Sínek ragyogóan használja a legjobb tulajdonságait a Ruby programozási nyelv. Ez kiterjeszti a Ruby ezért néha nehéz megmondani, hol ér véget és kezdődik Ruby Rails. Szintén figyelemre méltó kiváló integrációja Active Record (Rails perzisztencia mechanizmus) és a környezet Model-View-Controller (modell-nézet-vezérlő - MVC). Például, akkor írj három sornyi kódot hozzon létre egy táblázatot, majd azonnal létrehoz egy felhasználói interfészt ezt a modellt.
  • Egyezmény a konfiguráció. Ahhoz, hogy megőrizzük a tökéletes rugalmasság Java-támogatási rendszer hangerő, átfogó konfigurációs fájlokat. Sínek elhagyja ezt a stratégiát. Bevallja a szokásos könyvtár felépítése a projekt, és egy egyszerű, közös névadási mód, osztályok, táblázatok és oszlopok, nagyrészt utalva a normál kialakítású Java-alkalmazások. Ennek eredményeként a Rails-alkalmazásokat kell csak egy része a konfigurációs kódot használják Java, gyakran csökkentve a térfogatot több mint 10 alkalommal.
  • Alacsony ismételhetőség. Ne ismételje (Ne ismételje Yourself, vagy száraz) - Itt vannak a hagyományos szlogen Rails-közösségben. Rails környezet, a fejlesztők inkább absztrakt ismétlődő feladatok módszerek gyakran keresnek, mint a terjeszkedés a Ruby nyelvet. Ahogy láttam a harmadik cikk ebben a sorozatban, meta-programozási stratégia Rails megnehezíti a munka minden sor kódot.
  • Azonnali visszajelzést. Amikor dolgozik Rails sok mit tenni, ez okozhat azonnali visszaüt. Írsz egy sor kódot, és menti, és a változás akkor válik aktívvá, amikor betölti a következő web-oldal. Migrációs láthatóvá válhat után azonnal frissíti az adatbázist.
gyakorlati alapjait

A motívumok alapjául szolgáló Ruby on Rails, szigorúan gyakorlati tapasztalatok alapján. Rails környezetben nőtt ki a gyakorlati alkalmazása a fejlesztés a népszerű projekt menedzsment alkalmazás Basecamp (lásd. „Források” című fejezetet).

Koncentráció kérelemre

Az ellenérv a kijelentéseket a szörnyű teljesítményt általában a következők alapján: ha jó volt a kalapács, én valószínűleg nem találtam egy másik kalapács, ami a kapacitása kétszer akkora; maradjunk beszél teljesítményének javítására 5-10-szeresét kalapácsok tökéletessé évezredek alatt. De az emberek, akik össze Ruby on Rails más integrált Java környezet általános célú, nem ért egyet ezzel. Akkor teljesítményének javítására a megoldás bizonyos problémák 10-szer, gyökeresen megváltoztatja a természetét a szerszámot. Szakemberek már pneumatikus kalapácsok, amely kalapács egy tucat körmök, míg a hagyományos kalapács szerzett csak egy. Mint légkalapács, Rails egy speciális eszköz. Ebben a környezetben meg van írva egy szem pontos alkalmazása terén egy új web-alapú alkalmazások használata az adatbázis.

Azt feltételezte volna, hogy körülbelül a fele a fejlesztés most webalapú alkalmazások az adatbázis. Azaz, pontosabban Rails - egy hiánypótló termék, de a speciális nagy és fontos. Szakterület ezen a területen ad Rails hatalmas előnyt, mivel a nagyobb hatást tud biztosítani. Összpontosítva projektek saját területén, Rails-fejlesztők használhatják összefoglaló technikák, amelyek nem nyújtanak más integrált rendszerek. Ez a szakirányú gyakran feláldozza rugalmasságot az egyszerűség kedvéért.

Új alkalmazások használata az adatbázis-hez a csomagoló (csomagolás) megközelítés helyett olyan megközelítést feltérképezése. Ahogy láttam az első cikk ebben a sorozatban, Rails programot feltételezi megállapodások adatmodell. Rails-alkalmazásokat kell egy kódrészletet használt modell Java-alkalmazások. Ha létrehozza a különleges rendszer Rails-alkalmazások, ez a filozófia jól működik. Ha azt szeretnénk, hogy beállítsa a rendszer Rails, minden nem olyan sima.

Web-alapú alkalmazások lehetővé teszik a hasonló sor optimalizálás. Annak ismeretében, hogy a kérelem alapja egy web-alapú, tudod, hogy a teljes szerkezetét a kérelem és a fő elemei a valószínű, hogy szükség lesz. A következő funkciók fokozott Rails, mert Rails specializálódott webes alkalmazások:

  • Model-View-Controller. Sínek MVC-közepes úgynevezett Action Pack, beállítása webes hozzáféréssel és végrehajtja a jól ismert stratégia az úgynevezett 2. modell (lásd. „Források” című fejezetet). Sínek-optimalizált változata az integráció a vezérlő és a reprezentáció, amely minimalizálja konfiguráció és automatikusan elérhetővé teszi, hogy képviselje a változók a vezérlő példány.
  • A szerkezet a projekt könyvtárba. Minden Rails-alkalmazások szerkezete azonos a projekt, a katalógusok kezeléséhez alkalmazás kódját, adatbázis konfiguráció, public static fájlok és script a Web-alapú menedzsment szerver és funkcionális web-alapú tesztelés.
  • Építészet. Sínek környezet egyszerűsíti az architektúra, amely egy kész script generáló alkalmazás komponensek, amelyek közös építészeti döntések, mint például a lapozási és a cache-tengely, multikereketnek kétszintű tervezés; környezet tesztelése, fejlesztése és gyártása.
  • Toolkit. Sínek szakosodott eszközök az interneten. Naplózása támogatási rendszer, dolgozó ellenőrzési pontok, Profiler és vizsgálati alkalmas web-alapú alkalmazások, és lehetővé tette a kétszintű munkát.

De légkalapács soha nem helyettesítheti a hagyományos kalapács, így járt volna el ésszerűtlenül, várva a teljes csere. Hammer mindig tudja, hogy a dolgok, amelyek egy légkalapács nem. Sínek soha nem lesz olyan eszköz a vállalati integráció, objektum-relációs leképezés, vagy univerzális webes szolgáltatásokat. A legjobb dolog, amit elvárhat a síneket - hogy ő egy dedikált eszköz, amely jól működik a rést.

tapasztalat Fejlesztő

Poring mint a részleteket a sínek, akkor kezdik felismerni, milyen radikálisan eltérő lehet egy élmény Rails fejlesztő. Gyors fordított reakció ciklus interaktív konzol minden lépését a konfigurációs megállapodások - mindez javítja a fejlesztői tapasztalat irányokban, amelyek gyakran nem állnak rendelkezésre Java-alkalmazások.

fordított reakciót ciklust

Akkor feltételezhető, hogy gyorsan fordított reakció ciklus, ami segíti a fejlesztés lesz káros a csomagolt alkalmazások. A végén, a gyakori újratöltés osztályok, amelyek lehetővé teszik a gyors reakció fordított ciklus kell lassítani a kitöltött jelentkezési elfogadhatatlan szintre. De Rails megoldja ezt a problémát azáltal, hogy egy másik környezet kiépítése és fejlesztése. A fejlesztői környezet végez gyakori újraindulása osztályok rovására az alkalmazás teljesítményét, és indítsa újra munkaközeg csökkenti a szükséges minimum gyors végfelhasználói élményt kárára gyors fordított reakció ciklusát a fejlesztő.

interaktivitás

Az interaktivitás Ruby is hozzájárul sínek. Azt gondolhatnánk, hogy hibakeresés Rails-alkalmazások nélkül teljes értékű IDE-környezetben nehéz. Ez nem így van. Sínek két olyan függvényt, amely egyszerűsíti a hibakeresést. Egyikük - a munkaprogram az ellenőrző pontokon. amely lehetővé teszi, hogy adjunk kulcsszó töréspont a forráskódban.

Ha fut a UNIX és Mac OS X, egyszerűen fuss a szervert egy külön folyamat.

Írja be vagy illessze be az alábbi kódot a app / vezérlők / samples_controller.rb file:

Vizsgáljuk meg a kódot, hogy letölti oldalak localhost: 3000 / minták és localhost: 3000 / minta / show.

Amikor Rails eléri az ellenőrzőpont, az alkalmazás leáll. A program ablaka az ellenőrző pontokat nyit a Ruby interpreter a környezet állapotának, amely megfelel a jelenlegi állapotában a vezérlő. Akkor majd végrehajtja Ruby parancsok lekérdezésére információt az állam a munkamenet, hogy végre módszerek és keresett változók:

Ez a kis program nem ad teljes debugger, viszont van néhány szolgáltatás, amely nem Java-hibakereső, beleértve a teljes hozzáférést biztosít a tolmács, és a képesség, hogy végre a módszerek az alkalmazás.

Egyezmény a konfiguráció

Egyezmény a konfiguráció is vezet néhány váratlan pillanatokban új Rails-fejlesztők, mert a vezérlő és a modell kódja meglehetősen szűkszavú. Láttad az első cikk. hogy támaszkodva Rails környezetben, akkor kap néhány fejlett viselkedés nagyon egyszerű osztályok felállítása Rails-elnevezési konvenciók és lehetővé Rails kitalálni a kapcsolódási pontokat az alkalmazás helyett közvetlen a konfigurációt. Például Person objektum sok attribútum és egy-sok kapcsolat a részleg is a következőképpen néznek ki:

Nem konfiguráció felesleges, mivel Rails, hogy a feltételezés, hogy a tábla nevét (fő), a cím objektum azonosítót és egy elsődleges kulcsot (id), a művész kapcsolatos táblázatot (osztályok), a neve az idegen kulcs (department_id) és a külső osztály nevét (department.rb) alapuló, a neve a megállapodásokat. A kód egyszerű marad, kifejező és nagyon egyszerű megjelenésű, nem számít, mit csinál vele - írni, olvasni vagy szolgáltatás. Tervek azonnal világos.

Mit lehet tanulni a Java-fejlesztők?

Nem javaslom, hogy egy jobb Rails Java. Ehelyett a Java-fejlesztők kell tanulni néhány órát Rails környezetben, és arra törekszenek, hogy hozzon létre vagy javítására Java-környezet a következő feladatokat látja el:

  • Hagyjuk forró telepítésre, amelynek csökkentett fordított reakció-ciklus, vagy támogató média, amely lehetővé teszi a forró telepítését. Ez a prioritás legyen sokkal magasabb oldalán Java, mint most.
  • Használjon kevesebb XML és több megállapodást. Megállapodás nem zárja ki a konfigurációt, mivel akkor a megállapodás határozza meg az alapértelmezett beállításokat és a konfiguráció felülírni megállapodást. Ezt a megközelítést alkalmazva, mint ahogy a sínek, akkor a legjobb: tömör kódot kevesebb ismétlés a rugalmasság elvesztése nélkül.
  • Dolgozz, hogy bele egy nagyobb számú programozási nyelvek, köztük BeanShell (lásd. „Resources”), a tanulmány a Java-osztályok a hibakeresési folyamat.
  • Használja a megfelelő eszközöket a munkát. Nem feltétlenül utal a Hibernate csak kitartás, Struts, vagy csak azért, mert szüksége van egy web-alapú alkalmazás.

Beleértve a legjobb tulajdonságait más programozási nyelvek, akkor nem szaporodnak Rails, de határozottan javult a Java-képesítést.

Letölthető Resources

Kapcsolódó témák

Kapcsolódó cikkek