Koodausnurkka

Kaikenlainen TSI -väsäily tänne.

Moderators: kjs, ÖSFJGNRU HGUGGH, Mayhem peruttu

Post Reply
Message
Author
Vladimir
6k
Posts: 6332
Joined: 18 Jul 2012, 00:41

Re: Koodausnurkka

#106 Post by Vladimir » 26 Dec 2012, 20:00

Pamppukostaja wrote:
Vladimir wrote:1 juttu vaan kävi mietityttämään web-koodailuun ja rubyyn liittyen, minkälainen tyypitys tuossa kielessä taas olikaan?

Näin entisen java-harrastelijan ominaisuudessa vähän ärsyttää koodata sellaisilla kielillä missä ei ole vahvaa tyypitystä. Erityisesti web-kikkareita koodatessa tuolle vahvalle tyypitykselle nimittäin luulisi olevan tarvetta, ne tietoturva-asiat && 25 yleisintä virhettä niinq...mut joo web-koodailussa käytäntö tuntuu olevan että jos ei se kieli(tai alusta) ota jotain asiaa huomioon niin ei saa koodaritkaan ottaa.
Ruby on dynaaminen, mutta en oo varma vaikuttaako tyyppivirheiden kiinnisaanti ajon aikana niinkään tietoturvaan. Jos dynaaminen tyypitys pelottaa ja Java-tausta löytyy ni vois kirjoittaa vahvasti tyypitettyä Groovyä Grailsin kanssa. Tai sitten hypätä suoraan Scalan tyyppisysteemin kimppuun ja käyttää Liftiä.
Jostain syystä kuvittelen että vahvalla tyypityksellä saisi joitain noita idioottimaisimpia web-koodailun virheitä edes vähän vähennettyä. Tai sitte se on niin että oon ehtinyt javan tyypitykseen tottua ennen web-koodailuja.

Mut joo, jossain vaiheessa kiinnosti kyl siirtyä tekemään niitä web-kikkareita MVC-mallin mukaisesti sen sijaan että vaan tylysti käyttöliittymä+sovelluslogiikka samaan tiedostoon ja sinne myös sql-kyselyt+oletetaan et sql-injektioita ei ole olemassakaan+paskat tulostetaan kannasta sellaisenaan selaimelle ja thats' it. Tai ainakin kokeilla moista "uutta" tapaa.

(luonnollisesti nuo "oletetaan et sql-injektioita ei ole olemassakaan+paskat tulostetaan kannasta sellaisenaan selaimelle"-jutut oli sellaisia mitä pyrin karttamaan kuin ruttoa, ne nyt vaan tuntuu olevan elimellinen osa tuota "käyttöliittymä+sovelluslogiikka samaan tiedostoon"- toimintatapaa web-koodailussa...juurikin syy miksi ASP Classicin ja PHP.n sais heittää VITTUUN ASAP)

Vissiin ei joku randomilla poimittu framework vie niitä web-koodailun ongelmia kokonaan pois mutta jotkin nyt vähän helpottavat asiaa... ei tartte erikseen jokaista kannasta haettua kenttää "mankeloida" käsipelillä ennen selaimelle tulostusta tai eksplisiittisesti vetää jokaista requestista tulevaa parametria jonkin funktion läpi ennen kyselyyn lisäämistä yms.

Mitä noihin omiin koodailuihin tulee niin Flaskia jo vähän kokeilin alkusyksystä ja RoR:ää meinasin seuraavaksi kokeilla jos virtaa riittää. Saa nähdä noiden muiden kanssa sitte.
Vladimir wrote:Näkisin pahinpana vaihtoehtona sen kommandopipokuvalle runkkailun.
t. nössöillään wrote:niin joo sähän olit se jätkä jolla on oma quote allekirjoituksessa.
Vladimir wrote:TARKOITUKSELLINEN SISÄSIITTOISUUS PITÄÄ EPÄINHIMILLISEN PERINNÖN HENGISSÄ

User avatar
apokalypsi kuten tiedämme
-=King Of PIF=-
-=King Of PIF=-
Posts: 19640
Joined: 01 Jul 2005, 10:33
Location: when in Rome

Re: Koodausnurkka

#107 Post by apokalypsi kuten tiedämme » 27 Dec 2012, 10:44

^ Ilman kunnollisia desing-patterneja ja suunniteltua arkkitehtuuria ei mun mielestä voi tehdä imo mitään oikeasti vakavempaa ja/tai laajempaa.
Pamppukostaja wrote:
Vladimir wrote:1 juttu vaan kävi mietityttämään web-koodailuun ja rubyyn liittyen, minkälainen tyypitys tuossa kielessä taas olikaan?

