Skriv koden
Organisér en gem
Skriv koden er en gratis Ruby Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Ruby Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ruby Academy-kurset indeholder 4 lektioner i alt.
Organisering af en gems kode
God gem-kode er let at læse, let at indlæse og placeret i et navnerum, så den aldrig kolliderer med andre biblioteker. Det vigtigste værktøj er et modul på øverste niveau, som omslutter alt.
- Ét navnerumsmodul pr. gem.
- Én fil pr. klasse, der afspejler navnerummet.
- En lille offentlig grænseflade.
Navnerumsmodulet
Placér alle klasser i et modul, der er opkaldt efter din gem. Det forhindrer, at din Client kolliderer med en andens Client.
module Greeter
class Hello
def message
"Hi there"
end
end
end
puts Greeter::Hello.new.messageKonvention for filnavne
Ruby-værktøjer forventer, at filstier matcher konstantnavne:
Greeterligger ilib/greeter.rb.Greeter::Helloligger ilib/greeter/hello.rb.
Denne konvention gør det muligt for autoloadere at finde filer automatisk.
Indlæsning af interne filer
Startfilen samler det hele med require_relative. Hver klassefil indlæses én gang, så hele biblioteket indlæses med ét require 'greeter'.
En tydelig offentlig API
Gør et lille sæt metoder tilgængelige, som brugerne faktisk kalder. Et almindeligt mønster er praktiske metoder på modulniveau, der videresender kald til interne klasser.
module Greeter
def self.say(name)
"Hello, " + name + "!"
end
end
puts Greeter.say("Ada")Skjul interne detaljer
Markér hjælpemetoder som private, så de ikke bliver en del af din offentlige kontrakt. Alt offentligt er et løfte til brugerne, så hold den offentlige grænseflade bevidst og lille.
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)Konfigurationsmønster
Mange gems tilbyder en configure-blok, så brugerne kan indstille muligheder én gang. En enkel version gemmer indstillingerne på et konfigurationsobjekt.
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_keyBrugerdefinerede fejl
Definér gemmespecifikke fejklasser under dit navnerum, så brugerne kan håndtere præcis dine fejl. Ned ar v 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
endUndgå monkey patching
Modstå fristelsen til at ændre kerneklasser som String globalt. Det skaber overraskelser i anden kode. Hvis du er nødt til at udvide en klasse, kan du bruge refinements, så ændringen kun gælder i det ønskede område, eller tilføje hjælpemetoder i dine egne klasser.
Begræns afhængighederne
Hver afhængighed ved kørsel, du tilføjer, bliver en afhængighed for alle dine brugere. Foretræk standardbiblioteket, når det er rimeligt, og tilføj kun en gem, når den er sin plads værd.
Færre afhængigheder betyder færre versionskonflikter og hurtigere installationer.
Dokumentér den offentlige API
Tilføj kommentarer, der beskriver argumenterne og returværdien for hver offentlig metode. Værktøjer som YARD omdanner dem til dokumentation, der kan navigeres i, og en god README med eksempler er ofte afgørende for, om folk tager din gem i brug.
Hurtig test
Test din forståelse af organisering af gem-kode.
Opsummering: Skriv koden
Du har lært, hvordan du organiserer gemmens interne kode:
- Omslut alt i et navnerumsmodul.
- Få filstier til at matche konstantnavne.
- Hold den offentlige API lille, og markér hjælpemetoder som
private. - Definér brugerdefinerede fejklasser, og undgå global monkey patching.
- Begræns afhængighederne, og dokumentér API'en.
Nu tilføjer vi tests og versionsstyring.
Lær Ruby med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 29
- Lektioner
- 109
Ofte stillede spørgsmål
Er lektionen “Skriv koden” gratis?
Ja — alle 3 lektioner i læringssporet Ruby Academy, inklusive “Skriv koden”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Ruby Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Skriv koden”?
Organisér en gem Du øver dig i Ruby Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Ruby Academy?
Der kræves ingen tidligere erfaring. Ruby Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Skriv koden”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Ruby Academy-lektion?
Ja. Alle Ruby Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.