Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue115:critique_litteraire [2016/12/13 09:34] – d52fr | issue115:critique_litteraire [2016/12/15 15:18] (Version actuelle) – andre_domenech |
---|
I have never, ever read a book like this one. What makes it special is that instead of throwing the class-like syntax at you, it dwells deep into the concept of abstraction. For the first time in my life, I was able to feel polymorphism taking over my code, and dynamic linkage creating a beautiful artwork of run-time resolutions. For those of you who don't know what that means, and have already had experience with an object oriented language, it's time you step back and wonder “do you really know how your code is working?”** | I have never, ever read a book like this one. What makes it special is that instead of throwing the class-like syntax at you, it dwells deep into the concept of abstraction. For the first time in my life, I was able to feel polymorphism taking over my code, and dynamic linkage creating a beautiful artwork of run-time resolutions. For those of you who don't know what that means, and have already had experience with an object oriented language, it's time you step back and wonder “do you really know how your code is working?”** |
| |
Il y a quelque chose dans le ANSI-C qui empêche beaucoup d'entre nous de le lâcher. Avec l'arrivée de langages de programmation tels que Python ou Java, beaucoup se sont demandé si ça valait le coup d'apprendre C. Ou, pour beaucoup plus, si C était aussi puissant que ces langages relativement nouveaux. | Il y a quelque chose dans le ANSI-C qui empêche beaucoup d'entre nous de le lâcher. Avec l'arrivée de langages de programmation tels que Python ou Java, beaucoup commencent à se demander si ça vaut le coup d'apprendre C. Ou, encore plus important, C est-il aussi puissant que ces langages relativement nouveaux ? |
| |
Quand j'essaie de décortiquer ce que signifie réellement la puissance, je trébuche sur des choses telles que un bibliothèque de modèles standard, la portabilité, etc., mais le point qui retient avant tout mon attention est l'orientation objet. Je pensait qu'il serait impossible d'implémenter des choses telles que les niveaux d'abstraction de l'héritage ou du niveau de classe dans un langage comme C, mais, ensuite, je suis tombé sur ce livre appelé « OOC ». | Quand j'essayais de décortiquer ce que signifie réellement être puissant, j'ai découvert des choses telles qu'une bibliothèque de modèles standard, la portabilité, etc., mais le point qui retenait avant tout mon attention était l'orientation objet. Je pensais qu'il serait impossible d'implémenter des choses telles que les niveaux d'abstraction de l'héritage ou du niveau de classe dans un langage comme C, mais, ensuite, je suis tombé sur ce livre appelé « OOC ». |
| |
Je n'ai jamais, jamais lu un livre comme celui-ci. CE qui le rend spécial, c'est que, plutôt que de vous balancer la syntaxe d'une pseudo-classe, il plonge au plus profond de la notion d'abstraction. Pour la première fois de am vie, j'ai été capable de ressentir le polymorphisme soutenant mon code et les liens dynamiques créant un beau motif de décisions d'exécution. Pour ceux d'entre vous qui ne savent pas ce que ça signifie, et qui ont déjà eu une expérience de la programmation orientée objet, c'est le moment d'un retour en arrière pour vous demander « Savez-vous réellement comment marche votre code ? » | Je n'ai jamais, jamais, lu un livre comme celui-ci. Ce qui le rend spécial, c'est que, plutôt que de vous balancer la syntaxe d'une pseudo-classe, il plonge au plus profond de la notion d'abstraction. Pour la première fois de ma vie, j'étais capable de ressentir le polymorphisme soutenant mon code et les liens dynamiques créant un beau motif de décisions d'exécution. Pour ceux d'entre vous qui ne savent pas ce que ça signifie, et qui ont déjà eu une expérience de la programmation orientée objet, c'est le moment d'un retour en arrière pour vous demander « Est-ce que je sais réellement comment fonctionne mon code ? » |
| |
**What makes the book great altogether is that it is freely available. You can get a copy from https://www.cs.rit.edu/~ats/books/ooc.pdf, and start exploring the real power of C. Also the books spans just 221 pages. | **What makes the book great altogether is that it is freely available. You can get a copy from https://www.cs.rit.edu/~ats/books/ooc.pdf, and start exploring the real power of C. Also the books spans just 221 pages. |
At the end, the book also provides hints on awk programming - a pattern scanning and processing language.** | At the end, the book also provides hints on awk programming - a pattern scanning and processing language.** |
| |
Ce qui fait aussi toute le grandeur de ce livre, c'est qu'il est librement disponible. CVous pouvez en obtenir une copie par https://www.cs.rit.edu/~ats/books/ooc.pdf, et commencer à explorer la puissance réelle du C. Ce livre fait en tout 221 pages. | Ce qui ajoute à la grandeur de ce livre, c'est qu'il est librement disponible. Vous pouvez en obtenir une copie par https://www.cs.rit.edu/~ats/books/ooc.pdf, et commencer à explorer la puissance réelle du C. Ce livre ne fait en tout que 221 pages. |
| |
Avant de lire ce livre, les projets avec un grand nombre de fichiers m'effrayaient. Si le nombre diu fichiers dépassaient cinq ou six, j'étais perplexe devant le distribution complexe du travail en modules. Mais maintenant, je travaille sur des projets avec au minimum 25 fichiers. Je comprend tout maintenant. Le livre délimite souvent un sujet conceptuel entre ses « type, api et implémentation « ce qui rend plus facile le travail sur des gros projets. Une fois que vous avez appris à travailler sur des fichiers multiples, il devient plus aisé de lire du code que d'autres ont écrit, car ils ont souvent fait la même chose. | Avant de lire ce livre, les projets avec un grand nombre de fichiers m'effrayaient. Si le nombre de fichiers dépassait cinq ou six, j'étais perplexe devant la distribution complexe du travail en modules. Mais maintenant, je travaille sur des projets avec au minimum 25 fichiers. Je comprends tout maintenant. Le livre délimite souvent un sujet conceptuel entre ses « type, api et implémentation », ce qui rend plus facile le travail sur de gros projets. Une fois que vous avez appris à travailler sur des fichiers multiples, il devient plus aisé de lire du code que d'autres ont écrit, car ils ont souvent fait la même chose. |
| |
L'autre particularité de ce livre est que tous les deux ou trois chapitres du livre, un exemple complètement nouveau d'un application est construit en utilisant les concepts appris dans les chapitres précédents. Quand un chapitre entier est dédié à un exemple, ça aide à l'explorer en détail. À la fin de tels chapitres, nous pouvons nous attendre à trouver des questions de test construites à partir de l'application sur laquelle qui a été traitée. | L'autre particularité de ce livre est que tous les deux ou trois chapitres du livre, un exemple complet d'une application est construit en utilisant les concepts appris dans les chapitres précédents. Quand un chapitre entier est dédié à un exemple, ça aide à l'explorer en détail. À la fin de tels chapitres, vous pouvez vous attendre à trouver des exercices sous forme de questions qui s'appuient sur l'application en cours de discussion. |
| |
À la fin, le livre fournit aussi de conseils sur la programmation awk - un langage d'examen et de traitement de motifs. | À la fin, le livre fournit aussi des conseils sur la programmation awk, un langage d'examen et de traitement de motifs. |
| |
| |
Forwarding Messages — A GUI Calculator** | Forwarding Messages — A GUI Calculator** |
| |
La table des matières est la suivante : | Table des matières |
Types d'abstraction de données - Cacher les informations | Types d'abstraction de données - Cacher les informations (Abstract Data Types — Information Hiding). |
Liens dynamiques - Fonctions génériques | Liens dynamiques - Fonctions génériques (Dynamic Linkage — Generic Functions). |
Économie de programmation - Expressions arithmétiques | Économie de programmation - Expressions arithmétiques (Programming Savvy — Arithmetic Expressions). |
Héritage - Réutilisation et raffinage du code | Héritage - Réutilisation et raffinage du code (Inheritance — Code Reuse and Refinement). |
Hiérarchie des classes - Maintenabilité | Hiérarchie des classes - Maintenabilité (Class Hierarchy — Maintainability). |
Le pre-processeur ooc - Obliger à un codage normalisé | Le pré-processeur ooc - Imposer un codage normalisé (The ooc Preprocessor — Enforcing a Coding Standard). |
Vérification dynamique des types - Programmation défensive | Vérification dynamique des types - Programmation défensive (Dynamic Type Checking — Defensive Programming). |
Construction statique - Auto-organisation | Construction statique - Auto-organisation (Static Construction — Self-Organization). |
Délégation - Fonction de rappel | Délégation - Fonctions de rappel (Delegates — Callback Functions). |
Méthodes de classe - Empêcher les failles de mémoire | Méthodes de classe - Colmater les fuites de mémoire (Class Methods — Plugging Memory Leaks). |
Objets persistants - Stocker et charger des structures de données | Objets persistants - Stocker et charger des structures de données (Persistent Objects — Storing and Loading Data Structures). |
Exceptions - Récupérer une erreur avec de la discipline | Exceptions - Récupérer une erreur avec rigueur (Exceptions — Disciplined Error Recovery). |
Transfert de messages - Un calculateur en mode graphique | Transfert de messages - Un calculateur en mode graphique (Forwarding Messages — A GUI Calculator). |
| |