Näin entisen java-harrastelijan ominaisuudessa vähän ärsyttää koodata sellaisilla kielillä missä ei ole vahvaa tyypitystä. Erityisesti web-kikkareita koodatessa tuolle vahvalle tyypitykselle nimittäin luulisi olevan tarvetta, ne tietoturva-asiat && 25 yleisintä virhettä niinq...mut joo web-koodailussa käytäntö tuntuu olevan että jos ei se kieli(tai alusta) ota jotain asiaa huomioon niin ei saa koodaritkaan ottaa.
Ruby on dynaaminen, mutta en oo varma vaikuttaako tyyppivirheiden kiinnisaanti ajon aikana niinkään tietoturvaan. Jos dynaaminen tyypitys pelottaa ja Java-tausta löytyy ni vois kirjoittaa vahvasti tyypitettyä Groovyä Grailsin kanssa. Tai sitten hypätä suoraan Scalan tyyppisysteemin kimppuun ja käyttää Liftiä.

Java on kivaa silloin, kun on panostettu domain-malliin, käytössä tuore EE ja sovelluspalvelin, hajautus hoidettu järkevästi (tai ei ollenkaan) ja mielellään joku muu tappelee käyttöliittymän kanssa.
Domain-malliin panostamisen pitäisi olla oliopohjaisissa kielissä just nimenomaan se juttu mihin keskitytään :P Itse olen myös vahvan tyypityksen suosija, koska vahvassa tyypityksessä koodi dokumentoi selkeämmin itseään. En varsinaisesti vastusta heikkoa tyypitystä, mutta olen taipuvainen pitämään vahvaa tyypitystä koodin selkeyttä edesauttavana asiana.
Pamppukostaja wrote:
apokalypsi kuten tiedämme wrote:Perus webbikoodarithan vihaa tätä sen takia, kun ne ei ole ikinä vaivautuneet opiskelemaan oliopohjaista gui-koodausta.
Ai siis sitä tapahtumapohjaista mallia, miten käyttöliittymiä ollaan tehty jostain 70-luvulta asti? Ihan kivaa, kun toi request-response-sykli saadaan piiloon ja muutenkin mielenkiintoisen oloinen viritys tuo Vaadin, mutta en ole ainakaan vielä käyttänyt missään "oikeassa" projektissa. Huvikseni taidan kokeilla seuraavan kerran, jahka saavat virallisesti tuetun pushin tohon.
Juu, eipä noiden gui:den koodaamiseen oikein parempaakaan tapaa taida olla, mutta juu, ei tuo vaadin mikään automaagisesti autuaaksi tekevä systeemi ole, mutta hallitulla mvp-mallilla jaoliopohjaisten menetelmien tuntemisella sillä saa suhteellisen helposti aikaan toiminnallisuutta jota on myös helppo muokata jälkikäteen vaatimusten muuttuessa. Mvc ei oikein mun mielestä sovi näihin. Ainakaan meidän projekteissa. Vaadin sopii koodareille jotka joutuvat kälejä rakentamaan ja jotka eivät yleensä mieluusti kirjoita suoraa html-javascript-template paskaa. Kandee tsekata myös ihan pelkkä gwt.

Ootteko kukaan lukenyt Robert C. “Uncle Bob” Martinin "Clean Code" kirjaa? Itselleni se avasi hyvin pitkälti aivan uuden maailman sen suhteen, että miten näitä hommia pitää tehdä.

Waked by the trumpet sound - I from my grave shall rise
And see the Judge with glory crowned - And see the flaming skies!

User avatar
sateenkaari hukassa
7k
Posts: 7660
Joined: 22 May 2008, 00:06

Re: Koodausnurkka

#108 Post by sateenkaari hukassa » 27 Dec 2012, 16:56

^ toisaalta muna ojossa ja rillit huurussa kaikkien muistamiensa patternien viskominen ympäriinsä on varmin tapa saada aikaan sotkuinen arkkitehtuuri. Lisäksi monet alkuperäisistä GOF-patterneista on keksitty ihan vaan kiertämään vanhojen Java EE-versioiden heikkouksia.
Nyky-Javassa on hienoa, että yksinkertaisissa sovelluksissa pärjää ihan mainiosti JPA:n ja (nykymuodossaan yllättävän vaivattoman) EJB:n varassa ja siihen vaan joku vähemmän perus-JSF:ää askeettinen käyttöliittymä päälle. Eli hyvinkin puhdas kerrosarkkitehtuuri ilman yhtään ylimääräistä kikkaa. Toisaalta työkalupakista löytyy sitten välinettä myös laajoihin hajautuksiin, integraatioihin ja moniosaisiin hajautettuihin transaktioihin jos on tarvis.

Dynaamisten kielten maailmassa vaikuttaisi (en ole asian tuntia) kaikki olevan silti edelleen kevyempää, tosin eipä Springin tai EE:n tapaan standardiasemaan päässeitä frameworkkejakaan taida olla, jollei ruby-maailman Railsia lasketa. Mites, osaisko joku Python-mies kertoa mitä sieltä puolelta löytyy "enterprise"-sovellusten kyhäilyn tueksi?

Toi Clean Code on hyvä Java-kirja. Domain-malleihin liittyen suosittelen Evansin Domain-Driven Designiä, joka on ikääntynyt yllättävän hyvin.
Image

pma
Posts: 618
Joined: 03 May 2007, 01:29

Re: Koodausnurkka

#109 Post by pma » 27 Dec 2012, 18:37

Jos web-härpäkkeet + vahva tyypitys -yhdistelmä kiinnostaa, niin kannattaa tsekata Ocsigen, siinä on HTML-validointikin hoidettu type checkerillä.

User avatar
sateenkaari hukassa
7k
Posts: 7660
Joined: 22 May 2008, 00:06

Re: Koodausnurkka

#110 Post by sateenkaari hukassa » 30 Dec 2012, 13:04

pma wrote:Jos web-härpäkkeet + vahva tyypitys -yhdistelmä kiinnostaa, niin kannattaa tsekata Ocsigen, siinä on HTML-validointikin hoidettu type checkerillä.
Osaatko suositella jotain hyvää oppimateriaalia OCamlin ja kumppanien opiskeluun? Mieluiten kuollut puu-formaatissa. Vähän tuntuu haastavalta liikkeellelähtö tuon kielen parissa, vaikka Haskellilla tulikin parit funktio-ohjelmoinnin kurssit näperreltyä.
Image

pma
Posts: 618
Joined: 03 May 2007, 01:29

Re: Koodausnurkka

#111 Post by pma » 31 Dec 2012, 09:20

Pamppukostaja wrote:
pma wrote:Jos web-härpäkkeet + vahva tyypitys -yhdistelmä kiinnostaa, niin kannattaa tsekata Ocsigen, siinä on HTML-validointikin hoidettu type checkerillä.
Osaatko suositella jotain hyvää oppimateriaalia OCamlin ja kumppanien opiskeluun? Mieluiten kuollut puu-formaatissa. Vähän tuntuu haastavalta liikkeellelähtö tuon kielen parissa, vaikka Haskellilla tulikin parit funktio-ohjelmoinnin kurssit näperreltyä.
ML for the Working Programmer ja The Little MLer (samaa sarjaa kuin The Little Schemer, jos sattuu olemaan tuttu) on molemmat päteviä, mutta käyttävät SML-dialektia. The Functional Approach to Programming käyttää Caml:ia, mutta joiltain yksityiskohdiltaan OCaml:iin verrattuna eriävää versiota. Kaikista kuitenkin pystyy helposti oppimaan olennaisen, mitä nyt vähän joutuu leikkimään itse kääntäjää syntaksista toiseen. Voin vaikka ottaa noi 26. päivä mukaan Lepikseen jos haluut selailla ja ihmetellä. Jotkut on suositelleet Jason Hickeyn kirjaa, joka löytyy pdf:nä sen kotisivuilta, mut ite en oo sitä lukenut yhtään ni en osaa kommentoidaa.

User avatar
Pete TNT
PIF-harrastaja
Posts: 109677
Joined: 14 Sep 2006, 20:48

Re: Koodausnurkka

#112 Post by Pete TNT » 29 Jan 2013, 22:09

PureMVC aiheuttaa vähän päänvaivaa.
Suvelan Sulttaani wrote: rocknrollin tarkoitus on scream and shout ja pitää siinä sivussa good time!

User avatar
same rules apply
Matti Partanen
Matti Partanen
Posts: 52316
Joined: 10 Nov 2007, 15:29
Location: bat shit city's secret beach

Re: Koodausnurkka

#113 Post by same rules apply » 30 Jan 2013, 15:06

Pete TNT wrote:PureMVC aiheuttaa vähän päänvaivaa.
Mihin sä tota käytät?

User avatar
Pete TNT
PIF-harrastaja
Posts: 109677
Joined: 14 Sep 2006, 20:48

Re: Koodausnurkka

#114 Post by Pete TNT » 30 Jan 2013, 15:35

