Envoltura de líneas de código: cómo manejar líneas largas

Estoy frente a una línea en particular que tiene 153 caracteres de largo. Ahora, tiendo a romper cosas después de 120 caracteres (por supuesto, esto depende en gran medida de dónde estoy y de las convenciones locales). Pero para ser sincero, cada vez que rompo la línea simplemente lo hace verse mal. Así que estoy buscando algunas ideas sobre lo que debería hacer para lograrlo.

Aquí está la línea:

private static final Map<Class, PersistentHelper> class2helper = new HashMap<Class, PersistentHelper>(); 

Estoy abierto a las dos ideas sobre cómo / dónde romper la línea (y por qué), así como las formas de acortar la línea en sí.

No somos una tienda de Java, y no hay convenciones locales para este tipo de cosas, o obviamente simplemente las seguiría.

¡Gracias!

En general, rompo las líneas antes que los operadores, y doblo las siguientes líneas:

 Map longMap = new HashMap(); String longString = "some long text" + " some more long text"; 

Para mí, el operador líder claramente transmite que “esta línea se continuó a partir de otra cosa, no se sostiene por sí misma”. Otras personas, por supuesto, tienen diferentes preferencias.

Así es como lo hago, y Google lo hace a mi manera.

  • Descanso antes del símbolo para operadores que no son de asignación .
  • Romper después del símbolo para = y para,.

En su caso, dado que está usando 120 caracteres, puede romperlo después de que el operador de asignación haya

 private static final Map, PersistentHelper> class2helper = new HashMap, PersistentHelper>(); 

En Java, y para este caso en particular, daría dos tabs (u ocho espacios) después de la pausa, dependiendo de si las tabs o los espacios se usan para la sangría.

Esto es, por supuesto, una preferencia personal y si su proyecto tiene su propia convención para el ajuste de líneas, eso es lo que debe seguir, le guste o no.

En mi humilde opinión, esta es la mejor manera de escribir tu línea:

 private static final Map, PersistentHelper> class2helper = new HashMap, PersistentHelper>(); 

De esta forma, la sangría aumentada sin llaves puede ayudarlo a ver que el código se ha dividido porque la línea era demasiado larga. Y en lugar de 4 espacios, 8 lo hará más claro.

Utiliza los métodos de fábrica estáticos de Guava para Maps y solo tiene 105 caracteres.

 private static final Map, PersistentHelper> class2helper = Maps.newHashMap(); 

Creo que mover al último operador al comienzo de la siguiente línea es una buena práctica. De esta forma sabrá de inmediato el propósito de la segunda línea, incluso si no comienza con un operador. También recomiendo 2 espacios de indentación (2 tabs) para una pestaña previamente rota, para diferenciarla de la indentación normal. Eso es inmediatamente visible como continuación de la línea anterior. Por lo tanto, sugiero esto:

 private static final Map, PersistentHelper> class2helper = new HashMap, PersistentHelper>();