Onze developers hebben iteratie #163 opgeleverd. In deze iteratie is achter de schermen veel gedaan aan de sitemaps, membercode en css-snippets. Daarnaast is verder gebouwd aan het vacatureonderdeel en hebben we een Meet-up-kalender toegevoegd aan de frontpage.
Refactor van de 'member'-code
De term technical debt wordt in de programmeerwereld gebruikt om aan te geven dat er sprake is van verouderde code. Doordat Tweakers al behoorlijk lang bestaat, hebben we uiteraard ook de nodige technical debt opgebouwd. Dat is niet per definitie een probleem; de code heeft doorgaans ook al die jaren goed gewerkt, maar volgt vaak een oude code style en bevat niet de nieuwste inzichten in programmeren. Al met al is het daardoor meestal wat moeilijker om hem te wijzigen of samen te laten werken met nieuwe functionaliteit. Daarom proberen we bij elk project dat we doen, de relevante technical debt te verminderen. Bovendien hebben we projecten die specifiek zijn gericht op het actualiseren, ook wel 'refactoring' genoemd, van verouderde onderdelen van de site.
Een van die onderdelen van Tweakers is de functionaliteit rond accounts, die in onze code 'members' heten. Deze term gebruiken we al sinds het vroege begin en er was dan ook nog code uit die tijd. Daaraan zijn in al die jaren veelvuldig aanpassingen en uitbreidingen gedaan. Dat werd langzaamaan steeds lastiger, vaak juist door eerder gedane wijzigingen. Kortom, het was de hoogste tijd om een en ander te actualiseren.
In de afgelopen sprints hebben we de kern van deze functionaliteit grotendeels herschreven. Om het project 'klein' te houden, hebben we heel bewust geen nieuwe functionaliteit toegevoegd en alleen daar aanpassingen gedaan waar dat nodig was om de vernieuwde membercode te kunnen gebruiken. Ondanks die beperkte scope zijn uiteindelijk 569 bestanden aangepast, waarbij zo'n 7.700 regels zijn vervangen door iets minder dan 10.700 nieuwe. Die toename komt vooral doordat een aantal god objects en lange methodes zijn opgesplitst in verschillende losse classes en/of methodes, waardoor er simpelweg meer klasse- en methodesignaturen zijn. Daarnaast zijn voor de nieuwe implementaties de nodige tests geschreven.
Omdat aan de functionaliteit van de website niets is veranderd, merk je als het goed is niets van deze wijzigingen. Doordat echter zoveel code moest worden aangepast, is het natuurlijk goed mogelijk dat er toch ergens een bugje in is geslopen. Dat horen we dan uiteraard graag in ons bugforum.
Meet-up-kalender
Op de frontpage hebben we een Meet-up-kalender toegevoegd. Voorheen was het voor een bezoeker op de frontpage best lastig om een overzicht te vinden van de komende evenementen. Daarom is er nu een specifiek blok gekomen waarin de Meet-ups en andere Tweakers-evenementen worden getoond.
Sitemaps
Voor verschillende onderdelen van de site hebben we nieuwe sitemaps gemaakt. Om die te kunnen maken, hebben we eerst een refactor van de sitemapcode gedaan. Daarna konden we nieuwe sitemaps toevoegen voor afbeeldingen in de Pricewatch, video's en de banen binnen Tweakers Carrière. Met deze sitemaps geven we zoekmachines meer en betere informatie over de informatie op de site.
Update custom-css
Na de vakantieperiode zijn we in deze iteratie ook weer aan de slag gegaan met de custom-css-feature. Dat is zelfs een inhaalslag geworden waarbij we functionaliteit hebben gebouwd waarmee je door css-snippets van gebruikers kunt bladeren, deze kunt bekijken en kunt toevoegen aan je eigen custom-css. In de komende iteraties gaan we deze functionaliteit completeren en kijken wat nog nodig is om tot een eerste release te komen.