Soy un confirmador habitual y descubrí que me conviene, pero es cierto que mis mensajes de confirmación casi siempre son,
Age: 9 mins [*] Working on implementing and testing PaintSystem.
Age: 17 mins [*] Working on implementing and testing PaintSystem.
Age: 37 mins [*] Working on implementing and testing PaintSystem.
Age: 52 mins [*] Working on implementing and testing PaintSystem.
Por lo tanto, no puedo decir exactamente que realizar confirmaciones tan frecuentes y habituales en mi rama (mercurial) haya fomentado exactamente los registros de confirmación más detallados. A veces, incluso cometo código a mitad de camino si, por ejemplo, mi esposa me pide que salga a cenar, momento en el que simplemente copiaré y usaré el mensaje de compromiso anterior "Trabajando en [...]".
Mis patrones de registro de confirmación suelen ser, "Working on [...] Working on [...] Working [...] Completed [...] Started working on [...] Working on [...] Completed [...] Started working on [...]"
Sin embargo, por otro lado, me ha salvado el trasero. A veces me encuentro con un caso límite que no anticipé y no probé, en cuyo punto los compromisos frecuentes me ayudan a descubrir exactamente dónde presenté el error.
Por lo tanto, no conozco los mejores hábitos y, desde luego, no soy de los que escucho en cuanto a los hábitos ideales de registro de compromiso, pero ciertamente puedo decir que comprometerse con más frecuencia definitivamente puede ayudar cuando necesita realizar una regresión.
¿Debería cada cambio de una línea obtener una confirmación?
He cometido cambios de una línea antes, pero por lo general son complicados y tal vez tenía poco tiempo. Mis compromisos no siempre se parecen a unidades perfectas y completas de trabajo o cambio. Como se dijo, a veces son solo el resultado de que mi esposa me pidió que saliera a cenar inesperadamente.
TBH, muchos de mis compromisos que siguen ese "Working on [...]"
patrón de registro no están modelando unidades coherentes de cambio (por qué a menudo no puedo encontrar un mensaje mejor que "Working on [...]"
), sino solo el resultado de tomar un respiro, como prepararme una taza de café. El "Completed [...]"
mensaje indica el final de esa unidad de trabajo, y allí a menudo escribo un mensaje mucho más detallado junto con el primer "Started working on [...]"
tipo de mensajes cuando empiezo a trabajar en algo. Si promedia las confirmaciones como una vez cada 15 minutos, entonces esos mensajes "Trabajando en [...]" son más como intermedios para lo que alguien podría cometer en una confirmación más voluminosa con un mensaje más detallado.
¿Debo confirmar antes de cualquier prueba (por ejemplo, al menos para errores de sintaxis / compilación y luego tener que deshacerlo por completo, ya que la idea no funcionó o el mensaje es una mentira)?
Simplemente sigo adelante y lo comprometo antes de incluso ejecutar pruebas a veces (nuevamente si tuve un evento inesperado). Además, aunque estoy solo, presiono a un servidor (solo uno que se ejecuta aquí en casa en una LAN) que hace CI. Puede parecer exagerado, pero no sé, me acostumbré a apoyarme en eso en mis antiguos lugares de trabajo. Además, no quiero molestarme en tener que ejecutar todas las pruebas de mi unidad e integración a mano cada vez. Me gusta tener todo eso ligado a solo empujar. Si una prueba falla, es bastante fácil trabajar de manera progresiva donde hago la regresión, corrijo el error en la última revisión y sigo adelante. Dicho esto, al menos compilo el código contra una compilación de depuración antes de comprometerme.
¿Debo asegurarme de comprometerme cada mañana / tarde antes de dejar de trabajar para la cena mientras todavía está fresca?
Me gusta comprometerme antes de salir y tener un descanso entre la programación. Realmente no pensé mucho en por qué exactamente hasta que me encontré con esta pregunta. Supongo que es para evitar que retome desde donde lo dejé sin un registro de confirmación allí en lugar de donde lo dejé que puedo diferenciar y así sucesivamente. Hmm, necesito volver a hablar de eso, ya que tal vez no sea teóricamente necesario dada la frecuencia con la que me comprometo. Todavía me siento más cómodo comprometiéndome y empujando antes de dejar la computadora por cualquier razón. Algo de eso podría ser ese antiguo miedo psicológico a, por ejemplo, la computadora se prendió fuego después de que me fui y tenía gerentes de proyecto en los días en que estábamos usando SVN con los desarrolladores que a veces pasaban semanas sin cometer problemas y nos recordaban constantemente que revisáramos el código con la mayor frecuencia posible mientras nos recordaban que Nuestro código es propiedad de la empresa. Además, es un poco más eficiente, especialmente con la presión para que mi proceso de CI pueda comenzar a ejecutar todas las pruebas mientras estoy fuera, para que pueda volver y ver los resultados.
Ah, y a veces me emborracho un poco después de irme y, por lo general, es una mala idea intentar escribir código complejo mientras estoy borracho (aunque no siempre; una vez se me ocurrió un sistema de menú contextual realmente agradable después de tener un momento eureka mientras estaba borracho, pero solo tenía como 6 cervezas y no era tan complejo de codificar). Si intento hacer eso, al menos cometí el código escrito con sobriedad antes de irme para volver atrás en lugar de mezclar el código borracho con el código sobrio, en cuyo punto mi registro de confirmación podría leer, "Reverting back to code written before Jagermeister shots."
no hago esto con mucha frecuencia, a menos que obtuviera una inspiración de código borracho, pero en esos casos raros, realmente ayudó que cometiera algo antes de salir y emborracharme.