40 καλύτερα Ruby Gems δεν μπορούμε να ζήσουμε χωρίς

Αρχικά αυτό το άρθρο δημοσιεύτηκε στο Blog της Codica.

Σήμερα, οι προγραμματιστές ιστού μπορούν να έχουν πρόσβαση σε έτοιμες λύσεις αντί να γράφουν τις λειτουργίες από το μηδέν, γεγονός που φυσικά έχει θετικό αντίκτυπο στην ταχύτητα ανάπτυξης.

Όταν εξετάζουμε τον Ruby από αυτή την άποψη, ξεχωρίζει λόγω των εκτεταμένων βιβλιοθηκών που ονομάζονται Ruby gems. Προσφέρουν ιδιαίτερες λειτουργίες στις εφαρμογές Ruby που δημιουργείτε. Ας υποθέσουμε ότι θέλετε να έχετε μια λειτουργία ελέγχου ταυτότητας στο πρόγραμμα σας - δεν χρειάζεται να γράψετε ένα, μπορείτε να το πάρετε σε μια μορφή πολύτιμου λίθου. Και αυτό είναι μόνο ένα παράδειγμα μεταξύ χιλιάδων Ruby πολύτιμων λίθων διαθέσιμων δωρεάν.

Στο παρόν άρθρο, πρόκειται να αποκαλύψουμε τους κορυφαίους πολύτιμους λίθους Ruby που χρησιμοποιούμε στην ανάπτυξη ιστοσελίδων στο Codica και ποια συγκεκριμένα καθήκοντα κάθε μία από αυτές μας βοηθά να πραγματοποιήσουμε.

Ένα Ruby Gem: τι είναι πίσω από αυτό;

Κάθε κόσμημα περιέχει ένα συγκεκριμένο στοιχείο λειτουργικότητας, συμπεριλαμβανομένων όλων των αρχείων που σχετίζονται με αυτή τη λειτουργικότητα. Με Ruby Gems, μπορείτε να βρείτε μια λύση σχεδόν για οποιαδήποτε εργασία, η οποία θα μειώσει σημαντικά το χρόνο που χρειάζεστε για την ανάπτυξη ιστοσελίδων.

Αυτές οι βιβλιοθήκες έχουν τη δική τους αποθήκευση που ονομάζεται RubyGems, και ένας διαχειριστής πακέτων - gem bundler. Και οι δύο περιλαμβάνουν εργαλεία για την εύκολη διαχείριση της εγκατάστασης πολύτιμων λίθων και ενός διακομιστή για τη διανομή τους. Η πρώτη έκδοση του RubyGems κυκλοφόρησε το 2004.

Μια ισχυρή κοινότητα είναι ένα από τα περιουσιακά στοιχεία Ruby. Οι πιο δραστήριοι λάτρεις του Ruby βρίσκουν λύσεις με ένα χέρι και τις εφαρμόζουν στον κώδικα. Στη συνέχεια συγχωνεύουν αυτές τις βιβλιοθήκες σε ανοιχτές πηγές και εκεί αρχίζει η ζωή των πολύτιμων λίθων.

Μέχρι τη στιγμή που δημιουργήθηκε αυτό το άρθρο, ο συνολικός αριθμός των πολύτιμων λίθων ήταν πάνω από 148.782.

Πηγή: Rubygems.org

Μια τέτοια ποσότητα έτοιμων λύσεων απομακρύνει την ανάγκη «επανεφεύρεσης του τροχού» κάθε φορά που αντιμετωπίζετε μια πρόκληση. Έχοντας ελεύθερη πρόσβαση, πολλές λειτουργίες έχουν ήδη γραφτεί και καλύπτουν όλες τις αναπτυξιακές πτυχές: από την εξασφάλιση της ποιότητας του κώδικα μέχρι την ανάπτυξη.

Κορυφαία Ruby πολύτιμα που χρησιμοποιούμε

Είτε κατασκευάζουμε ένα MVP για την εκκίνηση είτε αναδιαρθρώσουμε μια πλατφόρμα χρηματοοικονομικών αναλύσεων πολλών πεδίων, οι Ruby gems μας χρησιμεύουν ως ένα στερεό υπόβαθρο.

Έχουμε ετοιμάσει μια λίστα με δροσερά Ruby gems, τα οποία είναι ένα μικρό κομμάτι όλων των πολύτιμων λίθων που μας βοηθούν να φτιάξουμε υπέροχα προϊόντα.

Ποιότητα κώδικα

Ένα από τα βασικά χαρακτηριστικά του κώδικα είναι η ποιότητα και η απλότητα του. Επιδρά άμεσα στην ταχύτητα και την απόδοση μιας εφαρμογής. Για να ανακαλύψουμε και να αφαιρέσουμε τα ογκώδη μπλοκ κώδικα και να κάνουμε σωστά το refactoring, χρησιμοποιούμε δύο βιβλιοθήκες.

Το Rubocop είναι ένα εργαλείο για την ανάλυση και τη μορφοποίηση του στατικού κώδικα Ruby. Από το κουτί, θα εφαρμόσει πολλές από τις οδηγίες που περιγράφονται στον οδηγό κοινότητας Ruby Style Guide. Το RuboCop είναι εξαιρετικά ευέλικτο και οι περισσότερες πτυχές της συμπεριφοράς του μπορούν να τροποποιηθούν μέσω διαφόρων επιλογών διαμόρφωσης. Εκτός από τα προβλήματα αναφορών στον κώδικα σας, το RuboCop μπορεί επίσης να διορθώνει αυτόματα ορισμένα ζητήματα για εσάς.

Το Overcommit είναι ένα κόσμημα για τη διαμόρφωση των γάντζων Git. Είναι εξαιρετικό για την υψηλή ποιότητα κώδικα. Επιτρέπει τον συντονισμό των γάντζων git για τα linters πριν από κάθε commit.

Debugging

Ανεξάρτητα από το πόσο υψηλή είναι η ποιότητα του κώδικα, μερικές φορές τα σφάλματα και τα σφάλματα είναι αναπόφευκτα. Για να αποκαλύψουμε και να εξαλείψουμε τα σφάλματα, η ομάδα μας βρίσκει τα παρακάτω πολύτιμα λίγα χρήσιμα.

Το Better_errors είναι ένα πολύτιμο στοιχείο για την εμφάνιση σφαλμάτων. Εμφανίζει χρήσιμες πληροφορίες σχετικά με ένα σφάλμα και έχει εξαιρετική οπτική επίδραση. Το Better_errors αντικαθιστά την τυπική σελίδα σφαλμάτων Rails. Εφαρμόζεται επίσης εκτός Rails σε οποιαδήποτε εφαρμογή Rack ως middleware Rack.

Το Byebug είναι ένα απλό στη χρήση και πλούσιο σε σφάλματα εργαλείο εντοπισμού σφαλμάτων για τον Ruby. Αυτό το κόσμημα επιτρέπει την πληρέστερη εκτέλεση του κώδικα ανά γραμμή, παύση μεταξύ εργασιών και εκτέλεσης κώδικα, αλλάζοντας τις μεταβλητές εν κινήσει.

Δοκιμές

Η διαδικασία ανάπτυξης ιστού είναι αδύνατη χωρίς έλεγχο ποιότητας της δημιουργηθείσας εφαρμογής. Εδώ έρχεται δοκιμή, η οποία σας επιτρέπει να αξιολογήσετε την ποιότητα. Για την ομαλή εκτέλεση και διαχείριση των δοκιμών, η ομάδα μας χρησιμοποιεί τα ακόλουθα βοηθητικά προγράμματα.

Το RSPE προτείνει την ανάπτυξη με γνώμονα τη συμπεριφορά του Ruby. Το κόσμημα παρέχει πρότυπα για τις δοκιμές εφαρμογών Ruby on Rails. Προσφέρει πιο ευανάγνωστο DSL, σε σύγκριση με τη δοκιμαστική βιβλιοθήκη δοκιμών TestUnit. Πέρα από αυτό, ενσωματώνεται εύκολα με πολλούς άλλους πολύτιμους λίθους που διευκολύνουν τη διαδικασία δοκιμών.

Το Capybara είναι ένα δοκιμαστικό πλαίσιο αποδοχής για εφαρμογές ιστού. Ταιριάζει άψογα με το RSpec. Το κόσμημα είναι υπεύθυνο για ολοκληρωμένες δοκιμές που μιμούνται τις ενέργειες των χρηστών σε ένα πρόγραμμα περιήγησης. Επιτρέπει την περιγραφή του σεναρίου εξουσιοδότησης σε λίγες γραμμές (πηγαίνετε στην αρχική σελίδα, πληκτρολογήστε μια σύνδεση και κωδικό πρόσβασης, κάντε κλικ στο κουμπί Σύνδεση), προτείνοντας λοιπόν διάφορες βολικές μεθόδους για την ανίχνευση σφαλμάτων.

Το Capybara Screenshot είναι ένα πολύτιμο κόσμημα για την αυτόματη αποθήκευση στιγμιότυπων οθόνης εάν καταρρεύσει ένα σενάριο Capybara. Μαζί με το Capybara και το αγγούρι, το RSpec ή το Minitest, το κόσμημα επιτρέπει την προβολή του πηγαίου κώδικα και λαμβάνει ένα στιγμιότυπο οθόνης (όταν ισχύει) για κάθε αποτυχία σε μια δοκιμαστική σουίτα. Αποθηκεύει HTML για την αποτυχημένη σελίδα και μια εικόνα screenshot (όταν χρησιμοποιείτε το capybara-webkit, το Selenium ή το poltergeist). Μια τέτοια επιλογή είναι αρκετά πολύτιμη όταν πρέπει να βρούμε ένα πρόβλημα σε σφάλματα γύρους.

Οι παράλληλες δοκιμές καθιστούν τις δοκιμές γραμμένες σε TestUnit, RSpec και Cucumber να περνούν ταχύτερα εκτελώντας τους παράλληλα σε πολλαπλούς επεξεργαστές. Για να επιταχυνθεί η διαδικασία, ο κώδικας χρησιμοποιεί όλους τους πυρήνες των συστημάτων. Εκτελεί τη δοκιμή και χρησιμοποιεί πρόσθετες βάσεις δεδομένων δοκιμών. Το στολίδι υποστηρίζει Rails και άλλα πλαίσια Ruby.

Το Factory Bot είναι μια βιβλιοθήκη για τη δημιουργία αντικειμένων Ruby ως δεδομένα δοκιμών. Έχει μια απλή σύνταξη ορισμών. Η βιβλιοθήκη διατηρεί τέτοιες στρατηγικές πολλαπλής δημιουργίας όπως αποθηκευμένες εμφανίσεις, μη αποθηκευμένες εμφανίσεις, χάρτες χαρακτηριστικών και αντικείμενα που έχουν υποστεί επεξεργασία. Επίσης, παρέχει υποστήριξη για πολλά εργοστάσια για την ίδια κλάση (χρήστης, admin_user), συμπεριλαμβανομένης της κληρονομιάς εργοστασίων.

Το Chromedriver_helper παρέχει εύκολη εγκατάσταση και χρήση του chromedriver. Πάνω από αυτό, χρησιμεύει ως προσαρμογέας σενίμιο webdriver του προγράμματος Chromium. Εγκαθιστά ένα εκτελέσιμο βοηθητικό χρωμίου σε μια διαδρομή πολύτιμων λίθων, επιτρέποντας στο Selenium να το επικαλείται ως πρόγραμμα οδήγησης ιστού. Όταν απαιτείται, το σενάριο θα κατεβάσει το σχετικό δυαδικό αρχείο για μια πλατφόρμα και θα το εγκαταστήσει σε ~ / .chromedriver-helper, στη συνέχεια θα το εκτελέσει. Εδώ, το κόσμημα επιτρέπει σε συγκεκριμένα έργα ακόμα και να επιλέξουν ποια έκδοση του χρωμφοριούχου θέλουν να τρέξουν.

Το Shoulda Matchers είναι ένα πολύτιμο κόσμημα που παρέχει απλές δοκιμές μιας επένδυσης για κοινή λειτουργία Rails, η οποία επιταχύνει τη γραφή των δοκιμών για μια τυπική χωρητικότητα.

Το Simplecov είναι ένα από τα χρήσιμα πετράδια για δοκιμές. Δείχνει το ποσοστό του κωδικού που καλύπτεται με δοκιμές μονάδας. Έτσι, το κόσμημα ενθαρρύνει τους προγραμματιστές να γράψουν κώδικα 100%, που προσθέτει πολύ στην ποιότητά του.

Το πρόγραμμα καθαρισμού βάσεων δεδομένων παρέχει κάλυψη κώδικα για το Ruby 1.9+ με μια ισχυρή βιβλιοθήκη διαμόρφωσης και αυτόματη συγχώνευση της κάλυψης σε όλες τις δοκιμαστικές σουίτες. Συχνά εφαρμόζεται σε συνδυασμό με το RSpec και χρησιμοποιείται για τον καθαρισμό μιας βάσης δεδομένων δοκιμών κατά την έναρξη δοκιμών. Το κόσμημα επιτρέπει τον συντονισμό του χρόνου εκκαθάρισης της βάσης δεδομένων: πριν από την έναρξη των δοκιμών, πριν / μετά την εκτέλεση κάθε δοκιμής.

Το RSpec :: Retry είναι ένα εργαλείο που παρέχει: δοκιμάστε τυχαία το αποτυχημένο παράδειγμα RSpec. Προσθέτει μια επιλογή: retry για περιστασιακά αποτυχημένα πρότυπα RSpec. Εάν ένα μοντέλο έχει την επιλογή: retry, το RSpec θα ξαναδοκιμάσει το παράδειγμα του συγκεκριμένου αριθμού των φορών έως ότου λειτουργήσει το πρότυπο.

Το Faker είναι μια βιβλιοθήκη για τη δημιουργία δεδομένων επίδειξης, όπως ονόματα, διευθύνσεις και αριθμούς τηλεφώνου.

Ανάπτυξη

Η ανάπτυξη είναι ένα σημαντικό στάδιο ανάπτυξης ιστοσελίδων και υπάρχει μια βιβλιοθήκη που μας βοηθάει να διεξάγουμε την διαδικασία ομαλά.

Το Mina είναι ένα εργαλείο γρήγορης ανάπτυξης και αυτοματοποίησης διακομιστή. Σε σύγκριση με το Capistrano, το οποίο είναι ένα εργαλείο αυτοματισμού απομακρυσμένου διακομιστή, η Mina λειτουργεί πολύ πιο γρήγορα. Δημιουργεί μια ολόκληρη διαδικασία ως δέσμη ενεργειών Bash και την εκτελεί εξ αποστάσεως στο διακομιστή. Σε αντίθεση με τον Capistrano, όπου κάθε εντολή εκτελείται ξεχωριστά στις δικές της περιόδους SSH, η Mina δημιουργεί μία συνεδρία SSH ανά ανάπτυξη. Μειώνει το φορτίο σύνδεσης SSH.

Παρεμπιπτόντως, στο Codica έχουμε δημιουργήσει το δικό μας εργαλείο για τη Mina, το οποίο καλείται mina-multideploy. Επιτρέπει την ανάπτυξη εφαρμογών σε διάφορους διακομιστές παράλληλα.

Έλεγχος ταυτότητας και εξουσιοδότηση

Οι περισσότερες από τις λύσεις web απαιτούν σύστημα ελέγχου ταυτότητας και έγκρισης. Είτε πρόκειται για ιστότοπο ηλεκτρονικού εμπορίου είτε για πλατφόρμα δημοσίευσης, η προστασία των δεδομένων των χρηστών είναι πάντα η πρώτη θέση. Για να εφαρμόσουμε μια ασφαλή λύση, χρησιμοποιούμε πολλά στολίδια.

