Bonsoir!
Je suis un passionné d'informatique / développement que je fais en parallèle de mes études qui ne sont pas accès développement (master Ingénierie systèmes complexes parcours réseaux) mais cela n'empêche que je veux entretenir un niveau correct en informatique. J'ai toujours développé seul sans aucunes contraintes, c'est à dire des projets perso pas trop gros où cela n'a jamais posé de gros problème.
Mais j'aimerais faire les choses bien, avoir un code bien structuré , maintenable , portable ect..
Sachant que je n'aurais aucun cours la dessus, c'est à moi de me former moi même sur ces points. Quels sont mes options? :D
merci!
Acheter des livres, regarder des tutoriels, des vidéos, des forums ...
Je lance quelques idées en vrac :
- essaye de te lancer dans un projet fait en TDD.
- essaye de reprendre un projet en cours et essaye de faire des tests unitaires pour avoir un taux de couverture de 60% sans tricher, si tu sens que c'est compliqué, essaye de comprendre pourquoi, regarde du côté de l'injection de dépendance.
- essaye de poser un regard critique sur ton code pour voir s'il respecte les principes SOLID.
- initie toi à la programmation fonctionnelle avec un langage pas trop barbare (swift, javascript, python, scala)
Excepté le dernier point c'est pas forcément ce qu'on trouve de plus rigolo en programmation, c'est pas non plus ce qu'on fait vraiment à l'école, et pourtant c'est ce qui fait qu'un code est propre.
Aussi des livres sur comment bien coder. perso j'ai adoré :
- Writing solid code, apparement un must have chez microsoft avant, c'est toujours sympa à lire et c'est facile
- Functional Programming in Swift, qui m'a ouvert les yeux sur la PF
- Refactoring de Martin Fowler
- Refactoring to Pattern
- et pour enfoncer les portes ouvertes, clean code ou the pragmatic programmer
Apprends le Pascal Objet ou l'ADA, la tu sera bien obligé de faire un code structuré... ![]()
Tu as des articles ou des livres pour apprendre à bien coder, par exemple celui ci : http://a-pellegrini.developpez.com/tutoriels/coding-style/
programmation fonctionnelle
javascript
python
mon visage quand
Apprends plutôt l'OCaml (ou le Haskell, c'est pas si mal malgré les space leaks et les performances imprévisibles).
La plupart des autres langages mainstream qui méritent d'être mentionnés n'ont soit pas de typage statique (Racket, Clojure), soit ont des features de programmation fonctionnelle, mais avec du caca objet impossible à éviter répandu partout, juste pour racoler les développeurs entreprisy biberonnés au Java, qui n'ont toujours pas compris que la POO c'est juste nul.
Témoin: OOPSLA, une conférence (où des chercheurs publient leurs travaux) destinée à de la recherche autour de la POO, n'en parle plus trop depuis un paquet d'années. D'un point de vue recherche le domaine est mort, contrairement à celui de la programmation fonctionnelle. Et bizarrement, tous les langages à la mode ajoutent de la programmation fonctionnelle comme ils peuvent au langage, parce que les gens s'aperçoivent enfin que c'est le futur.
Si tu veux faire de la POO quand c'est vraiment utile, tu peux en faire en OCaml. Et tu n'en as pas répandu partout juste parce que les gens ont l'habitude.
Évidemment je ne parle pas des langages construits à l'arrache, qui n'ont aucune bonne propriété, n'offrent que très peu de garanties, qui font un peu tout en étant mauvais partout, et dont le seul intêret est la communauté plus concentrée à faire de la propagande qu'effectivement utiliser un bon langage, ce qui permet de rameuter du monde afin d'écrire plein de libs pour faire tout et n'importe quoi.
Tu reconnaitras que cela aurait un intêret pédagogique proche de zéro.
Le 20 septembre 2016 à 08:36:53 DaMoY a écrit :
Acheter des livres, regarder des tutoriels, des vidéos, des forums ...
Le mieux c'est certainement que je m'oriente vers un livre, car sur internet j'ai pas tellement trouvé.
Le 20 septembre 2016 à 08:50:40 dark_drow a écrit :
Je lance quelques idées en vrac :
- essaye de te lancer dans un projet fait en TDD.
- essaye de reprendre un projet en cours et essaye de faire des tests unitaires pour avoir un taux de couverture de 60% sans tricher, si tu sens que c'est compliqué, essaye de comprendre pourquoi, regarde du côté de l'injection de dépendance.
- essaye de poser un regard critique sur ton code pour voir s'il respecte les principes SOLID.
- initie toi à la programmation fonctionnelle avec un langage pas trop barbare (swift, javascript, python, scala)Excepté le dernier point c'est pas forcément ce qu'on trouve de plus rigolo en programmation, c'est pas non plus ce qu'on fait vraiment à l'école, et pourtant c'est ce qui fait qu'un code est propre.
Aussi des livres sur comment bien coder. perso j'ai adoré :
- Writing solid code, apparement un must have chez microsoft avant, c'est toujours sympa à lire et c'est facile
- Functional Programming in Swift, qui m'a ouvert les yeux sur la PF
- Refactoring de Martin Fowler
- Refactoring to Pattern
- et pour enfoncer les portes ouvertes, clean code ou the pragmatic programmer
Je n'ai jamais fait de projet en TDD, je viens de me renseigner sur internet effectivement ça peut être un bon début , même si ça peut paraître un peu lourd pour de simple projet perso. Comme tu dis c'est pas le plus rigolo en programmation mais ça n'empêche que c'est un aspect important.
Je ne connaissais pas SOLID, c'est le genre de choses que je veux, appliquer des bonnes pratiques et en prendre l'habitude. J'ai prévu de m'initié au Typescript, (swift je n'ai pas de macbook). Je te remercie pour les références, PF( Point de fonction?)
Le 20 septembre 2016 à 12:52:56 tbol a écrit :
Apprends le Pascal Objet ou l'ADA, la tu sera bien obligé de faire un code structuré...
Tu as des articles ou des livres pour apprendre à bien coder, par exemple celui ci : http://a-pellegrini.developpez.com/tutoriels/coding-style/
J'ai lu en intégralité, heureusement j'appliquais déjà la majorité, j'ai pris ça du C++ et la notation hongroise même si c'est dans ce que je recherche ça reste trop des bonnes pratiques élémentaires, je cherche un peu plus loin ![]()
Le 20 septembre 2016 à 16:25:29 T-RexSoyeux a écrit :
programmation fonctionnelle
javascript
pythonmon visage quand
Apprends plutôt l'OCaml (ou le Haskell, c'est pas si mal malgré les space leaks et les performances imprévisibles).
La plupart des autres langages mainstream qui méritent d'être mentionnés n'ont soit pas de typage statique (Racket, Clojure), soit ont des features de programmation fonctionnelle, mais avec du caca objet impossible à éviter répandu partout, juste pour racoler les développeurs entreprisy biberonnés au Java, qui n'ont toujours pas compris que la POO c'est juste nul.
Témoin: OOPSLA, une conférence (où des chercheurs publient leurs travaux) destinée à de la recherche autour de la POO, n'en parle plus trop depuis un paquet d'années. D'un point de vue recherche le domaine est mort, contrairement à celui de la programmation fonctionnelle. Et bizarrement, tous les langages à la mode ajoutent de la programmation fonctionnelle comme ils peuvent au langage, parce que les gens s'aperçoivent enfin que c'est le futur.
Si tu veux faire de la POO quand c'est vraiment utile, tu peux en faire en OCaml. Et tu n'en as pas répandu partout juste parce que les gens ont l'habitude.
Évidemment je ne parle pas des langages construits à l'arrache, qui n'ont aucune bonne propriété, n'offrent que très peu de garanties, qui font un peu tout en étant mauvais partout, et dont le seul intêret est la communauté plus concentrée à faire de la propagande qu'effectivement utiliser un bon langage, ce qui permet de rameuter du monde afin d'écrire plein de libs pour faire tout et n'importe quoi.
Tu reconnaitras que cela aurait un intêret pédagogique proche de zéro.
Je vais pas te mentir j'utilise la plupart du temps la POO (après je code en C++/C# et java principalement) même si quand je code des jeux je préfère utiliser un ECS. J'ai commencé en programmation fonctionnelle et je suis passé en POO (un retour en fonctionnelle ne me paraîtra pas naturel ) donc dans les années à venir la POO pourrait être abandonné?
Le 20 septembre 2016 à 16:25:29 T-RexSoyeux a écrit :
programmation fonctionnelle
javascript
pythonmon visage quand
Apprends plutôt l'OCaml (ou le Haskell, c'est pas si mal malgré les space leaks et les performances imprévisibles).
Tu reconnaitras que cela aurait un intêret pédagogique proche de zéro.
Bah le problème des "langages fonctionnels" strict c'est qu'ils ont une syntaxe horrible, demandent énormément de temps à apprendre, sont peu adapté pour les jeux vidéos et les interfaces graphique.
L'idée de s'intéresser à la PF (programmation fonctionnelle) c'est plus pour découvrir des choses comme les fonctions en tant que brique de base d'un programme (à l'opposé des objets), de la notion de pureté d'une fonction (pas d'effet de bord), quelques fonctions comme map/reduce/filter. Et ces concepts là sont très présent et important en programmation, mais étonnamment les tutos de POO en parlent très peu.
@OP
La POO ne sera pas abandonnée à court/moyen terme, mais des langages "récent" comme Swift, D, scala, ect... montrent que les langages purement objet tendent à évoluer sur des langages multi-paradigmes.
Pour le TDD j'aime pas spécialement ça non plus, mais si tu commence à en faire tu vas voir que c'est 1) pas si évident et 2) t'amène à te poser plein de question, et les réponses peuvent t'aider à mieux coder et mieux comprendre les principes SOLID.
Rejoins tout simplement un projet open source sur github et tu auras une idée de comment s'organisent des dizaines, centaines, voire milliers de personnes autour d'un même projet
Le 20 septembre 2016 à 16:25:29 T-RexSoyeux a écrit :
Apprends plutôt l'OCaml (ou le Haskell, c'est pas si mal malgré les space leaks et les performances imprévisibles).La plupart des autres langages mainstream qui méritent d'être mentionnés n'ont soit pas de typage statique (Racket, Clojure), soit ont des features de programmation fonctionnelle, mais avec du caca objet impossible à éviter répandu partout, juste pour racoler les développeurs entreprisy biberonnés au Java, qui n'ont toujours pas compris que la POO c'est juste nul.
En attendant, OCaml, que tu conseilles, a une couche OO assez prononcée. Ce serait déjà pas mal de pas se contredire avant de dire de la merde
Et c'est partie pour des embrouilles
Le 20 septembre 2016 à 19:50:23 dark_drow a écrit :
Le 20 septembre 2016 à 16:25:29 T-RexSoyeux a écrit :
programmation fonctionnelle
javascript
pythonmon visage quand
Apprends plutôt l'OCaml (ou le Haskell, c'est pas si mal malgré les space leaks et les performances imprévisibles).
Tu reconnaitras que cela aurait un intêret pédagogique proche de zéro.
Bah le problème des "langages fonctionnels" strict c'est qu'ils ont une syntaxe horrible, demandent énormément de temps à apprendre, sont peu adapté pour les jeux vidéos et les interfaces graphique.
L'idée de s'intéresser à la PF (programmation fonctionnelle) c'est plus pour découvrir des choses comme les fonctions en tant que brique de base d'un programme (à l'opposé des objets), de la notion de pureté d'une fonction (pas d'effet de bord), quelques fonctions comme map/reduce/filter. Et ces concepts là sont très présent et important en programmation, mais étonnamment les tutos de POO en parlent très peu.
@OP
La POO ne sera pas abandonnée à court/moyen terme, mais des langages "récent" comme Swift, D, scala, ect... montrent que les langages purement objet tendent à évoluer sur des langages multi-paradigmes.Pour le TDD j'aime pas spécialement ça non plus, mais si tu commence à en faire tu vas voir que c'est 1) pas si évident et 2) t'amène à te poser plein de question, et les réponses peuvent t'aider à mieux coder et mieux comprendre les principes SOLID.
Réponse au sujet de la programmation fonctionnel
Je suis tous à fais en désaccord pour la partit sur la syntaxe des langages fonctionnels. A part la famille des Lisps, qui ont une syntaxe que je trouve très désagréable, ( et j'ai essayer très fort, j'ai même acheté un livre sur Clojure à 50$, mais rien à faire) je trouve que la syntaxe du Haskell, du Ocaml et de la famille ML en général est beaucoup plus belle que les autres. J'aime vraiment la proximité avec la syntaxe en mathématique. Pour ce qui est du temps à apprendre c'est vrai.
Le fais que le langage sois vraiment fonctionnel force à apprendre le fonctionnel et évite de se réfugier dans du connue. Si le but c'est d'apprendre le fonctionnel c'est probablement une meilleur façon. De plus, certain avantage des langages fonctionnels ne tiennent que si le langage est majoritairement fonctionnel.
Pour les jeux vidéo et les interfaces graphiques c'est plus une question d'écosystème que de problème fondamental à la programmation fonctionnel je crois.
Le reste
Je suis parfaitement d'accord avec le reste. Le TDD c'est pas du tous amusant, mais c'est une bonne pratique. J'ai aussi beaucoup entendu parlé de Clean code et à mon université on a un cours entièrement dédié a la qualité du code et Clean Code est le manuelle obligatoire pour le cours.
Aussi j'ai vue beaucoup de critique contre l'héritage et je suis assez d'accord. Je penses que l'utilisation d'interface est une meilleur idée pour structuré un programme en POO.
Ca peut paraitre un peu étrange mais si j'étais toi je rejoindrai un groupe déjà existant sur ton temps libre afin de développer.
Moi par exemple je développe des mini-jeux en Java pour un serveur Minecraft. Mine de rien je sais donc coder mes propres petits jeux (Minecraft ne servant que "librarie graphique et motrice" comme un unreal engine). Derrière je gère également un peu d'administration système et les utilisateurs.
ça m'apprends à coder en Java en groupe, et je me dois de faire des jeux jouables et amusants sinon ils bident.