Week 7: Export & caching

Deze week op inventisstage.be: bugfixes, openstaande tickets, export functionaliteit en caching!

PigResults

Na de testrun van vorige week moesten er nog een aantal bugs opgelost worden. Naast de bugs waren ook nog de gewone tickets met uitbreidingen en verbeteringen. Ik heb aan de start van het project de complexiteit toch wat onderschat waardoor de eerste structuur niet was wat het moet zijn. Daarom heb ik besloten om een deel van de code opnieuw te schrijven. Na twee dagen werk was dat gelukt en waren meteen ook een groot deel van de tickets opgelost. De klasse structuur op de backend is nu een stuk logischer en beter opgebouwd en aanpassingen kunnen sneller doorgevoerd worden.

Export

Gebruikers kunnen de gegevens die ze op de PigResults website kunnen bekijken ook downloaden en later (offline) bekijken of zelf verwerken. De PigResults kunnen geëxporteerd worden in een CSV (comma separated values) formaat of in een mooie PDF. De CSV-export is deze week ingebouwd, de PDF staat nog op de planning. Zo kunnen gebruikers de gegevens ook offline bekijken of uitprinten zonder de volledige PigResults API te moeten inbouwen.

Caching

Let’s make the web faster“, een mooie quote van Google waar  ik helemaal achter sta. Er is niets zo vervelend als een trage website, dat merken we iedere keer wanneer Facebook het even laat afweten. Mensen wachten niet graag op informatie en klikken al na enkele seconde door naar de volgende website. Een snelle en responsieve website is dus heel belangrijk. Bij dynamische websites, waar data in een database bewaart wordt is de database meestal ook de bottleneck. Bij PigResults wordt veel gevraagde data gecached, zo kan dit deels opgevangen worden. De data wordt dan immers niet alleen meer in de database bewaart maar ook in het veel snellere werkgeheugen. Hierdoor wordt de database ontlast en krijgen de bezoekers de gevraagde gegevens sneller te zien. PigResults maakt gebruik van APC, een extensie voor PHP die gegevens in het werkgeheugen bewaart.

Het opslaan en ophalen van gegevens gebeurt aan de hand van een key-value pair. Alle gegevens hebben een eigen unieke key, te vergelijken met een ‘naam’, waarmee ze snel uitgelezen kunnen worden. Wanneer de eerste bezoeker gegevens opvraagt worden deze nog uit de database gehaald en meteen in de cache geplaatst. Wanneer een volgende bezoeker deze gegevens ook opvraagt kunnen deze snel uit de cache gelezen worden in plaats van de database. PigResults cached gegevens intern op verschillende niveau’s die apart in te stellen zijn.

Bikingboss.com

13 van mijn collega’s gaan in Tromsø de Midnight Sun Marathon lopen en hebben een weddenschap afgesloten met Jan. Als we 5000 likes krijgen op de Facebook pagina van Inventis fietst hij de dag erna van Tromsø naar Noordkaap. Dus ga snel naar www.bikingboss.com en klik op like! ;-)

Tot volgende week

Volgende week staat de rest van de functionaliteit nog op de planning. Hopelijk krijg ik dit tegen het eind van de week af en kunnen we PigResults nog eens grondig door meerdere mensen laten testen. Tot dan!

Reageren