En esta charla habl辿 de:
- c坦mo gestionamos un nuevo proyecto,
- automatizamos el setup con Docker,
- utilizamos los pipelines de Bitbucket para ejecutar los tests autom叩ticamente
- de c坦mo encapsulamos el dominio del proyecto con DDD.
- y garantizamos la calidad y el correcto funcionamiento con TDD,
La charla se enfoca desde un punto pr叩ctico, con ejemplos y mostrando aquellas partes que m叩s problemas nos han dado y las soluciones que planteamos.
Charla impartida en @scmallorca: https://www.meetup.com/Mallorca-Software-Craftsmanship/events/247679413/
1 of 47
Download to read offline
More Related Content
Learned lessons in real world projects by Jordi Anguela at Mallorca Software Craftsmanship
8. There is no trust
We dont know each other
We dont know our clients business
Common problems
starting a project
Difficult to estimate: time and money
9. 10-100 pages
1 or more requirement documents
All must be done
What we usually receive from the client
Everything is important
10. Vertical slices
Split into Sprints
User stories
Our recipe: the Sprint 0
Iterative / Reduce scope
Prioritize
Ubiquitous language
11. Second sprint - Support final hardware
First sprint - Minimal functionality
1 counter call unit, 1 ticket dispenser & 1 queue status display.
No services
No printing real tickets
Neither users nor roles
Third sprint - Services & basic actions
How we break it in sprints
Fourth sprint - Roles & permissions
12. Why?
To talk the same language as business
To avoid having the same concept with
different names around the project
To be rigorous
Ubiquitous language
24. Force tests execution before each commit
Tired of breaking the Pipelines?
Step-by-step guide:
1. Being at the root of a git repository
2. Add pre-commit file at .git/hooks and add the
following content:
#! /bin/sh
<your command to run the tests>
exit $?
3. Make the file executable
31. First class collection
class Users extends ArrayCollection
{
public function canTalkTo(User $theUser): Users
{
// Code
}
public function orderByFullName(): Users
{
// Code
}
}