Το Devise είναι μια ευέλικτη λύση ελέγχου ταυτότητας για Rails βασισμένη στο Warden. Το Devise βοηθά στην κατασκευή ενός συστήματος ταυτοποίησης οποιουδήποτε επιπέδου πολυπλοκότητας - από τον έλεγχο ταυτότητας μέσω ηλεκτρονικού ταχυδρομείου και κωδικού πρόσβασης σε ένα σύστημα παραπομπής. Με λίγα λόγια, έχει 10 ενότητες, συμπεριλαμβανομένων:

  • Επιβεβαιώσιμο: στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου με οδηγίες επιβεβαίωσης και επαληθεύει εάν ένας λογαριασμός έχει ήδη επιβεβαιωθεί κατά τη σύνδεση.
  • Ανακτώνται: επαναφέρει τον κωδικό πρόσβασης χρήστη και στέλνει οδηγίες επαναφοράς.
  • Απομνημόνευση: διαχειρίζεται τη δημιουργία και διαγραφή συμβόλων για να θυμάται τον χρήστη από ένα αποθηκευμένο cookie.
  • Εργαλείο παρακολούθησης: παρακολουθεί λογαριασμό σύνδεσης, χρονικά σήματα και διεύθυνση IP.

Το gem Ruby-JWT είναι μια απλή εφαρμογή Ruby του προτύπου RFC 7519 OAuth JSON Web Token (JWT). Ως εργαλείο ελέγχου της ταυτότητας του χρήστη, θεωρείται ότι είναι ένα από τα ασφαλέστερα συστήματα μεταφοράς πληροφοριών μεταξύ δύο μερών.

Σε αυτό το σχήμα, έχει ρυθμιστεί ένας διακομιστής εφαρμογών για να ελέγξει αν μια εισερχόμενη JWT είναι αυτή που δημιουργείται με το διακομιστή ελέγχου ταυτότητας.

Το CanCanCan είναι ένα εξαιρετικά βολικό gem εξουσιοδότησης. Επιτρέπει τη δημιουργία και το χειρισμό των ρόλων και των κανόνων των χρηστών σε εφαρμογές, παρέχοντας ένα σύνολο βοηθών για προβολές και ελεγκτές. Ακόμη και το αρχείο ability.rb στον κατάλογο μοντέλων μπορεί να περιέχει μια κατανοητή και ευανάγνωστη οδηγία με περιγραφή δικαιωμάτων για κάθε ομάδα χρηστών. Συνεργάζεται ομαλά με πολύτιμους λίθους που παρέχουν έλεγχο ταυτότητας χρηστών.

Το OmniAuth είναι ένα ευέλικτο σύστημα ελέγχου ταυτότητας που χρησιμοποιεί το μεσαίο λογισμικό Rack. Είναι μια βιβλιοθήκη που επιτρέπει τη δημιουργία παρόχων για έλεγχο ταυτότητας μέσω λογαριασμών κοινωνικών δικτύων όπως το Google ή το Facebook. Η βιβλιοθήκη περιέχει ήδη μια εκτεταμένη λίστα έτοιμων για χρήση παρόχων.

Μεταφόρτωση αρχείων

Μερικές φορές πρέπει να δημιουργήσουμε εφαρμογές ιστού που επιτρέπουν στους χρήστες να μεταφορτώσουν διαφορετικά είδη αρχείων, όπως τεκμηρίωση ή εικόνες. Για να καταστήσουμε τη λειτουργία αυτή όσο το δυνατόν πιο χρήσιμη και φιλική προς το χρήστη, εφαρμόζουμε μερικές βιβλιοθήκες.

Το Carrierwave είναι μια εξαιρετική λύση για τη μεταφόρτωση και επεξεργασία αρχείων για Rails, Sinatra και άλλα πλαίσια ιστού Ruby. Το Carrierwave επιτρέπει τη δημιουργία εκδόσεων, την προσθήκη, την αφαίρεση και την αποστολή από μια απομακρυσμένη τοποθεσία. Εκτός αυτού, έχει δοκιμές και ρυθμίσεις παραμέτρων. Το gem Carrierwave λειτουργεί με το AWS S3 και σε τέτοιες περιπτώσεις ταιριάζει με το Gem Gem, το οποίο ενσωματώνεται με μια μεγάλη ποικιλία cloud servers, συμπεριλαμβανομένων των Rackspace Servers και Brightbox.

Το Carrierwave_backgrounder λειτουργεί με το carrierwave. Επιτρέπει μετακίνηση επεξεργασίας εικόνας ή συμπίεση στο παρασκήνιο. Προς το παρόν, παρέχει υποστήριξη για καθυστερημένη εργασία, Resque, Sidekiq, SuckerPunch, κορίτσι Παρασκευή, Qu, και Queue Classic.

