Software Development Tools that Boost our Productivity

Outils de développement logiciel qui augmentent notre productivité

Le développement logiciel est un processus complexe et chronophage. C'est pourquoi les spécialistes qui y travaillent utilisent un ensemble d'applications et de systèmes pour effectuer leurs tâches de manière confortable et efficace. Il existe une large gamme d'environnements de bureau, d'éditeurs de code et d'autres logiciels qui améliorent le travail des développeurs. Nous vous montrerons les outils que nous aimons et utilisons régulièrement.

Matériel nous permettant de travailler en douceur avec le logiciel

Avant de passer aux outils de développement, nous tenons à mentionner brièvement notre équipement car son choix influe également sur notre productivité et le confort du travail. L'outil de base de chaque développeur est évidemment un ordinateur. Depuis le tout début de Droptica, nous n'achetons que des ordinateurs portables afin d'avoir la possibilité de travailler à distance depuis n'importe quel endroit. Cela a toujours été crucial pour nous, car nous travaillons dans des équipes distribuées, nous nous déplaçons entre nos bureaux situés dans différentes villes, et rendons également visite à nos clients.

Nous choisissons toujours des ordinateurs portables performants afin que les capacités matérielles ne bloquent pas le travail de nos développeurs. Récemment, nous avons commandé des ordinateurs portables Lenovo ThinkPad X1 Extreme et Dell Precision 5540. Ils ont des processeurs Intel i7, six cœurs et obtiennent plus de 5500 points au Multi-Core Score dans Geekbench 5, un benchmark multiplateforme.

Cependant, un seul écran ne suffit pas pour travailler confortablement, donc nous branchons également deux moniteurs externes Dell de 27 pouces Full HD. En conséquence, chaque développeur chez Droptica travaille sur trois écrans.

Outils de développement logiciel que nous utilisons

Vous verrez ci-dessous un bon nombre d'outils. Cela vient du fait que chacun utilise un ensemble légèrement différent de plateformes et d'applications en fonction de son style de travail. Cependant, comme vous le remarquerez probablement, la plupart de ces outils sont open-source car nous développons et promouvons des solutions basées sur cette technologie.

Pour faciliter votre navigation dans cette liste, nous avons regroupé les outils de programmation en quatre catégories : systèmes d'exploitation et environnements de bureau, extensions GNOME, IDE (environnements de développement intégrés) et éditeurs de code, et autres logiciels simplifiant le travail quotidien des développeurs.

Systèmes d'exploitation et environnements de bureau

Le système d'exploitation que tous les développeurs chez Droptica utilisent est Linux. Étant donné qu'il s'agit d'un système open-source, nous pouvons facilement l'adapter à nos besoins et partager des copies de ces versions personnalisées entre nous. Vous pouvez encore mieux adapter Linux à vos besoins en choisissant votre version préférée, qui est appelée une distribution. Il y en a plus de 200 !

Nous utilisons deux des distributions Linux les plus populaires - Mint et Ubuntu. Les deux conviennent également aux débutants, sont très stables, basés sur Debian (Mint est en plus basé sur Ubuntu), équipés d'outils de base dans la version régulière et bénéficient d'un bon support communautaire en ligne. Cependant, la majorité d'entre nous préfère Ubuntu (principalement la version 20.04 mais aussi la version 18.04), car il y a plus de contenu de tutoriel lié à cette distribution disponible pour les utilisateurs avancés.

Nous n'utilisons pas seulement Linux sur nos ordinateurs, mais développons également toutes les applications sur les serveurs de production. La compatibilité des systèmes élimine les situations où quelque chose fonctionne pour un développeur et ne fonctionne pas pour un autre.

Environnements de bureau

Linux offre également un large choix d'environnements de bureau, comme KDE, MATE, GNOME, Xfce et Cinnamon. Ce dernier est utilisé par nos développeurs travaillant sur Linux Mint car c'est un environnement de bureau phare pour cette distribution. Il a un look épuré avec des polices faciles à lire et des combinaisons de couleurs. Le bureau Cinnamon n'est pas encombré de raccourcis et d'icônes inutiles. Vous pouvez configurer ce que vous souhaitez voir sur celui-ci dans le menu Paramètres du système => Bureau. Parmi les autres avantages de cet environnement de bureau, on trouve :

  • configuration - le centre de contrôle Cinnamon vous donne accès à de nombreuses options de paramètres de bureau. Vous pouvez par exemple, changer les polices de texte, extraire des thèmes depuis le web, ou activer des effets.
Centre de contrôle Cinnamon personnalisé par l'un de nos développeurs

Centre de contrôle Cinnamon personnalisé par l'un de nos développeurs

  • Le panneau Cinnamon - inclut un menu avec les applications fréquemment utilisées, une zone de notification et le sélecteur d'application. Par défaut, le panneau est configuré de manière très simple. Cependant, comme avec le centre de contrôle, vous pouvez l'ajuster à vos préférences, ainsi que d'ajouter de nouveaux lanceurs de programme.

Bien que nous aimions Cinnamon, la plupart d'entre nous utilisent GNOME avec Ubuntu. Cet environnement de bureau a une interface utilisateur minimale, ce qui rend son utilisation facile. En outre, un bureau sans icônes nous permet de mieux nous concentrer sur le travail en cours. Pour nous aider à le faire, il y a une autre fonctionnalité précieuse - les espaces de travail dynamiques. Au lieu d'un bureau avec toutes les fenêtres actuellement ouvertes, vous pouvez les organiser dans plusieurs espaces de travail. C'est une solution pratique, par exemple, pendant que vous téléchargez un gros fichier sur un espace de travail, vous pouvez librement accomplir vos tâches sur l'autre. Et que signifie le fait que les espaces de travail sont dynamiques ? Initialement, vous avez un seul espace de travail. Au fur et à mesure que vous ouvrez des applications, un nouvel espace de travail vierge est automatiquement généré. Puis, lorsque vous fermez toutes les applications dessus, l'espace de travail nouvellement créé est supprimé.

Extensions GNOME

Un autre fait que nous aimons à propos de GNOME est qu'il possède de nombreuses extensions qui améliorent le travail avec le système d'exploitation. Si vous utilisez le navigateur Chrome, nous vous recommandons d'ajouter le plugin GNOME Shell integration car il simplifie l'installation des extensions GNOME. Vous trouverez ci-dessous celles que nous utilisons.

Choisir le périphérique d'entrée et de sortie audio

Cette extension affiche une liste des périphériques d'entrée et de sortie audio dans le menu d'état sous le curseur du volume.

Caffeine

Nous n'avons pas à nous soucier du verrouillage de notre écran lorsque nos ordinateurs sont inactifs. Caffeine désactive l'économiseur d'écran et l'auto-suspension.

Dash to Dock

Pour lancer plus facilement les applications et passer rapidement entre les fenêtres et les bureaux, cet outil déplace le dash en dehors de l'aperçu en le transformant en un dock. Et nous n'avons pas à quitter la vue du bureau.

Avec l'aide de l'outil Dash to Dock, nous pouvons facilement lancer les applications et passer rapidement entre les fenêtres et les bureaux

Source : Dash to Dock

Dash to Panel

Avec cet add-on, nous avons une zone de notification et les lanceurs d'application connectés en un seul panneau puisqu'il déplace le dash dans le panneau principal de GNOME.

Centre de notifications

Il nous permet de séparer le centre de notifications et de le placer sur le panneau supérieur. En utilisant l'extension, nous pouvons également personnaliser le centre.

Nous recommandons également d'autres extensions GNOME qui simplifient notre travail quotidien, comme Switcher, GSConnect, Tweaks (c'est une fonctionnalité par défaut d'Ubuntu 20, mais une extension pour la version 18), Clipboard Indicator, et AlternateTab.

IDE et éditeurs de code

L'IDE que nous utilisons est PHPStorm car il est parfait pour travailler dans Drupal dont nous sommes spécialistes. Cet environnement de développement intégré prend en charge toutes les fonctionnalités du langage PHP, fournit des complétions de code et des refactorisations, et prévient les erreurs de façon continue. Toutes les possibilités qu'offre PHPStorm augmentent la productivité du travail avec le code.

L'IDE que nous utilisons est PHPStorm

Source : JetBrains

En plus de PHPStorm, nous utilisons PHP CodeSniffer. C'est un outil très pratique qui nous aide à maintenir un code clair et conforme aux normes.

Éditeurs de code

L'éditeur de code qui soutient le travail quotidien de certains de nos développeurs est Sublime. Il fonctionne avec de nombreux langages de programmation et de balisage. Parmi les fonctionnalités utiles qu'il propose, il y a :

  • Palette de commandes - elle contient des commandes ou éléments fréquemment utilisés,
  • Goto Anything - une option rapide pour ouvrir n'importe quel fichier dans le projet sur lequel nous travaillons actuellement,
  • sélections multiples - avec cette fonctionnalité, nous pouvons appliquer des changements à de nombreuses lignes de code en même temps.

Un autre outil que certains d'entre nous utilisent pour l'édition de code est Visual Studio Code. Il prend en charge nativement Node.js, JavaScript et TypeScript mais avec l'aide d'extensions, vous pouvez également travailler avec PHP, Java et Python pour ne citer que quelques exemples. L'éditeur de code est équipé de IntelliSense. Cette fonctionnalité principale fournit des complétions de code intelligentes basées sur les définitions de fonction, les types de variables et les modules importés. Vous pouvez voir ci-dessous comment ces complétions fonctionnent dans le code JavaScript.

Complétions de code dans Visual Studio Code, un éditeur de code

Source : Visual Studio Code

Un autre outil crucial pour nous en termes de travail avec le code est GIT - un système de gestion de versions open-source. Comme il s'agit d'une application en console, vous devez taper des commandes dans un terminal. Pour le rendre plus facile et plus rapide, certains de nos développeurs utilisent GIT GUI (Interface Graphique Utilisateur), à savoir le programme SmartGit. Nous l'aimons pour ses diverses fonctionnalités et son interface claire.

Concernant GIT, nous utilisons également d'autres outils pour simplifier le travail avec, comme GitK, le visualiseur d'historique graphique, et bash-git-prompt. Ce dernier nous montre des informations sur le dépôt que nous utilisons actuellement, comme le nom de la branche, et les fichiers mis en scène ou modifiés.

Autres logiciels simplifiant le travail quotidien des développeurs

Nous vous avons déjà montré un certain nombre d'outils de développement logiciel que nous utilisons chaque jour. Cependant, en plus des systèmes d'exploitation, des environnements de bureau, des IDE pour PHP, et des éditeurs de code, il existe de nombreuses autres applications qui soutiennent notre travail et augmentent notre productivité.

Travailler avec un terminal

Certains de nos développeurs utilisant GNOME se servent d'un terminal dédié à cet effet - Guake. C'est un outil simple, prêt à l'emploi dès l'installation. Le terminal prend en charge le travail avec plusieurs moniteurs et onglets et propose plus d'une centaine de palettes de couleurs prédéfinies.

Avec n'importe quel terminal Linux, vous pouvez accélérer votre travail avec Tmux, un multiplexeur de terminal. Il vous permet de créer de nombreux terminaux, d'y accéder et de les gérer à partir d'un écran unique. En utilisant cet outil, vous pouvez également basculer facilement entre différentes applications dans un seul terminal.

Le dernier programme que nous utilisons et recommandons pour le travail lié au terminal est Terminator. Cet émulateur de terminal pratique vous permet de réorganiser vos terminaux, de les organiser dans une structure en grille, et de sauvegarder de nombreux profils et mises en page via l'éditeur de préférences GUI.

Travailler avec des bases de données

Pour concevoir, modéliser, générer et gérer visuellement des bases de données, certains de nos développeurs utilisent MySQL Workbench. Avec cet outil, nous pouvons créer et optimiser des requêtes SQL, administrer des environnements MySQL, ainsi que surveiller des applications MySQL sur le Tableau de bord de performance.

MySQL Workbench est un outil pour concevoir, modéliser, générer et gérer des bases de données

Source : MySQL Workbench

Un autre outil que certains d'entre nous utilisent pour gérer MySQL mais également PostgreSQL et SQLite est TablePlus. Nous pouvons administrer de nombreuses bases de données à la fois dans une application native et rapide. Ses nombreuses fonctionnalités de sécurité (comme l'authentification en plusieurs étapes) assurent la protection des bases de données.

Organisation du travail

En dehors de Jira que nous utilisons pour la gestion de projet, nous avons également nos outils de gestion de tâches préférés pour organiser le travail quotidien. Certains d'entre nous recommandent Joplin, une application open-source de gestion des tâches. Les notes sont commodément ordonnées en carnets et vous pouvez facilement voir leur historique. L'application est d'abord hors ligne, disponible sur desktop, mobile et terminal.

Chaque jour, nous nous connectons également à diverses applications web et logiciels. Il est difficile de se souvenir de tous les mots de passe et dangereux de les garder dans de nombreux endroits au hasard. C'est pourquoi nous utilisons des gestionnaires de mots de passe, open-source, à la fois pour l'entreprise et pour des usages individuels. Dans ce dernier cas, certains d'entre nous utilisent KeePass dans lequel tous les mots de passe sont stockés dans une base de données verrouillée par une clé maître.

Collaboration

Nous travaillons en équipes distribuées, car nous avons nos bureaux dans quatre villes différentes, et souvent aussi à distance. Ensuite, une coopération fluide est d'autant plus importante pour nous. Pour expliquer comment quelque chose fonctionne, nous utilisons différents outils de capture d'écran (chacun ayant ses préférés), comme Shutter, et Flameshot. Certains développeurs préfèrent enregistrer leurs actions, plutôt que de les montrer sur des exemples statiques, par exemple avec Kazam, un programme d'enregistrement d'écran ou Peek. Avec ce dernier outil, nous pouvons non seulement enregistrer des zones d'écran, mais également créer un GIF animé.

Évidemment, nous communiquons beaucoup entre nous au quotidien. Notre principal outil à cet effet est Slack, mais certaines personnes discutent aussi, par exemple, sur Google Hangouts. Dans ce cas, pour avoir toutes les conversations de différentes plateformes en un seul endroit, certains développeurs utilisent Franz, une application de messagerie vous permettant d'ajouter vos comptes de différents outils de chat.

Dans Franz, une application de messagerie, vous pouvez ajouter vos comptes de différents outils de chat

Source : Franz

Pour stocker des fichiers et les partager avec des collègues, certains d'entre nous utilisent FileZilla - un logiciel FTP (File Transfer Protocol) gratuit et open source. Il est facile à utiliser et permet l'édition de fichiers à distance.

Navigateurs et clients de messagerie

Chez Droptica, nous utilisons la suite Google, donc Chrome et Gmail sont nos compagnons quotidiens. Cependant, certaines personnes ont aussi et aiment Chromium (Google utilise son code source pour Chrome) et Thunderbird. Ce dernier est un client de messagerie multiplateforme qui vous permet de connecter des comptes de messagerie de différents fournisseurs pour avoir tous les messages en un seul endroit.

Développement d'API, machines virtuelles et conception graphique

Beaucoup de nos développeurs utilisent volontiers Postman. C'est une plateforme de collaboration pour le développement d'API. Différentes personnes sont impliquées dans les questions liées à l'API. Certains la conçoivent, d'autres la développent, le support client et les clients eux-mêmes l'utilisent au quotidien. Dans Postman, les consommateurs d'API peuvent être à jour avec les derniers ajustements. Ils peuvent également laisser des commentaires aux développeurs et autres producteurs. Ces derniers peuvent utiliser ces avis pour améliorer l'API.

La section des commentaires dans Postman, l'un des outils de développement logiciel que nous utilisons

Source : Postman

VirtualBox est un outil moins fréquemment utilisé parmi nous, mais toujours très précieux. C'est un logiciel de virtualisation open source pour créer et gérer des machines virtuelles invitées, fonctionnant sur des hôtes Windows, Linux, Macintosh, Solaris et OpenSolaris.

Pour un travail de conception rapide, certains d'entre nous aiment utiliser Krita, un logiciel de peinture open source. Il offre plus de cent pinceaux, outils vectoriels, et boîtes de texte. Vous pouvez également élargir votre ensemble d'outils en important des packs de textures et de pinceaux d'autres créateurs.

Liberté de choix

Comme vous le voyez, nous utilisons une large gamme de développement logiciel et d'autres outils. C'est parce que chaque personne dans notre agence Drupal peut composer un ensemble qui correspond le mieux à ses préférences individuelles. Travailler avec nous, vous pourriez introduire et utiliser votre logiciel préféré. Nous savons que cela augmente la productivité et améliore le confort de travail.

Looking for a job as a PHP/Drupal Developer?