syserr vs gui

Hát sziasztok!

3 órám van benne, leírom, hogy majd jót nevessek rajta nagypapaként. :)

Van ugye a szép html5 alapú játékom, amit szabadidőmben (heti 1 óra :) fejlesztek. Sok szép és jó dolog van itt: java backend, js, html, css frontend, opengl vastagkliens, androidos és firefox emulátorban futkorászó html kliens, websocket és SSE kommunikáci, crossbrowser, ZÁRT forrás :) - még

Adott ugye a html5 canvas, amit szépen használunk, rajzolunk rá (majd töröljük, majd megint rajolunk, etc).
Egyszer csak azt vesszük észre, hogy szép animáció ide, legalább 60 fps oda elkezdett akadni a dolog és 14 fps -re esik a drága. Webworker marad, ami az animációt kezeli nem nyúltam, requestAnimationFrame immáron natív, hol a gubanc.

Js console nem mond semmit, semmi hiba semmi nyűg. Keres-kutat, elkeseredik, egyszer csak oldscool lesz a megfáradt elme és böngészőt vált.

Oké, indítsunk chrome-ot, epiphany-t, maxthon-t, ott hogy zenél. Jól, semmi nyűg.

Gyanú targetálva. :) Ideje elővenni a vadászkutyust a rókára. Indítsuk konzolból a firefoxot, mit irogál szegény a szégenyéről, intimitásról és egyéb nem gui-ra kitett notification-os szalagocskás előbukkanos, még web devloper consolba se való dolgokat.

És ott van. "clearRect with invalid argument".

Tanulság: ha egy clientWidth értékét DOM-ból megkapod, de 346 helyett 346px van benne, ne add naívan tovább a JS-nek, mert van ahol elfelejtik a hibakzelést a syserr-en kívül máshova is kivezetni. A dolog azért nem _látszott_ grafikailag, mert egy programhibaként _máshonnan_ erőből töröltem a canvast konstans számokkal. :)

Ui: hogy a konkurrencia miért fogadta el a mértékegységes méretet, esetleg ott nem is jött mértékegység a DOM-ból, nem tudom. Az biztos, hogy webre fejleszteni nem fordítási idejű hibák miatt 1000x nehezebb. Viszont ha legyőzöd az itteni webes démonokat, jobban dagad a májad, mint amikor összecsilingelsz két SOAP-os WCF-es axis2-es trutyis SOA huszárt...

Hozzászólások

Ügyes szopás. Nyugtasson meg az, hogy erősen típusos rendszernél meg a typecheckerrel vívsz néha végeláthatatlan harcokat :-)

Amúgy ha már úgy is JS-es taknyolásra kényszerülsz, a szerver oldali részt miért nem abban írod?

jó kérdés.

Talán, mert a js-t még mindig megerőszakolt "nyelvnek" tartom server oldalon meg végképp kerülném.
Esetleg, ha nashorn-ban JVM-ben java-val támogatva, node.js -ses ámokfutást nem szeretnék.
Ha esetleg (sokadjára) újrakezdeném, akkor már inkább dart-olok kliens oldalon, vagy ha mégjobban újrakezdeném, akkor esetleg elöl-hátul go :) (https://github.com/gopherjs/gopherjs)

De majd megvásárol majd egyszer valami multi sokcsilliárdért, és akkor megszakértem neki, hogy akár typescript-ben is lehetne... :)