Skip to content

Instantly share code, notes, and snippets.

@MaximeD
Forked from oelmekki/test
Created October 7, 2011 19:33
Show Gist options
  • Save MaximeD/1271170 to your computer and use it in GitHub Desktop.
Save MaximeD/1271170 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
array, places = [1,2,3,8,5,8,0,4], []
puts "Maximum value of array is #{array.max.to_s}"
array.each_with_index do |val,i|
places << i if val == array.max
end
puts "You can find #{array.max.to_s} in position #{places.join ', '}"
@oelmekki
Copy link

oelmekki commented Oct 7, 2011

J'ai recommit le gist précédent : les .to_s sur array.max ne sont pas nécessaire, le contenu d'un "#{}" est toujours passé automatiquement à .to_s

@MaximeD
Copy link
Author

MaximeD commented Oct 7, 2011

Je me demandais justement s'il y avait quelque chose de l'ordre d'une bonne pratique à ce sujet

@oelmekki
Copy link

oelmekki commented Oct 7, 2011

Au niveau de l'usage des "#{}" ? Ne pas mettre trop de logique dedans. Mais si tu te retrouves avec trop de logique dedans, ça ne veut pas dire que tu dois utiliser "+", ça veut surtout dire que tu dois encapsuler cette logique dans une méthode (et alors, tu n'as plus qu'à utiliser le nom de la méthode, ce qui passe très bien dans #{}).

D'une manière générale, la bonne pratique est toujours d'aller au plus esthétique : simple, lisible et concis.

@oelmekki
Copy link

oelmekki commented Oct 7, 2011

Un exemple parfait de ça est rails : https://github.com/rails/rails/blob/master/activerecord/lib/active_record/base.rb

Quasiment tout ce qui dépasse trois lignes est transformé en méthode, et est réutilisé ensuite sous forme du nom de la méthode.

@MaximeD
Copy link
Author

MaximeD commented Oct 7, 2011

2200 lignes de code :/
Je vois l'idée en gros, j'ai plus qu'à attendre d'avoir d'aussi gros softs à écrire..

@oelmekki
Copy link

oelmekki commented Oct 7, 2011

ça c'est juste un fichier, hein :)

Mais t'inquiètes, je doute qu'on ait jamais quelque chose d'aussi gros à écrire que rails.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment