Hirdetés
- Samsung Galaxy A54 - türelemjáték
- Google Pixel topik
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Xiaomi 15 Ultra - kamera, telefon
- Telekom mobilszolgáltatások
- Fordulat: időben startol S26+, nézd meg, milyen lesz!
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- Okosóra és okoskiegészítő topik
- uleFone Power
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
#68216320
#10704
üzenetére
Egy adott fajta kód vagy stílus azok számára nehezen olvasható, akik nem szoktak hozzá. Kezdőként én is nehezen dekódoltam, hogy mi van. Aztán megszoktam és már nem nehéz.
A fenti kód nyúlfarknyi. Ebbe belemagyrázni azt, hogy ez azért nem jó, mert lehet nem nyúlfarknyit is írni, hát, jó, de a fenti kód továbbra is nyúlfarknyi marad, minden más csak a kivetített félelmeid. Vagy valaki más félelmei, nem célom személyeskedni.
A lambda nem egy kalapács, hogy mindenre IS használható, ahogy egyébként semmi sem az, nincs ultimate weapon minden problémára. Természetes, hogy a 200 soros förmedvényt nem egy lambda blokkban kódolja le az ember, hanem elgondolkozik, hogy miért lett ez 200 sor, aztán egyszerűsít, absztrahál, és kitalál egy a probléma megoldására optimálisnak tűnő módszert, stílust, eszközt, stb. Ami nem KELL, hogy egyáltalán tartalmazzon lambdát végül.A lambda (meg lényegében a stream api) azért jó, mert egységet képez, egy komplexebb folyamatot is atomi egységbe zár, nincs mellékhatása, ergo "bugmentes". Ha matekosabb beállítottságúnak érzed magad, olvass kicsit a monad-ról. Ha kevésbé matekosnak, akkor inkább ne, nehogy eret vágj magadon.

Nyilván ezt is el lehet cseszni, ha mondjuk egy a lambdán kívül létrehozott listát piszkálunk a lambda belsejében, annak már lesz mellékhatása, de az nem is a lambda hibája.Én személy szerint azért nem szeretem a stream apit, mert lassú. Egy forEach lassabb egy for ciklusnál, és ez engem időnként zavar.
Nehéz debugolni? A régi eclipse valóban elég körülményesen működött, a closure környezetének csak egy részét látta. Hogy most jól működik-e, nem tudom. Mint mondtam, nem illik 200 soros lambda törzseket produkálni, és akkor nem kell debugolni sem. Problem solved. Érthető, hogy a határidő szűkössége miatt folyamatosan megy a
gányolás... khm... képződik tech dept, de akkor is a fejlesztő felelőssége marad, hogy jól olvasható kódot produkáljon a végén. Ha valaki elég igénytelen arra, hogy egy egyszerű lambda kifejezést túlbonyolítva ott hagy, refakt nélkül, oké, de nem az eszközt kellene ilyenkor hibáztatni az olvashatatlan és debugolhatatlan kód miatt. Gondolom.
Egyébként meg a 200 soros blokk metódusba szervezésével és egy jól irányzott method ref beillesztésével máris nagyot léptünk előre a tisztánlátás útján. Az már más kérdés, hogy sok esetben ez csak a probléma elfedésére jó és nélkülözi az igazi optimalizálást.
Az olvashatóságot egyébként tengernyi más dolog is befolyásolja, csak hogy a legkézenfekvőbbet említsem, a nevek. Ha semmitmondó változó és metódus neveket használ a fejlesztő, akkor az olvasó arra kényszerül, hogy belenézzen a metódusba. Ha kifejező neveket használ, akkor erre nincs szükség. Innentől kezdve meg már teljesen mindegy, hogy igazi metódusokat, vagy névtelen metódusokat használunk a megoldásban. De akkor sem illik túlbonyolítani egy lambda kifejezést.
--------
@floatr: Sajnos nem értem a kérdést, kifejtenéd? A reduce egy darab string optional-t ad vissza, azon nem tudok már sokmindent gyűjtögetni. -
Lortech
addikt
válasz
#68216320
#10704
üzenetére
A best practice az olvasható kód.
Ez persze bizonyos mértékig szubjektív.
Az olvashatóság lambda esetében még inkább az, erősen függ attól, hogy ki az olvasó. Ki mihez van szokva, kinek már állt rá jobban az agya. Már csak azért is, mert a lambda nem volt mindig alap nyelvi elem, és máig rengeteg kódbázis van, ami nem ilyen szemléletben íródott. Ha a csapat, aki a kódot írja és karbantartja, lambdát preferálja, akkor menjen a lambda, de azért ne ész nélkül.
Az adott problémától függ, hogy lambdával olvashatóbb lesz-e a kód, esetleg hatékonyabb vagy elegánsabb. -
axioma
veterán
válasz
#68216320
#10704
üzenetére
Engem meg code review-n (prod.code) direkt felszolitottak, hogy lambda-sitsak. Szerintem attol fugg, hogy hol mi a szokas, en egyebkent nem tartom olvashatatlanabbnak (csak az adott esetben kovettem a korabbi kodstilust). Szerintem nem art megszokni, peldaul a sonarlint ezt nem veszi elagazasnak es extra bonyolitaspontnak ha jol remlik
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Parkside szerszám kibeszélő
- Budapest és környéke adok-veszek-beszélgetek
- Samsung Galaxy A54 - türelemjáték
- exHWSW - Értünk mindenhez IS
- Windows 10
- BestBuy topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Google Pixel topik
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Kormányok / autós szimulátorok topikja
- További aktív témák...
- Gamer PC-Számítógép. Csere-Beszámítás! R7 5800X / RTX 5060 / 32GB DDR4 / 1TB SSD
- LG UltraGear OLED 27GX790A-B . 480Hz . 0.03ms . 2560x1440 - Garancia 2028.07.07.
- ÚJszerű 1Hónapos Apple iPhone 17 256GB Black 1OO% ! még 11 Hó nemzetközi APPLE GaranciÁval
- iPhone 17 Pro Max Cosmic Orange 256GB BONTATLAN 3 ÉV MAGYAR GARANCIA! iCentre számlával!
- T14 Gen1 27% 14" FHD IPS érintő i7-10610U MX330 16GB 256GB NVMe ujjlolv új akku gar
- Apple iPhone 16 Pro Max Desert Titanium Titán dizájn, Pro kamera, 120 Hz ProMotion,90%,3 hó gari
- Samsung Galaxy S25 Ultra Titanium Jetblack Titán dizájn, 120 Hz AMOLED, AI Pro kamera
- Eladó Oppo A78 5G 4/128GB / 12 hó jótállás
- RAKTÁRKISÖPRÉS! Eladó projektorok!
- Samsung Galaxy A56 / 8/256GB / Kártyafüggetlen / 12Hó Garancia / Akku: 100%
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest




