Skrive koden
Organisere en gem
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.messageKonvensjon for filnavn
Ruby-verktøy forventer at filstier samsvarer med konstantnavn:
Greeterligger ilib/greeter.rb.Greeter::Helloligger ilib/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_keyEgendefinerte 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
endUnngå 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.
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.