Vos petites manies de développeurs

Les petites choses dont vous ne vous pouvez vous passez lorsque vous vous trouvez dans un éditeur de texte, un gestionnaire de versions...

a marqué ce sujet comme résolu.

Je rajouterai à la bonne liste de SpaceFox : le refactoring.

Anéfé, je savais que j'oubliais un truc important dans ma liste… et pourtant je m'en sers aussi beaucoup !

Juste pour savoir, vous utilisez quelle version d'Intellij ?

La dernière (14).

Après, IntelliJ a les mêmes avantages et surtout les mêmes inconvénients que tous les IDE de JetBrains : ils sont géniaux, font le café (y compris la variante au lait et à la crème si tu veux)… mais restent des putains d'usines à gaz dans leur ergonomie, puisque tu peux tout faire et que tu peux absolument tout paramétrer si tu veux.

Perso c'est community (14) pour l'instant. Je devrais obtenir une version ultimate dans pas très longtemps probablement :) mais au pire tant pis. Je n'utilise pas beaucoup de fonctionnalités présentes uniquement dans la version Ultimate (ce qui m'intéresserait ça serait Grails mais je m'en sers moins désormais).

Le gros gros reproche que je ferais à IntelliJ c'est vraiment les raccourcis pas du tout évident et les menus… Wow… Parfois c'est clairement du délire d'avoir organisé ça comme ça.

Les macros peuvent être pratiques même si j'aurais tendance à m'en méfier quand même… Perso j'en ai créé une seule pour : sauvegarder / reformater le code / réorganiser les imports (les 3 à la fois) sur Maj + Ctrl + S

Après j'ai été forcé de m'y mettre pour deux raisons :

  • le support de Groovy est sans comparaison par rapport à Eclipse
  • le support de Maven aussi. Y'a des projets Maven (des trucs sérieux hein, pas les miens) que j'ai juste jamais pu faire fonctionner avec M2e…

Mais la route est encore vraiment longue…

+0 -0

Il y a dix minutes je cherche à savoir si on a un moyen de vérifier qu'on est en caméra subjective ou pas, je tape PlayerShip->Camera et j'attends de voir si mon collègue a fait un getter là-dessus. Je vois IsExternalCamera tomber, je sélectionne, c'est fini. La classe a été créée hier, on n'aurait jamais eu le temps de la documenter aussi vite.

Stranger

Si l'IDE a été capable de générer l'auto-complétion pour cette classe, un outil de documentation aurait tout autant été capable d'en générer la doc :)

Je voulais dire, community ou ultimate edition ?

  • IntelliJ Community chez moi pour Java
  • PyCharm Ultimate chez moi pour Python / Django (licence Zeste de Savoir)
  • Android Studio (l'officiel) au boulot. Je ne sais pas trop sur quelle version d'IntelliJ il est basé, je suppose la Community puisque les fonctionnalités apportées par la version Ultimate ne sont pas trop en rapport avec Android
  • On est en train de voir pour du IntelliJ Ultimate au boulot pour les projets Java EE, mais ça nécessite de convaincre le patron :)

Et donc quand je cherche une fonction, j'ouvre la doc, je fais une recherche et je copie-colle la fonction ? Je trouve bien plus efficace de taper une partie de son nom pour avoir immédiatement la liste des candidats en dessous. C'est simplement plus pratique AMHA.

Stranger

Pour ma part j'ai toujours la documentation ouverte dans un coin. Car j'ai de toute façon souvent besoin de plus d'informations que simplement le nom / la signature des fonctions.

Quid du cas où je viens de définir une variable dans le header de ma classe ? Je retourne dans le header pour la copier-coller ? Encore une fois, parler de doc sur ce sujet est pour moi complètement hors sujet. La doc, c'est quelque chose de statique, à long terme, qui sert avant tout aux autres à des fins de compréhension du logiciel. L'autocomplétion c'est un outil en temps réel pour écrire pus efficacement sans fautes de frappes / typos / confusion entre classes etc.

Stranger

Je ne comprends pas ton exemple. Quand je définis une variable dans le header, je la définis dans le header, point. À noter que je ne parlais pas de rédaction de doc mais d'outils de génération, qui permettent de donner rapidement une vue sur l'ensemble des classes et leurs méthodes par exemple. Et ça répondait à des propos qui parlaient d'auto-complétion pour découvrir une classe ou un objet, pas de fautes de frappes, donc je ne vois pas en quoi c'est hors-sujet.

Faudrait que je teste IntelliJ. J'utilise Eclipse actuellement, et je pense que j'en utilise pas 1% des fonctionnalités. Mais IntelliJ a manifestement des fonctions intéressantes pour le code.

En fait, on pourrait faire un topic entier sur les IDE, non ?

+1 -0

Pour ma part j'ai toujours la documentation ouverte dans un coin. Car j'ai de toute façon souvent besoin de plus d'informations que simplement le nom / la signature des fonctions.

entwanne

