Aujourd'hui, je développe sur un ordinateur assez complexe, il a plusieurs cœurs, des disques SSD et autres. Pourtant, la plupart du temps, je programme l'ordinateur sans rien faire. Quand j'ai besoin de compiler et d'exécuter / déployer un projet quelque peu complexe au mieux, cela prend encore quelques secondes. Pourquoi? Maintenant que nous vivons de plus en plus dans «l'ère de l'instant», pourquoi ne puis-je pas appuyer sur F5 dans Visual studio et lancer / déployer mon application instantanément?
Quelques secondes peuvent ne pas sembler si mauvaises, mais c'est toujours une friction cognitive et du temps qui s'additionne, et franchement, cela rend la programmation moins amusante. Alors, comment la compilation pourrait-elle être instantanée?
Eh bien, les gens ont tendance à éditer des fichiers dans différents assemblys, et si Visual Studio / l'EDI faisait constamment la compilation / et la construction de tout ce que je modifiais à chaque fois que cela pouvait être approprié. Heck s'ils voulaient aller vraiment avancé, ils pourraient faire une compilation par classe. La compilation peut ne pas fonctionner, mais elle ne peut rien faire en silence (sauf l'ajout de messages d'erreur à la fenêtre d'erreur).
L'ordinateur d'aujourd'hui pourrait certainement consacrer un ou deux éléments à cette tâche, et si quelqu'un trouvait cela ennuyeux, il pourrait être désactivé par option. Je sais qu'il y a probablement un millier de problèmes techniques et quelques clichés instantanés fantastiques qui devraient être résolus pour que cela soit transparent et pratique, mais cela rendrait la programmation plus transparente.
Y a-t-il une raison pratique pour laquelle ce scénario n'est pas possible? L'usure de l'écriture continue de binaires serait-elle trop importante? Les assemblys ne pouvaient-ils pas être conservés en mémoire avant d'être déployés / exécutés?
la source
Réponses:
Eclipse effectue la compilation et la construction automatiques. Vous voudrez peut-être vérifier comment ils le font. C'est open source. Je pense qu'il se compile chaque fois que vous enregistrez un fichier.
la source
Avez-vous déjà pensé au nombre de frappes que vous effectuez avant d'obtenir un fichier dans un état où il peut être compilé? Sérieusement, regardez ce qui se passerait si vous essayez de compiler la classe f, la classe fo, la classe foo, etc. Quand voudriez-vous que l'EDI vous dise de corriger une faute de frappe plutôt que d'en laisser une finir de taper? Je me demande dans quelle mesure vous avez bien réfléchi à la création de quelque chose à partir de zéro, car c'est là que je pouvais vraiment voir cela être très douloureux.
la source
Visual Studio n'a pas fourni la fonction de compilation automatice. Mais oui, certains IDE comme Eclipse effectuent une compilation automatique lorsque vous enregistrez un fichier. J'espère que les futures versions de Visual studio Microsoft ajouteront cette fonctionnalité.
la source
Devinez quoi ... si vous utilisez un IDE moderne qui vous donne des avertissements, il fait une compilation en arrière-plan. Voilà comment il sait que ces éléments ne seront pas compilés tels quels.
la source
Vous pouvez toujours diviser un projet en composants précompilés. Je préfère que mon ordinateur compile sur commande. La friction cognitive d'un homme est le temps d'un autre homme pour réfléchir et prendre un café.
la source
Si vous utilisez Visual Studio et développez en c # ou VB Reshaper peut le faire pour vous. http://www.jetbrains.com/resharper/ Je gagne beaucoup de temps en connaissant tous les endroits où mes modifications apportées à une interface cassent le code sans avoir à recompiler manuellement.
(Je pense aussi que Resharper est la merde pour de nombreuses autres raisons aussi.)
la source
Je ne sais pas, j'aime un peu devoir compiler des choses. C'est une sorte de moi brandissant mon code et disant à l'ordinateur: " Hah! Voyons voir que vous rejetez CECI! "
Ensuite, je reçois une erreur de compilation, corrigez-la, puis, " Hah! Voyons maintenant vous rejetez CECI! "
Ensuite, il se compile et je prends du café. Ça fait du bien. :)
la source
Remarque: Ceci est tiré de mon expérience avec Netbeans (Java), donc cela peut ne pas s'appliquer à Visual Studio
TMK cela se fait un peu en arrière-plan lorsque vous commencez à modifier le fichier. À moins que l'EDI ne connaisse chaque erreur de compilation et comment la détecter, je suppose qu'il compile la classe en arrière-plan, puis signale toute erreur.
Le problème est quand vous voulez construire votre projet entier. Parfois, je suppose que toutes les erreurs ne peuvent pas être détectées avec cette compilation "en direct", donc elle reconstruit tout. Il se peut également que la classe compilée en direct contienne des informations supplémentaires dont l'EDI a besoin mais qui ne doivent pas être distribuées dans un binaire.
la source