10 základních programovacích principů, které musí každý programátor dodržovat

  • Michael Cain
  • 0
  • 3655
  • 949
reklama

Kdokoli může psát kód. Ale dobrý kód? To je místo, kde to bude těžké.

Všichni jsme slyšeli hororové příběhy o špagetovém kódu, masivních řetězcích if-else, celých programech, které se mohou zlomit pouhou změnou jedné proměnné, funkcí, které vypadají, jako by byly zmatené atd. To se stane, když se pokusíte vyrobit přepravitelný produkt s pouze semestrem programovacích zkušeností pod pásem.

Neuspokojte se s napsáním kódu funguje. Cílem je napsat kód, který umí být udržován - nejen vy sami, ale kdokoli jiný, kdo může v budoucnu na softwaru pracovat. Za tímto účelem je zde několik zásad, které vám pomohou vyčistit váš akt.

1. KISS

“zůstaň to jednoduché, hloupé” zásada vztahuje se téměř na celý život, ale je to obzvláště nutné ve středně až velkých programovacích projektech.

Začíná to na začátku, když definujete rozsah toho, co chcete vytvořit. To, že jste nadšeni vývojem her, neznamená, že můžete vytvořit další Svět války nebo velká automobilová krádež. Když si myslíte, že jste dostatečně zjednodušili, zjednodušte to o jednu úroveň dále - je nutné vynechat funkci, takže začněte s malými.

Ale i po zahájení kódování je to jednoduché. Složitý kód trvá déle, než se navrhne a zapíše, je náchylnější k chybám a chybám a je obtížnější ho později upravit po silnici. Moudrými slovy Antoina de Saint-Exupery, “Dokonalosti je dosaženo, ne když už není co přidávat, ale když už není co vzít.”

2. SUCHÉ

“neopakuj se” zásada je zásadní pro čistý a snadno upravitelný kód. Při psaní kódu se chcete vyhnout duplicitě dat a duplicitě logiky. Pokud si všimnete stejného kusu kódu, který se znovu a znovu zapisuje, porušujete tento princip.

Opakem DRY kódu je WET kód: “psát všechno dvakrát” (nebo “ztrácet čas”). Jedním z nejlepších způsobů, jak diagnostikovat kód WET, je položit si otázku: Chcete-li nějakým způsobem změnit chování programu, kolik oblastí kódu byste potřebovali upravit?

Předpokládejme, že píšete aplikaci podcastového adresáře. Na vyhledávací stránce máte kód pro načtení podrobností podcastu. Na stránce podcastu máte kód pro načtení podrobností o tomto podcastu. Na stránce oblíbených položek stejný vyzvedávací kód. Zvažte, že to vše budete mít ve funkci, takže pokud to budete muset později upravit, můžete to udělat na jednom místě.

3. Otevřít / zavřít

Ať už píšete objekty Co je objektově orientované programování? Základy vysvětlené laikovými pojmy Co je objektově orientované programování? Základy vysvětlené v Laymanových termínech Nejmodernější programovací jazyky podporují paradigma „objektově orientovaného programování“ (OOP). Ale co přesně je OOP a proč je tak užitečný? v Java nebo modulech v Pythonu byste se měli snažit vytvořit svůj kód otevřeno rozšíření, ale změněno. To platí pro všechny druhy projektů, ale je to zvláště důležité při uvolňování knihovny nebo rámce určeného pro ostatní.

Předpokládejme například, že udržujete rámec GUI. Můžete jej uvolnit tak, jak je, a očekávat, že koneční uživatelé přímo upraví a integrují váš uvolněný kód. Co se však stane, když vydáte hlavní aktualizaci o čtyři měsíce později? Jak implementují všechny vaše dodatky, aniž by zahodili veškerou práci, kterou udělali?

Místo toho uvolněte kód brání přímá modifikace a povzbuzuje rozšíření. Tím se odděluje chování jádra od modifikovaného chování. Výhody? Větší stabilita (uživatelé nemohou náhodně narušit základní chování) a větší údržba (uživatelé se obávají pouze rozšířeného kódu). Princip open / closed je klíčem k vytvoření dobrého rozhraní API Co jsou API a jak otevřená API mění internet Co jsou API a jak otevřená API mění internet Už jste někdy přemýšleli, jak programy v počítači a navštívené webové stránky "mluvit k sobě navzájem? .

4. Složení> Dědičnost

“složení nad dědičností” zásada uvádí, že objekty s komplexním chováním by tak měly učinit tím, že obsahují instance objektů s individuálním chováním spíše než zdědit třídu a přidat nová chování.

Nadměrné spoléhání na dědictví může vést ke dvěma hlavním problémům. Za prvé, hierarchie dědičnosti se může stát nepořádkem v mrknutí oka. Zadruhé, máte menší flexibilitu pro definování chování ve zvláštních případech, zejména pokud chcete implementovat chování z jedné vědě dědičnosti do jiné vědě dědičnosti:

Složení je mnohem čistší při psaní, snadněji se udržuje a umožňuje téměř nekonečnou flexibilitu, pokud jde o to, jaké druhy chování můžete definovat. Každé individuální chování je vlastní třídou a složité chování vytváříte kombinací jednotlivých chování.

5. Jednotná odpovědnost

princip jediné odpovědnosti říká, že každá třída nebo modul v programu by se měl zabývat pouze poskytováním jednoho kousku specifické funkce. Jak říká Robert C. Martin, “Třída by měla mít pouze jeden důvod ke změně.”

Třídy a moduly často začínají tímto způsobem, ale jak přidáváte funkce a nová chování, je pro ně snadné vyvinout se do Božích tříd a modulů Boha, které zabírají stovky nebo dokonce tisíce řádků kódu. Nyní byste je měli rozdělit na menší třídy a moduly.

6. Rozdělení obav

princip oddělení obav je jako princip jediné odpovědnosti, ale na abstraktnější úrovni. Program by měl být v podstatě navržen tak, aby měl mnoho různých nepřekrývajících se enkapsulací a tyto enkapsulace by o sobě neměly vědět.

Známým příkladem je paradigma model-view-controller (MVC), které rozděluje program na tři odlišné oblasti: data (“Modelka”), logika (“ovladač”) a co vidí koncový uživatel (“Pohled”). Variace MVC jsou běžné v dnešních nejpopulárnějších webových rámcích.

Obrázek Kredit: Wikimedia

Například kód, který zpracovává načítání a ukládání dat do databáze, nemusí vědět, jak tato data vykreslit na webu. Vykreslovací kód může převzít vstup od koncového uživatele, ale poté předá tento vstup do logického kódu ke zpracování. Každá část zvládne sama.

Výsledkem je modulární kód, který výrazně usnadňuje údržbu. A pokud budete v budoucnu potřebovat přepsat veškerý vykreslovací kód, můžete tak učinit bez obav, jak se data ukládají nebo zpracovává logika.

7. YAGNI

“nebudete to potřebovat” zásada je myšlenka, že byste nikdy neměli kódovat funkce, které vy smět v budoucnu. Pravděpodobně jste vy zvyklý potřebujete to a bude to ztráta času - nejen to, ale zbytečně to zvýší složitost vašeho kódu.

Dalo by se to vnímat jako konkrétní aplikaci principu KISS a reakci na ty, kteří berou princip DRY příliš vážně. Často se nezkušení programátoři pokoušejí napsat co nej abstraktnější a nejobecnější kód, jak se lze vyhnout kódu WET, ale příliš mnoho abstrakce končí v nafouknutém nemožném udržovacím kódu.

Trik spočívá v použití principu SUCHÉ pouze v případě, že potřebujete. Pokud si všimnete, že se kousky kódu zapisují znovu a znovu, pak je abstraktujte - ale nikdy ne vy myslet si kus kódu bude psán znovu a znovu. Vícekrát než ne, nebude.

8. Vyvarujte se předčasné optimalizace

žádný princip předčasné optimalizace je podobný principu YAGNI. Rozdíl je v tom, že YAGNI se zaměřuje na tendenci implementovat chování dříve, než jsou nezbytné, zatímco tento princip řeší tendenci urychlit algoritmy než to bude nutné.

Problém s předčasnou optimalizací spočívá v tom, že nikdy nevíte, kde budou úzká místa v programu, až do té doby. Můžete hádat, samozřejmě, a někdy můžete mít dokonce pravdu. Ale častěji než ne, ztrácíte drahocenný čas pokusem o zrychlení funkce, která není tak pomalá, jak si myslíte, nebo nezavolává tak často, jak byste očekávali..

Oslovte tedy své milníky tak jednoduše, jak jen můžete profil svůj kód identifikovat skutečná úzká místa.

9. Refaktor, Refaktor, Refaktor

Jednou z nejtěžších pravd, kterou lze přijmout jako nezkušeného programátora, je to kód zřídka vyjde hned poprvé. Může cítit správně, když implementujete tuto lesklou novou funkci, ale jak váš program roste ve složitosti, budoucím funkcím může bránit to, jak jste napsali ten první.

Codebázy se neustále vyvíjejí. Je zcela normální revidovat, přepsat nebo dokonce přepracovat celé kousky kódu - a to nejen normální, ale zdravé. Víte více o potřebách vašeho projektu Nyní než když jste na Start, a tyto nově získané znalosti byste měli pravidelně používat pro refaktorování starého kódu.

Všimněte si, že to nemusí být vždy velký proces. Vezměte stránku od skautů Ameriky, kteří žijí těmito slovy: “Nechte kemp čistší, než jste ho našli.” Pokud budete někdy potřebovat zkontrolovat nebo upravit starý kód, vždy jej vyčistěte a nechte jej v lepším stavu.

10. Čistý kód> Chytrý kód

Když už mluvíme o čistém kódu, nechte své ego u dveří a zapomeňte na psaní chytrého kódu. Víš o čem mluvím: druh kódu, který vypadá spíš jako hádanka než řešení a existuje pouze proto, aby předvedl, jak jsi chytrý. Pravda je, že se nikoho opravdu nezajímá.

Jedním z příkladů chytrého kódu je zabalení co největší logiky do jednoho řádku. Dalším příkladem je využívání jazykových komplikací k psaní zvláštních, ale funkčních prohlášení. Cokoli, co by mohlo někoho přimět říct “Počkej co?” když přenesete svůj kód.

Dobří programátoři a čitelný kód jdou ruku v ruce. V případě potřeby zanechte komentáře. Dodržujte průvodce stylem, ať už je to diktováno jazykem (jako je Python) nebo společností (jako je Google). Sledujte idiomy pro jednotlivé jazyky a přestaňte psát kód Java v Pythonu nebo naopak. Viz náš článek o tipech pro psaní čistšího kódu 10 tipů pro psaní čistšího a lepšího kódu 10 tipů pro psaní čistšího a lepšího kódu Psaní čistého kódu vypadá snadněji, než ve skutečnosti je, ale jeho přínosy stojí za to. Takto můžete začít psát čistší kód ještě dnes. .

Co dělá dobrý programátor?

Zeptejte se pěti lidí a dostanete 10 různých odpovědí. Dobrý programátor je pro mě ten, kdo chápe, že kódování by mělo v konečném důsledku sloužit koncovému uživateli, s nímž je snadné pracovat v týmu a který své projekty dokončí ke specifikaci a včas.

Pokud se cítíte zaseknutí, přečtěte si náš článek o překonání bloku programátora. A pokud si prostě nejste spokojeni s napsáním kódu, přečtěte si náš článek o příznacích, že nechcete být programátorem.

Pokud právě začínáte, zaměřte se na učení, jak kódovat bez stresu. Nejste si jisti, do kterého programovacího jazyka se ponoříte jako první? C # je dobré místo, kde začít z praktických důvodů 7 Praktické důvody, proč se učit C # Programování 7 Praktické důvody, proč se učit C # Programování Existuje mnoho programovacích jazyků, takže který z nich byste si měli vybrat, který se chcete učit? Zde je několik důvodů, proč se naučit C #. . A pokud se rozhodnete, zvažte také tyto C programovací tipy 5 C Programovací tipy, které musíte naučit, jak začít 5 C Programovací tipy, které se musíte naučit, jak začít Programovací jazyk C má těžkou pověst. Ale pokud se s tím vyrovnáte, můžete naprogramovat cokoli, jak ukazují tyto tipy. .




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.