Programovanie

Sedem kľúčových postupov kódovania pre agilných vývojárov

Agilný vývoj softvéru nie je len o agilných princípoch a postupoch. Aby bol vývojový tím úspešný pri vydávaní softvéru, ktorý pozitívne ovplyvňuje koncových používateľov, rieši technický dlh a spoľahlivo sa nasadzuje, musí zvážiť aj ich postupy kódovania a štandardy architektúry poháňajúce agilitu.

Pre technologické organizácie je v hre ešte dôležitejšia úvaha. Aj keď je ťažké vyvinúť softvér, je ešte ťažšie pravidelne a dlhšie nasadzovať vylepšenia a aktualizácie. Postupy Devops CI / CD a IAC (infraštruktúra ako kód) sa čiastočne zameriavajú na jeden kritický faktor, pretože automatizácia umožňuje spoľahlivé a opakovateľné spôsoby nasadenia aplikácií. Pridajte do nepretržitého testovania a vývojové tímy majú spôsob, ako overiť, či zmeny kódu neovplyvnia existujúcu funkčnosť.

Postupným starnutím aplikácií však pôvodní vývojári prechádzajú k ďalším projektom a niekedy aj k iným spoločnostiam. Keď sa do tímu pridajú noví vývojári, musia sa naučiť architektúru softvéru a porozumieť kódu, aby ho mohli spoľahlivo a efektívne zmeniť.

Ďalej vývojári, ktorí vytvárajú aplikácie, často chcú vyvíjať nové. Môže to byť pohodlné a bezpečné zostať pripojený k aplikáciám, ktoré vyvíjate, ale byť pripútaný k vášmu kódu nie je zdravé pre vašu kariéru alebo organizáciu.

Najlepším spôsobom, ako prejsť na nové a zaujímavé iniciatívy v oblasti vývoja softvéru, je zabezpečiť, aby vaša architektúra, aplikácia a kód boli ľahko podporiteľné ostatnými vývojármi. Agilné tímy a vývojári musia ustanoviť a presadzovať postupy kódovania, ktoré udržujú neustály vývoj softvéru.

1. Neznovu objavujte koleso

Prvé pravidlo kódovania: Nekódujte niečo, čo sa nemusí kódovať! Ako?

  • Zvážte kladenie otázok o požiadavkách. Prečo je funkcia dôležitá? Kto má z toho výhody? Presnejšie preskúmajte možnosti nekódovania, aby ste problém vyriešili. Najlepšie riešenie niekedy nie je vôbec.
  • Má niekto vo vašej organizácii už kódované podobné riešenie? Možno existuje mikroslužba, ktorá potrebuje iba vylepšenie, alebo softvérová knižnica, ktorá vyžaduje menšiu aktualizáciu? Predtým, ako začnete programovať niečo nové, nezabudnite si prezrieť kódovú základňu svojej organizácie.
  • Existujú riešenia tretích strán, vrátane cenovo dostupných nástrojov SaaS alebo možností otvoreného zdroja, ktoré spĺňajú minimálne požiadavky?
  • Pozreli ste sa na otvorené úložiská kódovania, ako je GitHub, kde nájdete príklady kódov a úryvkov, ktoré zodpovedajú požiadavkám vašej organizácie na dodržiavanie súladu?

2. Zvážte možnosti vývoja s nízkym kódom

Ak potrebujete kódovať riešenie, potom alternatívne platformy s nízkym kódom môžu umožniť efektívnejší vývoj schopností v porovnaní s kódovaním vo vývojových jazykoch, ako sú Java, .Net, PHP a JavaScript.

Platformy s nízkym kódom, ako sú Caspio, Quick Base, Appian, OutSystems a Vantiq, poskytujú nástroje na vývoj aplikácií s malým kódom a niekedy dokonca bez kódovania vôbec. Každá platforma sa špecializuje na rôzne schopnosti a je tak vhodná pre konkrétnu triedu aplikácií. Napríklad Caspio uľahčuje vkladanie formulárov a pracovných postupov do webových stránok. Aplikácia Quick Base má robustné pracovné postupy a možnosti automatizácie a architektúra Vantiq založená na udalostiach je vhodná pre IoT a ďalšie dátové aplikácie v reálnom čase.

Niekedy je potrebné kódovanie, ale vývojári by tiež mali ovládať jednu alebo viac možností vývoja s nízkym kódom a zvážiť ich pre príslušné prípady použitia.

3. Automatizujte testovanie

Okrem písania kódu, ktorý spĺňa požiadavky, je jednou z najdôležitejších vecí, ktoré vývojári musia urobiť, je otestovať ho. Vývojové postupy založené na testoch a automatizované testovacie nástroje dozreli a vývojové tímy by mali zahrnúť testovanie jednotiek, regresie, výkonu a zabezpečenia ako súčasť svojich agilných odhadov.

Okrem testov na overenie zostavení a vydaní tieto testy tiež pomáhajú zvýšiť podporu kódu. Testy sú dokumentáciou a uzatvárajú zmluvu o tom, ako sa má kód správať. Keď sa noví vývojári pripoja k tímom a chtiac-nechtiac implementujú zlú zmenu, neustále testovanie zastaví vývoj a poskytne vývojárom zmysluplnú spätnú väzbu, aby sa problém rýchlo vyriešil.

4. Externalizujte všetky konfiguračné parametre

Pre vývojárov by nemalo byť ospravedlnenie, že v kóde budú stále tvrdo kódovať nastavenia na úrovni systému, používateľské mená a heslá alebo iné konfiguračné informácie. Videl som, ako vývojári používajú skratky pri vývoji prototypov, ktoré sa dostanú do produkčných prostredí. V dnešných architektúrach by sa to nikdy nemalo robiť. Tvrdé kódovanie nie je technický dlh, ale lenivý a nezodpovedný postup kódovania, ktorý môže mať značné následky. Ak je kód náhodne prístupný, vytvára zraniteľnosť zabezpečenia, ak sú odhalené koncové body alebo prístupové poverenia.

Keď ideme o krok ďalej, keď sa pracuje na starom kóde, malo by byť prioritou neobchodovateľného technického dlhu adresovanie akýchkoľvek pevne zakódovaných konfigurácií a parametrov.

5. Dodržiavajte konvencie pomenovania a zahrňte komentáre, aby bol kód čitateľný

Raz som spolupracoval s neuveriteľne talentovaným vývojárom, ktorý nevedel dobre po anglicky a nebol najlepším typistom. Vytvoril by inštanciu objektov s názvami ako a, b, a c a potom vytvorte miestne premenné s názvom zz, rr, xx. Zaviazal sa, že to pred prepustením vyčistí, ale len málokedy to dotiahol do konca.

Na rozpoznanie toho, že je to hrozný postup, nemusíte mať zavedené programovanie párov alebo mobov.

Tímy by mali prijať konvencie pomenovania, ako sú Sprievodca štýlmi JavaScriptu spoločnosti Google a Sprievodca štýlom Java, a zaviazať sa, že komentujú kód aspoň na modulárnej úrovni, ideálne na úrovni triedy. Organizácie by navyše mali zvážiť použitie nástrojov na analýzu statického kódu, ktoré vývojárom poskytnú spätnú väzbu, keď je potrebné kód refaktorovať pre štruktúru a faktory čitateľnosti.

6. Často kontrolujte kód do riadenia verzie

Ak nekontrolujete kód do riadenia verzií každý deň alebo častejšie, môže to spôsobiť konflikty a ďalšie bloky, ktoré ovplyvnia tím. Jedna malá chyba môže spôsobiť, že agilné tímy premeškajú svoje záväzky v šprinte alebo vytvoria ďalšiu prácu na riešení závislostí.

Tímy by sa mali dohodnúť na dohovoroch o kontrole kódu, ktorý nie je pripravený na výrobu. Konvenčné prístupy zahŕňajú príznaky funkcií a vetvenie Gitu.

7. Vyvarujte sa kódovania hrdinstva a zložitosti

Väčšina vývojárov, ktorých poznám, sa stala profesionálnymi softvérovými inžiniermi, pretože milujú riešenie problémov s kódovaním. Kódovanie je umenie, veda a remeslo a lepší vývojári sa snažia hľadať podnetné úlohy kódovania a elegantné implementácie.

Až na to, že medzi riešením náročných obchodných a technických úloh versus kódovaním hrdinstva existuje šedá čiara, ktorá ponecháva budúcim vývojárom kód, ktorý je ťažko pochopiteľný a zložitý na údržbu.

Pre tých z nás, ktorí už nejaký čas programujú, si pamätáme pohodlie Perl-liniových liniek alebo použitie vnorených šablón v C ++. Niekedy sú dobré dôvody na použitie týchto prístupov, ale ak nová skupina vývojárov týmto technikám nerozumie, je náročnejšie kód zmeniť. Niekedy sú lepšie jednoduché, ale menej elegantné postupy kódovania.

Podpora agility pri agilnom vývoji softvéru

Rituály vložené do skrumáže a agilného vývoja, vrátane záväzkov, standupov, sprintov a retrospektív, sú dnes osvedčenými postupmi, ktoré umožňujú tímovú spoluprácu a riadia úspešnú implementáciu. Aby však vývojári preukázali agilitu po dlhú dobu, musia prevziať zodpovednosť a postupy kódovania, ktoré umožňujú dlhodobú podporu a rozšíriteľnosť kódu, ktorý vyvíjajú.

Vývojové tímy musia kriticky vnímať svoje postupy kódovania. Dnes to nie je len dosť dobré na ukážku a vydanie; je tiež nevyhnutné umožniť ostatným ľahkú údržbu aplikácie a kódu.

$config[zx-auto] not found$config[zx-overlay] not found