- Honor Magic V5 - méret a kamera mögött
- Lesz Xperia 10 VII, méghozzá újratervezett külsővel
- Android alkalmazások - szoftver kibeszélő topik
- Milyen okostelefont vegyek?
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy Z Fold5 - toldozás-foldozás
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Google Pixel topik
- Műholdakkal is beszélgethet a Redmi Note 15 Pro+
- Samsung Galaxy S25 - végre van kicsi!
Ú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.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- sziku69: Fűzzük össze a szavakat :)
- Spórolós topik
- GL.iNet Flint 2 (GL-MT6000) router
- Xbox Series X|S
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Honor Magic V5 - méret a kamera mögött
- Debrecen és környéke adok-veszek-beszélgetek
- Robotporszívók
- AMD Navi Radeon™ RX 9xxx sorozat
- Lesz Xperia 10 VII, méghozzá újratervezett külsővel
- További aktív témák...
- DJI Mavic 3 Fly More Combo RC Pro drón szett - 4/3" Hasselblad + 7x-es zoom kamera
- Asus ROG Strix Flare II Animate Gamer Billentyűzet - Magyar kiosztás
- Lenovo 14 Ideapad 3 FHD LED Matt i3-1115G4 4.1Ghz 8GB 256GB SSD Intel UHD Graphics Win11 Garancia
- Acer, notebook, laptop, Ryzen 5 5500u, 16gb ddr4, 1tb ssd, 15.6 col
- Eladó 3. generációs I7-es számítógép
- Samsung Galaxy Z Flip 4 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- GYÖNYÖRŰ iPhone 12 mini 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2954
- 3DKRAFT.HU - 3D NYOMTATÁS - AZONNALI ÁRAJÁNLAT - GYORS KIVITELEZÉS - 490+ POZITÍV ÉRTÉKELÉS
- Beszámítás! Lenovo IdeaPad Gaming 3 Gamer notebook - R5 7535HS 16GB DDR5 512GB SSD RTX 3050 6GB W11
Állásajánlatok
Cég: FOTC
Város: Budapest