Megjegyzések
- a lehetséges másolata? Írás / beszélgetés a kód esztétikájáról?
- Ez ' csak beszédfigurája. A szépség a szemlélő szemében rejlik, és ezen túl ' minden a ' letett utasítások világosságáról szól. szöveges fájlban, hogy megoldja a problémát, és hogy Ön vagy bárki más könnyen módosíthatja és fenntarthatja a jövőben. Ezen túlmenően a kódod mennyivel több szépséget áraszt – csak rajtad múlik – behúzások, moduláris felépítés, bonyolultság, hatékonyság az egyszerû olvashatósággal, az elnevezési szokásokkal stb. “fd12854e97″>
Gyönyörű kód: A vezető programozók elmagyarázzák, hogy akkor hogyan gondolkodnak !
gyönyörű kód " egy nem programozónak?
Válasz
“A szépséget a szem megítélésével vásárolják meg.”
Ennek ellenére azt hiszem, hogy a legtöbb programozó egyetért abban, hogy a gyönyörű kód egyensúlyt mutat a világosság és átláthatóság, elegancia, hatékonyság és esztétika.
-
Világosság és átláthatóság : A világosság az, hogy az olvasó milyen könnyen tudja levezetni, hogy mit csinál a kód. Az átlátszó kód azt csinálja, aminek látszik. Ha úgy tűnik, hogy a kód egy dolgot csinál, de valójában mást (vagy valami többet) csinál, akkor nem átlátszó – félrevezető.
-
iv Elegancia : az algoritmusok többségének megvalósítására sokféle lehetőség van, de bizonyos esetek esetlenek, míg mások szépek és kecsesek. A tömörség gyakran ad eleganciát, de a túlzott tömörség csökkentheti az egyértelműséget.
-
Hatékonyság : az erőforrások (például a CPU idő, a memória és az I / O) felesleges felhasználásának elkerülése.
-
Esztétika : könnyű a szeme. Ez elég szubjektív. Leginkább a stílushoz jön le. Az egyik fontos szempont a következetes stílus megléte. A kód, amely megváltoztatja például a stílus behúzását a felénél, csúnya.
Megjegyzések
- gyönyörű magyarázat, +1
- kivenném a " hatékonyságot ". Szigorú értelemben ugyan pozitív, de a felsorolásba vétele legjobb esetben is félrevezető lehet. Rendszerint a többiek mellékterméke, és másodlagos aggodalomra ad okot a kódolás idején. A legfőbb ok az, hogy többnyire csak azután nyilvánul meg, hogy a fordító működött sötét varázslatán.
- @Jubbat Valóban – néha a leghatékonyabb megoldás valóban nagyon csúnya kódhoz vezet. (Pl. A klasszikus Fast Inverse Square Root függvény)
- @DarrelHoffman Right, bár ez a kompromisszum több olyan változóval is igaz, amelyek meghatározzák a jó kódot, nem csak a hatékonyságot és a többit (erre jó hosszú magyarázat van a " kódban teljes " – sajnos nem emlékszem ' könyv, valószínűleg a kezdetektől valószínűleg-)
- @Jubbat: Egyetértek azzal, hogy a hatékonyság általában másodlagos kérdés, de még mindig úgy gondolom, hogy ez bekerül a szépségegyenletbe.
Válasz
Ne hagyd, hogy az emberek becsapják, hogy azt gondolják, hogy a gyönyörű kód a következő:
- okos algoritmusok
- alattomos nyelvi jellemzők
- probléma megoldása a legkevesebb billentyűleütéssel
Mert nem. Az ilyen kód aranyos , és minden bizonnyal megér egy pillantást, de nem az a fajta kód, amellyel le akarsz rendezni.
És tudod, hogy az a fantáziadús rekurzív metasablonos statikus polimorfizmus, amely örökli a variáns lambdákat – vagy bármi, amiről online olvastál? Lehet, hogy szívesen kezdene bele az innovatív és remek trükkökbe, anélkül, hogy egyértelmű oka lenne annak felhasználására. De a nyelv határait feszegető kód sem szép.
Ők szexi k.
Rengeteg szórakozás, de kérdezd meg magadtól: Tényleg időt tölteni e nyelv anatómiájának feltárásával, vagy szeretnék együtt dolgozni egy nyelvvel, és valami szépet felépíteni? Végül is a programozási nyelv csupán a létrehozás eszköze.
Akkor mi a gyönyörű kód?
Gyönyörű kód = karbantartható kód. AMELY “IT IT!
AZ” FORMULA !
Ha tudsz írni valamit, akkor néhány hónappal később térj vissza rá, és folytasd az előrehaladást, akkor ez gyönyörű. Ha egy évvel később rájössz, hogy funkciókat is szeretnél hozzáadni mint egy meglévő szolgáltatás módosítása, és ezt viszonylag könnyedén meg tudja valósítani, akkor EZ A szép. Ha más emberek beléphetnek a kódalapodba, és gyorsan kitalálják, mi folyik, mert a dolgok rendezettek, akkor több hajuk lesz, és gyönyörűek is lesznek.
Tehát az igazi kérdés, amit fel akarsz tenni : “Hogyan írhatok fenntarthatóbb kódot?” Attól tartok, hogy ez egy nagyobb kérdés, és ez elég kreatív tudományág. Csak írja tovább a kódot, de ezúttal ne tegye fel magának a kérdést, hogy lehet-e szebb. Kérdezd meg magadtól, hogy tudod-e fenntarthatóbbá tenni.
Megjegyzések
- az Ön által felvetett kérdések elleni küzdelemhez az is tanácsot ad, hogy c2.com/cgi/wiki?KillYourDarlings
Válasz
Véleményem szerint az a “Szép kód” nem objektív vagy különösen hasznos kifejezés. És nem kellene megpróbálnunk meghatározni.
Az angol “beauty” szó tipikus szótár-meghatározása így hangzik:
- “1. az összes kombinációja egy személy vagy dolog azon tulajdonságai, amelyek örömet szereznek az érzékeknek és örömet okoznak az elmének “
- ” 1. az a személyben vagy dologban meglévő minőség, amely intenzív esztétikai örömet vagy mély megelégedést nyújt az elmének vagy az érzékeknek. ”
- “1. Az a minőség, amely örömet okoz az elmének vagy az érzékeknek, és olyan tulajdonságokkal társul, mint a forma vagy szín harmóniája, a művészi kiválóság, az igazmondás és az eredetiség.”
(Forrás http://dictionary.com )
A közös szál a “szépség” arról szól, ami esztétikus. Ez szükségszerűen szubjektív … amint azt a “Szépség a szemlélő szemében” mondat szemlélteti.
A “szépség” szót alkalmazhatjuk a kódra is , és a nyilvánvaló jelentése az, hogy a kód “esztétikailag kellemes”.
De azután azt mondani, hogy a „szép kódnak” van bizonyos attribútumkészlete (amint azt a többi válasz is javasolja), az ellentmondás a nyilvánvaló jelentése esztétikus. Az esztétika arról szól, hogy az emberek … egyes emberek … hogyan érzékelik a dolgokat.
Vagy fogalmazva más módon, van valami visszataszító abban, hogy valaki azt mondja nekem, amit szerintem szépnek kell lennie, legyen az emberekben, műalkotásokban vagy … kódban.
Ami eddig van mivel a gyönyörű kód a kód szerintem gyönyörű, és ez az. Szubjektív és egyéni, és hagyja, hogy csak annyiban maradjon.
Válasz
Íme a tanácsom.
A válaszok áttekintése. Hogyan magyarázhatja a " gyönyörű kódot " egy nem programozónak? , és megnézheti, milyen jellemzőkre mondják a hangsúlyt. Ezután vegyen elő egy olyan könyvet, mint a Code Complete , és olvassa el, hogy tanácsot kapjon a jobb kódírásról.
Egy bizonyos ponton megüt majd, miközben megnézi egy régebbi kódját. , “Ez csúnya.” Közvetlen esztétikai reakció lesz. És ha ránézel, rájössz, hogy úgy nézed meg a kódodat, mint egy programozó, és láthatod a csúnyaságot, mert tudod, hogy nézzen ki egy jobban kinéző kód.
Válasz
Az, hogy gyakran olvasol a gyönyörű kódról, nem azt jelenti, hogy az emberek, akik írnak róla, azonos definícióval rendelkeznek. Sajnos a kérdésed alapján nem tűnik úgy, hogy még is zavarták volna először is definiálja.
Számomra a gyönyörű kód:
- Kifejező
- Tömör
A nem kifejező, tömör kód rejtélyes lehet, a nem tömör kifejező kód pedig dagadt és fárasztó az olvasáshoz, ezért mindkettőre szükség van.
A karbantarthatóságot nem foglalnám bele a kódot alkotó részeként gyönyörű, mert a szépség olyasmi, amit látsz / olvassz, nem pedig valami, ami alapján cselekszel. De akkor is ez a személyes nézetem.
Válasz
A szép kód kifejezés nagyon homályos és elvont kifejezés. Könnyű kitalálni, mit képvisel és mit jelent, de soha nem szabad másodlagos célként tekinteni rá.
Sokat emlékeztet a kód lefedettség mutatójára. Ha elég magas lesz a szám, akkor pihenhet és valami mással foglalkozhat. Körülbelül 80% -os lefedettségű kódbázis nagyszerű, nem golyóálló, de elegendő ahhoz, hogy lehűtsön és más dolgokat végezzen. A 40% -os lefedettség elég félelmetes, és arra kell ösztönöznie, hogy növelje ezt a számot.
Pontosan az a lényeg, hogy a kód lefedettsége csak akkor értelmezhető igazán, ha alacsony a szám. Tehát ne hagyja, hogy alacsony legyen. Ha a lefedettség egy bizonyos pontra emelkedik, lépjen tovább valami másra.
Hasonlóan szép kód nagyszerű. Ha szép kódod van, remek, lépj valami másra. Ne stresszel túl sokat. Soha nem fogod elérni ezt a 100% -os határt, és ha mégis, akkor túlságosan arra koncentrálsz, hogy mit olvas, vagy hogy néz ki, és nem elég mit csinál, vagy hogyan. Tehát érjen el egy ésszerű ponthoz, majd álljon meg.
De ha a kódod hibás, ha óriási a spagetti kód keveredése, ha fizikailag fáj a fájl megnyitása, ha nincsenek megjegyzéseid vagy dokumentáció stb stb stb majd kijavítani. És tegye meg a lehető leghamarabb.
Idővel a kódbázisa általában tisztább, általában fényesebb és általában szebb, és ami még fontosabb, jobban használható, ha arra összpontosít, hogy kevésbé fugázzon. A gyönyörű kód megírása nem egy lépésből álló folyamat.
Nincs varázsfilozófia. Az 1000 kisebb lépés együttesen történik, amelyek mind konkrét célt szolgálnak, és semmi köze nincs ahhoz, hogy milyen szép a kód. De, ha szolgálják fel őket együtt, gyönyörű kódot alkotnak részei összegeként. Mint a voltron. Vagy a bolygó kapitány.
Válasz
Valóban egyetértek az itteni válaszokkal, de kevésbé technikai megközelítést alkalmazva azt mondanám, hogy a gyönyörű kód kifejezi szerzőinek “a kérdéssel kapcsolatos gondolat egyértelműségét, amely egy jól megfogalmazott és pontos, mégis egyszerű nyelv segítségével nyilvánul meg. / p>
Számomra a gyönyörű kódot átnézni annyi, mint egy műalkotást megnézni, egyre újabb részleteket látni, amelyek megmutatják a készítő s szándékát, hanem azt is, hogy a különböző részek hogyan valósultak meg, mindegyik annyi kérdésre adott választ, majd végül hogyan érzi magát a létezése olyan természeti törvényként, amelyhez minden úgy igazodik, hogy csak félelmetes szavakkal írható le: csodálatos , inspiráló, gyönyörű.
Tehát ebből a szempontból programozói karrierje során felfedezheti a gyönyörű kódot, amelyet mások talán nem is értenek, mert nincsenek ismereteik, vagy esetleg nem találják már figyelemre méltónak, mivel elkényeztették őket. túl sok szépség által;)
A Beautiful kód minden pragmatikus tulajdonsággal rendelkezik, amint azt egyébként említettem, teljesen egyetértek.
Válasz
Három feltételem van:
- Egyszerű: Legalább emberileg olvashatónak kell lennie. Például írhat egy kódot, amely O (1) -nél működik egy tonna sorral rendelkező megoldáshoz, de én inkább a 0 (n) -nel működő kódot oldom meg, kevés sorral. Ez extrém helyzetekben változhat, de a kezdeteknél fontos az egyszerűség.
- Újrafelhasználható: Kódot kell megadni újrafelhasználható, de nem írják felül. Ha szüksége van egy műveletre, akkor azt úgy kell meghatároznia, hogy évekkel később felhasználhatja.
- Behúzás: Lehet, hogy ez nem jelent problémát az Ön számára, de a kezdő szint számára ez az első megoldás.