Co je krásný kód? [uzavřeno]

Zavřeno . Tato otázka je míněna . Momentálně nepřijímá odpovědi.

Komentáře

Odpověď

„Krása se kupuje úsudkem oka.“

To znamená, že si myslím, že většina programátorů bude souhlasit s tím, že krásný kód ukazuje rovnováhu mezi jasnost a transparentnost, elegance, efektivita a estetika.

  • Jasnost a transparentnost : Jasnost je, jak snadno může čtenář odvodit, co kód dělá. Transparentní kód dělá to, co se zdá. Pokud se zdá, že kód dělá jednu věc, ale ve skutečnosti dělá něco jiného (nebo něco více), není transparentní – je zavádějící.

  • Elegance : existuje mnoho způsobů, jak implementovat většinu algoritmů, ale některé způsoby jsou nemotorné, zatímco jiné způsoby jsou elegantní a elegantní. Štěstí často dodává eleganci, ale přílišná stručnost může snížit jasnost.

  • Efektivita : vyhnout se zbytečnému využívání zdrojů (například času CPU, paměti a I / O).

  • Estetika : být v očích snadný. To je docela subjektivní. Většinou jde o styl. Jedním z důležitých aspektů je mít konzistentní styl. Kód, který v polovině mění například styl odsazení, je ošklivý.

Komentáře

  • krásné vysvětlení, +1
  • Vyřadil bych " účinnost ". I když v přísném slova smyslu je to pozitivní, zahrnutí do seznamu může být přinejlepším zavádějící. Je to obvykle vedlejší produkt ostatních a v době kódování by to mělo být druhořadé. Hlavním důvodem je, že se z velké části projeví až poté, co kompilátor zapracoval svou temnou magii.
  • @Jubbat Skutečně – někdy nejefektivnější řešení ve skutečnosti vede k velmi ošklivému kódu. (Např. Klasická funkce Fast Inverse Square Root)
  • @DarrelHoffman Right, i když tento kompromis platí i pro více proměnných, které definují dobrý kód, nejen účinnost a zbytek (toto je dobré zdlouhavé vysvětlení v " kódu dokončeno " – bohužel si ' nepamatuji, ve které části kniha, téměř na začátku pravděpodobně-)
  • @Jubbat: Souhlasím s tím, že efektivita je obvykle druhořadý problém, ale stále si myslím, že se promítá do rovnice krásy.

Odpověď

Nenechte se oklamat lidmi, abyste si mysleli, že krásný kód je následující:

  • chytré algoritmy
  • záludné jazykové funkce
  • řešení problému s co nejmenším počtem klíčových úderů

protože to tak není. Takový kód je roztomilý a určitě stojí za pohled, ale není to ten druh kódu, se kterým se chcete usadit.

A víte, že efektní rekurzivní meta templátovaný statický polymorfismus, který zdědí variabilní lambda – nebo co jste četli online? Možná jste dychtiví skočit na inovativní a šikovné triky bez jasného důvodu je použít. Ale kód, který posouvá hranice jazyka, také není krásný.

Jsou .
Spousta legrace, ale zeptejte se sami sebe na toto: Opravdu chci trávit čas zkoumáním anatomie tohoto jazyka, nebo chci pracovat společně s jazykem a vytvořit něco krásného? Koneckonců, programovací jazyk je pouze nástroj k vytváření.


Co je tedy krásný kód?

Krásný kód = udržovatelný kód. TO JE TO!
TO JE FORMULÁŘ !

Pokud něco umíte napsat, vraťte se k tomu o několik měsíců později a pokračujte v tom, aby to pokročilo, pak je to krásné. Pokud si o rok později uvědomíte, že chcete přidat také funkčnost jako vylepšení existující funkce a zvládnete to relativně snadno, pak TO JE krásné. Pokud do vaší kódové základny mohou vstoupit další lidé a rychle zjistit, o co jde, protože věci jsou uspořádané, budou mít více vlasů a budou také krásné.

Takže skutečná otázka, kterou se chcete zeptat, je : „Jak mohu napsat více udržovatelného kódu?“. Obávám se, že to je větší otázka a je to docela kreativní disciplína. Pokračujte v psaní kódu, ale tentokrát si neptejte, jestli může být krásnější. Zeptejte se sami sebe, zda je možné jej lépe udržovat.

Komentáře

odpověď

Mým názorem je, že „krásný kód“ není objektivní ani zvlášť užitečný pojem. A neměli bychom se ho snažit definovat.


Typické slovníkové definice anglického slova „beauty“ zní takto:

  • „1. kombinace všech vlastnosti osoby nebo věci, které potěší smysly a potěší mysl „
  • “ 1. kvalita přítomná v osobě nebo věci, která poskytuje intenzivní estetické potěšení nebo hluboké uspokojení mysli nebo smyslů. “
  • „1. Kvalita, která přináší potěšení mysli nebo smyslům a je spojena s takovými vlastnostmi, jako je harmonie formy nebo barvy, dokonalost umění, pravdivost a originalita.“

(Zdroj http://dictionary.com )

Společným vláknem je tato „krása“ je o tom, co je esteticky příjemné. To je nutně subjektivní … jak dokládá výrok „Krása je v oku pozorovatele“.


Slovo „krása“ můžeme použít na kód , a zjevný význam je, že kód je „esteticky příjemný“.

Ale pak říci, že „krásný kód“ má určitou sadu atributů (jak naznačují jiné odpovědi), je v rozporu s zjevný význam esteticky příjemného. Estetika je o tom, jak lidé … jednotliví lidé … vnímají věci.

Nebo řečeno jinak, je tu něco odporné o tom, že mi někdo řekl, co si myslím, že je krásné, ať už v lidech, v uměleckých dílech nebo … v kódu.

Pokud jde o pokud jde o mě, krásný kód je kód, o kterém si myslím, že je krásný, a to je vše. Je to subjektivní a individuální a nechme to tak.

Odpovědět

Tady je moje rada.

Projděte si odpovědi na Jak můžete vysvětlit " krásný kód " neprogramátorovi? a uvidíte, na jaké vlastnosti se podle nich zaměřují. Pak si vezměte knihu jako Code Complete a přečtěte si ji, abyste se dozvěděli, jak napsat lepší kód.

V určitém okamžiku vás zasáhne při pohledu na starší váš kód „To je ošklivé.“ Bude to přímá estetická reakce. A když se na to podíváte, uvědomíte si, že si svůj kód prohlížíte jako programátor, a můžete vidět ošklivost, protože víte, jak by měl vypadat lépe vypadající kód.

Odpovědět

To, že často čtete o krásném kódu, neznamená, že lidé, kteří o něm píší, mají stejnou definici. Bohužel, soudě podle vaší otázky se nezdá, že by se dokonce obtěžovali definujte to na prvním místě.

Pro mě je krásný kód:

  • expresivní
  • výstižný

Stručný kód, který není expresivní, může být záhadný a expresivní kód, který není stručný, má tendenci být nafouklý a zdlouhavý ke čtení, takže potřebujete obojí.

Nechtěl bych zahrnout udržovatelnost jako součást toho, co dělá kód krásná, protože krása je něco, co vidíte / čtete, ne něco, na co jednáte. Ale pak je to opět můj osobní pohled.

Odpověď

Pojem krásný kód je velmi vágní a abstraktní pojem. Je snadné zjistit, co to představuje a co to znamená, ale nikdy by to nemělo být považováno za více než sekundární cíl.

Hodně mi to připomíná metriku pokrytí kódu. Když dosáhnete dostatečně vysokého počtu, můžete si odpočinout a jít na něco jiného. Mít kódovou základnu s přibližně 80% pokrytím je skvělé, není neprůstřelné, ale dost na to, aby ochladilo a dělalo jiné věci. Mít 40% pokrytí je docela děsivé a mělo by vás povzbudit, abyste toto číslo zvýšili.

Bod je jen to, že pokrytí kódu má smysl pouze tehdy, pokud je jeho počet nízký. Nenechte to být nízké. Když se pokrytí zvýší do určitého bodu, přejděte k něčemu jinému.

Podobně krásný kód je skvělý. Pokud máte pěkný kód, skvělý, přejděte na něco jiného. Nestresujte se tím příliš. Nikdy nedosáhnete této 100% hranice a pokud zjistíte, že se příliš soustředíte na to, co čte, nebo jak to vypadá, a nestačí na co dělá nebo jak to dělá. Dostaňte se tedy k rozumné známce a pak přestaňte.

Ale pokud je váš kód fugly, pokud je to obrovský spletitý nepořádek špagetového kódu, pokud vás fyzicky bolí otevřít soubor, pokud nemáte žádné komentáře nebo dokumentace atd. atd., pak to opravte. A udělejte to co nejdříve.

Zjistíte, že v průběhu času bude vaše kódová základna obecně čistší, obecně jasnější a obecně krásnější a ještě důležitější použitelnější, pokud se soustředíte na to, aby to bylo méně náročné. nejedná se o krokový proces.

Neexistuje žádná magická filozofie. Jeho 1000 menších kroků je provedeno společně, všechny slouží konkrétnímu účelu, který nemá nic společného s tím, jak krásně kód vypadá. Ale když sloužit jim dohromady, tvoří krásný kód jako součet jeho částí. Jako voltron. Nebo kapitánská planeta.

Odpověď

Souhlasím s odpověďmi zde, ale s méně technickým přístupem bych řekl, že krásný kód je vyjádřením jasnosti myšlenky autorů na daný problém, která se projevuje dobře formulovaným a přesným, ale jednoduchým jazykem.

Dívat se skrz krásný kód je pro mě jako dívat se na umělecké dílo a vidět stále nové detaily, které ukazují tvůrce záměr, ale také to, jak byly jednotlivé části realizovány, přičemž každá z nich poskytla odpověď na tolik otázek, a nakonec, jak se její existence cítí jako přirozený zákon, se kterým se všechno vyrovnává, takže to lze popsat pouze slovy úžasu: velkolepý , inspirativní, krásné.

Takže z tohoto pohledu můžete ve své kariéře programátora dělat objevy krásného kódu, kterému ostatní nemusí rozumět, protože jim chybí znalosti nebo už nemusí být pozoruhodní, protože byli zkaženi příliš mnoho krásy;)

Krásný kód má všechny pragmatické vlastnosti, jak je uvedeno jinak, naprosto souhlasím.

Odpověď

Mám tři kritéria:

  • Jednoduché: Alespoň to musí být čitelné člověkem. Například můžete napsat kód, který pracuje v O (1) pro řešení s hromadou řádků, ale dávám přednost kódu, který pracuje s 0 (n) řeší s několika řádky. To se může v extrémních situacích změnit, ale pro začátek je důležitá jednoduchost.
  • Opakovaně použitelné: Kód musí být opakovaně použitelné, ale nepřepisované. Pokud potřebujete operaci, měli byste ji definovat tak, abyste ji po letech mohli použít.
  • Odsazení: Možná to pro vás není problém, ale pro začátečníky je to první věc, kterou je třeba vyřešit.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *