Hlavní navigace

Názor ke zprávičce Kritika objektového programování: je to katastrofa? od Youda - A proc bych mel proboha kazde volani metody...

  • 23. 7. 2019 13:10

    Youda

    A proc bych mel proboha kazde volani metody balit do separatniho try-catch bloku?

    V Jawe muj go priklad vypada takto

    try {
    x = obj.method1();
    y= obj.method1();
    } catch (Exception e) {
    ..handle
    }

    Abych vedel, co dela business logika, stavi precist 2 radky volani metod uvnitr try.
    Abych vedel co dela handler - staci precist obsah v catch bloku.

    V GO je debilne zmatlana business logika s error handlingem, navic jeste v pripade defer funkci si musim i analyzovat poradi vkladani na defer zasobnik.
    Defacto, abych pochopil business logiku, musim dekodovat kompletni kod vcetne error handlingu. Kontrolovat si, jestli tam nekdo nezavolal defer, co se spusti uplne mimo flow pri opousteni funkce.

    V Jawe vidim proste zavolani 2 metod po sobe - to je vse.
    V catch bloku je kompletne lokalni handling.

    Nebe a dudy.

    A netusim co to tu melse o zemiakach a atomovych elektrarnach.
    Java ma naopak mnohem vymakanejsi ochranu proti nechtenemu zasahu do objektu zvenci (public, private, protected, package specific, final)
    Go ma jenom primitivni public/private rozliseni pres uppercase prvni pismeno funkce.
    Design patterny jsou prosty popis best practices jak resit bezne problemy, netusim co to ma mit spolecneho s kvalitou jazyka.
    Bezne GoF paterrny jsou v Golangu nepouzitelne, protoze to je jazyk tak nemohouci, ze tyto implementovat nelze.

    Golang design patterny jsou samozrejme standard, tady mas popis pipeline patternu:
    https://blog.golang.org/pipelines

    Vyuziva kanaly a gorutiny, coz je jedina pekna vec na golangu. Jinak je go zoufalstvi.