Ruby Academy · leksjon

Skrive koden

Organisere en gem

Leksjon 2 av 413 trinn

Skrive koden er en gratis leksjon i Ruby Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ruby Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ruby Academy inneholder totalt 4 leksjoner.

Organisere koden i en gem

God gem-kode er lett å lese, enkel å laste inn og plassert i et navneområde slik at den aldri kolliderer med andre biblioteker. Det viktigste verktøyet er en toppnivå-modul som omslutter alt.

  • Én navneområdemodul per gem.
  • Én fil per klasse, i samsvar med navneområdet.
  • Et lite offentlig grensesnitt.

Navneområdemodulen

Omslutt alle klasser i en modul med navn etter gemen. Da hindrer De at Deres Client kolliderer med andres Client.

module Greeter
  class Hello
    def message
      "Hi there"
    end
  end
end

puts Greeter::Hello.new.message

Konvensjon for filnavn

Ruby-verktøy forventer at filstier samsvarer med konstantnavn:

  • Greeter ligger i lib/greeter.rb.
  • Greeter::Hello ligger i lib/greeter/hello.rb.

Denne konvensjonen gjør at autolastere kan finne filer automatisk.

Kreve interne filer

Inngangsfilen knytter alt sammen med require_relative. Hver klassefil kreves inn én gang, slik at hele biblioteket lastes inn med én enkelt require 'greeter'.

Et tydelig offentlig API

Eksponer et lite sett med metoder som brukerne faktisk kaller. Et vanlig mønster er bekvemmelighetsmetoder på modulnivå som delegerer til interne klasser.

module Greeter
  def self.say(name)
    "Hello, " + name + "!"
  end
end

puts Greeter.say("Ada")

Skjule interne detaljer

Merk hjelpemetoder som private slik at de ikke blir en del av den offentlige kontrakten Deres. Alt som er offentlig, er et løfte til brukerne. Hold derfor dette grensesnittet bevisst utformet og lite.

class Calculator
  def total(a, b)
    add(a, b)
  end

  private

  def add(x, y)
    x + y
  end
end

puts Calculator.new.total(2, 3)

Konfigurasjonsmønster

Mange gems tilbyr en konfigurasjonsblokk slik at brukerne kan angi alternativer én gang. En enkel variant lagrer innstillingene i et konfigurasjonsobjekt.

module App
  class Config
    attr_accessor :api_key
  end

  def self.config
    @config ||= Config.new
  end

  def self.configure
    yield(config)
  end
end

App.configure { |c| c.api_key = "secret" }
puts App.config.api_key

Egendefinerte feil

Definer gem-spesifikke feilklasser under navneområdet Deres, slik at brukerne kan fange opp akkurat Deres feil. La dem arve fra StandardError.

module Payment
  class Error < StandardError; end
  class DeclinedError < Error; end
end

begin
  raise Payment::DeclinedError, "card declined"
rescue Payment::Error => e
  puts "Handled: " + e.message
end

Unngå monkey patching

Unngå å endre kjernek klasser som String globalt. Det skaper overraskelser i annen kode. Hvis De må utvide en klasse, kan De bruke refinements slik at endringen begrenses til et bestemt område, eller legge til hjelpemetoder i Deres egne klasser.

Hold avhengighetene få

Hver runtime-avhengighet De legger til, blir en avhengighet for alle brukerne Deres. Foretrekk standardbiblioteket når det er fornuftig, og legg bare til en gem når den er verdt kostnaden.

Færre avhengigheter betyr færre versjonskonflikter og raskere installasjoner.

Dokumenter det offentlige API-et

Legg til kommentarer som beskriver argumentene og returverdien til hver offentlig metode. Verktøy som YARD gjør disse om til søkbar dokumentasjon, og en god README med eksempler er ofte avgjørende for om folk tar i bruk gemen Deres.

En rask sjekk

Test forståelsen Deres av hvordan gem-kode organiseres.

Oppsummering: Skrive koden

De har lært hvordan interne deler av en gem organiseres:

  • Omslutt alt i en navneområdemodul.
  • La filstier samsvare med konstantnavn.
  • Hold det offentlige API-et lite, og merk hjelpemetoder med private.
  • Definer egendefinerte feilklasser, og unngå global monkey patching.
  • Hold avhengighetene få, og dokumenter API-et.

Deretter legger vi til tester og versjonshåndtering.

Gratis å komme i gang

Lær deg Ruby med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
29
Leksjoner
109

Ofte stilte spørsmål

Er leksjonen «Skrive koden» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Ruby Academy, inkludert «Skrive koden», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Ruby Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Skrive koden»?

Organisere en gem Du øver på Ruby Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Ruby Academy?

Ingen tidligere erfaring er nødvendig. Ruby Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Skrive koden»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Ruby Academy-leksjonen?

Ja. Alle Ruby Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Gem-struktur
  2. Skrive koden
  3. Testing og versjonering
  4. Publisere til RubyGems
← Tilbake til Ruby Academy