Over deze aflevering
We kijken met de CodeKlets hosts terug op voorgaande afleveringen en bespreken allerlei dev onderwerpen.
Delen
// Luister op
Wat je leert#
- •Wat OTAP (ontwikkel, test, acceptatie, productie) inhoudt
- •Hoe je Git rebase versus merge gebruikt
- •Wat microservices-architectuur inhoudt en wanneer toepassen
- •Hoe design patterns communicatie tussen developers verbetert
- •Waarom leergierigheid belangrijker is dan ervaring
Transcript
Welkom bij de CodeKlets podcast.
We zijn weer, na een lange tijd gaan we weer een opname zijn we aan het doen.
En ja, dat komt gewoon omdat we heel erg druk hebben gehad.
Kishen heeft de druk, ik ook.
En ja, we willen natuurlijk vaker een podcast opnemen,
want ja, het is nu volgens mij bijna twee maanden geleden
dat we de laatste op hebben opgenomen.
En mijn wens is vooral om, ja, iedere twee, drie weken
of in ieder geval vaker op te nemen.
Dus ja, we gaan nu eindelijk weer een nieuwe opname doen.
Helaas is Kishen, die is verhinderd.
Die was, ja, dat zou echt, het was de bedoeling dat hij erbij zou zijn vandaag.
Ja, om allerlei omstandigheden kon dat niet.
De volgende opname is hij er wel bij.
Dus dat is over een tijdje, die is ook heel gaaf.
Dus dat komt uiteindelijk wel weer goed.
Maar als verrassing hebben we deze keer drie nieuwe hosts.
En dat hebben we natuurlijk gedaan vooral omdat we, ja,
we willen gewoon vaker opnemen en we willen ook
meer verschillende soorten mensen aan tafel hebben.
Kishen en ik zijn iedere keer een beetje hetzelfde,
dezelfde grapjes en zo.
Dat wordt een beetje saai.
Dus we moeten even kijken of vanuit allerlei verschillende invalshoeken
toch verschillende host, gasten aan tafel te krijgen.
Het gaat echt lekker.
Nou, de host, ik zal maar, heb ik een drumroll?
Ik heb een drumroll toch, ergens.
De eerste host is Bernard Kroes, wil zich vast wel even voorstellen.
Ja, mijn naam is Bernard Kroes, ik programmeer al heel lang.
Ik ben begonnen op CPM, heb voor allerlei talen geprogrammeerd.
Vanaf Basic tot Assembler tot Ruby tot Swift.
En ik vind het programmeren leuk.
Ik vind het leuk om mooie dingen te maken en dat vind ik fijn om te doen.
Ja, precies.
Dat is een belangrijke reden, zeg maar, om hier aan tafel te zitten.
Dat je in ieder geval iets met programmeren hebt,
want alles wordt wel een dingetje.
We hebben Johnny Dongelmans.
Goedemiddag.
Ja, en jij?
Wat doe jij?
Ik ben nu zeven jaar Ruby programmer.
Ik zit in een backend-team, dus backend Ruby developer.
Oké.
En je doet niks met frontend?
Nee.
Oké.
Nou, we maken de frontend,
maar dat is met name een frontend die intern gebruikt wordt
en niet zozeer voor externe klanten.
Oké, cool.
Zover kom ik nog wel.
En nou kan ik eindelijk de Airhorn gebruiken.
Onze vorige gast, eigenlijk ook een heel grote verrassing,
was de volgende host, was een gast in aflevering 1.
Dat is Pauline.
Welkom Pauline.
Hoi.
Hallo.
Ja, trouwens, je hoeft niet een echte introductie.
Iedereen kent je natuurlijk van aflevering 1.
Ja, op zich.
Ja, tenzij ze het niet hebben gehoord.
Ja, dat is waar.
Je mag je zeker introduceren.
Nou, ik ben dus Pauline.
En ik ben vooral back-end developer in PHP, al best wel een tijdje.
Alleen nu doe ik een shift naar React en React Native sinds kort.
Dat heeft mijn werkgever bedacht dat ze me nu daar willen hebben.
Dus ik ga een beetje naar full stack toe.
Maar als gast was ik vooral over Git en ja, eigenlijk vooral Git toch?
Een beetje agile ook, maar ik spreek ook over Git.
Dus ik ben de Git persoon.
We hebben het ook even over PHP gehad, volgens mij toen, denk ik.
Ja, dat is ook een idee.
Maar ja, vooral Git.
Ja, dan doe ik het weer.
Doe je nog eens?
Ik doe het elke keer.
Dat is gewoon, ja, die kunnen we wel.
Gewoon erin doen.
Sound sound proffer maken.
Mijn signature sound.
Op de achtergrond horen jullie, Nickname Hazzy.
Die helpt ons op deze aflevering met de productie, zeg maar.
Want mijn opname apparatuur, die kan maar vier microphones aan.
Dus als je zegt, hey, maar hier zijn we ze vier.
Maar ja, eigenlijk zouden we ze vijf zijn.
En Hazzy helpt ons erbij.
Hoi, ik ben Hazzy.
Hoi, hoi Hazzy.
Maar ik weet niks over code.
Ja, dat is eigenlijk, dat gaan we ja aan helpen.
Meehelpen.
Maar je weet wel veel over soundboards, toch?
Kun je dat demonstreren?
Nice.
Kijk.
Nee ja, ik ben wel IT'er overdag, maar ik zit meer in de infra en networking en security.
Infra-Klets.
Dat is ook een, ja.
Maar jij hebt een eigen podcast.
Ja, ik heb ook een eigen podcast.
Hazkast.
De Hazkast.
Jij ook al een keer te Hazkast geweest.
Eén keer Hazkast geweest, ja.
Dat is heel leuk om te doen.
Binnenkort weer.
Hazkast, gast.
Kijk, hier.
Hazkast, gast.
Dat is wel een goeie.
Daar moet je eigenlijk stickers van maken.
Hazkast, gast.
Hazkast, gast.
Hazkast, gast.
Klinkt wel goed.
Maar goed, dat is de intro.
Dus ja, we gaan hopelijk, nou niet hopelijk, we gaan gewoon vaker podcasten.
Dat is wel het idee.
En we hebben nu vijf hosts, dus dat gaat helemaal goed komen.
Dus vandaar.
Even kijken.
We hebben natuurlijk al een aantal opnames gedaan.
Vier in totaal.
Dus ik had er natuurlijk al veel meer willen doen.
Maar goed, vier is ook al best wel een redelijk aantal.
En ik wilde eigenlijk gewoon even terugkijken op die afleveringen.
Ik weet niet of jullie allemaal alle afleveringen hebben gehoord.
Ik heb van het weekend de eerste twee teruggeluisterd.
En ik heb nog één andere gehoord eerder.
Ja, ik heb ze allemaal geluisterd, maar toen zij het kwamen.
Een stukje geleden inmiddels.
Ja, ja, ja.
En jij was gewoon...
Nee.
Je bent een nonbeliever.
Sorry.
Nu ga ik het wel vaker doen, want nu voel ik me echt kut.
Nee, ja.
Dat maakt toch niet uit.
Maar hoe vonden jullie het?
Ik vond het heel leuk om te doen.
Afleveringen allemaal, zeg maar.
Ze waren allemaal wel best wel anders.
Dat wel.
Maar wat vonden jullie ervan?
Ik vond het aangenaam om te luisteren.
De eerste was inhoudelijk leuk.
De lolligheidsfactor was ook best hoog.
Nee, de tweede keer af.
De eerste keer was het heel leuk.
De tweede keer dacht ik van, nou, misschien iets meer...
Serieuzer.
Iets meer serieuzer.
En dat was de tweede juist helemaal anders.
Met Dennis.
Ja, heel serieuzer.
Ook interessant.
Ook leuk om te luisteren.
Klopt, ja.
Bij de tweede hadden we...
Bij de eerste hadden we drie microfoons, geen koptelefoons.
Bij de tweede hadden we...
Luisterkwaliteit was een onderbuntje, ja.
We hadden één koptelefoon, geloof ik.
Ja, dat was ik.
Een storing en een glitch.
Dat is echt...
Even proberen.
Ik was echt mijn haar uit mijn kop aan het trekken daarna.
Aflevering twee hadden we twee microfoons, drie mensen.
Dus ook wel interessant.
Daarom was Dennis toen gewoon veel meer aan het woord.
Op zich goed, hoor.
Want verder is het ook niet echt dat ik eens een keer wat minder praat.
De derde was eigenlijk volgens mij de eerste dat we dachten, nou, dit gaat wel ok.
En welke was dat ook alweer voor mijn dagen?
Dat was met Hedwig.
Dat ging over VR.
VR en VR.
Ja, die heb ik ook deels al luisteren.
En daar wist ik ook gewoon helemaal, ik en Kishen al twee, heel weinig van.
Hedwig?
Doets.
Oh nee.
Nee.
Dus die is helemaal into VR programmeren.
Dus dat was voor mij echt compleet nieuw.
Ik dacht wel, oké.
Het is ook best iets heel wat anders.
Ja, zeker.
Wel cool.
Ja, dat kun je wel zeggen.
Ja, dat vond ik wel gaaf.
De laatste ging over Scrum.
Ja.
Die was ook weer anders.
Want als ik de enige host en dan twee gasten.
Redelijk inhoudelijk vond ik.
Dus dat was op zich goed.
Dus er zijn er vier geweest totaal?
Ja, er staat er al een nieuwe opname gepland.
Maar denk je ook nog dat de dingen verbeteren kunnen over?
Heb je iets van nou ja.
Ja, ik denk dat het eigenlijk gewoon een beetje moet groeien.
Zeker nu met drie nieuwe hosts erbij is het toch weer even opnieuw beginnen, denk ik.
Storming.
Ja, het is voor mij überhaupt mijn eerste ervaring met echt een podcast opnemen.
Dus het is sowieso al een beetje spannend.
Ik weet niet hoe de andere, Pauline is al te gast geweest natuurlijk.
Ja, maar dat is toch wel anders.
Ja, ik weet niet of het echt anders is hoor.
Dat zullen we vandaag zien, I guess.
Maar voor de rest heb ik ook nog nooit iets gedaan met podcast dingen.
Dus gewoon doen?
Wat zeg je nou?
Veel en veel often.
Veel fast, veel often.
Veel early, ja.
Goed, om een beetje iets te hebben om het over te hebben.
Ik heb een aantal snippets, zeg maar, van de vorige afleveringen.
De eerste snippet was van de aflevering 1 van Pauline.
Het is een beetje gek om jezelf dat terug te horen misschien.
Maar het voelde mij ook een beetje gek.
Dus dat is deze.
Git flow en ootafstraat, zeg maar.
Dus in Nederland heel vaak, jij ook, waarschijnlijk met ootafstraat te maken.
En dan heb je een git flow, bracing, zeg maar.
Ja, dat matcht niet helemaal met z'n ootafstraat.
What the fuck is een ootafstraat?
Ja, echt oudwet is hij hoor.
Detap, development test, expectation.
We're going back to the 1980s.
Je hebt een release cycle.
Maar je hebt niet continuous deployment of...
Dat.
Was dat het?
Ik stond echt nog te wachten.
Ja, nu achteraf dacht ik ook, je kan veel langer doorgaan.
Maar het was vooral, waarom heb ik deze erbij gehad,
is vooral omdat er best wel een verschil is, zeg maar,
van hoe jij dat...
Een ootaf, waar heb jij het nou over?
En ik heb zoiets van, dat is de normaalste zaak van de wereld.
Ja, misschien is dat het wel.
Ik denk het wel.
Kijk, toen ik er later over nadacht en toen je het uitlegde,
toen wist ik wat het was.
Dus ik had het wel gehoord.
Alleen dan op school nog.
Ja, precies.
Maar tegen de tijd dat ik begon te werken was Agile gewoon de standaard.
Dus dan heb je niet tenzij echt zo'n oud, groot corporate software.
Ja, dat gebeurt.
In mijn dagelijkse werk is dat nog heel vaak aan de hand.
Ligt denk ik echt wat voor bedrijven.
In Amsterdam is het gewoon niet meer heel gebruikelijk.
Dat je heel veel van die start-up zien.
En dan heb ik het over start-up zien, zeg maar,
mensen die 6, 7 jaar geleden start-up waren.
Dat zijn al allemaal Agile bedrijven.
Die doen helemaal niet meer die waterfall-achtige dingen.
Nee, nee, precies.
Daar is heel die ootafstraat.
Kijk, een hele organisatie, noem maar eens even bij.
In een gemiddelde bank is heel de organisatie op die ootafwerkwijzen ingericht.
Dus dan ontwikkel...
Nou, daar doen ze niks aan.
De business niet.
Test ook niet een acceptatie.
Dan moeten zij gaan accepteren.
Dan moet de hele omgeving opgetuigd worden om dat te kunnen doen.
Mensen moeten vrijgepland worden zodat ze kunnen accepteren.
Dus dat is echt wel...
Qua organisatie is dat heel erg anders dan dat je zeg maar gewoon Agile
en continuous delivery, continuous deployment doet.
Dat verandert echt wel.
Ja, maar die acceptatie is er nu nog steeds.
En je omgeving op de optuig is er ook nog steeds.
Alleen dat gaat allemaal een stuk sneller nu natuurlijk.
Ja, nee, maar dat was...
Ja, goed, misschien niet overdrijf ik wel,
maar het was wel zo dat je ook...
Je had gewoon te maken met mainframes.
En het was wel heel leuk,
maar nu is die mainframe gewoon bezet.
Heel leuk dat jij nu wil deployen,
maar dat gaat gewoon niet gebeuren.
De deployment duurt natuurlijk super lang
en het werkte nooit zoals local.
En je moest al blij zijn als het überhaupt geautomatiseerd was.
Want het is heel vaak van leve maar een script aan,
hier een boekwerk van weet ik veel,
hoeveel pagina's en zorg dat dit uitgerold wordt.
Ik denk ook dat het product afhankelijk is.
Als je een iPhone applicatie maakt,
die moet gedeployed worden,
daar gaat een dag overheen tegenwoordig.
Een website zet je met één druk op de knop live automatisch.
Of automatisch?
Ja, liefst automatisch.
Ja, eigenlijk bij voorkeur automatisch.
Maar ik weet wel dat we ooit CDI's hebben gemaakt.
Daar moest je een gold master aan leveren.
Dan kreeg je...
Drie weken later kreeg je hem terug.
Ja, dan kon je echt niet...
Dat was gewoon een heel langzamer deployment.
Maar je hebt nu nog steeds...
Want het ging toen over Gitflow.
Het feit dat Gitflow heel vaak wordt gebruikt voor van die standard release cycles.
Maar dan alsnog, dan heb je dus wel set release momenten.
Dus niet continuous delivery of wat dan ook.
Maar alsnog best wel snel.
Want ik zit nu dan met die React Native bij de mobile development.
En die hebben natuurlijk ook gewoon een vast release moment.
Maar het duurt alsnog niet heel lang.
Je hebt gewoon een bepaald punt.
En dat is de release.
Maar dat is het.
Eigenlijk geen goede reden waarom je dat niet samen zou kunnen doen.
Gitflow en OTAP.
Het past misschien niet.
Maar het is niet dat het niet...
Bij mijn vorige werkgever hebben wij het wel gedaan inderdaad.
Dat was gewoon...
Onze development werkte in de development branch.
En dan ging dan...
Alles werd op een gegeven moment doorgezet naar staging.
En op staging werd eigenlijk de acceptatie gedaan.
Dus de test en daarna het tweewekelijks release.
Juist OTAP is...
Sorry.
Juist...
Want je zegt nu van...
Gitflow kan wel met OTAP.
Maar ik bedoelde juist...
Gitflow is juist voor structures over OTAP.
En is juist voor vaste releasemomenten.
Whereas als je CICD hebt, dan heeft Gitflow eigenlijk geen nut.
Dan slaat het eigenlijk niet echt.
Ja, klopt.
Maar het is ook wel wat Bernard zegt van productafhankelijk.
Want waar ik werk, daar hebben wij ook in feite twee OTAP-straat voor ons PLM-systeem.
En voor ons CRM-systeem.
Vroeger in Dynamics AX zat.
Daar hadden we echt een OTAP-straat voor.
En voor PLM, dus voor Siemens Teamcenter.
Voordat daar wijzingen in de database werden gedaan.
Voor het PLM-database.
Ja, dat ging ook door een OTAP-straat heen.
Of dat gaat nog steeds door een OTAP-straat heen.
Ja, dat vind ik ook niet zo heel gek.
Als het ook een ouder product is en een meer corporate bedrijf, dan zie je dat gewoon veel vaker.
Kijk, in deze snippet was het nog niet eens dat OTAP niet past op GitFlow.
Juist wel.
Ja, nee, precies.
Ja, klopt.
Maar in die snippet was het even, wat heb je het over?
Ja, ik wist gewoon niet wat het over was.
Dus dat vond ik wel grappig, zeg maar.
Dus daarom heb ik die snippet erbij gehad.
En GitFlow was even, jij had volgens mij in de Slack een artikel over GitFlow.
Of dat wel werkt of niet?
Nee, of het een stukje compliceerd is, dat was het volgens mij.
Mensen promoten GitFlow heel veel en iemand had er genoeg van.
Ja, iedereen zijn eigen ding.
Ik was het wel eens over het algemeen.
Ik ben het zelf niet zo'n fan van GitFlow, maar voor sommige situaties is het wel logisch.
En er stond ook bijvoorbeeld in dat artikel van als je gewoon een release branch hebt.
Nou, dat heb je natuurlijk sowieso met GitFlow.
Maar als je een release moment hebt, dan is het heel logisch.
Maar er waren een paar dingen waar ik het niet helemaal mee eens was.
Bijvoorbeeld dat als je GitFlow gebruikte, dat je dan niet meer kon rebasen.
Dat is niet echt waar.
Want vanaf develop is het gewoon trunk-based.
Het is dezelfde structuur.
Alleen van develop naar release en van release naar master.
Maar rebasen doe je nog steeds.
Als je atomic-based bent, dan kun je nog steeds rebasen.
Ja, ik snap ook niet helemaal waarom dat.
En de short-lived branches rule.
Dat was dan van ja, want develop bestaat heel lang.
Ja, oké, maar dat is dan een soort van je master.
Maar alsnog elke feature branch die je hebt, is nog short-lived, toch?
Dus ja, dat was ik niet helemaal.
Wat is rebasen?
Rebase is zeg maar, ben je bekend met merger?
Ja.
Dus oké, rebase is merges zeg maar.
Je pakt van de base branch het verschil tussen je base branch en je eigen branch.
En dat prop je tegen elkaar.
En je maakt een new commit die dat consolidate, zeg maar.
Dus je lost merge-conflict op en dan krijg je een new commit met dat.
En rebase is zeg maar.
Ja, god.
Ik heb meestal een heel diagraal met John dit uitleggen.
Dat is ook zo.
Je start eigenlijk bij je basis branch en dan stuk voor stuk ga je opnieuw erop.
Je replayt in plaats van dat je het eindmoment vergelijkt.
Replay je alle commits en bekijk je daar tussen het verschil.
En dan, ja jezus.
En dan uiteindelijk kom je dus tot de situatie dat het net is alsof je net een new branch hebt gemaakt.
En dan heb je dus alle wijzigingen van je base branch op je eigen branch.
Zonder dat je je historie verpest.
Oké, duidelijk, dank je.
Ik weet niet hoe duidelijk het was.
Ja, het is best wel.
Rebasing is ook best wel, als je er niet heel veel ervaring mee hebt dan kun je best wel wat koden.
Ja, maar mijn gelimiteerde kennis van git begreep ik trouwens.
Ja, ja, ja.
Dus ik rebase veel vaker zeg maar.
Misschien kwam dat ook door jou.
Ik had zoiets van oké, dan ga ik het ook zo doen.
Nee, ik had in het verleden best wel een aantal keer ge-rebased en ik dacht oh crap, dit gaat niet goed.
Maar als je short-lived features hebt, feature branches hebt dan gaat het gewoon heel fijn.
En mijn teamgenoot doet dat ook zeg maar.
Dus stel dat je een team hebt van vijf mensen, twee snappen de tutorial, drie niet, dan wordt het pas.
Ja, dat werkt niet.
En iedereen moet ook Tomic mishebben want anders werkt dit ook gewoon niet.
Wat iedereen heeft als ze denken aan het begin met rebasen, dat hadden we nog in de auto over net.
Dat iemand je vertelt van ja, rebasen is beter en verder geen context.
En dan vervolgens, weet je wel, bij ons team was het ook zo.
Vervolgens hadden we gewoon hele dagen waar je gewoon het leeuwendeel van de dag gespendeerd werd aan kloten met rebasen.
En dingen per ongeluk overschrijven.
Dus het is niet een heel goed idee om daar zo maar mee te beginnen.
Nee, oké.
Dat was aflevering één.
Vond ik ook een heel gaaf aflevering trouwens om te doen.
Het was ook lollig.
Dat was echt.
Dat was ook zo op dat moment.
Nog drinken.
Ja, en dan drink ik nog niet eens.
Dus dat was wel cool.
Alleen het geluidskwaliteit.
Sorry nogmaals.
We gaan proberen dat de volgende keer.
Nee, niet proberen.
De volgende keer is gewoon beter.
Ik heb een snippet van aflevering twee.
En toen was Dennis Dome was de gast.
En waarom heb ik deze aangehaald?
Omdat ik twee weken geleden, zeg maar, bij mijn werk was iemand die had toevallig die podcast aflevering gehoord.
En die vond het wel grappig dat er iemand is.
Zij van oké, ik ga niet iedere keer een nieuwe programmeertal leren.
Dus niet iedere keer weer iets nieuws, iets nieuws, iets nieuws, iets nieuws.
Zo van blijf gewoon bij wat je kent.
Zorg dat je daar beter in wordt.
Dat komt volgens mij als het goed is in deze snippet een beetje naar voren.
Om eerlijk te zijn, kijk ik eigenlijk niet naar andere talen.
Simpelweg omdat mijn vakgebied al zo omvangrijk is geworden over de jaren.
Dat ik mijn handen vol heb om dat bij te houden.
Ja, ik denk dat ik toch wel een beetje in die hoek blijf.
Ja, ik daagde hem uit.
Want ik zeg, als we nu een nieuw project zouden doen en je mag gewoon geen .net gebruiken.
Dat is wat je normaal doet.
Wat zou je dan kiezen?
En hij had zoiets van, ja, dan zou ik misschien Node.js, volgens mij, zijn die toen.
Maar normaal zou ik zeggen, ja, nee, maar goed, ik kijk gewoon niet.
Ik kijk, op conferenties komt hij wel.
Wordt hij wel geconfronteerd met nieuwe dingen vanuit andere talen.
Of andere platforms, maar hij blijft gewoon bij zijn eigen dingen.
En dat wil je gewoon steeds beter maken.
Dus dat is ook een aanpak, zeg maar.
Ja, maar je hoeft niet dit een of het ander te doen.
Nee, nee.
Iedereen heeft zijn eigen choice of weapon, zeg maar.
Ja, klopt.
Favoriete talen voor dingen.
Maar ik vind het ook leuk om kennis te maken met andere.
Misschien hele andere manieren van denken.
Iets heel functioneels als Haskell of Elixer in één keer.
Ja, dat lijkt me best gaaf.
Ja, ik ben daar ook wel van hoor.
Nieuwe dingen leren.
Maar dat ligt denk ik ook een beetje aan je persoonlijkheid.
Als je snel gaat vervelen en je gewoon heel van het leren bent.
Maar ik denk ook dat als je heel erg gespecialiseerd bent in één taal.
Dan is het over het algemeen best makkelijk om over te gaan op een andere taal.
Omdat er gewoon heel veel concepten worden over en weer van elkaar gejat.
En heel veel design patterns en dat soort dingen.
Dus ja, op zich.
Kan het wel, ja.
Ik had eerst altijd zoiets van ja, ik probeer ieder jaar een andere taal.
Dat vind ik wel erg veel hoor.
Nou ja, niet zozeer in te gaan programmeren.
Maar dat je je daarnaar kijkt.
Ik kijk eens naar rust of zo of Go.
Maar dat heb ik al sinds dat ik kinderen heb ook nog een beetje opgegeven.
Ik heb er gewoon echt geen tijd, geen energie meer voor.
Dat is het bij mij ook.
Ik vind het heel leuk om wel concepten mee te krijgen van andere talen.
Van nieuwe talen die je nog niet kent.
Maar ik moet zeggen, ik ben wel in Ruby nu opgeleid.
En daar zo ingespecialiseerd.
Daar ben ik zo comfortabel in.