Zerno wrote:
Pete TNT wrote:PureMVC aiheuttaa vähän päänvaivaa.
Mihin sä tota käytät?
Se on frameworkkinä tollases ohjelmassa johon työkseni teen kokonaisvaltasta päivitystä :adky:
Suvelan Sulttaani wrote: rocknrollin tarkoitus on scream and shout ja pitää siinä sivussa good time!

User avatar
Pete TNT
PIF-harrastaja
Posts: 109677
Joined: 14 Sep 2006, 20:48

Re: Koodausnurkka

#115 Post by Pete TNT » 04 Feb 2013, 13:25

Pete TNT wrote:
Zerno wrote:
Pete TNT wrote:PureMVC aiheuttaa vähän päänvaivaa.
Mihin sä tota käytät?
Se on frameworkkinä tollases ohjelmassa johon työkseni teen kokonaisvaltasta päivitystä :adky:
snadisti hiertää kun yhen uuden viewcomponentin duunaamiseen menee tunti vaikka kyseessä on vaa ctrl-c ctrl-v hommia
Suvelan Sulttaani wrote: rocknrollin tarkoitus on scream and shout ja pitää siinä sivussa good time!

User avatar
Pete TNT
PIF-harrastaja
Posts: 109677
Joined: 14 Sep 2006, 20:48

Re: Koodausnurkka

#116 Post by Pete TNT » 04 Feb 2013, 14:21

Pete TNT wrote:
Pete TNT wrote:
Zerno wrote:
Pete TNT wrote:PureMVC aiheuttaa vähän päänvaivaa.
Mihin sä tota käytät?
Se on frameworkkinä tollases ohjelmassa johon työkseni teen kokonaisvaltasta päivitystä :adky:
snadisti hiertää kun yhen uuden viewcomponentin duunaamiseen menee tunti vaikka kyseessä on vaa ctrl-c ctrl-v hommia
ei vittuuuuh
Suvelan Sulttaani wrote: rocknrollin tarkoitus on scream and shout ja pitää siinä sivussa good time!

User avatar
Pete TNT
PIF-harrastaja
Posts: 109677
Joined: 14 Sep 2006, 20:48

Re: Koodausnurkka

#117 Post by Pete TNT » 04 Feb 2013, 14:23

Pete TNT wrote:
Pete TNT wrote:
Pete TNT wrote:
Zerno wrote:
Pete TNT wrote:PureMVC aiheuttaa vähän päänvaivaa.
Mihin sä tota käytät?
Se on frameworkkinä tollases ohjelmassa johon työkseni teen kokonaisvaltasta päivitystä :adky:
snadisti hiertää kun yhen uuden viewcomponentin duunaamiseen menee tunti vaikka kyseessä on vaa ctrl-c ctrl-v hommia
ei vittuuuuh
45 minsaa meni yhen väärän Numberin paikallistamiseen :(
Suvelan Sulttaani wrote: rocknrollin tarkoitus on scream and shout ja pitää siinä sivussa good time!

User avatar
apokalypsi kuten tiedämme
-=King Of PIF=-
-=King Of PIF=-
Posts: 19640
Joined: 01 Jul 2005, 10:33
Location: when in Rome

Re: Koodausnurkka

#118 Post by apokalypsi kuten tiedämme » 04 Feb 2013, 21:45

Pete TNT wrote:
Pete TNT wrote:
Zerno wrote:
Pete TNT wrote:PureMVC aiheuttaa vähän päänvaivaa.
Mihin sä tota käytät?
Se on frameworkkinä tollases ohjelmassa johon työkseni teen kokonaisvaltasta päivitystä :adky:
snadisti hiertää kun yhen uuden viewcomponentin duunaamiseen menee tunti vaikka kyseessä on vaa ctrl-c ctrl-v hommia
Thou shalt not duplicate, but refactor.
Waked by the trumpet sound - I from my grave shall rise
And see the Judge with glory crowned - And see the flaming skies!

User avatar
Pete TNT
PIF-harrastaja
Posts: 109677
Joined: 14 Sep 2006, 20:48

Re: Koodausnurkka

#119 Post by Pete TNT » 05 Feb 2013, 10:23

^joo, sitä meinasin
excetuceStatement(statement:SQLStatement):SQLResult


excutes sql-query in try catch statement
vaikee sana toi execute ilmeisesti jollekkin intialaiselle :(
Suvelan Sulttaani wrote: rocknrollin tarkoitus on scream and shout ja pitää siinä sivussa good time!

User avatar
sateenkaari hukassa
7k
Posts: 7660
Joined: 22 May 2008, 00:06

Re: Koodausnurkka

#120 Post by sateenkaari hukassa » 06 Feb 2013, 22:25

^ kai toi nyt meinaa sitä, että siellä on joku catch (Exception e) {}? [-o<
Image

Post Reply