40 legjobb rubin drágakő, amelyek nélkül nem élhetünk

Eredetileg ezt a cikket a Codica Blogba tették közzé.

Manapság a webfejlesztők a kész megoldásokhoz férhetnek hozzá, ahelyett, hogy a funkciókat a semmiből írnák, ami természetesen nagy pozitív hatással van a fejlesztés sebességére.

Ha ebből a szempontból nézzük a Rubint, akkor ez kitűnő a Ruby gems nevű kiterjedt könyvtárak miatt. Különleges funkciókat kínálnak az Ön által létrehozott Ruby alkalmazások számára. Tegyük fel, hogy hitelesítési funkcióval szeretne rendelkezni a programjában - ezt nem kell írnia, hanem drágakő formájában szerezheti be. És ez csak egy példa a több ezer ingyenesen elérhető Ruby drágakő közül.

Ebben a cikkben felfedezzük a legfontosabb Ruby drágaköveket, amelyeket a Codica webfejlesztésében használunk, és hogy mindegyikük milyen feladatokkal segít végrehajtani.

Ruby drágakő: mi mögötte?

Minden gyöngyszem egy bizonyos funkciós elemet tartalmaz, beleértve az ezzel a funkcióval kapcsolatos fájlokat. A Ruby drágakövekkel szinte bármilyen feladatra megoldást találhat, amely jelentősen csökkenti a webfejlesztéshez szükséges időt.

Ezeknek a könyvtáraknak saját tárolója van, úgynevezett RubyGems, és egy csomagkezelőnek - gem csomagoló. Mindkettő eszközöket tartalmaz a drágakövek telepítésének könnyű kezeléséhez, valamint egy kiszolgálót terjesztésükhöz. A RubyGems első verzióját 2004-ben adták ki.

A robosztus közösség az egyik Ruby-eszköz. A legproaktívabb Ruby rajongók egykezes megoldásokat találnak, és kódban valósítják meg. Aztán egyesítik ezeket a könyvtárakat nyílt forráskódúvá, és itt kezdődik a drágakövek élete.

A cikk elkészítésének pillanatáig a drágakövek száma meghaladta a 148 782-et.

Forrás: Rubygems.org

Ilyen mennyiségű kész megoldás kiküszöböli a „kerék újra feltalálásának” szükségességét minden alkalommal, amikor egy kihívással szembesül. A szabad hozzáférés miatt sok funkció már meg van írva, és lefedik az összes fejlesztési szempontot: a kódminőség biztosításától a telepítésig.

Legfontosabb rubin drágakövek, amelyeket használunk

Függetlenül attól, hogy MVP-t építünk fel egy induláshoz, vagy átalakítunk egy többtartományú pénzügyi elemző platformot, a Ruby gems szilárd háttérként szolgál számunkra.

Készítettünk egy listát a hűvös Ruby drágakövekből, amely csak egy kis része az összes drágakőnek, amely segít kiváló termékek készítésében.

Kódminőség

A kód egyik alapvető tulajdonsága a minősége és egyszerűsége. Közvetlenül befolyásolja az alkalmazás sebességét és teljesítményét. A terjedelmes kódblokkok felfedezéséhez és eltávolításához, valamint a megfelelő refaktiválás elvégzéséhez két könyvtárat használunk.

A Rubocop statikus Ruby kód elemzésére és formázására szolgáló eszköz. A dobozból ki fogja hajtani a Ruby Style Guide közösségben felvázolt számos iránymutatást. A RuboCop rendkívül rugalmas, viselkedésének legtöbb aspektusát különféle konfigurációs lehetőségekkel lehet módosítani. A kóddal kapcsolatos problémák jelentése mellett a RuboCop automatikusan javíthat néhány problémát is az Ön számára.

A Overcommit egy gyöngyszem a Git horgok konfigurálásához. Kiválóan tartja a kódminőséget magasan. Ez lehetővé teszi a git-horgok hangolását a bélés indításához, mielőtt minden kötelezettségvállalást elvégeznének.

