Kódbázis - Codebase

A szoftverfejlesztés , a codebase (vagy kód alap ) gyűjteménye forráskód használt építeni egy adott szoftver rendszer , alkalmazás vagy szoftver komponens . A kódbázis általában csak ember által írt forráskód fájlokat tartalmaz; így a kódbázis általában nem tartalmazza az eszközök által generált forráskód fájlokat (generált fájlok) vagy bináris könyvtári fájlokat (objektumfájlok), mivel ezek az ember által írt forráskódból építhetők fel. Általában azonban tartalmaz konfigurációs és tulajdonságfájlokat, mivel ezek a buildhez szükséges adatok.

A codebase jellemzően tárolják forrás kontroll adattár egy verziókövető rendszer. Kisebb projektek esetén egyszerű fájlkészletként tárolható (még a Linux kernelt is sok éven keresztül fájlkészletként tartották fenn). A forráskódtár olyan hely, ahol nagy mennyiségű forráskódot tárolnak, akár nyilvánosan, akár magántulajdonban. A forráskód-lerakatokat alapvetően biztonsági mentésekhez és változatokhoz, valamint több fejlesztőből álló projektekhez használják a különböző forráskód-verziók kezelésére, és segítséget nyújtanak az átfedő módosításokat benyújtó fejlesztők konfliktusainak megoldásában. A Subversion , a Git és a Mercurial példák a népszerű eszközökre, amelyek e munkafolyamat kezelésére szolgálnak, és amelyek gyakoriak a nyílt forráskódú projektekben.

Különálló és monolitikus kódbázisok

Több projekt különálló, külön kódbázisokkal rendelkezhet, vagy egyetlen, megosztott vagy monolitikus kódbázis . Ez különösen igaz a kapcsolódó projektekre, például az ugyanazon vállalaton belül kifejlesztett projektekre. Részletesebben, a monolitikus kódbázis jellemzően egyetlen lerakatot tartalmaz (az összes kód egy helyen), és gyakran egy közös felépítési rendszert vagy közös könyvtárakat. Az, hogy a kódbázis megosztott vagy megosztott, nem függ a rendszer architektúrájától és a tényleges felépítési eredményektől; így a monolitikus kódbázis, amely a tényleges fejlesztéshez kapcsolódik, nem von maga utánmonolitikus rendszert, amely szoftver architektúrához vagy egyetlen monolitikus binárishoz kapcsolódik. Ennek eredményeként a monolitikus kódbázis gyakran (és nagy kódbázisok esetén) különálló komponensekből áll, ahelyett, hogy csak egyetlen rendszert vagy egyetlen binárisat hordozna; egy elosztott kódbázis (több komponenssel) használható egyetlen monolitikus rendszer vagy akár egyetlen bináris létrehozásához. Például a Linux kernel építészetileg egyetlenmonolitikus kernel, de különálló bináris fájlokból (betölthető összetevőkből) áll, és több elosztott lerakatban fejlesztik.

A monolitikus kódbázisnak előnyei és hátrányai is vannak, ha összehasonlítjuk az elosztott kódbázissal. A legegyszerűbben a monolitikus kódbázis leegyszerűsíti az integrációt ‍-different a különböző összetevők cseréje vagy a kódok újratelepítése az alkatrészek között egyszerűen és atomosan elvégezhető ‍-és lehetővé teszi a műveleteket a teljes kódbázisban, de nagyobb tárhelyet igényel, és megkönnyíti a széles körű műszaki adósság bevezetését . Egy külön kódbázis vagy egy elosztott kódbázis kisebb és kezelhetőbbé teszi az egyes tárolókat, ugyanakkor kikényszeríti az összetevők közötti szétválasztást, de megköveteli a kódbázisok (vagy a fő lerakat) közötti integrációt is, és bonyolítja a több kódbázist átfogó változtatásokat.

Ami a szabványokat illeti, a több kódbázisra "különálló" hivatkozás kijelenti, hogy léteznek független implementációk megosztott forráskód nélkül, és hogy ezek a megvalósítások történelmileg nem egy közös projektből fejlődtek ki. Ez lehet egy módja annak, hogy demonstrálja az interoperabilitást azáltal, hogy két független szoftvert mutat be, amelyek megvalósítják az adott szabványt.

Példák

Néhány különösen nagy kódbázis:

  • Google : monolitikus, 1 milliárd fájl, 9 millió forráskódfájl, 2 milliárd soros forráskód, összesen 35 millió kötelezettségvállalás, 86 TB teljes méret (2015. január)
  • Facebook : monolitikus, 8 GB (repo 54 GB, beleértve a történelmet, 2014), több százezer fájl (2014)
  • Linux kernel : elosztott, több mint 15 millió sornyi kód (2013 és a kernel 3.10 verziója szerint)

Lásd még

Hivatkozások