Leren van de fouten van Coconut
Wie ben ik?
-
Naam: René van den Berg
-
Functie: Coconut backend-ontwikkelaar
-
Tags: security, ruby, rails, ruby on rails, beautifulcode
-
Weet ook wel wat van: javascript, emberjs, jquery,
-
front-end-ontwikkeling
-
Special: Level 4 algemeen criticus
Coconut: geschiedenis
( Rails 2.2, Ruby 1.8.6 )
Coconut: ontwikkeling in het kort
-
Scrum
- Rails 3.2, Ruby 1.9.2, MySQL, Redis, Memcached, ...
- Functioneel ontwerp
- Interactie, grafisch etc... wanneer nodig
- Pair programming
- Unit- en andere technische tests
- Continuous Integration
- Code Reviews
- Reviews
- Staging:
- alpha
- beta
- production
- verschillende unieke klantomgevingen
Twee soorten fouten
planning, things-that-just-happen, coördinatie, hiring mistakes, etc
failure to refactor, failure to test, failure to release, accepting broken tests, breaking release paths...
Procesfout: twijfel
Procesfout: OGD, OGD, OGD
Procesfout: first release syndrome
-
De eerste release liet te lang op zich wachten...
- ... en dus werd er een deadline ingesteld (fixed time)...
-
... en kon er niet meer gepraat worden over
welke features er wel en niet noodzakelijk waren (fixed features).
Procesfout: keuze van developers
Procesfout: 80 / 20
Procesfout: itereren over designs...
... in plaats van itereren over versies.
Procesfout: denken dat je later de tijd gaat krijgen om iets te fixen
Modularisatie
Failure to refactor
The first time you do something, you just do it. The second time you do something similar, you wince at the duplication, but you do the duplicate thing anyway. The third time you do something similar, you refactor.
Tip:
Three strikes and you refactor.
Drie dus.
Notifications helper (1)
Notifications helper (2)
Notifications helper (3)
Notifications helper (4)
Notifications helper (5)
Notifications helper (6)
Notifications helper (7)
Notifications helper (8)
- begon met 5 cases en 40 regels
-
eind 2009 ~10 cases, waarvan 3
met nested logica, 80 regels
- error-handling
- comments
-
inmiddels 225 regels:
- javascript-rendering
- error-handling
- html concatenation
- escaping
- etc
Wanneer hadden we moeten refactoren?
Vertalingen
Code Consumption
Je framework lost je probleem niet voor je op
Security (1)
ECHT
Security (2)
Security (3)
Architectuur
-
Wie heeft er nou een avatar?
-
Een telefoonnummer?
-
Een e-mailadres?
Gebrek aan documentatie
Soms bijna dezelfde methode twee keer gemaakt
“Tests as documentation” makes me laugh. Zeker als je er meer dan 5000 hebt.
Hoe komt het dat jullie nog kunnen ontwikkelen?
boyscout-regel
code reviews, CI, etc
FYFBD
Tests, inclusief integration (Javascript needs work)
Just one more thing
Coding standards hebben wij niet nodig. Maar de BUS wel.
Leer van de fouten van Coconut
By reneb
Leer van de fouten van Coconut
In the lifetime of any application, thousands of tiny mistakes occur. This presentation is about the mistakes we made and how we dealt with them to build a product we can still be proud of.
- 986