hibakeresés

Nem számít, mennyire magas a kódminőség, néha a hibák és a hibák elkerülhetetlenek. A hibák feltárására és kiküszöbölésére csapatunk a következő gyöngyszemeket nagyon hasznosnak találja.

A Better_errors egy gem, amely a hibákat mutatja. Hasznos információkat jelenít meg a hibáról, és kiváló vizuális hatással rendelkezik. A Better_errors a standard Rails hibalapot váltja fel. A Rails-en kívül bármely Rack-alkalmazásban, Rack-köztes szoftverként is alkalmazható.

A Byebug egy egyszerűen használható és szolgáltatásban gazdag hibakereső a Ruby számára. Ez a gem lehetővé teszi a sor soronkénti kitöltését, a feladatok és a végrehajtás közötti szünetet, mozgás közbeni változók megváltoztatását.

Tesztelés

A webes fejlesztési folyamat lehetetlen az létrehozott alkalmazás minőségellenőrzése nélkül. Itt jön a tesztelés, amely lehetővé teszi a minőség értékelését. A tesztek zökkenőmentes futtatásához és kezeléséhez csapatunk a következő segédprogramokat használja.

Az RSpec a viselkedésvezérelt fejlesztést javasolja a Ruby számára. A drágakő ad szabványokat a Ruby on Rails alkalmazások teszteléséhez. Az olvashatóbb DSL-t kínál a TestUnit szabványos tesztelési könyvtárához képest. Ezen túlmenően könnyen integrálható sok más gyöngyszemmel, amelyek megkönnyítik a tesztelési folyamatot.

A Capybara egy webes alkalmazások elfogadási tesztkerete. Hihetetlenül fut együtt az RSpec-rel. A gyöngyszem felel az integrált tesztekért, amelyek utánozzák a felhasználók böngészőben végrehajtott műveleteit. Ez lehetővé teszi néhány sorban az engedélyezési forgatókönyv leírását (lépjen a honlapra, írja be a bejelentkezési azonosítót és a jelszót, kattintson a Bejelentkezés gombra), és javasolja a hibakeresés különböző kényelmes módszereit.

A Capybara Screenshot egy gyöngyszem a képernyőképek automatikus mentéséhez, ha egy Capybara forgatókönyv leáll. A Capybara-val és a Uborka, az RSpec vagy a Minitesttel együtt a gem lehetővé teszi a forráskód megtekintését, és egy képernyőképet készít (adott esetben) a tesztkészlet minden egyes hibájához. Tárolja a sikertelen oldal HTML-jét és egy képernyőképet (capybara-webkit, Selén vagy poltergeist használata esetén). Ez a lehetőség nagyon értékes, ha problémát kell találni a kudarcok során.

A Parallel_tests teszteket tesz fel a TestUnit, az RSpec és a Uborka alkalmazásban, és gyorsabban halad át, párhuzamosan több processzoron. A folyamat felgyorsítása érdekében a kód a rendszerek összes magját használja. Futtatja a tesztet és további teszt adatbázisokat használ. A drágakő támogatja a Rails és más Ruby keretrendszereket.

A Factory Bot egy könyvtár a Ruby objektumok tesztként történő beállításához. Egyértelmű meghatározási szintaxissal rendelkezik. A könyvtár fenntartja az olyan többféle összeállítási stratégiát, mint a mentett példányok, a nem mentett példányok, az attribútum-kivonatok és a becsapott objektumok. Ezenkívül számos gyárat támogat ugyanahhoz az osztályhoz (felhasználó, admin_felhasználó), beleértve a gyári öröklést is.

A Chromedriver_helper egyszerűen telepíti és használható. Ráadásul a Chromium projekt szelén webdriver-adapterének is szolgál. Telepít egy végrehajtható chromedriver-helper programot egy gem útvonalba, lehetővé téve a Selenium számára, hogy webes illesztőprogramként hivatkozzon rá. Szükség esetén a forgatókönyv letölti a megfelelő bináris fájlt egy platformon, és telepíti azt a ~ / .chromedriver-helper fájlba, majd végrehajtja. Itt a gem lehetővé teszi bizonyos projektek számára, hogy kiválaszthassák a chromedriver melyik verzióját akarják futtatni.

A Shoulda Matchers olyan drágakő, amely egyszerű egyvonalas teszteket biztosít a közönséges sínek funkcionalitásához, ami felgyorsítja a tesztek írását egy tipikus kapacitáshoz.

A Simplecov az egyik hasznos drágakő a teszteléshez. Megmutatja az egységteszttel lefedett kód százalékát. Így a gem arra ösztönzi a fejlesztőket, hogy írjanak a 100% -ban tesztelt kódot, ami nagyban növeli annak minőségét.

Az Database Cleaner kódlefedettséget biztosít a Ruby 1.9+ számára egy erőteljes konfigurációs könyvtárral és a lefedettség automatikus egyesítésével a tesztkészletek között. Ezt gyakran alkalmazzák az RSpec-vel együtt, és tesztelési adatbázis tisztítására használják a tesztek indításakor. A gem lehetővé teszi az adatbázis tisztításának idejének hangolását: a tesztek indítása előtt, az egyes tesztek futtatása előtt / után.

RSpec :: Retry olyan eszköz, amely a következőket nyújtja: próbálkozzon újra véletlenszerűen hibás RSpec példával. Hozzáteszi: Újrapróbálási lehetőséget RSpec minták esetenkénti kudarcához. Ha egy modell rendelkezik a: retry opcióval, akkor az RSpec megismétli a példát, ahányszor a minta működik.

A Faker egy könyvtár demó adatok, például nevek, címek és telefonszámok előállításához.

bevetés

A központi telepítés a webfejlesztés fontos szakasza, és van egy könyvtár, amely segít a folyamat zökkenőmentes futtatásában.

A Mina egy gyors telepítő és szerver automatizálási eszköz. A Capistrano-hoz képest, amely egy távoli szerver-automatizálási eszköz, a Mina sokkal gyorsabban működik. Teljes eljárást generál Bash szkriptként, és távolról futtatja a kiszolgálón. A Capistrano-val ellentétben, ahol az egyes parancsokat külön-külön a saját SSH-munkameneteken futtatják, Mina létrehoz egy telepítésenként egy SSH-munkamenetet. Minimalizálja az SSH kapcsolat terhelését.

Mellesleg, a Codica-ban saját eszközünket építettük ki a Mina számára, amelyet mina-multideploy-nak hívnak. Ez lehetővé teszi az alkalmazások párhuzamos telepítését több szerveren.

Hitelesítés és hitelesítés

A legtöbb webes megoldás hitelesítési és engedélyezési rendszert igényel. Legyen szó e-kereskedelmi webhelyről vagy kiadói platformról, a felhasználók adatvédelme mindig az első helyen áll. A biztonságos megoldás megvalósításához több drágakövet használunk.

A Devise egy rugalmas hitelesítési megoldás a Rails-hez Warden alapján. A Devise segít bármilyen bonyolultsági szintű azonosító rendszer felépítésében - az e-mail és jelszó általi hitelesítéstől az áttételi rendszerig. Dióhéjban 10 modullal rendelkezik, köztük:

  • Confirmable: e-mailt küld megerősítő utasításokkal, és ellenőrzi, hogy a bejelentkezés során már megerősítették-e a fiókot;
  • Helyreállítható: visszaállítja a felhasználói jelszót, és visszaállítási utasításokat küld;
  • Emlékezetes: kezeli a token létrehozását és törlését, hogy emlékezzen a felhasználóra egy mentett sütiből;
  • Nyomon követhető: nyomon követi a bejelentkezési fiókot, az időbélyegzőket és az IP-címet.

A Ruby-JWT gem az RFC 7519 OAuth JSON Web Token (JWT) szabvány egyszerű Ruby-megvalósítása. A felhasználói hitelesítés ellenőrzésének eszközeként a két fél közötti biztonságosabb információátviteli rendszernek tekintik.

Ebben a sémában az alkalmazáskiszolgáló úgy van konfigurálva, hogy ellenőrizze, hogy a bejövő JWT-t generálja-e a hitelesítési kiszolgáló.

A CanCanCan egy rendkívül kényelmes engedélyezési drágakő. Ez lehetővé teszi a felhasználói szerepkörök és szabályok létrehozását és kezelését az alkalmazásokban, segítőkészletet biztosítva a nézetekhez és a vezérlőkhöz. A modellkönyvtárban található még a capa.rb fájl tartalmazhat érthető és olvasható utasításokat az egyes felhasználói csoportok jogainak leírásával. Zökkenőmentesen kölcsönhatásba lép a drágakövekkel, biztosítva a felhasználók hitelesítését.

Az OmniAuth egy rugalmas hitelesítési rendszer, amely a Rack köztes szoftvert használja. Ez egy könyvtár, amely lehetővé teszi szolgáltatók számára a hitelesítést olyan közösségi hálózati fiókokon keresztül, mint a Google vagy a Facebook. A könyvtár már tartalmaz a használatra kész szolgáltatók széles körét.

Fájlok feltöltése

Időnként olyan webes alkalmazásokat kell létrehoznunk, amelyek lehetővé teszik a felhasználók számára, hogy különféle fájlokat, például dokumentációt vagy képeket töltsenek fel. Annak érdekében, hogy ez a szolgáltatás a lehető leghasznosabb és felhasználóbarát legyen, néhány könyvtárat alkalmazunk.

A Carrierwave kiváló megoldás a Rails, Sinatra és más Ruby webes keretek fájlfeltöltésére és feldolgozására. A Carrierwave lehetővé teszi verziók létrehozását, hozzáadását, eltávolítását és feltöltését távoli helyről. Ezen felül tesztelési és konfigurálási lehetőségeket kínál. A Carrierwave gem működik az AWS S3-zal, és ilyen esetekben jól illeszkedik a Fog gemhez, amely integrálódik a felhőkiszolgálók széles választékával, ideértve a Rackspace Szervereket és a Brightboxot.

A Carrierwave_backgrounder a hordozóhullámmal működik. Ez lehetővé teszi a képfeldolgozást vagy a háttérbe tömörítést. Jelenleg támogatást nyújt a Késleltetett munka, Resque, Sidekiq, SuckerPunch, Girl Friday, Qu és a Queue Classic számára.

A MiniMagick az RMagick mini-pótlására szolgál. A drágakő lehetővé teszi a Ruby folyamatainak memória csökkentését. Az ImageMagick parancssori lehetőségeit elérhetővé teszi.

Keresés

Egyes projektekben az információ mennyisége túl nagy. Ebben az esetben kihívást jelenthet a szükséges adatok megtalálása. Ahhoz, hogy a keresési opciót a lehető leginkább felhasználóbarátnak lehessen végrehajtani, kihasználjuk az egyik segédprogramot.

Az Elasticsearch egy népszerű keresési rendszer, amelyet a vállalkozások széles körben használnak. A gem integrálja az Elasticsearch motort a Rails alkalmazásokba a teljes funkcióval, beleértve a teljes szöveges keresést is.

Rendszergazda panelek

Egy kiterjedt webes alkalmazás létrehozása és szolgáltatása általában hatalmas mennyiségű adat kezelését foglalja magában. A következő segédprogramok segítenek csapatunknak egy átfogó adatbázis-adminisztrációs eszköz megvalósításában.

Az Activeadmin a Ruby on Rails alkalmazások adminisztrációs kerete. A plugin lehetővé teszi adminisztrációs stílusú felületek létrehozását. Elválasztja az általános üzleti alkalmazásmintákat, drasztikusan leegyszerűsítve az elegáns interfészek megvalósítását a fejlesztők számára.

Az Administrator egy Rails motor. Segít egy felhasználóra reagáló adminisztrátori irányítópult felépítésében. Jelenleg még nem használtuk fel, annak ellenére, hogy feltárjuk annak lehetőségeit, és várakozással tekintünk a jövőbeli projektekben történő végrehajtásuk során.

Több fantasztikus drágakő különféle feladatokhoz

Bónuszként kiemeljük az Ön számára további drágaköveket, amelyek érdekesnek tűnhetnek. Mi felsoroljuk őket népszerűségük szerint (számos csillag a Githubon).

A Sidekiq egy egyszerű és hatékony háttér-feldolgozó eszköz a Ruby számára. Szálakat alkalmaz arra, hogy ugyanabban a folyamatban sok funkciót egyszerre kezeljenek. Bár a Sidekiq nem igényli a Rails alkalmazást, szorosan összekapcsolódik a Rails programmal, hogy a háttérfeldolgozást a lehető legnagyobb mértékben egyszerűsítse.

Az Simple_form egy olyan gyöngyszem, amely kényelmes DSL-t ad a űrlapok építéséhez a Rails-en. Ez kötődik egy egyszerű DSL-hez, nincs vélemény a jelölésről. Az Simple Form a rugalmasságra és az űrlapkészítéshez szükséges hatékony alkatrészek támogatására összpontosít. Az Simple Form elsődleges célja, hogy fenntartsa az elrendezés meghatározásának alapvető módszerét, lehetővé téve a fejlesztők számára, hogy megtalálják a vizuálisan legkellemesebb kódot. A DSL nagy része a Formtastic-ból származik.

A Friendly_Id nagyszerű segítséget nyújt az ActiveRecord permalink beépülő moduljainak használatakor. Ez lehetővé teszi az olvasható, jó megjelenésű URL-ek létrehozását és az emberbarát karakterláncok kezelését, mintha az ActiveRecord modellek digitális azonosítói lennének.

A Dotenv-sínek egy Ruby gem, amellyel a környezeti változók betölthetők egy dotfile-ből, amely a fő projektmappán kívül lehet. Ily módon a Dotenv lehetővé teszi az alkalmazás konfigurációs adatainak biztonságos tárolását.

A Slim egy sablonnyelv, amely megkísérelheti a szintaxist az alapvető kódelemekre redukálni anélkül, hogy rejtőzött lenne. Gyakorlatként kezdte megnézni, hogy mennyi lehet eltávolítani a szokásos HTML sablonokból (<,>, záró címkék stb.). Minél többen mutattak érdeklődést a Slim iránt, annál több a funkcionalitás és a szintaxis rugalmassága.

A Draper objektum-orientált prezentációs logikai réteget csatol a Rails alkalmazáshoz. A Draper segít kezelni ezt a funkciót az eljárási segítők áramlásában vagy a modellek tömegeinek felvételében. A drapérdekorátorok hatékonyabban mozgathatják a modelleket bemutatóhoz kapcsolódó logikával, hogy megszervezzék és teszteljék alkalmazásuk ezt a rétegét.

A Redis egy BSD-engedéllyel rendelkező Ruby-kliens nyílt forráskódú könyvtár. A memóriában tárolt adatszerkezet-tárolót képviseli. A drágakövet adatbázisként, gyorsítótárként és üzenetközvetítőként használják. A Redis támogatja az adatszerkezeteket, például karakterláncokat, kivonatokat, listákat, halmazokat, rendezett halmazokat tartomány lekérdezésekkel, bitképeket, hipernaplókat, geosztatikus indexeket sugár lekérdezésekkel és folyamokkal. A gyöngyszem tartalmaz beépített replikációt, Lua szkripteket, LRU kilakoltatást, tranzakciókat és több szintű lemezen való megmaradást. Ezen felül a Redis magas rendelkezésre állást tesz lehetővé a Redis Sentinel segítségével és az automatikus particionálással a Redis Cluster segítségével.

Az Annotate egyszerűsíti a Rails modellekkel végzett munkát. Hozzáfűz egy megjegyzést, amely összefoglalja az aktuális sémát a modellek fájljaiban. Ez a szolgáltatás sokkal könnyebbé teszi a kód felépítését, mivel nincs szükség minden egyes séma fájl ellenőrzésére.

A Pg_search építi az ActiveRecord nevű hatóköröket a PostgreSQL teljes szövegű keresés alkalmazásakor. Elég tisztességes alternatíva az Elasticsearch számára, ha a PostgreSQL-t használja. A segédprogramot könnyű konfigurálni. Ezenkívül lehetővé teszi az automatikus kiegészítés és a keresés társítások általi végrehajtását.

A Wicked lépésről lépésre építi az oldalakat (tárgyak létrehozásának formái stb.). A Wicked felgyorsítja és megkönnyíti a vezérlőkkel való együttműködést.

A Config a legegyszerűbb módja annak, hogy a többkörnyezetű yaml-beállításokat összekapcsolják a Rails, Sinatra, Pandrino és a Ruby más programjaival. Vonzó és egyszerű megoldást kínál a környezetre jellemző paraméterek egyszerű kezeléséhez.

Az I18n-feladatok egy gem, amellyel fordítással lehet dolgozni egy alkalmazásban. Bármely olyan projektnél alkalmazható, amely a Rails alapértelmezett Ruby I18n gyöngyszemét használja. Interfészt biztosít a locales használatához, elősegíti a hiányzó fordítások megtalálását, a fájlok normalizálását a fordításokkal, és új fordításokat ad hozzá a Google translate API-n keresztül.

A Money_rails nagyszerű gyöngyszem a valutákkal való együttműködéshez. Ez lehetővé teszi a devizaárfolyamok frissítésének automatizálását és az árak átszámítását a kívánt pénznemre.

Az impresionista lehetővé teszi az oldalmegtekintések számlálását. Ezen felül lehetővé teszi az oldalmegtekintések kérelmekenkénti sokszoros naplózását és a modellhez való hozzárendelését. Célja, hogy testreszabható statisztikákat adjon, lehetővé téve azonnali elérhetőségét az alkalmazásban, ellentétben a Google Analytics-szel, és az adatok összegyűjtése az API-val. Ezenkívül az impresionista lehetővé teszi az egyedi üzenetek hozzárendelését az oldalnézethez.

A Route_translator olyan eszköz, amely segít az alkalmazás útvonalainak fordításainak kezelésében. Egy egyszerű szótár formátumú. Kezdetben a translate_routes plugin villája volt, de később teljes értékű fordító eszközré alakult.

Következtetni

A Codica-nál minden szempontból nagyra értékeljük a Rubint, például a fókuszt, a tisztaságot és a kiváló nyelvolvashatóságot, amelyet gyakran emberi jellegűnek tekintnek. A Ruby drágakövek nagyban hozzájárulnak a Ruby előnyeihez, mivel bármilyen típusú projekthez nagy fejlesztési sebességet eredményeznek.

A cikkben felsorolt ​​drágakövek segítenek kiváló termékek felépítésében különféle területeken, például e-kereskedelem, utazás, pénzügy, befektetés és mások.

Természetesen több ezer Ruby drágakő van, és mindegyiknek nagy az értéke. A Ruby-ban való sokéves tapasztalatunk ellenére is egyre több és több hasznos Ruby drágakövet fedezünk fel, és az általuk kínált lehetőségeket. Mindig van fejlesztési lehetőség.

Reméljük, hogy a Ruby on Rails drágaköveink listája segíteni fog a projektekben.

Eredetileg a www.codica.com webhelyen tették közzé.

Bővebben a Ruby on Rails-ről:

Mint a tartalom? További információ a weboldalunkon: