Remontointia ja decoratoreita

Viime päivinä tuli tehtyä hyvin erilaisia asioita kuin normaalisti.

Suurin osa päivästä meni remontoidessa pieniä asioita kämpässä, pääosin keittiön kaappeja hioen ja korjaillen. Tänään on ohjelmassa jatkaa vanhojen kaappien hiomista ja tarkoituksena päästä myös maalaamaan pohjamaali paikoilleen.

Illemmalla oli hetki aikaa käyttää surffaamiseen normaalimpien asioiden parissa, ja selaimeen eksyi artikkeli jossa puhuttiin Pythonin decoratoreista. Javan annotaatioita muistuttava syntaksi vaikutti vängältä, joten pakkohan sitä oli ladata uusi versio Pythonista ja kokeilla. Ja vänkäähän se oli.


def decoratedmessage(msg='default message'):
print msg
def decoratorfunction(func):
return func
return decoratorfunction

@decoratedmessage(msg='this is message before function')
def function():
print "yeah"

function()

Profilointiesimerkki Pythonilla: http://www.biais.org/blog/index.php/2007/01/20/18-python-profiling-decorator

Samalla tuli katsottua ja palautettua mieleen mitä metaclassit olivat Pythonissa.

http://www.ibm.com/developerworks/linux/library/l-pymeta.html

Decoratorit ja metaclassit ovat toki hienoja työkaluja, mutta edelleen pidän enemmän Javan tavasta tehdä asiat annotaatiolla ja esimerkiksi Springin tavasta tehdä AOP:tä AspectJ:n kanssa. Vaikka lopputuloksena olisikin sama asia, on Java + Spring + AspectJ:n etuna se, että tehtävät muutokset kontrolloidaan selkeästi ja vältetään mahdollisimman paljon yllätyksiä sillä että asioiden maaginen muuttaminen tehdään vaikeaksi.

On toki perverssiä ajatella, että kieli joka rajoittaa tekemisiä ja mahdollisuuksia olisi parempi kuin kieli jossa mahdollisuudet ovat paikoillaan – mutta todellisessa elämässä siitä on hyötyä. Kun joudumme tekemään monien eri ihmisten kanssa työtä ja ymmärtämään toistemme ajatuksia, on hyvä jos kieli ja työkalut ohjaavat tekijöitä tekemään asioita tietyillä yhteisillä tavoilla. Tässä on kuitenkin hieno punainen viiva, jonka yli ei saa mennä että työkalut muuttuvat todella työskentelyä ja ajattelua rajoittavaksi – joten varaan oikeuden olla eri mieltä joskus tulevaisuudessa.

Uploadasin hieman kuvia Flickriin sekä konserttitaltioinneista että erilaisia matkakuvia.

Kaikki kuvakokoelmat: http://www.flickr.com/photos/huimanet/collections/

Konserttikuvat: http://www.flickr.com/photos/huimanet/collections/72157600730832342/

This entry was posted in java, life, programming. Bookmark the permalink.

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s