Como você pode ver nas respostas, não há consenso sobre esse assunto. A menos que você trabalhe em equipe, use o que mais lhe agrada.
Eu prefiro inserir uma nova linha antes dos operadores.
Sempre que tenho que quebrar linhas, geralmente coloco no máximo um termo do mesmo "nível" em uma linha:
Lei da gravitação de Newton em Python:
force = (
gravitational_constant
* mass_1
* mass_2
/ (distance * distance)
)
Compare isso com:
force = (
gravitational_constant *
mass_1 *
mass_2 /
(distance * distance)
)
Quero saber que "divido pela distância ao quadrado", não quero saber, que "mass_2 fica dividido", porque não é assim que penso em expressões matemáticas.
Além disso, geralmente quero saber primeiro o que estou fazendo (operador), antes de me preocupar com o que faço (operandos).
Ou considere esta instrução SQL complicada:
WHERE
a = 1
AND b = 2
AND c = 3
AND ( -- or put the OR on one line together with the AND
d = 3
OR e = 1)
AND x = 5
Isso me permite ver como as condições individuais são conectadas com muita facilidade, apenas deslizando de cima para baixo sem ter que ler todas as linhas até o final para encontrar o operador em vez de:
WHERE
a = 1 AND
b = 2 AND
c = 3 AND
(
d = 3 OR
e = 1) AND
x = 5
Penso no primeiro em termos de " Xé verdade", depois retifico isso dizendo: " E isso também é verdade", o que me parece mais natural do que o contrário. Além disso, acho o primeiro muito mais fácil de analisar visualmente.
Ou um exemplo de PHP:
$text = "lorem ipsum"
. "dolor sit amet, "
. "consectetur adipisicing elit, "
. "sed do eiusmod tempor";
Mais uma vez, posso apenas ler rapidamente na vertical para ver que estou simplesmente concatenando o texto, porque na maioria das vezes sinto que realmente não me importo com o que está dentro das strings / condições.
Claro, eu não aplicaria esse estilo incondicionalmente. Se colocar a nova linha após um operador parecer fazer mais sentido para mim, eu faria isso, mas não consigo pensar em um exemplo no momento.