« Parrain de développement du logiciel » Martin Fowler 40 ans, la plupart des praticiens disent que le mot

Auteur | communauté asynchrone

Cet article est reproduit avec la permission de la communauté asynchrone (ID: epubit)

Leader dans le domaine de professionnel Martin Fowler, gourou du développement de logiciels de classe mondiale, pionnier et fondateur du développement agile de mener l'analyse orientée objet du monde et la conception, UML, modèles, etc., les premières méthodes de développement agile, le développement de logiciels connu sous le nom « Le Parrain », maintenant il a travaillé à la technologie leader de conseil ThoughtWorks cabinet, de directeur scientifique du monde.

Martin Fowler

Largement diffusé cette déclaration, s'il existe une technique de programmation qui permet aux lecteurs de livres après le travail ou la pratique depuis de nombreuses années, réfléchit encore à mâcher, baissez, conduisant le lecteur à aller de l'avant, qui doit être le Martin Fowler « reconstruction » de.

Martin est écrivain bien connu dans le domaine de l'informatique, il a écrit sept livres sur les programmeurs de développement de logiciels très populaires, y compris la reconstruction, les modèles d'architecture d'applications d'entreprise et UML Distilled autres domaines. Le populaire « reconstruction » à la maison et à l'étranger, avec des millions de lecteurs, le score de cresson national de 9,5 points.

Objet Technology International, Inc, Erich Gamma a commenté Martin:

Martin Fowler révèle clairement le processus de reconstruction, il est le développement logiciel orienté objet apporté une contribution inappréciable. Il a expliqué les principes et les meilleures pratiques de reconstruction, notant quand et où vous devriez commencer à creuser votre code afin d'améliorer.

Donc, je vous recommande fortement d'essayer l'approche de reconstruction Martin Fowler, vous et votre programme sera donc mieux.

Software Development « parrain » de la reconstruction de la carrière

Martin Fowler, 1963 est né à Walsall, en Angleterre, ce sont les jours d'avant-garde de la programmation du monde.

Au début des années 1980, Martin est entré en contact avec l'industrie du logiciel, à ce moment-là encore un très feu Smalltalk, nous apprenons la langue, mais Martin a également commencé à travailler dans le logiciel - Conseiller sur la modélisation des objets du système d'information.

Ce n'est pas des livres sur l'analyse orientée objet et design, nous sommes tous dans une simple icône de notation, puis proposer un procédé de modélisation simple, et enfin avec quelques exemples de simple pour illustrer cela. Mais ne pense pas que Martin devrait se concentrer sur le processus - qui est, comment le modèle, mais plutôt de se concentrer sur les résultats du processus - qui est le modèle lui-même, bien que ce soit la façon de créer de la valeur dans l'environnement actuel est contraire.

Au début des années 1990, Martin a constaté que la plupart des programmeurs est difficile de profiter de nouvelles réalisations dans le domaine du génie logiciel, suivi par le rythme de l'innovation technologique.

En tant que consultant en modélisation objet du système d'information, Martin était de l'expertise de l'école Smalltalk est beaucoup plus que nécessaire pour cette carrière, il a estimé qu'il a eu l'idée étant donné que ces aspects de la modélisation, mais aussi très intéressé par la programmation, donc il aide non seulement dans la modélisation d'autres, Guide de programmation aussi - avec l'aide de forces extérieures, l'utilisation précise de UML.

De la modélisation au langage de programmation, il les a mis tout comme complète, plutôt que quelque chose sans rapport.

Ce travail a continué pendant près d'une décennie, en 1999, Martin a marqué le début de sa vie année importante.

Lorsque les projets de développement de la recherche à la clientèle Martin a ensuite visité constaté que le cur du système est le système hérité plutôt désordonné, à cette fin, il a suggéré que le gestionnaire responsable du projet organisera le code, mais les responsables du projet estiment que le projet est confronté à des progrès grande pression ensuite, tant que le programme, vous pouvez également exécuter des regards même terminé.

Dans ce cas, « Refonte: Améliorer la conception du code existant » a été publié un, Martin révèle le processus de reconstruction dans ce livre, en expliquant les principes et les meilleures pratiques de reconstruction, et quand donné et où nous devrions commencer à creuser afin d'améliorer le code.

La reconstruction de ce concept, une fois lancé, la majorité des programmeurs aiment, ils se sentent sans changer le comportement extérieur de la prémisse de code, de modifier le code pour améliorer la structure interne du programme est une chose merveilleuse. Plus tard, cette industrie internationale populaire informatique, la « reconstruction » a été introduit en Chine dans le score de cresson à long terme avec un score de 9,2 programmeurs d'écran Pa liste de lecture nécessaire.

En 2010, la cinquième Conférence Agile Software Development sur « Agile China 2010 », « Manifeste Agile » Martin leader à nouveau l'ensemble de l'industrie informatique de reconnaître le développement agile, de la « Agile », le mot est devenu domaine de l'informatique domestique populaire. Pour les programmeurs, il est un digne précurseur.

Martin Fowler

L'année dernière, le pionnier et mise à jour complète de la « reconstruction », « refactoring: Améliorer la conception du code existant (2e édition) » disponible, et à la maison et mettre à l'étranger hors d'un engouement, le score de cresson est aussi élevé que 9,5 points.

Qu'est-ce que la reconstruction Martin défini à la fin est?

En parlant de la reconstruction, mais aussi de Martin en 1999 a eu lieu dans le corps d'une chose. visage salissante du système de base de la hiérarchie d'héritage, il a suggéré que le gestionnaire responsable du projet organisera le code, mais rejeté par le chef de projet.

Par la suite, Martin a mis leurs propres idées première fois de dire aux programmeurs qui travaillent sur ce système d'héritage, le programmeur est très vif, on voit immédiatement la gravité du problème, en particulier dans ce besoin de l'aide extérieure pour trouver le problème. Ils ont immédiatement pris deux jours pour ranger la hiérarchie d'héritage, et supprimé la moitié du code, fonction intacte, et a constaté que l'ajout d'une nouvelle catégorie ou utiliser le système dans d'autres classes de la hiérarchie d'héritage sont plus rapides, plus faciles , ils sont très reconnaissants à Martin.

Mais le chef de projet n'a pas été heureux, mais il a estimé que ces programmeurs passé deux jours en vain, de faire le travail, mais rien à voir avec le grand nombre de fonctions dans les prochains mois à livrer, évidemment le code original pour fonctionner en assez normal, pourquoi dans les questions d'ordre qui peuvent se produire à passer du temps pour éviter à l'avance?

Mais au bout de six mois, le projet a échoué encore, et parce que le code est trop complexe pour être mise au point, l'optimisation des performances ne peut pas être à un niveau acceptable. Plus tard encore, le projet est relancé, la seule solution est d'écrire tout un système à partir de zéro, Kent Beck a été invité en tant que consultant. Il a fait plusieurs choses très différentes dans le passé, la pièce la plus importante de conseils est d'écouter Martin, adhérer à la reconstruction en cours de comportement pour organiser le code.

À ce moment-là, Martin pour la première fois reconnu l'importance de la reconstruction et non irremplaçable.

concept de « reconstruction » dans les milieux Smalltalk du début, parce que la reconstruction est développé dans le cadre d'une partie intégrante, donc lorsque les concepteurs cadres discutent de leur travail, le terme est né.

Quand ils ont raffiné leur hiérarchie d'héritage de classe, quand ils hurlent combien de lignes de code qu'ils peuvent enlever, de reconstruire le concept lentement refait surface, puis reconstruite est entré dans le camp dans d'autres langages de programmation.

Mettez-le sans ambages, la reconstruction que l'on appelle (refactoring) est un tel processus: le code sans changer le comportement extérieur de la prémisse, pour apporter des modifications au code pour améliorer la structure interne du programme.

processus de finition procédure Méthodique par une reconstruction tempérée formé, peut réduire la probabilité d'erreur est introduite lors de la finition. Essentiellement, la reconstruction est d'améliorer sa conception une fois le code écrit.

« Il est conçu pour améliorer après le code écrit, » cet argument un peu étrange. Dans la plupart des logiciels de développement de périodes historiques, la plupart des gens pensent, doit d'abord concevoir et coder: Commencez votre journée avec une bonne conception avant de commencer à coder.

Cependant, au fil du temps, les gens continuent de modifier le code, ainsi obtenu selon la conception originale du système, l'ensemble de la structure invalidante. qualité Code et enfonce lentement, le codage d'ingénierie rigoureuse dégénère en Hu coupe Luanpi sur le sexe.

La « reconstruction » tout le contraire.

Même si la main a une mauvaise conception, ou même un tas de code désordre, nous allons également emprunter le processus de reconstruction dans un code de bonne conception. Chaque étape de la reconstruction est très simple, même un peu trop simple: il suffit de prendre un champ d'une classe à une autre classe, de se retirer du code d'une fonction constitue une autre fonction, ou dans le système d'héritage un code dans la poussée sur la ligne.

Cependant, filet, ces changements mineurs peuvent ajouter d'améliorer radicalement la qualité de conception. C'est un « logiciel va lentement décomposition, » généralement commune soutient tout le contraire.

Avec le remodelage plus tard, Martin a constaté que le travail de l'équilibre a commencé à changer, par exemple, la conception n'est pas terminée au début, mais émergent progressivement tout au long du processus de développement. Dans le processus de construction du système, il a appris à améliorer constamment la conception. Cette « build - conception » à plusieurs reprises interactif, ce qui permet un programme de continuer à avoir une bonne conception dans le processus de développement.

Martin estime que la reconstruction ne peut pas commencer cette chose tout à fait raison, il se développera avec le designer d'expérience et de l'évolution, le nombre de codes à lire et modifier beaucoup plus que le nombre de fois où il a été écrit. Tout en gardant le code facile à lire, facile à modifier la clé, il est reconstruit.

En tant que guide remodelage pour les programmeurs professionnels à écrire - la « reconstruction », le but de Martin est de dire comment tous les programmeurs d'une manière contrôlée et efficace de reconstituer, réduisant ainsi le risque du processus de développement.

Reconstruction des lignes directrices proposées livre aidera à apprendre méthodiquement, une fois une petite étape pour modifier le code pour améliorer la structure du programme, sans introduire des erreurs de reconstruction correcte, et finalement efficace, le code peut exécuter le programme à long terme et de ne pas suivre ce vieil adage d'ingénierie: « Si elle peut courir, ne bouge pas. »

Reconstruction à nouveau mise à niveau

« Reconstruction » Depuis son lancement en 1999, a 21 ans après. l'industrie du logiciel une nouvelle langue de programmation continuent d'émerger, les anciens langages de programmation a également accéléré l'itération, et comme cela est devenu orienté objet langage standard de programmation grand public et la programmation fonctionnelle. Non seulement la technologie de développement de logiciels a connu de nombreux changements importants dans les différents outils de développement de logiciels sont également de plus en plus moderne, un meilleur soutien pour le développement est devenu les nouvelles compétences de base langage de programmation grand public.

Et maintenant, le concept de « reconstruction » a été public largement acceptée, les procédures méthodiques comme méthode de tri à travers trempée formée afin de maximiser la probabilité d'introduire des erreurs dans le processus de réduction de l'ordre, devenir le vocabulaire du programme ne sont pas disponibles ou la partie manquante, « reconstruction », un livre a toujours été considéré comme un domaine classique de développement de logiciels de nombreux programmeurs.

Mais la reconstruction d'un solide effort d'apprendre que fait, est tout à fait chose facile, sans parler de détail presque trivial de reconstituer le chemin, tout problème de tests unitaires, il est programmeur quatre-vingt dix peur ne peut pas correspondre, peu à peu , la « reconstruction » est devenu un beau signe, nous sommes prêts à mettre en place le nom, mais en fait la plupart du temps sec « hache un coup de couteau » agit.

Aujourd'hui, ce sont les termes premiers domestiques, « reconstruire » le concept de table séparée, bien pire. Avec les techniciens de première ligne de l'année ont pris des postes de direction, ils seront prêts à la « reconstruction » avec ce beau signe dans l'environnement plus large, comme l'architecture du système et la structure organisationnelle, peut être « reconstruit » look.

Cependant, le manque de compétences de base, mais aussi la façon d'aller de pair. Puis hache un coup de couteau dans l'objet, maintenant copié pour ajuster la structure, l'organisation. Ainsi, la « reconstruction » des souvenirs douloureux et répéter encore et encore, encore plus étendue, affectent le mal plus large, plus intense.

Par la reconstruction, et maintenant le programmeur pour développer un système universel à travers des micro-incréments, l'écriture des scénarios de test. Mais Martin croit cela ne suffit pas, en fait, devrait affecter la reconstruction d'un plus large, il y a 20 ans, il et d'autres avant-coureur d'encourager les gens à accepter le concept de reconstruction, cependant, l'ensemble de l'industrie est encore la reconstruction populaire prendra beaucoup de temps.

Pour le domaine informatique est, Martin est non seulement un pionnier, il était en tête.

Martin aimerait voir plus de gens les utilisent pour promouvoir la méthode d'essai en utilisant l'intégration continue et des méthodes de prestation continue. Mais se rapporte au concept ci-dessus, se sentent Martin qu'ils ne peuvent essayer dans le livre, de l'interprétation subjective et objective de ces technologies aussi détaillées que possible, et espère que cela convaincra plus de gens à essayer, « Quand vont-ils goûté à la douceur au travail réel recours à ces méthodes ".

Améliorer la conception du code existant (2e édition) "

En réponse à ce phénomène, Martin a lancé la « Refonte: Améliorer la conception des code existant (deuxième édition) », il a fait un complètement révisé sur la base de la première édition, ce qui reflète les nombreux changements dans le domaine de la programmation de l'industrie a eu lieu 20 ans, mais Martin a également adopté l'idée reste la même: ne pas modifier le comportement extérieur, et d'améliorer la qualité du code, mais l'effort sera fait une base plus solide. Les gens ne peuvent pas aider soupirer dans son dévouement à la « poudre aux yeux Kung Fu » dans!

Beaucoup de gens se demandent pourquoi Martin a décidé de réimprimer « reconstruct »? Martin donne trois raisons:

  • Dans la première édition du code est obsolète, il y a aussi un livre java.util.Vector;

  • Certains reconstruction ne sont pas étroitement couplé avec ensemble orienté objet;

  • Martin pense Java est un langage de programmation orienté objet très stricte, et la première édition de toute reconstruction est basée sur orientée objet, il a voulu illustrer la réimpression chaque programmeur peut utiliser la langue (de programmation), en tout environnement, suivez les exemples cités dans le livre est reconstruit, qu'il a décidé de réimprimer la source pour la « reconstruction » de.

Martin estime que la reconstruction des mécanismes de base changement radical ne se produit pas, même si l'utilisation des langages orientés objet bien. Il se sentait fonction de première classe bien, vous pouvez essayer un certain nombre de concept fonctionnel, par exemple, lorsque le logiciel d'écriture la plupart des fonctions ont la transparence référentielle, qui dans les systèmes orientés objet et dans le système fonctionnel est une bonne chose.

Tant de gens ne le font pas comme Martin pour tracer une ligne claire entre la programmation fonctionnelle et la programmation orientée objet, il croit que les deux ont beaucoup en commun, il n'y a pas une énorme différence. Il a encouragé les programmeurs ne sont pas le sectarisme, utiliser l'idée intégrée pour résoudre le problème.

Pour la dernière version de la "reconstruction", Martin croit qu'il est une technique de reconstruction peut-être intéressant de noter, demi-phase (phase split). Il y a quelques années, lorsque les pourparlers étape Beck scission Martin et Ken, Martin a réalisé que ce sont les premières techniques de reconstruction de temps.

Par cette approche de la reconstruction, le grand nombre de calculs raisonnables Martin deux étapes, la structure de données intermédiaire utilisé pour la communication. Un exemple est la résolution de la phase d'analyse efficace pour analyser le jeton du tiré, obtenant ainsi un jeton peut être stocké dans une mémoire de celui-ci de flux, peut traiter les chaînes pertinentes, chaîne de texte.

Martin Fowler

En parlant des outils refactorisation, Martin et Kent fait pendant de nombreuses années, mais ils ne sont jamais pris conscience de l'importance des outils, quand ils ont réalisé, ils se sentent outils refactorisation sont devenus omniprésents, ils pensaient qu'il était très instructif important, alors Martin serait vraiment mettre ces nouveaux contenu ajouté à la nouvelle version.

L'idée principale est la reconstruction: le moindre changement, alors la série de ces changements ensemble, pensant que cela est la reconstruction du noyau. Un grand changement sera divisé en plusieurs petits changements et apporter des modifications mineures dans le plus grand nombre en même temps, ne change pas les performances globales du système, puis au fil du temps, à plusieurs reprises et réfléchir à la façon de diviser. Martin dans le, un livre « reconstruction 2 » dit éprouver le problème en reconstruisant son cadre de pensée, essayer une variété de techniques de reconstruction efficaces et prendre des décisions, doit être reconstruit par la pratique de la chose la plus importante.

Il croit que, après la reconstruction a essayé différentes tactiques pour découvrir la technique de reconstruction peut générer séquence idéale, et puis essayer d'identifier cette technique de reconstruction, et la même logique s'applique à un niveau plus large.

Par conséquent, il utilise plus de 70 reconstruction possible, chaque reconstruit et sont introduits à une conversion des techniques éprouvées de code et des technologies de la motivation. Comme la plupart des travaux dans le développement de logiciels, en plus de remodelage de bricolage, aucune autre façon, il doit être pratique répétée doit être utilisé dans le projet de reconstruction.

Martin espère toujours, les lignes directrices de reconstruction peuvent vous aider étape par étape pour modifier leur propre code, réduire le risque du processus de développement.

Reconstruction de codage =

Dans le monde en constante évolution de la technologie informatique, la même chose, mais il est toujours là - la reconstruction.

De l'introduction de la « reconstruction » nationale de l'original anglais, et a maintenant au cours des 20 dernières années. La reconstruction du livre de Martin Fowler a, au cours des dernières années, reflète certains des changements dans les tendances dans le domaine de la programmation, à la fois la conception, mais il y a toujours place à l'amélioration.

Bien que le temps est le plus puissant des outils de refactoring, même le livre de langue sont devenus un exemple JavaScript de Java, mais les valeurs et les pratiques du livre et non pas au fil du temps.

Il y a longtemps fait partie des praticiens du développement logiciel de reconstruction instinct, ont chacun intégré IDE refactoring, chaque programmeur sur une base régulière pour refactoriser votre code.

Pour les ingénieurs logiciels, reconstruction, sans travail supplémentaire, il est le code lui-même. lire efficacement la « reconstruction » de l'ingénieur logiciel, recevra un ordre d'amélioration de l'ampleur de la capacité.

références:

  • "Mode d'analyse: Object Model réutilisable" Auteur: Martin Fowler

  • « UML essence: un guide de mémoire au langage de modélisation objet standard » Auteur: Martin Fowler

  • « Refactoring: Améliorer la conception du code existant » Auteur: Martin Fowler

  • Développement de logiciels Parrain, Martin Fowler: https: //zhuanlan.zhihu.com/p/71216874

  • programmeur Pourquoi opposer sans équivoque « meilleures pratiques »?

    Jingdong: appui de transmission réseau Maotai par Bug de fausses informations, Surchauffe a répondu avec une cargaison de non-prix « l'ensemble du réseau le plus bas », l'équipe de documentation Rust | débandés Geeks titres

    lutte lumière infrarouge de l'épidémie, de prédire le succès de nouvelles infrastructures, le Dr optique a investi 280 entreprises qui à la fin?

    apprentissage automatique front-end: reconnaître des visages humains, et les fraises peintes sur la joue

    café chance suisse expose de faux échanges de 2,2 milliards, recul App TOP 1

    déployer un simple sur Kubernetes, plate-forme de classe PaaS, l'original si facile!

    Kuang mention en fonction réseau d'agences bilatérales BBN: lutte contre la distribution à long tailed des tâches réelles | CVPR 2020 Oral

    2020 ans, ce 20 nous savons tous comment était l'échange de cryptage?

    Ma, Ma ligoté devenir homme le plus riche de la Chine, Baidu réponse « sera diffusé sur les fournisseurs de radio »; 5 .NET Preview 2 publié | Geeks titres
    Précédent
    Principes de base Programmation vraiment neuf yang magique il?
    Prochain
    Comment le groupe Ali des personnes de 10 ans depuis l'enquête plate-forme de réseau cloud Roselle? Architecture technique Evolution tout secret
    Pourquoi les programmeurs devraient s'opposer sans équivoque les « meilleures pratiques »?
    Comment les programmeurs finaux système complet de code d'utilisation de cette chose?
    Améliorer l'efficacité de la recherche et le développement ne sont pas si difficile de voir les meilleures pratiques de Youku
    Jingdong: transmission grab réseau Maotai par Bug de fausses informations, Surchauffe a répondu avec une cargaison de non-prix « l'ensemble du réseau le plus bas », l'équipe de documentation Rust | d
    5G téléphone « haut de gamme » la guerre
    Pas programmeurs SQL comment dur? Impossible de trouver le travail
    Pourquoi les Nations Unies Choisissez Tencent?
    La lumière infrarouge lutte contre l'épidémie, de prédire le succès de nouvelles infrastructures, le Dr optique a investi 280 entreprises qui à la fin?
    Acheter les creux? ! Aux termes de l'épidémie d'enquête: plus de 6 pour cent des répondants veulent acheter une maison, ou plus de la moitié des gens pensent que les prix des maisons chute
    Quand le jour arrive clair, fleurs aux couleurs vives séparation, après 95 infirmières dos à Guangdong, a déclaré: réticent à Wuhan
    Au moment du printemps est juste, bienvenue lutte contre Shunde héros du SRAS retour en toute sécurité