J'ai un ami qui a un peu plus d'expérience en programmation que moi. Nous parlions de toutes les différentes technologies de programmation que nous utilisons et Interface Builder est venu en conversation.
N'ayant aucune formation en programmation, sauf pour ce que j'ai appris moi-même, je crois personnellement que l'IB et toutes ses fonctionnalités ( IBOutlets
, IBActions
) aident les codeurs de mon niveau de compétence (et de tous les niveaux de compétence, d'ailleurs) à réaliser leurs projets en moins de temps.
Sa vision de l'IB est un peu enthousiaste. Il pense que les codeurs qui utilisent Interface Builder "trichent" du fait qu'ils n'ont pas à disposer les interfaces à la main.
Question:
Est-ce que l'utilisation d'un générateur d'interface graphique pour disposer les éléments d'interface doit être considérée comme de la «tricherie» (puisque la plupart des programmes exigeaient à l'origine la disposition des interfaces à la main dans le code)? Pourquoi?
la source
Réponses:
Ce n'est pas de la triche. Des programmes comme IB sont des outils. Utilisez le bon pour le travail. Il n'est pas nécessaire de faire preuve de dogmatique à ce sujet.
Si vous êtes plus efficace en utilisant un tel outil, utilisez-le. La seule mise en garde est que vous devez apprendre les compromis lorsque vous prenez vos décisions. Faire des mises en page à la main vous donne un contrôle précis au détriment de la facilité de glisser-déposer. Les outils de glisser-déposer vous permettent de faire beaucoup de choses rapidement et facilement, mais peuvent rendre votre code plus difficile à maintenir au fil du temps.
Personnellement, je n'ai jamais eu de succès ou de plaisir à utiliser un outil de conception d'interface utilisateur par glisser-déposer, mais ce n'est que moi. Je trouve que la création d'interfaces graphiques à la main est la plus efficace pour moi et donne une base de code plus facile à maintenir au fil du temps. D'autres ont l'expérience inverse.
la source
La programmation comme travail n'est pas un sport ni un jeu. L'argument de triche est donc très mince. Si les outils visuels augmentent votre productivité, vous seriez stupide de ne pas les utiliser. D'après mon expérience, cela me permet de passer plus de temps sur le code de résolution de problèmes sans faire les choses triviales de l'interface encore et encore.
Attention cependant, il est facile pour les paramètres ou les données de se glisser dans l'interface. Soyez radical quant à la séparation de la présentation et de la logique.
la source
Ce n'est que de la triche si vous sacrifiez quelque chose pour y arriver. La plupart des mises en page GUI génèrent simplement du code que vous feriez de toute façon (et que vous devez souvent éditer à la main car la mise en page n'est pas suffisante).
Donc, fondamentalement, non.
Toutes choses étant égales par ailleurs, tout outil qui vous permet de faire la même chose plus rapidement est bon.
la source
La tricherie est le nom du jeu. Vous devez toujours prendre la route la plus simple possible lorsque vous prenez une décision de développement. Appelez cela de la triche, appelez-le "être productif"; ça ne fait aucune différence. Vous devez choisir l'outil qui vous aide à faire le travail avec le moins d'effort (bien sûr, n'oubliez pas la maintenance et l'évolutivité).
Désormais, en particulier avec IB, vous devez peser le temps gagné par IB par rapport au coût de la maintenance d'un code plus lent et avec lequel vous êtes moins familier. Il s'agit vraiment d'une décision au cas par cas et de personne à personne. Dans de nombreux cas, les outils et les assistants vous permettent de faire beaucoup plus de travail avec un faible coût de maintenance supplémentaire ... et parfois ils introduisent du code slop et une abstraction plus fuyante que vous ne savez quoi faire. Il semble que vous ayez pris la décision par vous-même que l'IB vaut tous les coûts qu'il ajoute au développement, cependant, votre ami pourrait tout aussi facilement trouver que l'outil le gêne plus qu'il n'aide.
la source
Sûrement pas. Le faire entièrement à la main, cependant, est un cas évident de faire un travail inutile pour vous-même.
(En règle générale, je l'étalais à l'aide d'un générateur et si un réglage précis était nécessaire, il a tendance à - mais pas toujours - être fait à la main).
la source
Ce n'est certainement pas de la triche, même si j'aurais un peu moins de respect pour un développeur qui ne pourrait pas disposer d'une interface graphique sans. OMI, en utiliser un n'est pas différent de l'utilisation d'un type de données fourni par le système - pourquoi implémenter votre propre liste chaînée ou carte de hachage si vous pouvez en utiliser un hors de la bibliothèque système?
FWIW J'ai dû implémenter une interface utilisateur dans Java Swing il y a quelques mois. Je ne l'avais jamais utilisé, alors j'ai tout écrit à la main pour mieux comprendre comment cela fonctionnait. Maintenant que je connais l'API de base, je ne l'écrirai plus jamais à la main si je peux l'aider!
la source
Comme l' indique @Bryan Oakley , ce n'est qu'un outil et non une "triche". Tout dépend de ce que vous présentez exactement. Si à la main, c'est un exercice incroyablement laborieux, alors vous devriez vraiment chercher d'autres alternatives qui vous rendent plus productif.
J'étais dans le camp de codage manuel de l'interface, mais plus tard, après une série d'interfaces, j'ai pris une flèche au genou et j'ai eu une opinion différente. Si je le peux et que cela me rend plus productif, j'utiliserais un outil graphique pour disposer l'interface graphique.
En utilisant récemment le modèle MVVM, avec la distinction de View et ViewModel, il est un peu plus clair quand vous utiliserez des outils graphiques. Phil Haack en parle brièvement dans l' épisode Github pour Windows du podcast Herding Code lorsqu'il est questionné sur la transition du Web au développement d'applications. Il est plus logique de faire le ViewModel avec le codage "à la main", et de laisser le concepteur construire la vue graphiquement (et câbler les ViewModels en conséquence).
la source
Un des grands avantages d'outils comme Interface Builder est qu'ils permettent de séparer le travail de conception de l'interface utilisateur de la mise en œuvre du programme. Quelqu'un avec une compétence de codage minimale peut facilement changer la disposition de l'interface utilisateur, modifier les légendes des boutons et des menus, traduire l'interface utilisateur dans une langue différente, etc.
la source