Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut · Oppitunti

Monorepon rakenne ja asettelu

Opettele projektien, pakettien ja jaetun koodin järjestämisen parhaat käytännöt yhdessä Git-repositoriossa.

Oppitunti 2/411 vaihetta

Monorepon rakenne ja asettelu on ilmainen Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-kurssilla on yhteensä 4 oppituntia.

Miksi rakenteella on merkitystä

Tervetuloa! Monorepositoriossa monet projektit sijaitsevat yhdessä paikassa. Selkeä ja harkittu rakenne on erittäin tärkeä, jotta kokonaisuus pysyy järjestyksessä.

Sen avulla kehittäjät löytävät tarvitsemansa nopeasti, koodia voidaan jakaa tehokkaasti ja koko koodikannan hallinta helpottuu huomattavasti sen kasvaessa.

Monorepositorion juurihakemisto

Monorepositorion ylimmällä tasolla, juurihakemistossa, sijaitsevat koko repositoriota koskevat tiedostot. Niitä voi ajatella yleisinä asetuksina.

  • .git/: Gitin sisäiset seurantatiedostot.
  • .gitignore: Kertoo Gitille, mitkä tiedostot ohitetaan.
  • README.md: Monorepositorion pääkuvaus.
  • package.json: (Jos käytössä on Node.js) Monorepositorion komentosarjat tai riippuvuudet.
  • tools/: Yleiset aputyökalujen komentosarjat.

Projektien ryhmittely: `apps` ja `packages`

Jotta kokonaisuus pysyy siistinä, projektit ryhmitellään yleensä ylätason hakemistoihin tyypin tai käyttötarkoituksen perusteella. Yleisimmät hakemistot ovat apps/ ja packages/ (joskus myös libs/).

  • apps/: Käyttöönotettaville sovelluksille, kuten verkkosovelluksille, mobiilisovelluksille tai API-palveluille.
  • packages/ (tai libs/): Uudelleenkäytettäville kirjastoille, komponenteille tai jaetuille apuohjelmille, joita useat sovellukset voivat käyttää.

Tämän selkeän jaottelun ansiosta projektin roolin ymmärtää yhdellä silmäyksellä.

`apps`-hakemiston sisältö

Jokainen apps/-hakemiston alla oleva kansio edustaa erillistä, itsenäistä sovellusta. Niillä on yleensä oma lähdekoodinsa, määrityksensä ja riippuvuutensa.

monorepo/
├── apps/
│   ├── web-app/         # Your frontend application
│   │   ├── src/
│   │   └── package.json
│   ├── api-service/     # Your backend API
│   │   ├── src/
│   │   └── Dockerfile
│   └── mobile-app/      # Your mobile application
│       ├── src/
│       └── ...
└── ...

Tämä rakenne pitää sovellukset erillään, vaikka ne kuuluvatkin samaan monorepositorioon.

`packages`-hakemiston (tai `libs`-hakemiston) sisältö

packages/-hakemistoon (tai libs/-hakemistoon) sijoitetaan kaikki uudelleenkäytettävä koodi. Ne ovat usein pienempiä ja tarkasti rajattuja kirjastoja tai käyttöliittymäkomponentteja, joita voidaan jakaa useiden sovellusten kesken.

monorepo/
├── packages/
│   ├── ui-components/   # Reusable UI library
│   │   ├── src/
│   │   └── package.json
│   ├── shared-utils/    # Common utility functions
│   │   └── src/
│   └── auth-lib/        # Authentication logic
│       └── src/
└── ...

Tämä edistää koodin uudelleenkäyttöä ja yhdenmukaisuutta projekteissa.

Keskitetty määritys

Yhdenmukaisuuden varmistamiseksi monorepositorioissa keskitetään usein esimerkiksi lintereiden (koodityyliä varten), muotoilijoiden (koodin asettelua varten) ja koontijärjestelmien määritystiedostot.

monorepo/
├── .eslintrc.js       # Linter configuration
├── prettier.config.js # Code formatter configuration
├── jest.config.js     # Test runner configuration
├── tsconfig.base.json # Base TypeScript config
└── ...