Το MiniMagick χρησιμεύει ως μίνι-αντικατάσταση για την RMagick. Το κόσμημα επιτρέπει τη μείωση της μνήμης διαδικασιών Ruby. Κάνει διαθέσιμες όλες τις επιλογές γραμμής εντολών του ImageMagick.

Αναζήτηση

Σε ορισμένα έργα, η ποσότητα των πληροφοριών είναι πολύ μεγάλη. Στην περίπτωση αυτή, η εύρεση των απαιτούμενων δεδομένων μπορεί να είναι μια πρόκληση. Για να εκτελέσετε την επιλογή αναζήτησης όσο το δυνατόν πιο φιλική προς το χρήστη, επωφελούμαστε από ένα βοηθητικό πρόγραμμα.

Το Elasticsearch είναι ένα δημοφιλές σύστημα αναζήτησης που χρησιμοποιείται ευρέως στις επιχειρήσεις. Το κόσμημα ενσωματώνει τον κινητήρα Elasticsearch σε εφαρμογές Rails με το πλήρες σύνολο χαρακτηριστικών του, συμπεριλαμβανομένης της αναζήτησης πλήρους κειμένου.

Πίνακες διαχειριστή

Η οικοδόμηση και η προμήθεια μιας εκτεταμένης εφαρμογής Ιστού συνήθως συνεπάγεται τη διαχείριση τεράστιου όγκου δεδομένων. Τα παρακάτω βοηθητικά προγράμματα βοηθούν την ομάδα μας να εφαρμόσει ένα ολοκληρωμένο εργαλείο διαχείρισης βάσεων δεδομένων.

Το Activeadmin είναι το πλαίσιο διαχείρισης για εφαρμογές Ruby on Rails. Το πρόσθετο επιτρέπει τη δημιουργία διεπαφών στυλ διαχείρισης. Διαχωρίζει τα κοινά πρότυπα επιχειρηματικών εφαρμογών, απλοποιώντας δραστικά την εφαρμογή των κομψών διεπαφών για προγραμματιστές.

Διαχείριση είναι ένας κινητήρας Rails. Βοηθά στην κατασκευή ενός διοικητικού ταμπλό admin με γνώμονα το χρήστη. Προς το παρόν, δεν το χρησιμοποιήσαμε ακόμα, αν και διερευνούμε τις δυνατότητές της και προσβλέπουμε στην εφαρμογή της στα μελλοντικά μας έργα.

Περισσότερο φοβερό πολύτιμους λίθους για διάφορα καθήκοντα

Και ως μπόνους, θα σας υποδείξουμε επιπλέον πολύτιμους λίθους που μπορεί να σας φανούν ενδιαφέροντα. Θα τα κατατάξουμε σύμφωνα με τη δημοτικότητά τους (αριθμός αστεριών στο Github).

Το Sidekiq είναι ένα απλό και αποτελεσματικό εργαλείο επεξεργασίας φόντου για τον Ruby. Εφαρμόζει νήματα για τη διαχείριση πολλών λειτουργιών στην ίδια διαδικασία ταυτόχρονα. Αν και η Sidekiq δεν απαιτεί Rails, θα συνδυάζεται στενά με τα Rails για να απλοποιήσει όσο το δυνατόν περισσότερο την επεξεργασία υποβάθρου.

Το Simple_form είναι ένα πολύτιμο λίθο που προσθέτει ένα βολικό DSL για την κατασκευή φορμών στα κιγκλιδώματα. Είναι συνδεδεμένο με ένα απλό DSL, χωρίς καμία άποψη σχετικά με την σήμανση. Η απλή φόρμα επικεντρώνεται στην ευελιξία και την παροχή βοήθειας με αποτελεσματικά μέρη για τη δημιουργία κτιρίων. Ο πρωταρχικός σκοπός της απλής φόρμας είναι να υποστηρίξει τη βασική μέθοδο καθορισμού της διάταξης, επιτρέποντας στους προγραμματιστές να βρουν τον πιο οπτικά ευχάριστο σχεδιασμό κώδικα. Το μεγαλύτερο μέρος του DSL προέρχεται από το Formtastic.

