Cette publication ne fait pas partie de la bibliothèque YouScribe
Elle est disponible uniquement à l'achat (la librairie de YouScribe)
Achetez pour : 14,99 € Lire un extrait

Téléchargement

Format(s) : PDF

avec DRM

Métier : développeur - 2e éd.

De
288 pages

Dans les professions informatiques le fossé qui existe entre le monde académique (écoles d'ingénieurs et facs) et le monde professionnel (SSII et éditeurs de logiciels) reste énorme. Ce livre a été conçu pour aider les jeunes qui démarrent dans ces carrières à le franchir le plus rapidement et le plus efficacement possible. Issu de l'expérience d'un ingénieur devenu chef de projet ayant eu à recruter et encadrer de jeunes développeurs, il explique en détail comment se pratique « en vrai » le métier de développeur, avec les outils informatiques utilisés, avec l'organisation des entreprises, avec les contraintes de marché, d'équipes, de délais, de concurrence... Vivant, concret et parfois caustique ce livre est un « kit de survie professionnelle » pour démarrer efficacement dans la jungle des SSII et des start-up high tech.

Voir plus Voir moins
1.2 Goodenough developer13 
Le système dexploitation Le système dexploitation, du point de vue du développeur, ce sont tou tes ces librairies de fonctions ou API qui permettent de dialoguer avec le système, notamment pour la gestion de la mémoire, la gestion des tâches, laccès au système de fichiers, et linterface graphique. Nous reviendrons en détail sur ce sujet au chapitre 6, « Lessentiel du système ». Une grande partie de ces fonctions est déjà encapsulée dans les librairies du langage, comme la librairie C ou STL. Par exemple, pour ouvrir un fichier de donnée sous Windows, dans la plupart des cas un simplefopen suffit. Il est inutile daller appeler la fonctionCreateFiledu système. Mais, pour des applications un peu plus pointues, le développeur doit souvent faire appel directement au système. Par exemple pour accéder à laregistryde Windows, où sont stockés tous les paramètres des applica tions et du système, vous navez guère dautre choix que dutiliser les API commeRegOpenKeyEx,RegQueryValueEx, etc.
Bien sûr, vous trouverez également de nombreuses librairies commercia les qui encapsulent un grand nombre des fonctionnalités du système sous forme de classes puissantes et faciles à utiliser. Les plus célèbres de ces librairies sont probablement les MFC de Microsoft, fournies gratuite ment avec le Visual C++, OWL de Borland, ou SourcePro de Rogue Wave Software. Plus récemment le fameux .NET de Microsoft peut être considéré comme une vaste librairie de ce type.
Les technologies avancées Il existe des dizaines et des dizaines de technologies diverses et variées, disponibles sous forme de librairies, doutils, denvironnements de dével oppement ou dinfrastructures complètes : MFC, COM, DCOM, CORBA, RPC, SOAP, DirectX, OpenGL, ActiveX, OLE, XML, JINI, .NET, etc. Certaines se retrouvent soudainement sur le devant de la scène. Elles sont évoquées dans tous les magazines comme la solution à tous vos problèmes, et puis souvent elles disparaissent sans que cela némeuve personne. Les dernières en date sont toutes les technologies 1 relatives à lInternet bien sûr, mais aussi XML et linfrastructure .NET . Fautil vraiment se précipiter sur les ouvrages consacrés à ces nouveautés ? Je ne pense pas. Les entreprises adoptent les nouvelles technologies beaucoup moins précipitamment que les journalistes, et on les comprend. Linvestissement en formation peut savérer lourd et parfois en pure perte, surtout si linstigateur dune nouvelle technologie décide peu après de labandonner pour une autre, comme cela est arrivé si souvent. Lessentiel est de toujours se tenir au courant, tout simple ment, et surtout dentendre plusieurs sons de cloche avant de se faire
1..NET Framework. © Dunod  La photocopie non autorisée est un délit.
14Chapitre 1 Goodenough software 
une idée. Ensuite, vous pourrez décider de plonger dans le détail de lune ou lautre technologie selon les besoins de votre projet en cours ou à venir. Mais tant quune technologie nest pas suffisamment mature ni suffisamment utilisée, à moins dêtre dans un laboratoire de recher che, soyez prudent.
Et .NET alors ? Nous ne parlerons que très peu de linfrastructure .NET de Microsoft car il sagit dune solution purement Windows, pour linstant, et il faudra probablement attendre encore un peu avant quelle ne devienne un standard utilisé par tous, sur ce système. Ce quil faut savoir cest que .NET se propose de remplacer une grande partie des technologies évoquées cidessus en créant une infrastructure de classes « à la STL », mais utilisable par plusieurs langages de program mation (C++, Visual Basic, C#, etc.). Comme la plateforme visée est exclusivement Windows, .NET inclut également de nombreuses classes qui encapsulent directement le système, notamment pour linterface util 1 isateur , comme le font les MFC. Dautres classes permettent de gérer XML, les servicesWeb, lemessagingun réseau, les applications dis sur tribuées, la cryptographie, lemultithread, etc. Avoir tout ça dans une seule infrastructure apporte évidemment un gain de productivité énorme. Mais il y a un prix à payer :  laspect purement Microsoft/Windows de linfrastructure ;  le poids de cette infrastructure (plusieurs mégas de librairies à redistribuer) ;  linvestissement de temps pour apprendre à utiliser toutes les classes, alors quil sagit dune solution propriétaire et non standard, contrai rement à la librairie du C ou STL. Lintérêt dutiliser .NET est donc à étudier au cas pas cas. Si vous faites des applications uniquement sous Windows et très orientéesWeb(ASP, ADO,Web Services, etc.), alors .NET est sûrement ce quil vous faut. Pour le reste, la prudence est de mise.
Maîtriser suffisamment la dernière technologie à la mode pour faire un petit exemple « sympa » et épater la galerie, cest bien. Maîtriser parfaitement la technologie précédente pour faire un produit qui fonctionne et qui se vend, cest mieux.
1.2.4 Les méthodes
Avoir les connaissances est nécessaire mais pas suffisant. Pour traiter un problème comme celui du convoyage des bagages dans un aéroport, il faut des méthodes : des méthodes danalyse, des méthodes de concep tion, des méthodes de programmation, et des méthodes dorganisation du temps et des ressources. Cest ce que nous aborderons dans le chapitre suivant, intitulé « Les outils du développeur ».
1. Voir les jeux de classesSystem.DrawingetSystem.Windows.Forms.
1.2 Goodenough developer15 
Vous trouverez de nombreux livres traitant de manière très détaillée de diverses méthodes danalyse et de conception, comme Merise, SADT, JSD, OOD, etc. DansSpécification et Conception des Systèmes, Une Métho dologie (1991), JeanPaul CALVEZ présente un large panorama de ces méthodologies (chapitre 7). Il faut savoir que pour la plupart des projets logiciels qui sont réalisés par de petites équipes dune dizaine de déve loppeurs, lintérêt des méthodes extrêmement formelle est limité. Leurs avantages compensent rarement leurs lourdeurs, et la plupart des déve loppeurs ne sont pas particulièrement enclins à se former et à utiliser de telles procédures, quils trouvent trop contraignantes. La méthode « pragmatique » donne en général de bien meilleurs résul tats. Cest de cette « méthode » de travail que nous allons parler dans la suite de ce livre : les règles de bon sens, les aspects pratiques, les principes fondamentaux et aussi quelques trucs et astuces qui viennent avec lexpé rience, bref, quelques bribes de ce que lon appelle volontiers « le métier ». Vous trouverez dans la bibliographie en fin douvrage les références de nombreux livres qui traitent en détail chacun des sujets évoqués ici.
1.2.5 Humilité
Celui qui ne comprend pas, et qui le dit est celui qui fait le plus évidemment preuve dintelligence, car il a compris quil na pas compris et cest ce qui est le plus difficile à comprendre. Remercionsle, car il fait un cadeau à tous ceux qui, autour de lui, croyaient, à tort, avoir compris. Albert JACQUARD, 2001
Il faut bien le reconnaître, en général, lhumilité nest pas le point fort des ingénieurs. Un cursus scolaire souvent un peu trop parfait ne favorise pas beaucoup la remise en question de soi, de ses connaissances et de ses compétences. Pourtant, pour devenir un bon développeur, et surtout pour le rester, il faut admettre quon ne finit jamais dapprendre et que chaque certitude nest jamais que la limite de sa propre intelligence. Chaque jour, il faut remettre en cause ses connaissances techniques, ses méthodes, ses outils, ses habitudes de programmation, en se demandant objectivement sil nest pas possible de faire mieux. Ce genre de conseil semble évident quand on le lit quelque part, mais en pratique, on a plu Chaque tôt tendance à loublier très vite. Cest humain. certitude nest Le complexe de supériorité visàvis des collègues de léquipe Qualité, du jamais que la Support technique, de la Documentation, du Marketing, ou du Commer limite de sa proprecial est une autre tentation bien humaine qui guette beaucoup de déve intelligence.loppeurs. Pourtant, si lon regarde un peu autour de nous comment travaillent quelques grandes individualités, comme Michael SCHUMACHER ou Olivier de KERSAUSONpar exemple, on remarque quils évoluent pres que tous au sein dune équipe extrêmement performante. Cest là leur pre © Dunod  La photocopie non autorisée est un délit.
16Goodenough softwareChapitre 1 
mière qualité : avoir trouvé les bons équipiers et entretenir avec eux une relation constructive. Un grand logiciel se réalise de la même manière, avec une équipe de gens talentueux où chacun apporte sa brique à lédifice. Vous êtes pour votre équipe Commercial ce quest lingénieur mécanique au pilote de Formule 1 : sans vous, pas de voiture pour gagner, et sans eux, impossible de courir la moindre course.
Pour finir, noublions pas ce que lon fait : du logiciel. Nous ne créons pas de richesse à proprement parler, nous ne sauvons pas de vies, nous ne mettons pas la nôtre en jeu et nen prenons aucune sous notre res ponsabilité. Pour la plupart dentre nous, linformatique est une passion, presque un jeu, et un jeu bien payé avec ça. Alors, restons simples, et faisons en sorte que nos logiciels soient vraiment utiles, faciles à utiliser, fiables, conviviaux, performants, divertissants, bref, quils apportent un plus à ceux pour qui nous les écrivons.
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin