Koodin kirjoittaminen
Järjestä gem.
Koodin kirjoittaminen on ilmainen Ruby Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Ruby Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Gemin koodin järjestäminen
Hyvä gemin koodi on helppo lukea ja ladata, ja se sijoitetaan nimiavaruuteen, jotta se ei koskaan törmää muihin kirjastoihin. Keskeinen työkalu on kaiken ympärille asetettava ylimmän tason moduuli.
- Yksi nimiavaruusmoduuli gemiä kohden.
- Yksi tiedosto luokkaa kohden niin, että rakenne vastaa nimiavaruutta.
- Pieni julkinen rajapinta.
Nimiavaruusmoduuli
Sijoittakaa kaikki luokat gemin mukaan nimettyyn moduuliin. Näin Client-luokkanne ei törmää jonkun muun Client-luokkaan.
module Greeter
class Hello
def message
"Hi there"
end
end
end
puts Greeter::Hello.new.messageTiedostojen nimeämiskäytäntö
Ruby-työkalut odottavat tiedostopolkujen vastaavan vakioiden nimiä:
Greetersijaitsee tiedostossalib/greeter.rb.Greeter::Hellosijaitsee tiedostossalib/greeter/hello.rb.
Tämän käytännön ansiosta autoload-lataajat löytävät tiedostot automaattisesti.
Sisäisten tiedostojen lataaminen
Aloitustiedosto kokoaa kaiken yhteen komennon require_relative avulla. Kukin luokkatiedosto ladataan kerran, joten koko kirjasto latautuu yhdellä komennolla require 'greeter'.
Selkeä julkinen rajapinta
Paljastakaa pieni joukko metodeja, joita käyttäjät todella kutsuvat. Yleinen käytäntö on määritellä moduulitasoisia helppokäyttöisiä metodeja, jotka välittävät kutsut sisäisille luokille.
module Greeter
def self.say(name)
"Hello, " + name + "!"
end
end
puts Greeter.say("Ada")Sisäisten toteutusten piilottaminen
Merkitkää apumetodit private-määreellä, jotta ne eivät kuulu julkiseen sopimukseenne. Kaikki julkinen on käyttäjille annettu lupaus, joten pitäkää julkinen rajapinta harkittuna ja pienenä.
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)Määritysten asetustapa
Monet gemit tarjoavat configure-lohkon, jonka avulla käyttäjät voivat asettaa asetukset kerran. Yksinkertaisessa toteutuksessa asetukset tallennetaan määritysobjektiin.
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_keyMukautetut virheet
Määritelkää gemikohtaiset virheluokat nimiavaruutenne alle, jotta käyttäjät voivat ottaa kiinni juuri teidän virheenne. Perikää luokat luokasta 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
endVälttäkää monkey patchingia
Välttäkää ydinluokkien, kuten String-luokan, muokkaamista maailmanlaajuisesti. Se aiheuttaa yllätyksiä muussa koodissa. Jos laajentaminen on välttämätöntä, käyttäkää refinements-ominaisuutta, jotta muutos rajoittuu tiettyyn käyttöön, tai lisätkää apumetodeja omiin luokkiinne.
Pitäkää riippuvuudet vähäisinä
Jokaisesta lisäämästänne suoritusajan riippuvuudesta tulee riippuvuus kaikille käyttäjillenne. Suosikaa standardikirjastoa, kun se on järkevää, ja lisätkää gem vasta, kun sen hyödyt ovat sen aiheuttaman painon arvoiset.
Vähäisemmät riippuvuudet tarkoittavat vähemmän versiokonflikteja ja nopeampia asennuksia.
Dokumentoikaa julkinen rajapinta
Lisätkää kommentit, joissa kuvaatte kunkin julkisen metodin argumentit ja paluuarvon. YARDin kaltaiset työkalut muuntavat nämä selattaviksi dokumenteiksi, ja hyvät esimerkit sisältävä README ratkaisee usein sen, ottavatko ihmiset geminne käyttöön.
Pikatarkistus
Testatkaa, miten hyvin ymmärrätte gemin koodin järjestämisen.
Kertaus: Koodin kirjoittaminen
Opitte, miten gemin sisäinen toteutus järjestetään:
- Sijoittakaa kaikki nimiavaruusmoduulin sisään.
- Sovittakaa tiedostopolut vakioiden nimiin.
- Pitäkää julkinen API pienenä ja merkitkää apumetodit
private-määreellä. - Määritelkää mukautetut virheluokat ja välttäkää maailmanlaajuista monkey patchingia.
- Pitäkää riippuvuudet vähäisinä ja dokumentoikaa API.
Seuraavaksi lisäämme testit ja versionhallinnan.
Opi Ruby tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 29
- Oppitunnit
- 109
Usein kysytyt kysymykset
Onko oppitunti ”Koodin kirjoittaminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Ruby Academy-oppimispolun 3 oppituntia, myös oppitunnin “Koodin kirjoittaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Ruby Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Koodin kirjoittaminen”?
Järjestä gem. Harjoittelet Ruby Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Ruby Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Ruby Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Koodin kirjoittaminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Ruby Academy-oppitunnilla?
Kyllä. Jokainen Ruby Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Gemin rakenne
- Koodin kirjoittaminen
- Testaus ja versiointi
- Julkaiseminen RubyGemsissä