Recent Videos

lundi 22 juillet 2013

Comment devenir un meilleur développeur web

" "
Comme dans tous les domaines, notre aspiration en tant que professionnel et de nous dépasser est de se démarquer dans notre métier. Voici quelques conseils pour devenir un meilleur développeur web.

1 - Lire le manuel

C’est un classique, mais il ne faut jamais l’oublier. Attention, il n’est pas question ici de lire de couverture à couverture une brique décrivant un langage de programmation.  Pour moi, le délicieux acronyme « RTFM » signifie plutôt d’éviter d’entrer immédiatement notre problème dans Google en espérant une solution immédiate. Souvent, il suffit de prendre le temps de jeter un coup d’œil dans la description des fonctions que l’on utilise pour comprendre notre problème. Il est vrai qu’il est parfois plus long de chercher dans un manuel, mais vous y découvrirez de nombreux avantage.
  1. Vous saurez le  «pourquoi » de votre problème et non seulement le : «comment » faire pour le régler.
  2. Vous vous familiariserez rapidement avec la documentation de vos outils. Cela vous permettra de trouver beaucoup plus rapidement de l’information lorsque vous rencontrerez des problèmes plus complexes.
  3. Cela vous donnera la chance de trébucher sur des fonctions ou des comportements de l’outil en question que vous n’auriez jamais découvert autrement.
  4. Finalement, cela vous apportera une vue beaucoup plus globale du fonctionnement de ce que vous utilisez comme langages, api, framework etc. Vous serez capable de régler certains problèmes avant même qu’ils ne se posent.
Sans mettre de côté toutes les ressources qui sont mises à notre disposition: blog forums ect. , Le premier recours devrait toujours être la documentation qui, ceci dit, est spécifiquement rédigé pour nous : développeur.

2 - Questionnez vos habitudes ainsi que les « best practices » dont vous avez entendu parler.

En temps que développeur vous aimez utiliser des standards qui ont fait leurs preuves, et c’est une excellente chose. Cependant, gardons en tête que la méthode parfaite de coder n’existe pas. En réfléchissant sur les normes déjà établies et en comprenant les motivations qui ont précédés ces normes vous serez capable de repousser leurs limites.
Certains analystes iront même jusqu’à détruire tout ce que l’on connait d’une méthode pour en reconstruire une nouvelle encore plus solides. Soyez audacieux lorsque vient le temps de rendre votre code encore plus propre, plus efficace et plus clair que la norme le prévoit. Qui sait, peut-être un jour ce sera votre tour d’écrire cette norme.

3 - Codez et commentez toujours comme si vous alliez réutiliser votre code

On passe notre temps à écrire du code qui accompli différente tâche mais on réutilise souvent les même manières de régler des problèmes. Lorsqu’une situation semblable apparaît, la première chose que nous faisons c’est d’ouvrir du vieux code pour s’en inspirer; Tout le monde fait cela. C’est normal et même une façon plutôt efficace de travailler. On ouvre le fichier et on se met à copier et coller sporadiquement du code. Malheureusement, à chaque fois il nous faut  renommer toutes les variables, changer le commentaire, les noms de fonctions parfois même des objets tout entier.
 Pourquoi ne pas faire un effort la première fois qu’on écrit une fonction?
  • Identifiez les éléments qui sont générique à toutes vos applications et donner leurs des noms liés à leur fonctionnalité plutôt qu’à leurs contextes. (ex : $user au lieu de $client_surfer)
  • Écrivez des commentaires relatifs à leur environnement direct et non au contexte global de l’application. ex :
    //Comparer les deux tableaux pour en extraire les rangé communes
    au lieu de:
    // Extraire les rapports financiers qui sont présents dans les tableaux $mes_rapport_favorit et $certain_rapport_du_site
Vous sauverez un temps fous à ne pas être obliger de renommer vos variable ou commenter de nouveau votre code ou pire encore, laisser des commentaires qui ne corresponde pas à votre code. Faites toutefois attention de ne pas tomber dans le piège de devenir trop vague dans vos description. Il n’y a rien de pire qu’un commentaire confus.

4 - Faites des prototypes

N’hésitez pas à essayer du code dans un environnement test et d’expérimenter plusieurs façons d’atteindre un même objectif. Parfois vous tomberez sur une solution plus rapide, plus performante ou plus simple pour atteindre votre but. Vous décèlerez les parties les moins robustes de vos fonctions ou objets.
La chose la plus intéressante dans le prototypage est que vous vous attacherez beaucoup moins à votre code. Vous vous sentirez beaucoup plus à l’aise de complètement recommencer une partie de votre travail. Cela peut paraître bête mais lorsque l’on implémente une fonctionnalité et que l’on découvre qu’elle ne répond pas à nos attentes, on a tendance à la « patcher ». S’il s’agit d’un prototype, vous vous ferez un plaisir de tout démonter pour mieux le reconstruire au lieu de rabouter ce qui existe déjà.

5 - Suivre des blogues et des Twitter ce n’est pas juste pour les designers

Tous les designers font un tour de leurs blogues préférés et des dernières tendances sur le web pour s’inspirer avant d’entamer une tâche. La construction d’interface graphique, les méthodes de travaille qu’ils utilisent ainsi que leurs outils sont en constante évolution.
 Une seconde… c’est vrai aussi pour nous non? Nous aussi nous avons besoins de savoir ce qui se fait de mieux dans notre domaine, de nous tenir à jour! « Les blogues, c’est pour les créatifs nous on programme. » : est un stéréotype qu’il faut voir disparaître. Souvenez-vous que pour créer une fonctionnalité, il faut être inventif et inspiré. Il y a des tonnes de programmeurs et d’analyste reconnus qui ont un blogue et un twitter, il est peut-être temps que vous fassiez vos devoirs!

Évidemment il y en a des dizaines d’autre qui valent la peine d’être consulté, cette liste n’est qu’un point de départ. Pour ce qui est de twitter je vous suggère de commencer par suivre les éditeurs des logiciels, librairies, framework et langages que vous utilisez couramment pour vous tenir au courant des sorties des nouvelles versions.
Une dernière pensée pour la route :
En tant que développeur, ne pas savoir comment régler certaines situations fait partie de notre quotidien. Dans notre métier, on se démarque non pas par ce que l’on sait déjà faire, mais parce que l’on est capable d’accomplir.

mercredi 10 juillet 2013

Éléments du langage de programmation

" "
Un langage de programmation est construit à partir d'une grammaire formelle, qui inclut des symboles et des règles syntaxiques, auxquels on associe des règles sémantiques. Ces éléments sont plus ou moins complexes selon la capacité du langage. Les modes de fonctionnement et de définition de la complexité d'un langage de programmation sont généralement déterminé par leur appartenance à l'un des degrés de la Hiérarchie de Chomsky.
Les règles de syntaxe
Définies par une Grammaire formelle, elles régissent les différentes manières dont les éléments du langage peuvent être combinés pour obtenir des programmes2. La ponctuation (par exemple l'apposition d'un symbole ; en fin de ligne d'instruction d'un programme) relève de la syntaxe.
Le vocabulaire
Parmi les éléments du langage, le vocabulaire représente l'ensemble des instructions construites d’après des symboles. L'instruction peut être mnémotechnique ou uniquement symbolique comme quand elle est représentée par des symboles d'opérations tels que des opérateurs arithmétiques (« + » et « - ») ou booléens (&& pour le et logique par exemple). On parle aussi parfois de mot clé pour désigner une instruction (par abus de langage car le concept de mot clé ne recouvre par celui des symboles qui font pourtant eux aussi partie du vocabulaire).
La sémantique
Les règles de sémantique définissent le sens de chacune des phrases qui peuvent être construites dans le langage, en particulier quels seront les effets de la phrase lors de l'exécution du programme2. La science l’étudiant est la sémantique des langages de programmation.
L’alphabet
l'alphabet des langages de programmation est basé sur les normes courantes comme ASCII, qui comporte les lettres de A à Z sans accent, des chiffres et des symboles6, ou Unicode pour la plupart des langages modernes (dans lesquels l'utilisation se limite en général aux chaînes de caractères littérales et aux commentaires, avec quelques exceptions notables comme C♯ qui autorisent également les identifiants unicode).
La plupart des langages de programmation peuvent prévoir des éléments de structure complémentaires, des méthodes procédurales, et des définitions temporaires et variables et des identifiants:
Les commentaires
Les commentaires sont des textes qui ne seront pas traduits. Ils peuvent être ajoutés dans les programmes pour y laisser des explications. Les commentaires sont délimités par des marques qui diffèrent d'un langage de programmation à l'autre tel que « -- », « /* » ou « // »6.
Les identifiants
Les éléments constitutifs du programme, tels que les variables, les procédures, ou les types servent à organiser le programme et son fonctionnement. On peut ainsi, par exemple, diviser un programme en fonctions, ou lui donner une structure par objets : ces éléments de structure sont définis par des identifiants ou des procédures par mot clé selon le langage.

Définition Du Langage de programmation

" "
Sous un angle théorique, tout langage informatique peut être qualifié de langage de programmation s'il est Turing-complet c'est-à-dire qu'il permet de représenter toutes les fonctions calculables au sens de Turing et Church (en admettant néanmoins pour exception à la théorie que la mémoire des ordinateurs n'est pas un espace infini).

Langage de programmation

" "
En informatique, un langage de programmation est une notation conventionnelle formelle destinée à formuler des algorithmes et produire des programmes logiciels qui les appliquent. D'une manière similaire à une langue naturelle, un langage de programmation est fait d'un alphabet, un vocabulaire, des règles de grammaire, et des significations.
Les langages de programmation permettent de décrire d'une part les structures des données qui seront manipulées par l'appareil informatique, et d'autre part d'indiquer comment sont effectuées les manipulations, selon quels algorithmes. Ils servent de moyens de communication par lesquels le programmeur communique avec l'ordinateur, mais aussi avec d'autres programmeurs; les programmes étant d'ordinaire écrits, lus, compris et modifiés par une communauté.
Un langage de programmation est mis en œuvre par un traducteur automatique: compilateur ou interpréteur. Un compilateur est un programme informatique qui transforme dans un premier temps un code source écrit dans un langage de programmation donné en un code cible qui pourra être directement exécuté par un ordinateur, à savoir un programme en langage machine ou en code intermédiaire, tandis que l'interpréteur réalise cette traduction 'à la volée'. Le choix d'un langage compilé ou interprété est capital et structurant lors du choix de la définition d'un nouveau langage[réf. nécessaire].
Les langages de programmation offrent différentes possibilités d'abstraction, et une notation proche de l'algèbre, permettant de décrire de manière concise et facile à saisir les opérations de manipulation de données et l'évolution du déroulement du programme en fonction des situations. La possibilité d'écriture abstraite libère l'esprit du programmeur d'un travail superflu, notamment de prise en compte des spécificités du matériel informatique, et lui permet ainsi de se concentrer sur des problèmes plus avancés.
Chaque langage de programmation reflète un paradigme, un ensemble de notions qui orientent le travail de réflexion du programmeur, sa technique de programmation et sa manière d'exprimer le fruit de ses réflexions dans le langage choisi.
Les premiers langages de programmation ont été créés dans les années 1950. De nombreux concepts de l'informatique ont été lancés par un langage, avant d'être améliorés et étendus dans les langages suivants. La plupart du temps la conception d'un langage de programmation a été fortement influencée par l'expérience acquise avec les langages précédents.

Bibliothèque de composants VCL

" "
Delphi bénéficie d'une excellente bibliothèque de composants visuels et non visuels, la Visual Component Library (VCL), dont le concept est similaire aux MFC de Visual Studio. La VCL permet entre autres de dessiner rapidement une application graphique, en masquant les appels aux complexes API Windows. Depuis Delphi 1, la VCL est améliorée par Borland à chaque nouvelle version de Delphi en veillant à une compatibilité quasi-totale dans l'interface de la bibliothèque, ce qui permet de migrer des projets en limitant la réécriture du code.
C++Builder exploite la même bibliothèque de composants et comporte un « traducteur » de Pascal Objet vers C++, tout du moins un C++ contenant des extensions propres à Borland compréhensible par le frère C++ de Delphi. Ainsi, tout code Delphi peut être exploité avec C++Builder.

Exemples de projets réalisés en Delphi

" "
  • Delphi lui-même et les autres outils Borland comme C++Builder
  • FL Studio (anciennement Fruity Loops), un séquenceur / éditeur audio
  • Total Commander, un gestionnaire de fichier avancé
  • ConTEXT, un éditeur de texte orienté développement
  • Dev-C++, un environnement de développement intégré sous Windows
  • Perl IDE, un environnement de développement intégré pour Perl sous Windows
  • Ad-Aware, un programme qui supprime les logiciels espions
  • Soldat, un jeu vidéo d'action gratuit sous Windows
  • Sensomusic Usine, un logiciel temps réel pour la scène musicale
  • DreamMail, un client de messagerie
  • BudgetExpress, un logiciel de finances personnelles
  • Beyond Compare, un outil de comparaison de fichiers
  • Cartopro, un logiciel permettant de transférer des données dans un GPS sur la base de cartes numérisées
  • PL/SQL Developer, un outil de développement PL/SQL
  • Toad, un outil d'administration et de développement de base de données par Quest Software
  • Game Maker, un logiciel de création de jeux vidéo
  • Kaspersky Anti-Virus
  • L'interface sous Windows de Skype, un logiciel de téléphonie par IP
  • SIPInside, un softphone sous License GPL
  • Omnichat, un logiciel de messagerie instantanée sans serveur, pour réseau local
  • Logicom, un logiciel de gestion commerciale et industrielle
  • APEL, un logiciel de gestion bâtiment et promoteur
  • Solsuite, un logiciel commercial de jeu de solitaire sous Windows
  • Tarot Expert, un jeu de tarot sous Windows
  • Geoplan, un logiciel de géométrie dynamique éducatif

Le futur de Delphi

" "
  • Delphi XE 3 : ce projet doit aboutir à la création d'un compilateur Pascal Objet multiplateforme pour Windows, MacOS, Linux, IOS et Android.
L'ensemble de ces plateformes est prévu pour 2013.