A place to cache linked articles (think custom and personal wayback machine)
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.html 33KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Maman, Papa, je suis développeur front-end et voilà ce que ça veut dire (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="https://wizbii.tech/maman-papa-je-suis-d%C3%A9veloppeur-front-end-et-voil%C3%A0-ce-que-%C3%A7a-veut-dire-fb7d98c5e0b8">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. Maman, Papa, je suis développeur front-end et voilà ce que ça veut dire (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="https://wizbii.tech/maman-papa-je-suis-d%C3%A9veloppeur-front-end-et-voil%C3%A0-ce-que-%C3%A7a-veut-dire-fb7d98c5e0b8">Source originale du contenu</a></h3>
  445. <section><div class="section-inner layoutSingleColumn"><p name="f4e0" id="f4e0" class="graf graf--p graf-after--figure">Mes parents n’ont aucune idée de ce que je fais.</p><p name="df6f" id="df6f" class="graf graf--p graf-after--p">On s’amuse souvent de cette réplique. C’est une façon de dire qu’on se sent incompris, que le métier qu’on exerce est complexe et que peu de gens peuvent en parler clairement. Mais je crois qu’on est avant tout coupable de s’en sentir valorisé. Comme si faire quelque chose que “personne” ne comprend était un facteur différenciant.</p><p name="b17f" id="b17f" class="graf graf--p graf-after--p">En vérité ce sentiment d’incompréhension tient plus à notre incapacité à l’expliquer et au fait que nous n’ayons pas pris le temps de le faire.</p><p name="f202" id="f202" class="graf graf--p graf-after--p">J’en suis coupable, et vous l’êtes peut être aussi. Mais j’ai bien l’intention de changer les choses avec l’ambition de vous donner, Maman, Papa, une image plus claire de ce que votre fils fait dans la vie.</p><h3 name="44bc" id="44bc" class="graf graf--h3 graf-after--p">Une diversité de développeurs</h3><p name="16f8" id="16f8" class="graf graf--p graf-after--h3">J’ai eu à présenter mon métier un bon nombre de fois. J’ai d’abord été très maladroit, imprécis et réducteur. Avec le temps, j’ai espoir de m’être assez amélioré pour maintenant offrir une explication simple et fidèle.</p><p name="803a" id="803a" class="graf graf--p graf-after--p">Ce dont je me suis rendu compte c’est qu’il y a, avant même le métier de développeur, un bon nombre d’aspects qui restent abstraits.</p><p name="2229" id="2229" class="graf graf--p graf-after--p">Pour beaucoup, un développeur c’est quelqu’un qui écrit du code. Cette définition n’est pas totalement fausse mais très réductrice. Ça revient à dire, par exemple, que le métier d’architecte ne consiste qu’à dessiner.</p><p name="e459" id="e459" class="graf graf--p graf-after--p">La première chose à comprendre c’est qu’il n’existe pas un seul “code”. Il existe en fait une très grande diversité de langages de programmation qui répondent chacun à une problématique précise. Le développeur qui conçoit des logiciels n’utilise pas les mêmes outils que celui qui développe des robots mécanisés, ni les mêmes langages que celui qui crée des sites internet.</p><p name="3f4e" id="3f4e" class="graf graf--p graf-after--p">Si il existe autant de métiers de développeurs, c’est parce qu’ils nécessitent chacun des compétences différentes. Programmer un robot demande de connaître son fonctionnement, les problèmes qu’il peut rencontrer et les usages attendus. Des challenges qui sont bien différents de ce que peut rencontrer un développeur d’applications mobiles par exemple. Lui doit maîtriser l’appareil, le contexte dans lequel il est utilisé, ses contraintes, etc.</p><p name="7626" id="7626" class="graf graf--p graf-after--p">En plus de maîtriser un (voir plusieurs) langage(s), il doit aussi maîtriser sa problématique, son support. Je pense qu’il est clair à ce stade qu’une seule et même personne ne peut pas raisonnablement faire toutes ces choses à la fois.</p><p name="5190" id="5190" class="graf graf--p graf-after--p">On peut donc dire qu’un développeur, c’est un spécialiste d’un besoin donné. Pour arriver à ses fins il doit en maîtriser les circonstances et technologies afin de proposer une réponse adaptée.</p><h3 name="6279" id="6279" class="graf graf--h3 graf-after--p">Pour ce qui est du web…</h3><figure name="9e0d" id="9e0d" class="graf graf--figure graf-after--h3"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 467px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 66.7%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*GAkCBKF0NyLWeLICbx5ATA.jpeg" data-width="1920" data-height="1280" data-action="zoom" data-action-value="1*GAkCBKF0NyLWeLICbx5ATA.jpeg" draggable="false"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*GAkCBKF0NyLWeLICbx5ATA.jpeg?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*GAkCBKF0NyLWeLICbx5ATA.jpeg"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*GAkCBKF0NyLWeLICbx5ATA.jpeg"></noscript></div></div><figcaption class="imageCaption">Cas très classique de l’utilisation d’une tablette : sur un bureau, devant un ordi (blague).</figcaption></figure><p name="57ab" id="57ab" class="graf graf--p graf-after--figure">Je ne peux malheureusement pas rendre grâce à tous les métiers de développeur dans cet article. Je m’en tiendrai à ceux qui se sont spécialisés dans la création de supports webs.</p><p name="2b97" id="2b97" class="graf graf--p graf-after--p">Je disais plus tôt qu’il existe une grande diversité de développeurs. Eh bien il existe, au sein même d’un domaine donné, encore d’autres métiers.</p><p name="ae67" id="ae67" class="graf graf--p graf-after--p">On compte sur le web des développeurs front-end, back-end, full stack, des “devops” et bien d’autres. S’il faut autant de monde pour créer un site internet, c’est parce que internet c’est compliqué. Je pense honnête de dire qu’aucun développeur web n’en maîtrise toute la chaîne. Certains aspects restent abstraits, même pour des gens qui le côtoient tous les jours dans un cadre professionnel.</p><p name="0291" id="0291" class="graf graf--p graf-after--p">Pour illustrer cette complexité, prenons un exemple : votre boîte email. Je suis prêt à parier que vous pouvez la consulter n’importe quand, n’importe où et depuis à peu près n’importe quel appareil : votre ordinateur, votre téléphone, votre télé, peut être même votre montre. Mais vous n’êtes pas les seuls, il y a probablement des milliers d’autres personnes qui se connectent en même temps.</p><p name="ad9a" id="ad9a" class="graf graf--p graf-after--p">Alors imaginez ces milliers de personnes assises devant votre ordinateur, toutes essayant de consulter leurs emails en même temps, sur le même ordinateur. Bien que physiquement impossible, c’est pourtant un peu ce qui se passe.</p><p name="a113" id="a113" class="graf graf--p graf-after--p">Il faut donc que le site qui vous permet de consulter vos emails soit capable d’accueillir tout ce beau monde, avec la quantité d’emails et d’appareils que ça sous-entends. En coulisse, des professionnels s’assurent que le site soit toujours disponible, d’autres que vos emails soient en sécurité, d’autres qui pensent l’interface et d’autres encore qui la construisent. Il y a entre votre navigateur et le site final, un grand nombre d’étapes et de métiers avant qu’un email ne s’affiche sur votre écran.</p><p name="c5e4" id="c5e4" class="graf graf--p graf-after--p">Mais ne nous égarons pas, présenter toutes ces personnes est un projet bien trop ambitieux pour cet article. Intéressons nous plutôt à ceux qui sont le plus proches de votre écran.</p><h3 name="2544" id="2544" class="graf graf--h3 graf-after--p">La métaphore de la voiture</h3><p name="90af" id="90af" class="graf graf--p graf-after--h3">Difficile de parler du développeur front-end sans son contexte tant il est lié à deux autres métiers : celui de designer et développeur back-end.</p><p name="c07b" id="c07b" class="graf graf--p graf-after--p">Un excellent parallèle est celui de la voiture, voyons comment elle se compare à la création d’un site internet.</p><figure name="62de" id="62de" class="graf graf--figure graf--layoutOutsetLeft graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 525px; max-height: 349px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 66.5%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*Da8GraGwYEVWXsCwqMglGQ.jpeg" data-width="1920" data-height="1276" data-action="zoom" data-action-value="1*Da8GraGwYEVWXsCwqMglGQ.jpeg" draggable="false"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*Da8GraGwYEVWXsCwqMglGQ.jpeg?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1200/1*Da8GraGwYEVWXsCwqMglGQ.jpeg"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1200/1*Da8GraGwYEVWXsCwqMglGQ.jpeg"></noscript></div></div><figcaption class="imageCaption"><a href="https://www.wizbii.com/?utm_source=medium&amp;utm_medium=article&amp;utm_campaign=maman_papa" data-href="https://www.wizbii.com/?utm_source=medium&amp;utm_medium=article&amp;utm_campaign=maman_papa" class="markup--anchor markup--figure-anchor" target="_blank">Ceci est une Wiz’Ferrari.</a></figcaption></figure><p name="d286" id="d286" class="graf graf--p graf-after--figure">La première étape dans la construction d’une voiture c’est de la concevoir, de la “dessiner”. Il faut la réfléchir en pensant aux besoins clients, au sens dans lequel la portière s’ouvre, comment la vitre se descend, etc. Il faut la penser dans tout ses cas d’usages et en produire une représentation concrète. Pour ce qui est du web, c’est le rôle du designer <em class="markup--em markup--p-em">(design = designer)</em>. C’est celui qui identifie les besoins et propose une interface adaptée.</p><p name="c69f" id="c69f" class="graf graf--p graf-after--p">Vient ensuite celui qui crée la carrosserie et toute la partie visible de la voiture en se basant sur le travail du designer. Il s’assure que tout est conforme, que la portière s’ouvre comme convenue, que les couleurs et matières sont respectées. Ça, c’est mon métier : celui de développeur front-end <em class="markup--em markup--p-em">(front = devant / façade)</em>. Je rends la rédaction d’un email possible via une interface interactive.</p><p name="7c7f" id="7c7f" class="graf graf--p graf-after--p">Et enfin, il y a tout le reste de la voiture. Tout ce qu’on ne voit pas de prime abord : tout ce qui se trouve sous le capot et la voiture. C’est celui qui s’assure que le carburant soit correctement distribué, peu importe le degré de pression de la pédale. Lui, c’est le développeur back-end <em class="markup--em markup--p-em">(back = arrière)</em>. Sur le web c’est celui qui s’assure que vos emails soient remis à votre destinataire en toute sécurité.</p><h3 name="f7ff" id="f7ff" class="graf graf--h3 graf-after--p">Et le code dans tout ça ?</h3><p name="5a4c" id="5a4c" class="graf graf--p graf-after--h3">Si j’ai si peu parlé de code jusqu’à maintenant, c’est parce qu’il n’est qu’un moyen d’arriver à nos fins. <em class="markup--em markup--p-em">Un développeur n’est pas payé pour écrire du code</em>, tout comme on ne paye pas un architecte pour passer son temps à dessiner.</p><p name="1342" id="1342" class="graf graf--p graf-after--p">Pourquoi est-ce qu’on paye un architecte alors ?</p><p name="8bba" id="8bba" class="graf graf--p graf-after--p">On paye un architecte pour qu’il conçoive un bâtiment. Pour qu’il écoute nos besoins, y réfléchisse et propose des solutions. Parce qu’il connaît bien mieux que nous toutes les problématiques à prendre en compte lorsqu’il s’agit de bâtir une maison.</p><p name="0ad4" id="0ad4" class="graf graf--p graf-after--p">Eh bien le métier de développeur c’est un peu pareil. Il exige d’être capable de comprendre les besoins, d’en saisir les enjeux pour formuler une solution adéquate. Des réponses qui sont bien différentes s’il s’agit de développer une boîte email, un réseau social ou un site vitrine.</p><p name="995d" id="995d" class="graf graf--p graf-after--p">Le code n’est pour ainsi dire que le cadet des soucis d’un développeur. La vraie complexité se situe dans la proposition d’une solution pertinente, efficace et fiable en connaissance des différents enjeux.</p><figure name="ef82" id="ef82" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 394px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 56.3%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*_wRL2vgOwXmj3ILvA_XyHg.jpeg" data-width="1920" data-height="1080" data-action="zoom" data-action-value="1*_wRL2vgOwXmj3ILvA_XyHg.jpeg" draggable="false"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*_wRL2vgOwXmj3ILvA_XyHg.jpeg?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1600/1*_wRL2vgOwXmj3ILvA_XyHg.jpeg"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*_wRL2vgOwXmj3ILvA_XyHg.jpeg"></noscript></div></div><figcaption class="imageCaption">Une représentation réaliste de code. On est bien loin de Matrix n’est-ce pas ?</figcaption></figure><h3 name="b094" id="b094" class="graf graf--h3 graf-after--figure">En résumé</h3><p name="0f56" id="0f56" class="graf graf--p graf-after--h3">J’espère à ce stade avoir démystifier un peu le métier de développeur. L’idée n’est pas de tout en savoir mais simplement que vous puissiez vous en faire une image. Je sais par exemple à peu près en quoi consiste le métier d’architecte mais serai incapable d’aller dans les détails.</p><p name="5e64" id="5e64" class="graf graf--p graf-after--p">En bref, ce qu’il faut retenir de cet article c’est que:</p><ul class="postList"><li name="af37" id="af37" class="graf graf--li graf-after--p">Il existe plein de métiers de développeurs complètement différents.</li><li name="7eb7" id="7eb7" class="graf graf--li graf-after--li">Internet c’est compliqué, c’est pour ça qu’il faut des gens spécialisés.</li><li name="9441" id="9441" class="graf graf--li graf-after--li">Il y a, entre autres, 3 acteurs qui jouent un rôle important dans la création d’un site internet : le designer, le développeur front-end et le développeur back-end.</li><li name="14cd" id="14cd" class="graf graf--li graf-after--li">Le designer est un concepteur qui crée des représentations graphiques du produit (dessine la voiture).</li><li name="e7f8" id="e7f8" class="graf graf--li graf-after--li">Le développeur front-end rend l’interface interactive en suivant les directives du designer (met la carrosserie).</li><li name="5e1d" id="5e1d" class="graf graf--li graf-after--li">Le développeur back-end s’assure que vos données soient bien conservées et en sécurité (s’occupe du moteur).</li><li name="4f18" id="4f18" class="graf graf--li graf-after--li">Enfin, un développeur est avant tout quelqu’un qui propose des solutions à un problème donné — le code n’est que sa matière première.</li></ul><p name="660d" id="660d" class="graf graf--p graf-after--li graf--last">Voilà Maman, Papa, c’est à ça que ressemble mon métier.</p></div></div></section>
  446. <section name="cf1a" class="section section--body section--last"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="e752" id="e752" class="graf graf--p graf--leading">N’hésitez pas à partager cet article avec vos Mamans/Papas ! Et pensez à lâcher un petit ❤️ si vous pensez qu‘il contribue à rendre notre communauté plus ouverte.</p><p name="14a8" id="14a8" class="graf graf--p graf-after--p graf--last">Je serai aussi curieux de savoir comment vous vous y prenez pour expliquer votre métier ? Que vous soyez développeur, ou pas !</p></div></div></section>
  447. </article>
  448. </section>
  449. <nav id="jumpto">
  450. <p>
  451. <a href="/david/blog/">Accueil du blog</a> |
  452. <a href="https://wizbii.tech/maman-papa-je-suis-d%C3%A9veloppeur-front-end-et-voil%C3%A0-ce-que-%C3%A7a-veut-dire-fb7d98c5e0b8">Source originale</a> |
  453. <a href="/david/stream/2019/">Accueil du flux</a>
  454. </p>
  455. </nav>
  456. <footer>
  457. <div>
  458. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  459. <p>
  460. Bonjour/Hi!
  461. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  462. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  463. </p>
  464. <p>
  465. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  466. </p>
  467. <p>
  468. Voici quelques articles choisis :
  469. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  470. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  471. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  472. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  473. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  474. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  475. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  476. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  477. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  478. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  479. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  480. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  481. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  482. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  483. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  484. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  485. </p>
  486. <p>
  487. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  488. </p>
  489. <p>
  490. Je ne traque pas ta navigation mais mon
  491. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  492. conserve des logs d’accès.
  493. </p>
  494. </div>
  495. </footer>
  496. <script type="text/javascript">
  497. ;(_ => {
  498. const jumper = document.getElementById('jumper')
  499. jumper.addEventListener('click', e => {
  500. e.preventDefault()
  501. const anchor = e.target.getAttribute('href')
  502. const targetEl = document.getElementById(anchor.substring(1))
  503. targetEl.scrollIntoView({behavior: 'smooth'})
  504. })
  505. })()
  506. </script>