Programování

Sedm klíčových postupů kódování pro agilní vývojáře

Agilní vývoj softwaru není jen o agilních principech a postupech. Aby byl vývojový tým úspěšný při uvolňování softwaru, který pozitivně ovlivňuje koncové uživatele, řeší technické zadlužení a spolehlivě se nasazuje, musí vývojový tým také zvážit své postupy kódování a standardy architektury poháněné agilitou.

Pro technologické organizace je v sázce ještě důležitější úvaha. Jak těžké je vyvíjet software, je ještě těžší pravidelně a po delší dobu nasazovat vylepšení a upgrady. Postupy Devops CI / CD a IAC (infrastruktura jako kód) částečně řeší jeden kritický faktor, protože automatizace umožňuje spolehlivé a opakovatelné způsoby nasazení aplikací. Přidejte nepřetržité testování a vývojové týmy mají způsob, jak ověřit, že změny kódu nemají vliv na stávající funkce.

Jak však aplikace stárnou, původní vývojáři přecházejí na jiné projekty a někdy i na jiné společnosti. Když se do týmu připojí noví vývojáři, musí se naučit architekturu softwaru a porozumět kódu, než jej mohou spolehlivě a efektivně změnit.

Kromě toho vývojáři, kteří vytvářejí aplikace, často chtějí vyvíjet nové. Může se cítit pohodlně a bezpečně zůstat připojený k aplikacím, které vyvíjíte, ale uvázání na váš kód není zdravé pro vaši kariéru nebo organizaci.

Nejlepší způsob, jak přejít k novým a vzrušujícím iniciativám vývoje softwaru, je zajistit, aby vaši architekturu, aplikaci a kód mohli snadno podporovat ostatní vývojáři. Agilní týmy a vývojáři musí zavést a prosazovat postupy kódování, které udržují neustálý vývoj softwaru.

1. Neobjevujte kolo znovu

První pravidlo kódování: Nekódujte něco, co není nutné kódovat! Jak?

  • Zvažte otázku ohledně požadavků. Proč je funkce důležitá? Kdo má prospěch? Konkrétněji prozkoumejte možnosti nekódování, abyste problém vyřešili. Někdy je nejlepším řešením vůbec žádné řešení.
  • Už někdo ve vaší organizaci kódoval podobné řešení? Možná existuje mikroslužba, která potřebuje jen vylepšení, nebo softwarová knihovna, která potřebuje menší upgrade? Než začnete kódovat něco nového, nezapomeňte si prohlédnout kódovou základnu vaší organizace.
  • Existují řešení třetích stran, včetně dostupných nástrojů SaaS nebo možností otevřeného zdroje, která splňují minimální požadavky?
  • Podívali jste se na otevřená úložiště kódování, jako je GitHub, kde najdete příklady kódu a úryvky, které splňují požadavky vaší organizace na dodržování předpisů?

2. Zvažte možnosti vývoje s nízkým kódem

Pokud potřebujete kódovat řešení, možná alternativní platformy s nízkým kódem mohou umožnit efektivnější vývoj schopností ve srovnání s kódováním ve vývojových jazycích, jako je Java, .Net, PHP a JavaScript.

Platformy s nízkým kódem, jako jsou Caspio, Quick Base, Appian, OutSystems a Vantiq, poskytují nástroje pro vývoj aplikací s malým kódem a někdy dokonce bez kódování vůbec. Každá platforma se specializuje na různé funkce a je tedy vhodná pro konkrétní třídu aplikací. Například Caspio usnadňuje vkládání formulářů a pracovních toků na webové stránky. Quick Base má robustní pracovní tok a automatizační funkce a architektura Vantiq založená na událostech je vhodná pro IoT a další datové aplikace v reálném čase.

Někdy je vyžadováno kódování, ale vývojáři by měli také ovládat jednu nebo více možností vývoje s nízkým kódem a zvážit je pro vhodné případy použití.

3. Automatizujte testování

Kromě psaní kódu, který splňuje požadavky, je jednou z nejdůležitějších věcí, kterou vývojáři musí udělat, je otestovat ho. Vývojové postupy založené na testech a automatizované testovací nástroje dozrály a vývojové týmy by měly zahrnout testování jednotek, regrese, výkonu a zabezpečení jako součást svých agilních odhadů.

Kromě testů k ověření sestavení a vydání tyto testy také pomáhají vylepšit podporu kódu. Testy jsou dokumentace a uzavírají smlouvu o tom, jak se má kód chovat. Když se noví vývojáři připojí k týmům a nechtěně provedou špatnou změnu, průběžné testování zastaví sestavení a poskytne vývojáři smysluplnou zpětnou vazbu, aby se problém rychle vyřešil.

4. Externalizujte všechny konfigurační parametry

Pro vývojáře by neměla být žádná omluva, aby v kódu stále tvrdě kódovali nastavení na úrovni systému, uživatelská jména a hesla nebo jiné konfigurační informace. Viděl jsem vývojáře dělat zkratky při vývoji prototypů, které si našly cestu do produkčních prostředí. V dnešních architekturách by se to nikdy nemělo dělat. Tvrdé kódování není technický dluh, ale líná a nezodpovědná praxe kódování, která může mít značné důsledky. Pokud se kód stane náhodně přístupným, vytvoří zranitelnost zabezpečení, pokud jsou vystaveny koncové body nebo přístupová pověření.

Jít o krok dále, když se na starém kódu pracuje, mělo by být prioritou neobchodovatelného technického dluhu řešení všech pevně konfigurovaných konfigurací a parametrů.

5. Postupujte podle konvencí pojmenování a zahrňte komentáře, aby byl kód čitelný

Jednou jsem pracoval s neuvěřitelně talentovaným vývojářem, který neuměl dobře anglicky a nebyl nejlepším písařem. Vytvořil by instanci objektů se jmény jako A, b, a C a poté vytvořte místní proměnné s názvem zz, yy, xx. Zavázal se, že to před propuštěním uklidí, ale málokdy to dokončil.

Nemusíte mít zavedeno programování párů nebo mobů, abyste si uvědomili, že je to hrozná praxe.

Týmy by měly přijmout konvence pojmenování, jako je Google Style Guide Guide a Java Style Guide, a zavázat se k komentování kódu alespoň na modulární úrovni a ideálně na úrovni třídy. Organizace by navíc měly zvážit použití nástrojů pro analýzu statického kódu, které poskytnou zpětnou vazbu vývojářům, když kód potřebuje refaktoring pro strukturu a faktory čitelnosti.

6. Často kontrolujte kód do správy verzí

Pokud nekontrolujete kód do správy verzí denně nebo častěji, může dojít ke konfliktům a dalším blokům, které mají dopad na tým. Jedna malá chyba může způsobit, že agilní týmy nesplní své závazky sprintu nebo vytvoří další práci k vyřešení závislostí.

Týmy by se měly dohodnout na konvencích pro kontrolu kódu, který není připraven k produkci. Konvenční přístupy zahrnují příznaky funkcí a větvení Git.

7. Vyvarujte se kódování hrdinství a složitosti

Většina vývojářů, které znám, se stala profesionálními softwarovými inženýry, protože milují řešení výzev kódování. Coding je umění, věda a řemeslo a lepší vývojáři hledají podnětné úkoly kódování a elegantní implementace.

Až na to, že mezi řešením náročných obchodních a technických úkolů a kódováním hrdinství existuje šedá čára, která ponechává dalším vývojářům kód, který je těžké pochopit a je obtížné jej udržovat.

Pro ty z nás, kteří už nějakou dobu programovali, si pamatujeme pohodlí Perlských jednorázových linek nebo používání vnořených šablon v C ++. Někdy existují dobré důvody pro použití těchto přístupů, ale pokud nová skupina vývojářů těmto technikám nerozumí, je náročnější změnit kód. Někdy jsou lepší jednoduché, ale méně elegantní postupy kódování.

Řízení agility při agilním vývoji softwaru

Rituály vložené do skrumáže a agilního vývoje, včetně závazků, standupů, sprintů a retrospektiv, jsou nyní osvědčenými postupy, které umožňují týmovou spolupráci a řídí úspěšnou implementaci. Aby však vývojáři dokázali agilitu po dlouhou dobu, musí převzít odpovědnost a postupy kódování, které umožňují dlouhodobou podporu a rozšiřitelnost kódu, který vyvíjejí.

Vývojové týmy musí kriticky pohlížet na své postupy kódování. Dnes to není jen dost dobré na ukázku a vydání; je také zásadní umožnit ostatním snadno udržovat aplikaci a kód.

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