Το Friendly_Id παρέχει μεγάλη βοήθεια όταν εργάζεστε με plugins για το ActiveRecord. Επιτρέπει τη δημιουργία αναγνώσιμων καλών διευθύνσεων URL και τη διαχείριση φιλικών προς τον χρήστη συμβολοσειρών σαν να ήταν ψηφιακά IDs για τα μοντέλα ActiveRecord.

Το Dotenv-rail είναι ένα διαμάντι Ruby για τη φόρτωση μεταβλητών περιβάλλοντος από ένα dotfile που μπορεί να βρίσκεται εκτός του κύριου φακέλου του έργου. Με αυτόν τον τρόπο, ο Dotenv επιτρέπει την ασφαλή αποθήκευση των δεδομένων διαμόρφωσης της εφαρμογής.

Το Slim είναι μια γλώσσα προτύπου που προσπαθεί να μειώσει τη σύνταξη στα βασικά στοιχεία κώδικα χωρίς να γίνει κρυπτικός. Ξεκίνησε ως μια άσκηση για να δείτε πόσο θα μπορούσε να αφαιρεθεί από ένα πρότυπο πρότυπο HTML (<,>, κλείσιμο ετικετών κ.λπ.). Όσο περισσότεροι άνθρωποι έδειξαν ενδιαφέρον για το Slim, τόσο περισσότερη λειτουργικότητα αυξήθηκε μαζί με την ευελιξία της σύνταξης.

Το Draper συνδέει ένα αντικειμενοστρεφές στρώμα λογικής παρουσίασης σε μια εφαρμογή Rails. Το Draper βοηθά στην αντιμετώπιση αυτής της λειτουργικότητας στη ροή διαδικαστικών βοηθών ή στην προσθήκη όγκων στα μοντέλα. Οι διακοσμητές Draper παρέχουν έναν πιο αποτελεσματικό τρόπο περιτύλιξης των μοντέλων με λογική που σχετίζεται με την παρουσίαση για να οργανώσουν - και να δοκιμάσουν - αυτό το στρώμα της εφαρμογής τους.

Το Redis είναι μια ανοικτή βιβλιοθήκη ανοιχτού κώδικα, με άδεια χρήσης BSD. Αντιπροσωπεύει ένα κατάστημα δομής δεδομένων εντός μνήμης. Το κόσμημα χρησιμοποιείται ως βάση δεδομένων, προσωρινή μνήμη και μεσίτης μηνυμάτων. Το Redis παρέχει υποστήριξη για δομές δεδομένων όπως χορδές, hashes, λίστες, σύνολα, ταξινομημένα σύνολα με ερωτήματα εύρους, bitmap, υπερβολικά λογότυπα, γεωγραφικούς δείκτες με ερωτήματα ακτίνας και ροές. Το κόσμημα περιλαμβάνει ενσωματωμένη αναπαραγωγή, scripting Lua, απομάκρυνση LRU, συναλλαγές και πολλά επίπεδα επίμονης επίδοσης στο δίσκο. Πάνω από αυτό, η Redis επιτρέπει υψηλή διαθεσιμότητα μέσω του Redis Sentinel και αυτόματη διαμέριση με το Redis Cluster.

Ο σχολιασμός απλοποιεί την εργασία με τα μοντέλα Rails. Προσθέτει ένα σχόλιο που συνοψίζει το τρέχον σχήμα στα αρχεία των μοντέλων. Αυτή η λειτουργία καθιστά πολύ πιο εύκολη την κωδικοποίηση, επειδή δεν χρειάζεται να ελέγχετε κάθε φορά ένα αρχείο.

Το Pg_search δημιουργεί ActiveRecord με ονόματα πεδίων κατά την εφαρμογή πλήρους αναζήτησης PostgreSQL. Είναι μια αρκετά αξιοπρεπής εναλλακτική λύση για την Elasticsearch κατά τη χρήση της PostgreSQL. Το βοηθητικό πρόγραμμα είναι εύκολο στη διαμόρφωση. Εκτός αυτού, επιτρέπει την υλοποίηση της αυτόματης συμπλήρωσης και της αναζήτησης από ενώσεις.

Το Wicked χρησιμεύει για την κατασκευή βήμα προς βήμα σελίδων (μορφές δημιουργίας αντικειμένων κλπ.). Ο Wicked επιταχύνει και απλοποιεί τη συνεργασία με τους ελεγκτές.

Το Config παρέχει τον ευκολότερο τρόπο για να συνδυάσετε τις ρυθμίσεις πολυ-περιβάλλοντος yaml με Rails, Sinatra, Pandrino και άλλους του Ruby. Προσφέρει μια ελκυστική και εύκολη λύση για την απλή διαχείριση παραμέτρων που αφορούν το περιβάλλον.

Οι εργασίες I18n- είναι ένα πολύτιμο στοιχείο για τη μετάφραση σε μια εφαρμογή. Μπορεί να εφαρμοστεί με οποιοδήποτε έργο που χρησιμοποιεί το gem Ruby I18n που είναι προεπιλεγμένο στα Rails. Παρέχει μια διεπαφή για την εργασία με τοπικές ρυθμίσεις, βοηθά στην εύρεση ελλιπών μεταφράσεων, εξομαλύνει αρχεία με μεταφράσεις και προσθέτει νέες μεταφράσεις μέσω του Google API.

Το Money_rails είναι ένα μεγάλο κόσμημα για την εργασία με τα νομίσματα. Επιτρέπει την αυτοματοποίηση των ενημερώσεων σχετικά με τις συναλλαγματικές ισοτιμίες και τη μετατροπή των τιμών στο απαιτούμενο νόμισμα.

Ο ιμπρεσιονιστής επιτρέπει την καταμέτρηση των προβολών σελίδας. Πάνω από αυτό, επιτρέπει την καταγραφή των προβολών σελίδας πολλές φορές κατόπιν αιτήματος και την απόδοση σε ένα μοντέλο. Σκοπός του είναι να παρέχει εξατομικευμένα στατιστικά στοιχεία, καθιστώντας το άμεσα διαθέσιμο στην εφαρμογή, σε αντίθεση με το Google Analytics και το τράβηγμα δεδομένων με το API τους. Εκτός αυτού, ο ιμπρεσιονιστής επιτρέπει την εκχώρηση προσαρμοσμένων μηνυμάτων στις προβολές σελίδας.

Ο Route_translator είναι ένα εργαλείο που βοηθά στη διαχείριση των μεταφράσεων των διαδρομών εφαρμογής. Έχει απλή μορφή λεξικού. Αρχικά, ήταν μια διακλάδωση του plugin translate_routes αλλά μετατράπηκε αργότερα σε ένα πλήρως μεταφρασμένο μέσο μετάφρασης.

Να συμπεράνω

Στην Codica, εκτιμούμε τον Ruby για όλα τα χαρακτηριστικά του, όπως η εστίαση, η σαφήνεια και η εξαιρετική αναγνωσιμότητα της γλώσσας, η οποία συχνά θεωρείται ως ανθρώπινη. Οι πολύτιμοι λίθοι Ruby προστίθενται σημαντικά στα πλεονεκτήματα του Ruby, καθώς φέρνουν υψηλή ταχύτητα ανάπτυξης σε οποιοδήποτε τύπο έργου.

Οι πολύτιμοι λίθοι που αναφέραμε σε αυτό το άρθρο μας βοηθούν να δημιουργήσουμε προϊόντα για διαφορετικούς τομείς, όπως το ηλεκτρονικό εμπόριο, τα ταξίδια, τη χρηματοδότηση, τις επενδύσεις και άλλα.

Φυσικά, υπάρχουν χιλιάδες Ruby πετράδια, και καθένας από αυτούς έχει μεγάλη αξία. Ακόμα και με πολυετή εμπειρία στο Ruby, ανακαλύπτουμε όλο και πιο χρήσιμα Ruby gems και τις ευκαιρίες που προσφέρουν. Υπάρχει πάντα περιθώριο βελτίωσης.

Ελπίζουμε ότι ο κατάλογος των πολύτιμων λίθων Ruby on Rails θα σας βοηθήσει με τα έργα σας.

Αρχικά δημοσιεύθηκε στη διεύθυνση www.codica.com.

Περισσότερα για το Ruby on Rails:

Όπως το περιεχόμενό μας; Βρείτε περισσότερα στην ιστοσελίδα μας: