Preskočiť na obsah
Kategórie
Technológie Tipy a triky Vzdelávanie

7 tipov pre tvorenie open source

Ste na svoju programátorsku prácu hrdí? Radi by ste sa o svoj kód podelili s ostatnými? Ak máte pocit, že z vašej dobre odvedenej práce by mohli ťažiť aj ostatní v komunite, sprístupnite svoje dielo ako otvorený software. Pomôžete tak ostatným, vybudujete si dobré meno a otvoríte si nové možnosti pri hľadaní práce.

V tomto článku nájdete niekoľko tipov, ako tvoriť moderný a pre komunitu ľahko prístupný open source. I keď v článku budem opisovať nástroje zo sveta PHP, tieto princípy sa dajú uplatniť v každom modernom programovacom jazyku.

Verejne dostupný verziovací systém

Už len zo samotnej definície toho, čo slobodný software vlastne je, mal by byť váš kód verejne dostupný. Môžete ho samozrejme dať len na svoju webovú stránku, no v posledných rokoch získal v tomto celkom dominantnú pozíciu github (ako centrálne úložisko slobodného software), nakoľko ponúka jednoduchý spôsob prispievania ostatných programátorov do vášho kódu, pomocou issues, forkov a merge requestov.

Github profil s kvalitnými projektami navyše začína byť niečím, na čo HR-isti hľadia čoraz viac a viac, ako píše naša kolegyňa Mirka z Inhiro.

Preferujte viac malých knižníc, než budovanie vlastného frameworku

Každý programátor si zažije obdobie, kedy chce vytvoriť vlastný, plne funkčný a možnosťami preplnený framework. To je ale beh na extra dlhé trate a tí, ktorí sa do toho reálne pustili už zistili, že lepšie je robiť viacero malých knižníc, ktoré si môžu koncoví programátori ľubovoľne kombinovať a vo výsledku vytvárať nekonečno vlastných kombinácií.

Navyše trendom začína byť práve opak, rozbíjanie veľkých monolitických frameworkov na malé, jednoúčelové knižnice, (napr. Symfony alebo Nette). V konečnom dôsledku to autora open source učí tvoriť samostatné funkčné celky s tou správnou mierou abstrakcie.

Využívanie balíčkovacích systémov

Drvivá väčšina dnes rozšírených programovacích jazykov má vlastný alebo komunitou vytvorený balíčkovací mechanizmus. V praxi ide o to, že do vašej knižnice pridáte zopár meta dát, ktoré obsahujú základné údaje o vašom balíčku (ako napr. názov, popis, …), no hlavne závislosti od iných knižníc a to, ako sa má váš kód funkčne integrovať do cudzieho prostredia. Vo výsledku tak cieľovému programátorovi stačí spustiť jeden jednoduchý príkaz a už môže vašu knižnicu využívať vo svojom codebase bez ďalších zbytočných starostí s integráciou.

Vo svete php je rozšírený composer, pri ktorom stačí, aby ste vo svojom repozitári zadefinovali composer.json súbor a následne po registrácií na packagist, prepojili svoj git repozitár s vytvoreným balíčkom.

Sémantické verziovanie

Nepriamou výhodou balíčkovacích systémov je to, že udržujú používaný open source kód aktuálny, samozrejme za predpokladu, že koncový programátor má o to snahu. Aby sa však nestávalo to, že najnovšia verzia nejakej knižnice rozbije funkčnosť vašej aplikácie, vznikla iniciatíva sémantického verziovania. Svoj open source kód tak vydávate vo verziách, kde každá je pomenovaná trojúrovňovým názvom x.y.z, pričom platí, že:

  • z sa zvyšuje vtedy, ak nová verzia len opravuje chyby, alebo pridáva len drobné zmeny.
  • y sa zvyšuje vtedy, ak nová verzia pridáva podstatné novinky, no zároveň je spätne kompatibilná s predošlou verziou. Zvýšenie y rady vynuluje z radu (napríklad 1.0.5 sa zmení na 1.1.0).
  • x sa zvyšuje vtedy, ak pridané zmeny pôsobia inkompatibilitu/nefunkčnosť v porovnaní s predošlou verziou. Zvýšenie x rady vynuluje y aj z radu (napríklad 1.2.8 sa zmení na 2.0.0).

Sémantické verziovanie pri php/composer kombinácií funguje jednoducho pomocou git tag-ov. Stačí ľubovoľný commit označiť tagom, napríklad v1.0.0 (alebo iba 1.0.0) a už ste urobili svoj prvé vydanie verzie. Viac informácií o tom, ako definovať závislosť na inej knižnici a jej povolených verziách nájdete priamo v dokumentácií composeru.

Unifikované formátovanie kódu

Každý programátor má samozrejme svoj spôsob písania kódu, no ak by sme všetci mali formátovať kód po svojom, čítanie cudzieho kódu by pre nás mohlo byť zakaždým neprirodzené. Preto vznikla PSR iniciatíva, ktorá sa snaží formátovanie zjednotiť a mnoho veľkých frameworkov ju už etablovalo. Odporúčam vám používať nástroj CodeSniffer, ktorý vám bez väčšej námahy, pomôže udržiavať kód správne naformátovaný.

Komentáre a dokumentácia

Jedným z hlavných princípov open source je to, že to nie je kód písaný pre stroje, ani pre autora, ale pre všetkých ostatných programátorov. Práve kvôli tomu by ste si mali dať záležať na spisovaní komentárov priamo v kóde. Hlavnou formou je tzv. phpdoc, teda polo technické komentáre opisujúce hlavnú funkcionalitu daných metód, očakávané vstupné argumenty a očakávaný výstup. V rámci samotnej metódy by už mnoho komentárov nemalo by,  ak máte potrebu nejakú časť kódu bližšie opísať, lepšou praktikou je osamostatniť daný kód do samostatnej metódy.

Samostatnou a ešte dôležitejšou časťou je dokumentácia v podobe README súboru a wiki. Väčšina programátorov, ktorí aj chcú používať váš kód, doň v skutočnosti nikdy nenahliadne. Niekedy písanie dokumentácie dá viac práce ako programovanie samotné, no výsledok určite stojí za to.

Pokrytie validnými testami

Pokiaľ chce niekto vo vašom kóde urobiť zmenu, nemal by mať (a ani vy) strach z toho, že táto zmena spôsobí nefunkčnosť na inom mieste. Práve na to slúžia testy. Tých je viacero druhov, no pri open source sú najviac využívané tzv. unit testy. V praxi tak svoj kód rozdelíte na malé celky (triedy a ich metódy), ktoré následne testujete štýlom “dostanem pri určitom vstupe očakávaný výsledok” alebo “dostanem pri určitom vstupe očakávanú chybu”. Vo svete php sú k tomuto účelu využívané phpunit a travis, ktorý používa väčšina php repozitárov.

 

Toto je zopár základných tipov, pomocou ktorých môžete začať budovať otvorený software a získať si rešpekt v komunite. Spôsobov pre zvýšenie renomé svojho repozitára existuje mnoho, no ak sme na niečo dôležité zabudli, budeme vďační, ak tento článok plynule doplníte v komentároch.

[mc4wp_form]

Autor: Tomáš Tatarko

Vo WebSupporte začínal ako developer, dnes pracuje ako Head of Internal Tools. Má pod palcom WebAdmina a je autorom nástroja Follow Company.

2 odpovede na “7 tipov pre tvorenie open source”

To skutocne mate pocit, ze clovek, ktory si dokaze stiahnut z internetu subory, uploadnut ich cez FTP a vyplnit zopar inputov, si moze hovorit programator? Kazdy spravny programator ma uz davno vlastne CMS, ktore robi takmer vsetko, co robia ine frameworky, len s tym rozdielom, ze je to neporovnatelne rychlejsie nez ine frameworky.
Ja osobne ich nazyvam pseudoprogramatori, pretoze je pravda, ze rozbehat opensource si dnes vedia ludia aj bez znalosti programovania. A ked tychto ludi povazujete za programatorov, vobec sa nedivim, ze Slovensko je na tom tak biedne, co sa tyka skutocnych programatorov…

Odpovedať

Tento pohľad je určite zaujímavý, no stále to vidím tak, ako som to napísal aj v samotnom článku – tvoriť vlastný framework sa dnes už neoplatí. Čoraz väčším trendom je, že každý si z open source knižníc poskladá vlastnú, jemu vyhovujúcu kombináciu. V konečnom dôsledku je táto kombinácia častokrát rýchlejšia, no hlavne nemusí sa venovať čas vývoju frameworku, ale už iba samotnej biznis logike danej aplikácie.

Odpovedať

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *