De l'importance de bien s'approprier son environnement de dev

icon Tags de l'article : ,

Novembre 28, 2018
Depuis 1 mois, j'ai commencé une nouvelle mission sur des technos qui n'ont rien à voir avec ce que je faisais avant.

Adieu le .Net et le web, maintenant je fais du mobile !
Bon, ok, en Angular/Ionic. Mais quand même.

Du coup, en commençant sur une nouvelle techno, j'ai dû passer par une étape difficile : l'appropriation d'un nouvel IDE.
Et bien aujourd'hui, ça se fait vraiment bien.

J'étais (et je suis toujours) très attaché à mon Visual Studio. J'ai considéré, pendant des années, que c'était le meilleur IDE du monde. Tellement avancé, efficace, performant...
Et là, je suis passé sur Webstorm de JetBrains.

Déjà, inutile de se le cacher, l'IDE est magique. Performant, rapide, doué dans tout... C'est l'équivalent web de Visual Studio. Il est même meilleur pour la partie JavaScript. (il vaut largement ses 6$ par mois de licence)

Mais plein de questions sont apparues... Comment m'habituer à mon nouvel environnement de travail ? Comment ne pas prendre plein d'habitudes qui me feraient perdre mes anciennes habitudes ?

Car j'ai quand même fait le grand saut : Clavier azerty + Windows + Visual Studio ===> Clavier qwertz + Mac + JetBrains WebStorm.

Du coup que faire ?
Personnellement, j'ai décidé que je n'allais pas m'adapter.

Je m'explique : je ne veux pas avoir à réapprendre par coeur tous les raccourcis clavier que je maîtrise depuis 8 ans.
Je sais que j'en suis capable, je suis même plutôt doué (j'ai réappris l'intégralité des raccourcis sur VSCode en une semaine), mais je veux pouvoir repasser sur un Visual Studio sans galérer.

Du coup, il y a un mois, j'ai ramené un clavier azerty (perso) que j'utilise depuis, et j'ai configuré mon OSX et mon WebStorm pour qu'ils utilisent exactement les mêmes raccourcis clavier que mon IDE classique, à savoir Visual Studio.

Ok... c'est chiant. Ok, ça prend une demi-journée. Ok, il faut rechercher l'appellation de chaque raccourci. Ok il faut debind/rebind plein de touches. Mais le résultat est incroyable.
Passé cette configuration, on retrouve instantanément ses réflexes. Sa réactivité. Sa vitesse de développement.

D'ailleurs ces deux derniers jours, pour mes cours, j'ai dû repasser sur du Windows / Azerty / Visual Studio.
Et bien ça s'est fait sans soucis. Je développe toujours aussi vite qu'avant. Je n'ai rien perdu.

0 temps d'adaptation. 0

Bref, lorsque vous passez sur un nouvel IDE, posez vous les bonnes questions :
  • Est-ce que je veux réapprendre tous les raccourcis clavier ? Ou configurer les miens ?
  • Police de caractères ? Thème de couleurs ? Même question.
  • Est-ce qu'il n'existe pas des plugins pour telle ou telle feature qui me manque ?
  • Est-ce que je préfère galérer 2 heures à tout configurer, ou 1 semaine à tout réapprendre ?

N'oubliez pas une chose. Les raccourcis clavier et la maîtrise de son environnement de dev, c'est une différence majeure entre un ninja dev et un dev moyen.

Quelqu'un qui ne développe qu'à la souris ne sera jamais aussi bon et performant qu'un dev qui maîtrise vraiment son IDE et ses raccourcis clavier.

A titre d'exemple, voici tous les raccourcis clavier que j'utilise quotidiennement (oui, quotidiennement) :
  • atteindre un fichier CTRL + ,
  • atteindre une classe CTRL + MAJ + ,
  • rechercher dans le fichier CTRL + F
  • rechercher dans tous les fichiers CTRL + MAJ + F
  • commenter CTRL + K => C
  • décommenter CTRL + K => U
  • réindenter CTRL + K + D
  • résoudre le problème que remonte l'IDE là où je suis (tooltip d'aide) CTRL + ;
  • lancer l'application F5
  • stopper le build CTRL + PAUSE
  • plier les méthodes CTRL + M + O
  • déplier les méthodes CTRL + M + L
  • créer un bookmark CTRL + K + K
  • lister ses bookmarks CTRL + K + L
  • mettre un point d'arrêt F9
  • renommer F2
  • refactorer CTRL + R
  • switcher entre vue et code behind CTRL + MAJ + HAUT/BAS
  • débugger (F10/F11)

Bref, si vous voulez devenir un ninja dev, prenez le temps de vous approprier votre environnement de dev !

Bookmarks dans Visual Studio

icon Tags de l'article : , ,

Aout 17, 2018
Woaw, je viens de découvrir l'existence des bookmarks dans Visual Studio...

Comme vous le savez peut-être, je suis un adepte des raccourcis clavier et de l'efficacité... mais je ne m'étais jamais posé la question de l'existence de bookmarks dans Visual Studio.

Pourtant c'est un besoin fréquent, noter un emplacement pour y revenir... A l'origine je me débrouillais en pinnant un fichier ou avec des breakpoints désactivés... Sauf qu'il y a une feature pensée pour !

Son fonctionnement est méga simple :

CTRL + K + K : Mettre/enlever un bookmark
CTRL + K + N : Aller au bookmark suivant
CTRL + K + N : Aller au bookmark précédent
CTRL + K + W : Afficher la liste des bookmarks

La liste ressemble à ça, et elle permet même de nommer ses bookmarks pour s'y retrouver plus facilement !.



En bref, une feature incontournable !

Créer un template Razor utilisable en JavaScript

icon Tags de l'article : , , ,

Aout 15, 2018
Hello tout le monde,

Aujourd'hui on va voir comment créer un template Razor utilisable en JavaScript.
C'est une problématique assez courante, et la solution que je propose vient d'une implémentation sur un projet pro... et le résultat est pas si mal.

A noter qu'on est à des années lumières d'un vrai moteur de template, et je ne peux que vous recommander d'en implémenter un si c'est un vrai besoin de votre projet.
Cette solution n'est proposée que pour dépanner, ou à utiliser sur un projet où on ne peut/veut implémenter de moteur de template.


Du coup, allons-y !

Tout d'abord, on va créer une vue partielle pour notre template :

@model Projet.ObjetHtmlTemplate

<div class="objet">
    <h1>@Model.Name</h1>
    <p>@Model.Description</p>
    <span class="price">@Model.Price</span>
</div>

Nous allons maintenant créer notre ViewModel, ici ObjetHtmlTemplate.

Deux choses sont cependant à noter sur ce template :
  • Tous ces champs sont des strings
  • Le constructeur va permettre une initialisation des champs avec une chaine en dur contenant des antiquotes et le nom de la variable.

Voyons la classe avant que j'explique le "pourquoi" :

public class ObjetHtmlTemplate
{
    public string Name { get; set; }
	
	public string Description { get; set; }
	
	public string Price { get; set; }
	
	public ObjetHtmlTemplate(bool initForJs = false)
	{
		if(initForJs) 
		{
			Name = "` + Name + `";
			Description = "` + Description + `";
			Price = "` + Price + `";
		}
	}
}

Voilà. Je pense que vous commencez à voir où je veux en venir : nous allons juste créer une méthode en JS qui prendra en paramètres Name, Description et Price, et cela renverra... le HTML généré préalablement par Razor... mais avec nos valeurs JS !

La prochaine étape est donc ce petit morceau de JavaScript dans notre vue :

<script>
	var getObjetHtml = function(Name, Description, Price) {
		return `@Model.Partial("_ObjetHtmlTemplate", new ObjetHtmlTemplate(true))`;
	};
</script>

Magique non ? Maintenant on a une jolie méthode JavaScript "getObjetHtml" qui prend 3 paramètres, et qui va renvoyer le HTML généré à partir de ces 3 paramètres. <3

Et côté ASP.Net, on peut utiliser notre vue partielle comme à notre habitude :

<ul>
@foreach(var item in Model.Items)
{
	<li>@Html.RenderPartial("_ObjetHtmlTemplate", new ObjetHtmlTemplate() { Name = item.Name, Description = item.Description, Price = Math.Round(item.Price, 2) })<li>
}
</ul>

Et... c'est tout ! Simple et efficace, que demander de plus ?!

Allez, bonne journée et bon dev à tous/toutes !

Bug avec bootstrap-datepicker dans sa version v4.17.45

icon Tags de l'article : , , ,

Aout 10, 2018
Hello,

Juste un micro article pour vous prévenir d'un bug dans la version 4.17.45 du bootstrap-datepicker...

Si vous êtes comme moi et que vous passez par des packages nugets, méfiez-vous : la dernière version en Nuget est la 4.17.45 qui contient des bugs.

(Dont un très chiant : si vous faites une sélection particulière en fonction du format, par exemple une sélection par mois uniquement, au 2eme clic le mode de sélection aura disparu).

Les bugs sont corrigés sur la dernière version en ligne : la 4.17.47.

N'hésitez pas à mettre à jour manuellement votre code, étant donné que le package Nuget est à la masse :(

Bon dev à tous/toutes.

Ranger les using "System" avant les autres, dans Visual Studio

icon Tags de l'article : , ,

Mars 27, 2018
Salut,

Si vous êtes comme moi, vous aimez bien faire les choses.

Or, en C#, on sait qu'il faut toujours mettre les using "System" avant les autres. C'est une bonne pratique, ça permet de s'y retrouver plus facilement, et de gagner en clarté/lisibilité.

Sauf que voilà, sans resharper... c'est chiant d'avoir à déplacer les using pour les trier automatiquement.

Sauf que voilà... y'a pas à le faire à la main.

Visual Studio le gère automatiquement aujourd'hui. Il faut juste l'activer.

Allez donc dans Tools => Settings, puis dans C# => Advanced.

Là, vous n'avez plus qu'à cocher la case "Place 'System' directives first when sorting usings".



Et c'est fait !

Bon dev et bonne journée tout le monde !