|
| 1 | +<img width="1282" alt="image" src="https://user-images.githubusercontent.com/17634377/189934612-2b0365b3-ac96-4637-a31a-92692e23f0b0.png"> |
| 2 | + |
| 3 | +# 🧩 Commit Driven Development |
| 4 | + |
| 5 | +> Repo para compartir algunas ideas presentadas en la Git Merge 2022 Chicago by Carlo Gilmar. |
| 6 | +
|
| 7 | +[🔗 Git Merge 2022 Talk Slides](https://www.slideshare.net/CarloGilmarPadillaSa/git-merge-2022) |
| 8 | + |
| 9 | +# 🚀 Commit Driven Development |
| 10 | + |
| 11 | +1. Piensa primero en cómo vas a implementar un nuevo feature en pasos antes de escribir código. |
| 12 | +2. Escribe una lista con las descripciones de estos pasos. Sé muy puntual con cada paso. |
| 13 | +3. Escribe las líneas de código suficientes para completar ese paso. Realiza commit de cada paso escrito. No importa si vas descubriendo pasos nuevos. |
| 14 | +4. Al terminar tu feature, mira el log de tus commits, deberás ser capaz de leer la historia de cómo construiste y pensaste ese feature paso a paso. |
| 15 | + |
| 16 | +# ❤️ Valores |
| 17 | + |
| 18 | +- Orden y claridad antes de escribir código. |
| 19 | +- Comunicación eficiente para transmitir cómo estás construyendo software. |
| 20 | +- Apertura al feedback, a realizar preguntas y pedir apoyo. |
| 21 | +- Invierte tiempo en tus herramientas, invierte tiempo en aprender git. |
| 22 | + |
| 23 | +# 🤝 Quién debería usar este enfoque |
| 24 | + |
| 25 | +- Desarrolladores buscando nuevas formas de trabajar. |
| 26 | +- Reclutadores que quieren entender cómo sus candidatos piensan y construyen software. |
| 27 | +- Líderes de equipo cuya intensión es construir y mejorar la cultura de colaboración en sus equipos. |
| 28 | +- Compañías de software que necesitan mejorar sus experiencias de onboarding para nuevos miembros. |
| 29 | +- Educadores y promotores de tecnologías de software que necesitan nuevas dinámicas de aprendizaje. |
| 30 | +- Developers novatos. |
| 31 | + |
| 32 | +# Ejemplos |
| 33 | + |
| 34 | +Lista inicial antes de escribir código: |
| 35 | + |
| 36 | +``` |
| 37 | +Step 1: Creating an empty elixir project with mix tool |
| 38 | +Step 2: Adding simple http server |
| 39 | +Step 3: Adding model account with his unit test |
| 40 | +Step 4: Adding genserver for manage the account creation flow with his unit test |
| 41 | +Step 5: Set ExUnit for running tests in order |
| 42 | +Step 6: Adding function for get the current state of the account |
| 43 | +Step 7: Running mix formatter |
| 44 | +``` |
| 45 | + |
| 46 | +Commit log history `git log --pretty=oneline`: |
| 47 | + |
| 48 | +``` |
| 49 | +* 499a51e 2 years, 9 months ago Carlo Gilmar Adding function for try to initialize again an account |
| 50 | +* 74e7343 2 years, 9 months ago Carlo Gilmar Running mix formatter |
| 51 | +* 7ba0030 2 years, 9 months ago Carlo Gilmar Adding function for get the current state of the account |
| 52 | +* 3c13c47 2 years, 9 months ago Carlo Gilmar Set ExUnit for running tests in order |
| 53 | +* f6f6866 2 years, 9 months ago Carlo Gilmar Adding genserver for manage the account creation flow with his unit test |
| 54 | +* b0c4164 2 years, 9 months ago Carlo Gilmar Adding model account with his unit test |
| 55 | +* fd86455 2 years, 9 months ago Carlo Gilmar Adding simple http server |
| 56 | +* fe0ceeb 2 years, 9 months ago Carlo Gilmar Creating an empty elixir project with mix tool |
| 57 | +``` |
| 58 | + |
| 59 | +<img width="1088" alt="image" src="https://user-images.githubusercontent.com/17634377/189939119-735248c5-d31d-4e20-a053-c68a9defc26e.png"> |
| 60 | + |
| 61 | +# 🏆 Logros |
| 62 | + |
| 63 | +- Serás capaz de leer tu propia forma de pensar y construir software solo leyendo el log de tus commits. |
| 64 | +- Serás capaz de reproducir y reconstruir tu proceso de construcción de software a través de los commits. |
| 65 | +- Cualquier persona de tu equipo será capaz de entender y seguir tu forma de escribir software. |
| 66 | +- Cualquier persona de tu equipo será capaz de reproducir tu proceso de construcción de software. |
| 67 | +- Cualquier persona fuera de tu equipo pero con contexto de tus herramientas será capaz de entender y seguir tu forma de escribir software. |
| 68 | +- Cualquier persona fuera de tu equipo pero con contexto de tus herramientas será capaz de reproducir tu proceso de construcción de software. |
| 69 | + |
| 70 | +<img width="1095" alt="image" src="https://user-images.githubusercontent.com/17634377/189939435-aa321529-bd0e-49e5-977d-8a5d9fe36b8a.png"> |
| 71 | + |
| 72 | +# 🤔 ¿Cuándo debo usar este enfoque? |
| 73 | + |
| 74 | +- Usar este enfoque antes de escribir cualquier línea de código te ayudará a tener mucha claridad y también te hará preguntarte sobre cuestiones que quizá tendrás que preguntarle a tu equipo. Orden y claridad. |
| 75 | +- Construir features de esta forma te ayuda a construir una bitácora de tus propios procesos de creación, esto ayuda a conocerte y confrontarte de forma personal. También puede servir para compartir tu visión y perspectiva con tu equipo. |
| 76 | +- Si tu equipo sigue este enfoque, podrás aprender mucho de los procesos creativos de tus colegas. |
| 77 | +- Puedes incorporar esto a tu proceso de onboarding para nuevos miembros para mostrarles cómo trabajan y habilitarlos de forma más eficiente. |
| 78 | +- Puedes usar este enfoque al resolver ejercicios o code challenges y así mostrarle a tu entrevistador cómo estás construyendo software. |
0 commit comments