Inclusion de fichiers dans les questions Ruby
Question
- Comme je connais très bien Ruby, pourriez-vous suggérer les meilleures pratiques pour séparer les fichiers et les inclure.
- Quelle est la structure de conception préférée de la structure de fichier? Quand décidez-vous de séparer l'algorithme dans un nouveau fichier?
- Quand utilisez-vous load pour inclure d'autres fichiers et quand utilisez-vous require ?
- Existe-t-il un problème de performance lorsque vous incluez des fichiers?
Merci.
La solution
-
Je crée un fichier par classe, à l'exception des classes qui sont de petites classes d'assistance, non utilisées par d'autres fichiers. Je sépare également mes différents modules dans des sous-répertoires.
-
La différence entre
load
etrequire
estrequire
ne chargera le fichier qu'une seule fois, même s'il est appelé plusieurs fois, alors queload
le chargera de nouveau, qu'il ait été chargé auparavant ou non. Vous voudrez presque toujours utiliserrequire
, sauf peut-être dansirb
lorsque vous souhaitez recharger manuellement un fichier. -
Je ne suis pas sûr de la performance. Lorsque vous
chargez
oudemandez à
un fichier, l'interpréteur doit interpréter le fichier. La plupart des Ruby le compileront en code de machine virtuelle après avoir été requis. Évidemment,require
est plus performant lorsque le fichier a déjà été inclus une fois, car il n’est peut-être pas nécessaire de le charger à nouveau.