Au fil des ans, grâce à rebondir sur plusieurs langues, je suis venu à utiliser ce genre de mise en page:
ATTRIBUTES = %w(
archive_url assignees_url
blobs_url branches_url
collaborators_url comments_url commits_url compare_url
contents_url contributors_url
description downloads_url
events_url
fork forks_url full_name
git_commits_url git_refs_url git_tags_url
hooks_url html_url
id issue_comment_url issue_events_url issues_url
keys_url
languages_url
merges_url milestones_url
name
owner
private pulls_url
stargazers_url statuses_url subscribers_url
subscription_url
tags_url teams_url trees_url
url
)
%w(
description
fork full_name
html_url
login
name
owner
private
url
).each { |a| attr_accessor a.to_sym }
Les lignes sont classés par ordre alphabétique, et chaque mot individuel sur la ligne est trié par ordre alphabétique.
Si une ligne particulière devient trop longue, je vais l'envelopper et ajouter des lignes vides avant et après pour les délimiter visuellement, en maintenant le type de lignes et les mots dans la ligne.
La plupart des éditeurs facilitent le tri, et c'est le premier passage à nettoyer une liste désordonnée qui est pénible, ensuite ce n'est pas grave pour la maintenir. J'utilise vim, qui a la commande sort
, mais Sublime Text 2, que je traite comme mon remplacement de "bloc-notes" le fait aussi.
Je fais cela pour la maintenance.Je trouve qu'il est beaucoup plus facile de balayer une ligne triée, même si elle n'est pas équidistante dans les colonnes avec les autres lignes, que d'essayer de trouver quelque chose qui n'est pas dans un ordre trié dans de jolies colonnes. La netteté compte mais l'ordre me fait mal à la tête. Essayer d'éditer une table qui est dans les colonnes et la faire disparaître parce que j'ai ajouté un mot vieillit très rapidement, donc les colonnes ont été jetées, et je trier juste. Je suis sûr que ça dérange mes collègues au début quand je leur dis de le faire de cette façon, mais ils voient le bénéfice assez tôt, et ça me fait taire. :-)
Avec l'ajout de Ruby v2.0 de %i
, le second exemple peut être modifié à:
%i(
description
fork full_name
html_url
login
name
owner
private
url
).each { |s| attr_accessor s }
Ce n'est pas un grand changement, mais il est un nettoyant tout petit peu.
Cela devrait être demandé sur http://codereview.stackexchange.com si vous êtes intéressé par la façon de le nettoyer. Si ça ne marche pas, StackOverflow est le bon endroit. –