wk voetbalpool webapp: dag 12

 
19 april 2010

Nu de integratie van front-end en back-end begint te komen, lopen we ertegenaan dat CouchDB nog niet echt lekker op Windows lijkt te draaien. Christa ontwikkelt onder Windows, en om het front-end te testen, moet die met het back-end praten, die dus nu aan de CouchDB gekoppeld is. En dat betekent weer dat CouchDB dingen moet kunnen doen. Zoals Rikkert al eerder had gemerkt gaan bijna alle tests uit de meegeleverde testsuite mis, maar vreemd genoeg blijkt na enig experimenteren dat de database toch genoeg functionaliteit biedt om in elk geval tegenaan te kunnen ontwikkelen. Of hij echt foutloos werkt blijft natuurlijk de vraag, maar uiteindelijk zal de applicatie waarschijnlijk toch onder een Linux-OS draaien, en daar gaat het wel goed.

Ondertussen is gebleken dat het direct omzetten naar JSON van sommige Scala-objecten toch wel erg lastig zal worden met XStream. Rikkert is zich aan het buigen over deze problemen. Hij heeft al geprobeerd om zelf handmatig de gegenereerde JSON in een ‘post-processing’-stap nog zodanig te masseren dat er iets moois genoegs uitkomt dat de CouchDB-driver ook lust; maar vervolgens wordt het parsen natuurlijk weer een lastige: Scala verwacht natuurlijk onderwater ook weer een bepaalde structuur, waarvan wij niet precies weten welke dat is – zodat we een uit de DB opgehaald JSON-object niet zomaar kunnen terugvertalen naar iets dat Scala lust. Maar tijdens de stand-up komt ineens de mogelijkheid naar boven om iets anders dan JSON te gebruiken als opslag. Weliswaar communiceert CouchDB wel geheel in JSON, maar dat wil nog niet zeggen dat de data die je opslaat ook per se JSON moet zijn. Dat zou de opslag van gegevens een stuk simpeler kunnen maken. Rikkert gaat hiermee vandaag dus aan de slag, in elk geval totdat hij wegmoet voor een eigen intake-gesprek voor een nieuw extern project. Hij ook al.

Anatoly en Christa zijn ondertussen waarschijnlijk de rest van de week nog wel bezig met het aanmaken van de verschillende views voor het front-end. Een van de dingen die nog snel moet gebeuren is het kunnen aanmaken van een nieuwe pool, en het jezelf kunnen aanmelden voor een al bestaande pool. We hebben morgenmiddag namelijk die demonstratie, en dan is dat wel een van de dingen die we willen kunnen laten zien.

Ondertussen gaat Jan-Willem zich vandaag bezighouden met de laatste losse eindjes in het backend. En tussen de bedrijven door ikzelf ook, maar ik heb vandaag corvee (Sogyo is niet zo’n groot bedrijf, dus eens in de paar weken zijn mensen die intern werken de klos), moet ik nog wat achterstallig financieel administratiewerk doen, moet ik nog iemand contacteren om af te spreken voor een voorgesprek morgen voor de intake van overmorgen voor de klus van binnenkort die dus inderdaad wel doorgaat. Hopelijk begint die pas als de wk voetbalpool webapplicatie af is…? Maar dat terzijde.

Als om half vijf Jan-Willem ervandoor moet, zijn de laatste back-end views gemaakt, hebben we er nog een paar enigszins aangepast op verzoek van Anatoly, en komen we nog eens terug op het persistentie-probleem. Nog afgezien van of de state van de verschillende objecten wel of niet goed en makkelijk naar de DB geschreven kan worden, zitten we met een zelfde probleem als eerst: sommige actoren zijn afhankelijk van andere, en sommige reageren op het starten van andere. Het probleem is dus dat de actoren niet zomaar in willekeurige volgorde ‘up’-gebracht kunnen worden, en dat tijdens die initialisatie-fase er dus niet zomaar events rondgeslingerd moeten worden. Maar aan de andere kant wil je sommige functionaliteit dus juist weer wel uitvoeren, die normaalgesproken via events geregeld wordt.

Alles bijelkaar komen we tot de conclusie dat we zelf ook het overzicht een beetje kwijt zijn van welke actoren wanneer op welk event reageren. Tijd om eens wat documentatie te doen op de wiki. Voor de demonstratie van morgenmiddag is dit nog niet erg hard nodig, maar uiteindelijk willen we de persistentie toch wel op orde krijgen. Al is het alleen maar om uit te vinden wat wel en niet mogelijk en/of moeilijk is in een event-gedreven architectuur.

En daarmee werd het half zes, en alles is wel.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Development