Skip to content

Proces Functional Programming

ralfz123 edited this page Jan 27, 2021 · 12 revisions

Wat heb ik geleerd?

Ik vond het een moeilijk en pittig project, omdat we in een razend tempo stof kregen uitgelegd. Echter vond ik het wel super interessant om alles aangeleerd te krijgen. Zo heb ik geleerd om:

  • Vieze, smerige en naughty data op te schonen, zodat je data overhoudt waar je wΓ¨l iets mee kan.
  • Vanuit een andere hoek te kijken naar de dataset en het onderwerp van de opdracht, en op basis daarvan een aantal sterke onderzoeksvragen bedenken.
  • Code te refactoren en helder na te gaan wat nou echt essentieel is om een goed complex cleaning patroon te schrijven.

Herkansing πŸš€

De feedback van Laurens tijdens het eerste beoordelingsmoment was: Hoofdvraag nog wel een tikkie algemeen lijkt me, het is bijna eent trivia vraag, je onderzoeksvraag in je readme is iets anders dan in je wiki staat toch? je moet denk ik nog meer experimenteren met de uitwerking van je concept (schetsen, exploraties doen van visualisatie types) , onderzoek naar functional programming kan nog wel wat uitggebreider, ik mis wat meer 'overkopelende' principes zoals pure en impure functies etc. ik zie nog niet heel veel code in je repo, dus moeilijk om te checken waar je echt FP principes hebt toegepast.

Goed opgeschreven welke dataset je gaat gebruiken en wat de datapunten betekenen.

lorem ipsum...

...namelijk;

βœ… Complex Cleaning Patroon

Ik heb een Complex Cleaning Patroon geschreven die in een paar stappen een aantal cleaning-onderdelen doorgaat. Deze stappen zijn functies die de volgende functie weer aanroept, een zogenoemde function chain. Dit heb ik gemaakt, omdat dit onderdeel miste bij het eerste beoordelingmoment. Het was aan het begin vooral even zoeken wat dit patroon precies moest doen. Maar toen ik een doel voor mezelf stelde, ging ik dat uitschrijven in code comments en van boven naar beneden dat uitwerken met code. Uiteindelijk is het gelukt en heb ik er ook best wel veel van geleerd. Van vieze, smerige data kan je met behulp van het Complex Cleaning Patroon hele schone en heldere data maken. Het Complex Cleaning Patroon is hier gedocumenteerd. Ik heb naderhand het Complex Cleaning Patroon ook nog van ES5 van ES6 getransformeerd. De normale 'regular' functies zijn vervangen door arrow functies. Bovendien heb ik sommige functies herschreven, zodat ze korter worden en dat het meteen duidelijk is wat het doel van die functie is.

βœ… Concept

Bij het eerste beoordelingsmoment waren we net pas begonnen met het bedenken van concepten. Ik had toen mijn proces van het concept nog helemaal niet goed gedocumenteerd. Hier kreeg ik ook feedback op dat het niet duidelijk was wat mijn concept was en hoe ik erop ben gekomen. Naarmate het vak vorderde, heb ik het proces van het concept helemaal gedocumenteerd en in verschillende onderdelen. Dit is nu volledig compleet gedocumenteerd en het begint op de pagina Debriefing (zie navigatie rechts onder het kopje Proces).

De pagina Wat is Functional Programming heb ik uitgebreid met veel content. Er stond maar 1 zin op deze pagina wat FP inhoudt, maar dat is natuurlijk veel te weinig. Daarom heb ik dit aangevuld met overkoepelende FP principes en voorbeelden. Doordat ik research had gedaan naar deze principes, was het mij voor ook gelijk veel duidelijker wat FP inhoudt. Deze principes versterken erg de betekenis van FP.

βœ… Pagina - Functional Patterns

Deze pagina is de startpagina van de Functional Patterns die ik heb gemaakt. Ik heb deze pagina opgedeeld in 3 onderdelen, namelijk;

  • Cleaning/Fitering van data
  • Transformeren van data
  • Verzamelen van data

Dit is een navigatie en elk onderdeel bevat meer informatie over dat onderdeel. Op deze manier is het voor de lezer overzichtelijk waar hij bepaalde informatie kan lezen. Ook is er goed nagedacht wat er in de pagina's komt te staan. De pagina's bevatten compleet gedocumenteerde code-voorbeelden.

βœ… Pagina - Cleaning/Filtering

Op de Cleaning/Filtering pagina van Functional Patterns heb ik onder andere uitgeleged hoe je een nieuw array kunt maken en op welke verschillende manieren dit kan. Dit is een vorm van data cleaning. Verder staat op deze pagina ook een Complex Cleaning Patroon, wat ik hierboven uitgelegd heb. Hierin komt ook zeker filtering aan bod.

βœ… Pagina - Transforming

Op deze pagina leg ik uit hoe ik omga met data transforming. Ook ben ik bezig geweest met het transformeren van twee data keys: tijdreisJaar en waaromTijdreizenNaarJaar. Deze twee data keys wilde ik in elkaar nesten onder een data key genaamd tijdreis. Dit is echter niet gelukt omdat, ...

zodat het zo eruitziet:

{
    ...
    tijdreis: {
        tijdreisJaar: "01-05-1945",
        waaromTijdreizenNaarJaar: 'Middeleeuwen heb ik altijd al tof gevonden'
    },

    ...
}

βœ… Herindeling wiki

De wiki heb ik geheel opnieuw ingedeeld. Ik heb dit gedaan, omdat ik meerdere malen als feedback kreeg dat mijn wiki niet echt overzichtelijk was. Onderdelen waren moeilijk te vinden, zeiden ze. Ik heb dit probleem aangepakt door opnieuw te kijken uit welke onderdelen mijn wiki bestaat en wat nou essentieel is. Ik ben dus eerst de navigatie gaan maken, om de onderdelen in hiΓ«rarchische volgorde de zetten. Vervolgens ben ik gaan kijken of er onderdelen in zaten die niet relevant waren. Als dat zo was, heb ik die gelijk verwijderd. Verder heb ik goed gekeken waar een onderdeel verder uit kan bestaan (nesten). Dit heb ik dan toegepast, zodat de lezer goed wordt meegenomen en geleid in het verhaal.

Clone this wiki locally