Dans Visual Studio tu as aussi la description de la méthode et de chacun des arguments si la doc a été écrite (il est bien fait cet IDE). :-°

Dans Visual Studio tu as aussi la description de la méthode et de chacun des arguments si la doc a été écrite (il est bien fait cet IDE). :-°

Bat'

Oui, donc tu as la doc intégrée dans ton IDE, moi je préfère l'avoir en dehors (et ça me semble plus simple pour naviguer dedans). Et dans le cas où tu utilises une bibliothèque externe, l'IDE arrive à accéder aux sources pour te fournir la documentation ?

Pour ma part j'ai toujours la documentation ouverte dans un coin. Car j'ai de toute façon souvent besoin de plus d'informations que simplement le nom / la signature des fonctions.

entwanne

T'as bien de la chance d'avoir du code documenté. Dans les projets sur lesquels je bosse on est à 100+ fichiers juste pour les tools, le moteur doit faire 300-400 fichiers, et le seul commentaire présent dans un fichier (s'il a été rédigé) c'est UNE ligne pour savoir ce que va faire la classe. La plupart du code écrit est plus ou moins autodocumenté pour permettre, comme Stranger l'a également dit, de comprendre les fonctionnalités uniquement avec les prototypes et l'autocomplétion. Et l'autocomplétion de visual t'affiche la doc de ton code / une lib externe si elle est rédigée en commentaire au dessus du proto de fonction. Magic.

+1 -0

Se baser sur l'auto-complétion pour comprendre les fonctionnalités, ça me semble surtout être la meilleure méthode pour utiliser une fonction qui n'était pas vraiment destinée à cela, car celle qu'on aurait vraiment voulu n'apparaît que trop bas dans le classement.

Ensuite, comme je l'ai dit plus haut, si elle affiche a doc, on parle donc bien de l'IDE qui intègre la documentation du projet, pas seulement d'une fonctionnalité d'auto-complétion. Et je préfère grandement à cela plusieurs outils simples qui font chacun leur tâche.

À noter que du coup les concepts comme "les noms de champ commencent par tel caractère et les variables statiques par tel autre" n'existent pas chez moi.

JE n'ai encore pas compris l'intérêt de cette pratique de préfixer toutes les variables membre par m, etc.; de même que celle de préfixer le nom de la variable par une lettre qui identifie son type, p.ex. sUserName, fEchoDepth, iChannelID, lChildren, etc. Même en php où on a un typage faible je trouve ça ridicule. Si on n'est pas capable d'identifier le type de la variable ou sa portée (membre, statique, global), rien qu'avec son nom, alors il n'a pas été assez bien choisi. Avec des conventions très simples du genre réserver le pluriel aux collections/conteneurs, on s'y retrouve sans problème

+2 -0

JE n'ai encore pas compris l'intérêt de cette pratique de préfixer toutes les variables membre par m, etc.; de même que celle de préfixer le nom de la variable par une lettre qui identifie son type, p.ex. sUserName, fEchoDepth, iChannelID, lChildren, etc. Même en php où on a un typage faible je trouve ça ridicule.

QuentinC

Je ne comprends pas : pourquoi est-ce que, avec un language à typage faible, quelqu'un fixerai le nom de sa variable à représenter un type si la variable peut changer de type ? C'est se limiter inutilement, non ?

Ah, et tu ne t'en sers jamais ailleurs dans le code ! Ok. Merci.

Stranger

Si, mais je ne pense pas que l'IDE saura mieux que moi à quel endroit je veux l'utiliser. Je ne comprends pas en quoi c'est plus pertinent si tu viens de définir une variable que l'auto-complétion dans les autres cas.

Mais personne n'a jamais dit que l'autocomplétion servait à comprendre les fonctionnalités, on se tue à t'expliquer que c'est à ça que sert la documentation. L'autocomplétion sert à écrire le code, quand tu connais l'existence d'une fonctionnalité parce que tu viens d'en discuter avec le dev qui l'a implémenté, parce que tu l'as implémentée il y a deux ans, parce que tu t'en es servie hier, parce que…

Stranger

Si, ça a été dit, et c'est pour ça que je reprends le propos.

La plupart du code écrit est plus ou moins autodocumenté pour permettre, comme Stranger l'a également dit, de comprendre les fonctionnalités uniquement avec les prototypes et l'autocomplétion.

Fraggy

Si, ça a été dit, et c'est pour ça que je reprends le propos.

La plupart du code écrit est plus ou moins autodocumenté pour permettre, comme Stranger l'a également dit, de comprendre les fonctionnalités uniquement avec les prototypes et l'autocomplétion.

Fraggy

entwanne

My bad je me suis mal exprimé. Il fallait lire "trouver" et non "comprendre". Le principe étant qu'avec du code autodocumenté, tu es capable de comprendre l'effet d'une fonction/d'un attribut juste en lisant son nom. Du coup, quand tu recherche une fonction précise dans une classe que tu connais pas, tu la trouve en 2 sec.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte