Hirdetés

Keresés

Új hozzászólás Aktív témák

  • emvy

    félisten

    válasz mobal #17954 üzenetére

    Ez butasag. A komplex koddal akkor van baj, ha komplexebb, mint amire szukseg van. Komplex problemara komplex lesz a megoldas is, jo esellyel.

    Eleve ugy kene review-zni, hogy az atnezendo kodrol el lehessen donteni, hogy valojaban megoldja-e a problemat, vagy sem. Ennel fogva atlagos/normalis esetben 1 user story-hoz 1 review tartozik, ahol az atnezendo kod tartalmazza 1) az implementaciot 2) a teszteket, amik bizonyitjak, hogy az implementacio tenyleg megvalositja az user story-t. A review meg ugy megy, hogy
    - atnezed, h milyen tesztek vannak, azok megfelelnek-e az user story-nak
    - ha a tesztek nem fedik le az user story-t, akkor veget is er a review
    - utana megnezzuk, hogy a design megfelelo-e (skalazodik-e, stb.)
    - vegul coding style, stb.

    Szerintem ez egy jol mukodo megkozelites.

    > Amennyire látom, a fejlődés pont abba az irányba megy, hogy minél kevésbé legyen komplex a kód.

    Nem. Ez csak egy inga, ami ide-oda leng.

    Valojaban az van, hogy a komplexitast csokkenteni kell, de ez alapvetoen az architekturanal erdekes, hiszen egy elbonyolitott 100 soros fuggvenyt kb. barki ki tud takaritani, az nem kihivas. Nem szeretjuk a tulbonyolitott fuggvenyeket, de ha szembejon egy, akkor max. refaktoraljuk. Architekturat refaktoralni sajnos legtobbszor lehetetlen (mert az uzleti oldal nem viseli el a koltseget).

    Szoval az van, hogy ha egy problema komplex megoldast igenyel, akkor az a komplexitas valahol meglesz. Vagy a fuggvenyek lesznek komplexek (C++/Haskell/Clojure hackerek, szevasztok!), vagy a kepernyodon levo kod trivialisan olvashato, de 3000 osztaly, amik ugy vannak osszehuzalozva, hogy azon kell atragnod magad (Enterprise Java/Spring hekkerek, szevasztok!).

    Ergo a lenyeg sose az, szerintem, hogy szep fasza fuggvenyeink legyenek, hanem hogy a szoftver koncepcionalisan a leheto legelegansabban legyen kitalalva.

    Mondok par peldat: peldaul az LMAX elegans. Kitalaltak, h hogy lehet nagy sebesseggel streaming adatokat feldolgozni, szep. Tokmindegy, hogy vannak a fuggvenyek lekodolva, onnan, hogy erted a nagy kepet, mar ki lehet silabizalni. A Datomic elegans. Rich Hickey ravilagitott, hogy az objektumorientalt vilag oriasi tevedese, hogy osszemossa az identitast az ertekkel, es tervezett egy adatbazist, ahol ez szetvalik -- gyonyoru.

    > szerintem a programozás lényege a legegyszerűbb működő megoldás

    Ebben majdnem igazad van.
    1) fontos, hogy a legegyszerubb nem egyenlo azzal, amit az adott pillanatban legkonnyebb osszetakolni -- nagyon ajanlom: https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/SimpleMadeEasy.md
    2) sokszor az elvarasoknak resze, hogy reagalni tudjunk a jovobeli valtoztatasokra is -- szoval valami egyensuly kell a YAGNI meg az overengineering kozott

Új hozzászólás Aktív témák