Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Mikäli jokin asia reaalimaailmassa täyttää täysin jonkin konseptin sanallisen määritelmän, on todennäköistä, että tämä reaalimaailman asia edustaa ko. sanallista määritelmää. Luettuani kludgen määritelmän, sekä siitä löytyneitä vähälukuisia artikkeleita, minusta tuntui kuin Microjournal-projektin toteutuslogiikkaa olisi selostettu auki.

A kludge (or kluge) is a workaround_, a_ quick-and-dirty solution, a clumsy or inelegant, yet effective, solution to a problem, typically using parts that are cobbled together.

...

Esimerkiksi kömpelyys(clumsy) sisältää esteettisiä arvotuksia. On vaikea määritellä, mitä täsmälleen tarkoitetaan kun ohjelmistotekniikassa käytetään sanaa kömpelö. Voiko esim. kuitenkin tehokas tai toimiva (effective) ratkaisu olla täysin kömpelö? Voikin pohtia, kuuleeko puhuttavan kömpelöistä sumo-painijoista? Eleganssin puute (inelegant) lienee intuitiivisesti selvä käsite useimmille ihmisille, mutta mitä se tässä yhteydessä tarkoittaa? Elegantti ratkaisu on usein ilmiselvä ilmestyessään ja helpompi kuin mikään toinen ratkaisu. Kuitenkin elegantin ratkaisun saavuttaminen voi vaatia valtavia resursseja suhteessa vähemmän eleganttiin ratkaisuun(tästä saadaan jatkuvasti esimerkkejä monilta tieteen aloilta, esimerkiksi matematiikasta). Eleganssi voi kuitenkin myös usein olla periaatteellista, ts. välittömien tavoitteidemme piirissä selviämme aina ilman eleganssia(esimerkiksi matemaattisten yhtälöiden yleisluontoinen päässälasku), joten ajallisesti rajoitettuun ohjelmistosuunnitteluun sopii soveltaa vain rajallista määrää eleganssia.

Käytetään osia, jotka on improvisoitu yhteen (using parts that are cobbled together). Tekniikan kehityksen luonteesta johtuen killerapp:it ja hyödylliset työkalut saapuvat käyttöön vaihtelevilla alustoilla ja tekniikoilla toteutettuina. Etherpadin tapauksessa tilanne korostuu poikkeuksellisesti, sillä koodin avoimeksi teko -prosessi oli yllättävä ja nopea, eikä vaikuta siltä että tähän avoimeen käyttöön olisi millään tavalla valmistauduttu Etherpadin kehityksessä. Yllätykset ovat myös kaksisuuntaisia, sillä Microjournalin suunnittelussa voitiin tietenkin varautua, vain näköpiirissä oleviin ja resurssien takia mahdollisiin haasteisiin.

[siirretään jonnekin muualle]

Microjournal:

kieli: php

alusta: symfony

tietokanta: sqlite

serverialusta: apache

kommunikaatio: http

Etherpad:

kieli: java

alusta: java

tietokanta: mysql

serverialusta: custom

kommunikaatio: http

[/]