Le multi-lignes sur le create ne me choque pas du tout, bien au contraire.
Mais bon, je suis un super maniaque de la présentation du code (j'aligne
tout :p)

Ceci dit, ton bout de code, écrit différemment et tout aussi lisible à mon
gout, ne dépasse pas 61 chars la ligne
https://gist.github.com/2938865
Dans ton cas, travailler avec des factories (ou des fixtures? :/) serait
surement beaucoup plus pratique.

Pour revenir au sujet initial, 80 caractères, c'est quand même short,
surtout en ruby ou on n'a pas peur d'avoir de longs noms de méthodes /
variables.
Vu que j'aligne tout, il m'arrive d'atteindre les 90 chars, en particulier
dans mes validations ActiveModel.
Cependant, avoir des exigences à ce niveau est plutot une bonne chose:

* avoir des lignes de 300 caractères dans un projet, c'est pénible, surtout
pour la relecture, et ca peut révéler certaines choses (sauf regexp de ouf)
* avoir des lignes trop longues et/ou des méthodes de plus de X lignes (on
dit 25 / 30 en général), c'est souvent révélateur de méthodes qui font trop
de boulot et qu'il faut factoriser

Ne rien spécifier, c'est souvent aussi coder sans norme.
Or, coder sans norme tout seul, c'est parfois prendre trop de temps sur la
manière de présenter ton code ou ne pas être capable de te relire par la
suite.
Et coder sans norme en équipe, c'est la foire. On a du code qui commence
d'une manière, qui finit d'une autre. C'est dur pour lire le code des
autres et encore plus affreux de lire un même code écrit par plusieurs
personnes différentes.

Cdlt =)

Le 15 juin 2012 23:26, lucas di cioccio <[email protected]> a écrit
:

> Réponse inline:
>
> Le 15 juin 2012 15:43, Guirec Corbel <[email protected]> a écrit :
>
> Bonjour,
>>
>> Régulièrement, je me trouve confronté avec des problèmes de taille de
>> lignes. Selon certains conventions, une ligne ne devrait pas faire plus de
>> 80 caractères, comme indiqué ici :
>> http://www.caliban.org/ruby/rubyguide.shtml#linelen . J’essaie donc de
>> respecter cette convention sans être toujours très regardant. Pour être
>> honnête, cette règle me fait ch... et j'ai toujours de la difficulté à m'y
>> tenir. De plus, ça me donne parfois des trucs que je ne trouve pas beau.
>> J’essaie de suivre des conventions mais je n'en ai pas trouvé sur internet.
>>
>> Exemple :
>>
>>   describe :note_for do
>>     it 'give notes for the project' do
>>
>>
>>       CategoryProject.create(project: project,
>>                              category: category,
>>                              description: 'test')
>>
>>
>>       Note.create(project: project, category: category, value: 8)
>>
>>
>>       Note.create(project: project, category: category, value: 3)
>>
>>
>>       Note.create(project: project, category: category, value: 3)
>>
>>
>>       project.note_for(category).should == 4.7
>>     end
>>   end
>>
>> Je trouve pas ça super gracieux. En plus de ça, j'ai vu que rails ne se 
>> limite pas à 80 caractères mais plutôt à 120? Exemple : 
>> https://github.com/rails/rails/blob/master/actionmailer/lib/action_mailer/base.rb
>>  .
>>
>> Vu qu'il y a des variables locales en Ruby, pourquoi ne pas les utiliser?
>
> params = {blablabla}
> Note.create params
>
> qui rend facile le refactoring en
>
> def note(params)
>    Note.create params
> end
>
> Ce qui n'a pas forcément du sens dans du code, mais peut aérer une série
> de tests ou déboucher sur un module DSL pour une librairie.
>
> Enfin le multiline a aussi des avantages, comme de pouvoir commenter une
> ligne pour désactiver quelquechose.
>
> params = {
>                    foo:'bar',
>                   #baz:123
>                 }
>
> A utiliser avec parcimonie car ça rajoute plein de scrolling vertical et
> ça encourage à laisser traîner des '#' de commentaires dont on oublie
> l'utilité.
>
> De même j'utilise des lignes longues, pour des messages d'erreurs/de log
> inline. Genre raise ArgumentError, "une explication trop longue à tenir sur
> 80chars". Le backslash en fin de ligne peut aider pour ce cas mais je ne
> trouve pas ça esthétique.
>
>> Bref, voici donc ma question : Qu'utilisez vous comme normes?
>>
>> Celle du projet que je touche. Ou bien le bon sens. Quand j'ai beaucoup
> de paramètres parfois je fais une classe dont la responsabilité est de
> paramétrer les autres objets :o, ça me donne l'impression de maîtriser le
> JavaSyndromeFactoryBuilder.
>
> --Lucas
>
>>
>> Merci encore pour tout vos bons conseils!
>>
>>  --
>> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance"
>> de Google Groups.
>> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
>> [email protected]
>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> [email protected]
>
>
>  --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
>

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à