window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Ράγες και άλλα μέσα μεταφοράς - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2021-06-30
Ανάπτυξη λογισμικού

Σιδηρόδρομοι και άλλα μέσα μεταφοράς

The Codest

Krzysztof Buszewicz

Ανώτερος Software Engineer

Το Rails είναι ένα πλαίσιο συμβατό με το Rack που επικεντρώνεται στη γρήγορη ανάπτυξη εφαρμογών. Δυστυχώς, η προσέγγιση "όλα έξω από το κουτί" και η τυφλή συμπεριφορά με τον τρόπο Rails συχνά προκαλούν απώλεια ποιότητας του κώδικα της εφαρμογής, τόσο όσον αφορά τη λήψη (αναγνωσιμότητα) όσο και τη λειτουργία του.

Δημοφιλή προβλήματα Rails και Rails-way

Προβλήματα που αναφέρονται στο: άρθρο για το Shopify

  • δρομολόγηση,
  • before-actions,
  • μεγάλες δράσεις σε ελεγκτές,
  • ιδιωτικές μέθοδοι σε ελεγκτές,
  • mixins που χρησιμοποιούνται μία φορά,
  • λογική σε προβολές,
  • Ανακλήσεις ActiveRecord,
  • Ενώσεις,
  • "χοντρά μοντέλα".

Πρόσθετα προβλήματα

  • Επικυρώσεις ενεργών εγγραφών,
  • σιωπηρή έναντι ρητής,
  • κατάχρηση της DRY,
  • αντιπροσωπείες σε ενώσεις,
  • κλήσεις υπηρεσιών σε μοντέλα.

Εναλλακτικές λύσεις στο Rails

Όταν πρόκειται για Ράγες στο Ruby κόσμο, έχουμε διάφορες εναλλακτικές λύσεις. Άλλα πλαίσια που βασίζονται στο Rack περιλαμβάνουν: - Sinatra, – Roda, – Hanami.

Τι τους κάνει μοναδικούς;

Τόσο η Sinatra όσο και η Roda μας προσφέρουν μια σύνταξη δρομολόγησης μπλοκ, αλλά η δρομολόγηση στη Sinatra είναι μια λίστα και στη Roda - ένα δέντρο. Και στα δύο πλαίσια, πρέπει να ασχοληθούμε μόνοι μας με την υλοποίηση του επιπέδου μοντέλου. Στην περίπτωση του Roda, είναι καλή ιδέα να χρησιμοποιήσουμε το Sequel gem.

Ο Roda εμπνέεται από τον Sinatra. Είναι πολύ ελαφρύ από μόνο του, αλλά διαθέτει πολλά πρόσθετα.

Hanami είναι το πιο κοντινό σε Ράγες όταν πρόκειται για τομείς που καλύπτονται από το πλαίσιο. Οι σημαντικότερες διαφορές όσον αφορά τη χρήση είναι οι εξής:

  • ελεγκτές σε Ράγες έναντι των ενεργειών στο Hanami,
  • αποκλειστικές κλάσεις/αντικείμενα που χειρίζονται ένα συγκεκριμένο αίτημα HTTP, όχι ένας ελεγκτής για ενέργειες που σχετίζονται με έναν συγκεκριμένο πόρο (μοντέλο),
  • στρώμα μοντέλου που βασίζεται σε αποθετήρια και οντότητες, διαχωρίζοντας την εμμονή από την υπόλοιπη εφαρμογή, όχι το πρότυπο ενεργών εγγραφών.

Η έκδοση 1 του Hanami περιορίζει έντονα τη χρήση της ROM στην οποία βασίζεται (έκδοση 3, και είναι ήδη 5), οπότε δεν αξίζει να χρησιμοποιήσετε το στρώμα μοντέλου που προτείνεται εκεί. Ωστόσο, καθώς πρόκειται για ένα πολύ ανοιχτό πλαίσιο, είναι αρκετά εύκολο να υλοποιήσετε εκεί το δικό σας μοντέλο.

Συμπληρώματα για Rails

Αξίζει να χρησιμοποιείτε λύσεις που δεν εξαρτώνται από Ράγες και είναι πιο κοντά στο "καθαρό" Ruby. Τα εργαλεία που αναφέρονται στην παρουσίαση είναι:

  • Sequel (ORM, εναλλακτική λύση στην ActiveRecord),
  • ROM (χαρτογράφος αντικειμένων),
  • βιβλιοθήκες dry-rb: dry-validations, dry-system και dry-monads.

Sequel είναι εύκολο να τεθεί σε ένα έργο, βασίζεται σε plugins και υλοποιεί επίσης το μοτίβο των ενεργών εγγραφών. Έχει καλύτερη υποστήριξη ερωτημάτων χαμηλού επιπέδου από την Ράγες' ActiveRecord.

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

Οι βιβλιοθήκες Dry-rb είναι πολύ χρήσιμα εργαλεία:

  • Το dry-validation είναι πολύ εύκολο στη χρήση σε έργα API και επιτρέπει μεγάλο έλεγχο της ορθότητας των εισερχόμενων δεδομένων,
  • Το dry-system χρειάζεται λίγη πρακτικότητα και υπομονή για να το κατανοήσουν οι προγραμματιστές, αλλά επιτρέπει την πολύ ευέλικτη διαχείριση των εξαρτήσεων στην εφαρμογή και τη φόρτωση των στοιχείων του έργου σε απομόνωση- αν θέλουμε να χρησιμοποιήσουμε αυτή τη βιβλιοθήκη σε Ράγες, μπορούμε να χρησιμοποιήσουμε ξηρές ράγες,
  • dry-monads είναι μια δύσκολη έννοια στη θεωρία, αλλά στην πράξη είναι πιο εύκολο να κατανοηθεί, το αποτέλεσμα monads μπορεί να είναι ένας πολύ καλός τρόπος για να αυξηθεί η αναγνωσιμότητα του κωδικός εξετάζοντας συγκεκριμένες περιπτώσεις αντί για διακλαδώσεις ifs.

Συμπεράσματα

Είναι καλύτερο να χρησιμοποιείτε Ράγες έτσι ώστε να μην χρειάζεται να χρησιμοποιήσετε το Ράγες μια μέρα.

Πηγές

Άρθρα

  • Ο κώδικας μυρίζει σε εφαρμογές Rails (από το Shopify)
  • Hanami: repozytoria
  • Οδηγοί Rails

Πλαίσια

  • Sinatra
  • Roda
  • Hanami

Πολύτιμοι λίθοι

  • Συνέχεια
  • ROM
  • Biblioteki dry-rb
  • Ruby JSON Schema Validator (json-schema)
  • Pagy
  • Rodauth
  • rodauth-rails

Προδιαγραφές

  • Rack
  • Σχήμα JSON

Διαβάστε περισσότερα:

Τι είναι το Ruby on Jets και πώς να δημιουργήσετε μια εφαρμογή χρησιμοποιώντας το;

1TP57Ημερολόγιο. Ένα νέο έργο του Codest που βασίζεται στο Vue.js

Η εβδομαδιαία έκθεση του Codest με τα καλύτερα άρθρα τεχνολογίας. Δημιουργία λογισμικού για 50 εκατ. ταυτόχρονες υποδοχές (10)

Σχετικά άρθρα

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

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

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

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

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

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

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

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

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

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

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek