El "formatting de código" se convierte en svn

Esta pregunta proviene de experiencias previas con svn.

Tuvimos un problema donde nuestro código estaba mal formateado, principalmente debido al aumento en los desarrolladores en ese momento que no se adhirieron a nuestra guía de formatting por varias razones. Entonces hubo discrepancias en el formateo de los códigos por bastante time. Además, la base de código también era bastante antigua, por lo que probablemente continuaría durante años.

De todos modos, hubo una sugerencia para formatear todas las classs tocadas en nuevas características en nuestro estilo de formatting de código estándar acordado. Otros desarrolladores se opusieron principalmente porque :

  • No puede usar una vista de estilo de anotación del código, por lo que no puede ver a qué funciones se relaciona una determinada línea de código.

Al final, terminamos rechazando esta idea y solo formateamos los files de class recientemente introducidos. Para el nuevo código en las classs existentes, solo nos aseguramos de que las líneas que se editaron se sangraron correctamente.

Somos en su mayoría usuarios de eclipse, pero creo que esta característica también está disponible en otros ide (recién comprobado en línea para netbeans e intellij).

Para un poco más de context, la base de código en cuestión era bastante madura y había un equilibrio justo entre el trabajo de soporte y el nuevo trabajo de características. A veces, las nuevas funciones se dividieron en fases, por lo que esto también es algo a tener en count.

Entonces la (s) pregunta (s) son:

  • ¿Fue este el enfoque correcto? ¿Es razonable rechazar las "confirmaciones de formatting de código" solo para conservar una vista anotada del código?
  • ¿Hay mejores forms de hacer esto? Mi opinión aquí es que tal vez debería haber habido un enganche commit que tenga formatting automático, aunque no estoy seguro de si algo como esto existe o incluso es válido.

No quieres hacer esto en un gancho. No solo es un plan realmente malo tener un gancho para editar la fuente de ninguna manera ya que está en tránsito, sino que el error que obtendrá el usuario va a ser malo (sería imposible decirle al usuario todos los errores de manera significativa manera en un post de error). No soy fanático de imponer el estilo en general … pero si debes hacerlo, te recomiendo un plan de tres partes

  1. Define y documenta tu coding style. Lo que se te ocurra no es tan importante como la discusión.
  2. Exportar configuraciones para editor y compartir con el equipo. esto dependerá del editor. usted quiere que sea estúpido fácil para que el trabajo pesado de sangría y otras cosas de syntax se maneje automáticamente.
  3. Haga que su CI haga cumplir ese estilo. Si realmente quieres aplicarlo, lo harás aquí. probablemente con algo así como checkstyle . Esto generará un informe elegante que mostrará y mostrará todos los errores.

Trabajé en equipos que lo hicieron realmente bien … el estándar era bastante flexible, todos sentían que tenían información, así que cuando fallaba la construcción no se quejaba. Lo arreglamos y seguimos adelante.

Trabajé en un equipo donde un fascista irracional creía que el estilo era más importante que la completitud o corrección del código. Apestaba

Personalmente, me detengo en el paso dos y veo a dónde te lleva eso antes de pasar al paso 3.

En Eclipse, en Preferences > Save Actions , se puede habilitar el Auto Formatter que formatea el código en el file guardado. Puede configurar un set de Reglas de formatting y Export Preferences File para enviarlas a sus desarrolladores (o hacer que lo haga el desarrollador principal) para que Import Preferences File , de modo que el código se formatee automáticamente a medida que lo desarrollan.

Un auto-formateador estandarizado ayudaría a eliminar las similitudes en el estilo del código que causa cambios que no son de código en el SVN.

Creo que sería perfectamente correcto hacer un compromiso de formatting de código único para las classs antiguas en su repository, es definitivamente mejor que tener un código mal formateado por todas partes.

En cuanto a Intellij y Eclipse de IDE, puedo formatear en save, pero estaría en contra de hacerlo en un gancho porque no es consciente de lo que está codificando, y no confiaría eso en un script. Pero eso también puede funcionar, pero debe asegurarse de que lo que está utilizando para formatear esté a la altura de la tarea

    Intereting Posts