Egyszerűsítés a végső megoldás mindig

Írtam egy szösszenetett egy apró kutatási irányomról face-en (szükséges a platform), ide is beteszem, kíváncsi vagyok kit mennyire érdekel az életében és munkájában az egyszerűsítés lehetősége.

Mit lehet tenni, ha a cég növekedésével hatványozottan nő a bonyolultsági szint és így a szükséges idő és energia?

Hatványozottan növelni a hatékonyságot úgy, hogy ne kelljen folyamatos befektetés. Ezzel folyamatosan növekvő megtakarított időt kapunk folyamatosan csökkenő ráfordítandó energiával.

Ezt hogy lehet megtenni?

Egyszerűsítéssel.

Miért úgy?

Akár egyszeri beavatkozás is exponenciálisan növekvő végeredményt ad. A beavatkozás időpontjától számított alternatív jövőkben lévő bonyolultsági szint közötti különbség folyamatosan nőni fog. Másképpen fogalmazva, ha összehasonlítjuk a megváltoztatott jövőt az eredetivel, akkor egymáshoz képest egy időben növekvő különbséget kapunk. Ez roppant nagy érték.

Ez azért van, mert az egyszerűbb, vagyis a kevesebb komponensből álló működés olyan, mintha egy kisebb alapot emelnénk ugyanarra vagy egy kisebb kitevőre a kimenet szemléltetéséhez.

Ez pedig az alábbi miatt mindig igaz:

3^(x+1) - 2^(x+1) > 3^x - 2^x

3^(x+1) - 3^x > 2^(x+1) - 2^x

3^x * (3 - 1) > 2^x * (2 - 1)

3^x * 2 > 2^x

3^x > 2^(x-1)

Számomra az adat kezelőmben megvalósított irány az egyszerű - mérlegre téve sok szempontot. Úgyis fogalmazhatok, hogy nekem celly.pro megoldásom a munkámban és életemben az optimális kompromisszum a technológiai, fizikai, szellemi és tudásbeli lehetőségeim alapján. (Hiányzik a trendi design, ez direkt van, illetve a kicsit itt-ott túllőtt marketinget nézzétek el).

Nekem tetszik. Biztos sokan nem osztják a nézeteimet. Nem tudom, de szívesen hallgatok kritikát.

Ami most bejön kinézetre, azt több mint 1 évig tervezgettem fejben (nem végig, hanem eddig vártam vele). A táblázat kezelő felületén felraktam alulról felülre a kereső szövegdobozokat (állítható menüből). Íme előtte és utána:

Habár bizonyos szempontból valakinek jobban tetszhet az első verzió, sokkalta jobb használhatóság szempontjából a második. Nem kell a megjelenített sorok számával szórakozni és mindig minden felül van, az adat meg futhat lefelé a végtelenbe és tovább.. vagy mondjuk 100 sorig vagy 500 ;)

Ma szívtam IE 11 AJAX-szal. Cache-elte a szerverről kért adatot, így nem az aktuálisat kaptam. Az MSDN ad módot Caching paraméter állításra, de em érdekel. Belenyomtam egy random stringet az url-be mert csak :D

Ez egyébként a "valós" idejű adat megjelenítéshez kellett. Beállíthatjuk, hogy egy tábla frissüljön magától, ne pedig csak user interakcióra, ha az oldal frissül.

Chat is tud működni. Ezt maximálisan puritánra akartam. Lehet hogy másnak csúnya, de nekem bejön - nem tudok már mit elvenni belőle, pedig próbáltam nagyon. Egyébként koppra ugyanúgy csináltam meg, mint az Amazon support chat oldala, ezt nemrég vettem észre. Íme egy minta:

A legkülönbözőbb dolgokat tárolom a cuccban, például :)

Hozzászólások

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. - Antoine de Saint-Exupery

--
A strange game. The only winning move is not to play. How about a nice game of chess? - Wargames

Hasonlo dolgon gondolkozom en is, csak mas vizualizacioval. Minden meg mindig baromi korulmenyes...

Mire gondolsz? Habár persze amúgy minden mindig baromi körülményes :) Nekem már nagyon komplex a motorháztető alatt lévő kód. Éppen azért, mert nem akarok beletúrni olyan logikát, amely rontja az általam lefektetett irányokat: vagyis a konzisztenciát és a bonyolultság egy bizonyos szinten való tartását manuálisan.

És ugye lehet mondani, hogy csináld baromi modulárisra. Igen, de akkor meg rohadt lassú lesz. A cuccomban 1 klikkre kb. 200 SQL művelet fut le rohadt sok szerver oldali számolással a user környezet miatt és szerver oldalon végez 40-80 ms alatt. Sokat optimalizáltam is, de tudom hogy néha KELL A SPAGETTI KÓD hogy valami gyors legyen :)

Ezért tartott 1 évig végig gondolnom közbe közbe, hogy hogyan is bontom meg úgy a logikámat, hogy semmi ne boruljon. Mert ugye a legegyszerűbb mindig belehányni egy új menüt egy új funkcióval. Na ezt nem akarom.

Nekem leginkabb egy olyan program kell, ahol a gondolataimat es az ehhez kapcsolodo forrasokat/anyagokat tudnam attekintheto formaban tarolni. Nekem a listas nezetek nem igazan jonnek be, valahogy sose tudtam atlatni. Talan ezert se tudtam sose rendet tartani a gepemen :)

Mondjuk en nativ appnak tervezem, szoval meg kell tanulnom Swiftul iOS/macOS-re fejleszteni :) De egesz jo API-k vannak, szoval jo lesz ez!

Nekem tetszik a mobil natív fejlesztés is amennyit látok belőle, nyilván sokkal nagyobb hatalmad van a kimenet felett. Viszont soha nem egyszerű a dolog, ha komplex interface kell. Ahhoz a web-et tartom a legjobb kompromisszumnak. Ezt csak általánosságban jegyzem meg.

Részemről a táblázatot tartom a legegyszerűbb és legáttekinthetőbb általános adatstruktúrának. Viszont tetszenek a kulcsszavak (vagy tag-ek) alapján működő rendezetlen adat pool is, ahol szó felhővel kiemeled a gyakori adat mintákat. Ilyen nem lenne jó neked?

Szerk.: persze ott minden szót index-elned kellene és előfordulási statisztikát tárolni. Vagy ha nem szó struktúrában szeretnéd átlátni, akkor valami magasabb absztrakciót kitalálni, amely az igényedet jobban lefedi. Például kifejezéseket kiemelni. Vagy kifejezések alapján egy fogalmat rendelni egy szöveg részhez, és ezen fogalmakból printelni egy klikkelhető szó felhőt.

Ne akard, hogy belekezdjek a litaniamba, hogy hogy tettek tonkre a nagy cegek (elukon a Google-lel) a bongeszot, az Internetet, hogy XHTML helyett HTML5-tel mentek, hogy nincs rendes scriptnyelv, csak JS, hogy meg mindig nincs lehetoseg komponensek letrehozasara nativan (vagy az mar bekerult? Nem kovetem egy ideje), stb, stb :) Oke, vannak ra kerulo megoldasok, de epp egyszerusiteni akarjuk az eletunket, nem neheziteni, nem de bar? :)

Olyasmire gondolok, mint a felhos tipped, de ha nem haragszol, tobbet nem mondanek, mert van egy olyan termeszetem, hogy sokat beszelek a dolgokrol, aztan nem csinalom meg oket... nem emlekszem mi ennek a neve, de olyan dolognak tunik, amit elkerulve talan hatekonyabb lehetek. Mondjuk nehez is koncentralni, jelen pillanatban legalabb 6 pet-projecten kene dolgoznom kulonbozo temakban :)

Nem tetszik nekem sem az irány. De hát ugye mindig a leosztott lapokból kell játszani :)

Hogy azt a rohadt px-et miért erőlteti minden webdesign-er, szintén Google-el az élen, azt nem értem. Ma 3 startup weboldalát néztem, és nálam kilóg minden vagy épp nem látszik, mert használok egy minimum font méretet. Pedig a web-nek pont ez a lényege, tök jó hogy "folyékony". Ahol em-et használnak mértékegységnek vagy éppen semmit, ott soha nincs probléma a betű nagyításból.

Egyre jobban app-ként funkcionálnak az oldalak tartalom helyett, amivel akkor van gondom, ha túl sok a felesleges csicsa micsa és funkció, ugyanis az az én időmet veszi el. Szerintem a sok design sokszor inkább egy gallériába vagy tárlatba való :)

Inkább én sem megyek bele jobban..

Igen :) Habár nem tartom annyira annak, aláírásba nem teszem ki pl ;)

Lehet túl kocka vagyok bizonyos fajta trendek követésére, ezért lehet IT-seknek tudnék segíteni időt spórolni az adat kezelés területén inkább, olyanoknak, akiknek nincs idejük ilyet fejleszteni, de kellenének nekik azok a feature-ök, amit tud, és nem szeretik ha útjukba áll a felesleges csicsa.

Relatíve sok területről tárolok adatot és ehhez nem találtam ilyen cuccot - ami érthető ugye, mert a szempontok száma nagy, és így a kombináció száma is, persze hogy nincs ilyen. De az igényeimhez hasonlót sem látok.

Érdekel az is természetesen, hogy mennyire gondolkozok hasonlóan másokkal technikai dolgokról.

Illetve szívesen olvasnék itt többet kicsit mélyebben fejlesztők problémáiról, hogy mivel találkoznak nap mint nap. Mindegy hogy milyen bagatel vagy nehéz probléma. Érdekes lenne. Nálad például mi volt a legnehezebb az email archiválód megvalósításánál? Mit tárolsz DB-ben és van-e olyan adat, amit sima fájlba mentesz vagy épp Redis-ben vagy hasonlóban kezelsz?

Ez nálam úgy néz ki például, hogy pillanatnyi eldobható statisztikát Redis-ben, feltöltött fájlokat fájlokban tárolok (csoport azonosító hash-e + uuid névvel, az eredeti nevét pedig ugyanez + .txt nevű fájlban külön tárolom), tábla adatokat és user beállításokat pedig DB-ben tárolok.

Megemlítem akkor már itt az egyik feature-ömet. Hozzáadtam egy plugin rendszert, mellyel például meg lehet azt csinálni, hogy HTML és JS kód felhasználásával kiprinteled a leszűrt adatokat úgy, ahogy neked kell. Pl. egy nyomtatható report-hoz vagy körlevélhez.

Úgy működik, hogy ha a HTML kódban dollár jellel hivatkozol az egyik oszlop nevére, akkor azt a szerver oldali kódom felcseréli a soron következő elem értékével, mielőtt kiprinteli a HTML oldalt. Például:

< p > Tisztelt $nev < / p > ...

Ugyanezt JS kódba is bele lehet szúrni. Körlevelet és csekk nyomtatást csináltam például vele úgy, hogy CSS page break-et használok az oldalak közt, így a kolléga nőm csak egy printet nyom, és új oldalon nyomtatódik ki minden levél. Igaz, nincs benn egyelőre HTML szerkesztő, hanem csak bele kell ömlesztve tenni a tábla szabályhoz a kódot, de lehet majd megcsinálom használhatóbbra ha lesz rá igény.