Nämä tiedostot sijaitsevat usein juuressa tai erillisessä config/-hakemistossa, ja niiden säännöt koskevat yhdenmukaisesti kaikkia projekteja.

Hyvän rakenteen hyödyt

Hyvin määritelty monorepositorion rakenne tarjoaa merkittäviä etuja:

  • Löydettävyys: Uudet tiimin jäsenet ymmärtävät nopeasti, missä kaikki sijaitsee.
  • Yhdenmukaisuus: Projektien rakenteet ja koodausstandardit pysyvät vaivattomasti yhtenäisinä.
  • Ylläpidettävyys: Refaktorointi ja riippuvuuksien hallinta helpottuvat huomattavasti.
  • Työkalut: Monorepositorion tuntevien koonti- ja kehitystyökalujen käyttöönotto sujuvoituu.

Se on investointi, joka maksaa itsensä takaisin pitkällä aikavälillä!

Yksinkertainen ohjelmaesimerkki

Monorepositorion rakenne liittyy tiedostojen ja kansioiden järjestämiseen, mutta tässä on yksinkertainen Java-ohjelma, joka havainnollistaa suoritettavan koodin näkymistä CoddyKitissä. Näin editorin käyttö tulee tutummaksi!

public class MonorepoConcept {
  public static void main(String[] args) {
    System.out.println("A well-structured monorepo is great!");
  }
}

Nimeämiskäytännöt

Selkeä ja yhdenmukainen nimeäminen on monorepositoriossa ratkaisevan tärkeää. Se auttaa välttämään sekaannuksia ja tekee koodikannasta helpommin luettavan.

  • Kebab-case: Käyttäkää projektien ja kansioiden nimissä kebab-case-muotoa (esim. web-app, shared-utils).
  • Täsmälliset nimet: Välttäkää yleisluontoisia nimiä, kuten utils, ja käyttäkää täsmällisempiä nimiä (esim. date-utils, api-client).
  • Etuliitteet: Suurissa organisaatioissa kannattaa harkita jaettujen pakettien varustamista etuliitteellä (esim. @myorg/ui-components).

Monorepositorion rakenteen tarkistus

Ajatellaan monorepositoriota, joka sisältää verkkosovelluksen, API-palvelun ja jaetun käyttöliittymäkomponenttikirjaston. Millä yleisillä ja tehokkailla tavoilla nämä projektit voidaan järjestää?

Kertaus: jäsennellyt monorepositoriot

Hienoa työtä! Tänään opimme, miksi monorepositorion jäsentäminen on tärkeää. Käsittelimme sovellusten järjestämistä apps/-hakemistoon, jaettujen kirjastojen sijoittamista packages/-hakemistoon (tai libs/-hakemistoon) sekä yleisten määritysten keskittämistä.

Hyvin määritelty rakenne tekee monorepositorion selaamisesta helpompaa, kokonaisuudesta yhdenmukaisemman ja ylläpidosta yksinkertaisempaa. Seuraavaksi tutustumme erityisiin työkaluihin, jotka auttavat hallitsemaan näitä monimutkaisia rakenteita!

Aloita maksutta

Opi Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut 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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Monorepon rakenne ja asettelu” ilmainen?

Kyllä – oppitunnin ”Monorepon rakenne ja asettelu” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-kurssin, päivitä CoddyKit PROhon. Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Monorepon rakenne ja asettelu”?

Opettele projektien, pakettien ja jaetun koodin järjestämisen parhaat käytännöt yhdessä Git-repositoriossa. Harjoittelet Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Monorepon rakenne ja asettelu”-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ä Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-oppitunnilla?

Kyllä. Jokainen Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut-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

  1. Mikä on monorepo?
  2. Monorepon rakenne ja asettelu
  3. Monorepo-työkalujen esittely
  4. Monorepo vai polyrepo: lähestymistavan valinta
← Takaisin: Git edistyneellä tasolla: monorepot, submoduulit ja työnkulut