
Voici comment travaillent les ingénieurs de Google
Description
Introduction au livre
Comment Google développe et gère le code
Ces cinquante dernières années et ce livre ont prouvé une chose :
L'idée est que « le développement du génie logiciel ne stagne jamais ».
Face à l'importance croissante du génie logiciel, mise en avant dans un contexte d'évolution technologique rapide, le rôle des ingénieurs logiciels continuera de s'étendre.
Le génie logiciel ne se résumera plus à la simple gestion efficace d'une organisation.
Ce livre couvre tout ce que vous devez savoir et souhaitez savoir sur la programmation efficace, ainsi que les pratiques d'ingénierie qui vous aideront à construire une base de code durable et saine.
Ce seul livre vous permettra de maîtriser le processus d'ingénierie logicielle et de créer d'excellents produits plus rapidement que quiconque.
Vous pouvez également acquérir le savoir-faire accumulé par des dizaines de milliers de Googlers pendant plus de 20 ans.
Ce guide sera une excellente ressource pour tous ceux qui souhaitent développer rapidement des logiciels de haute qualité ou qui sont curieux de connaître les méthodes de gestion des logiciels de Google.
Ces cinquante dernières années et ce livre ont prouvé une chose :
L'idée est que « le développement du génie logiciel ne stagne jamais ».
Face à l'importance croissante du génie logiciel, mise en avant dans un contexte d'évolution technologique rapide, le rôle des ingénieurs logiciels continuera de s'étendre.
Le génie logiciel ne se résumera plus à la simple gestion efficace d'une organisation.
Ce livre couvre tout ce que vous devez savoir et souhaitez savoir sur la programmation efficace, ainsi que les pratiques d'ingénierie qui vous aideront à construire une base de code durable et saine.
Ce seul livre vous permettra de maîtriser le processus d'ingénierie logicielle et de créer d'excellents produits plus rapidement que quiconque.
Vous pouvez également acquérir le savoir-faire accumulé par des dizaines de milliers de Googlers pendant plus de 20 ans.
Ce guide sera une excellente ressource pour tous ceux qui souhaitent développer rapidement des logiciels de haute qualité ou qui sont curieux de connaître les méthodes de gestion des logiciels de Google.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
[Partie I Prémisse]
CHAPITRE 1 Qu'est-ce que le génie logiciel ?
1.1 Le temps et les changements
1.2 Évolutivité et efficacité
1.3 Compromis et coûts
1.4 Génie logiciel vs. Programmation
1.5 En conclusion
1.6 Résumé des points clés
[Partie II Culture]
CHAPITRE 2 : Favoriser le travail d'équipe
2.1 Je veux masquer mon code
2.2 Le mythe du génie
2.3 Se cacher est nuisible
2.4 Tout dépend de l'équipe
2.5 En conclusion
2.6 Résumé des points clés
CHAPITRE 3 Partage des connaissances
3.1 Obstacles à l'apprentissage
3.2 Philosophie
3.3 Établir les bases : la sécurité psychologique
3.4 Approfondir mes connaissances
3.5 Élargir votre question : Demandez à la communauté
3.6 Enrichir ses connaissances : chacun a quelque chose à enseigner
3.7 Développer les connaissances de l'organisation
3.8 Système de lisibilité : Système de mentorat standardisé par le biais de la revue de code
3.9 En conclusion
3.10 Résumé des points clés
CHAPITRE 4 : L'INGÉNIERIE AU SERVICE D'UNE SOCIÉTÉ ÉQUITABLE
4.1 Les préjugés sont inévitables
4.2 Comprendre pourquoi la diversité est nécessaire
4.3 Développement des compétences multiculturelles
4.4 Pratiquer la diversité
4.5 Rejeter une approche unique
4.6 Remise en question des processus établis
4.7 Valeur par rapport au résultat
4.8 Passons à l'avant sans perdre d'intérêt.
4.9 En conclusion
4.10 Résumé des points clés
CHAPITRE 5 : DIRIGER UNE ÉQUIPE
5.1 Responsable et chef de projet technique (ou les deux)
5.2 Du contributeur individuel au leader
5.3 Responsable de l'ingénierie
5.4 Anti-motifs
5.5 Modèle correct
5.6 Questions inattendues
5.7 Autres conseils et astuces
5.8 Les gens sont comme des plantes
5.9 En conclusion
5.10 Résumé des points clés
CHAPITRE 6 DIRIGER UNE ORGANISATION EN CROISSANCE
6.1 Toujours décider
6.2 Toujours partir
6.3 Toujours évoluer
6.4 En conclusion
6.5 Résumé des points clés
CHAPITRE 7 : MESURER LA PRODUCTIVITÉ DES INGÉNIEURS
7.1 Pourquoi mesurer la productivité en ingénierie ?
7.2 Sélection : Est-ce que cela vaut la peine de mesurer ?
7.3 Cadre GSM : Sélection d’indicateurs pertinents pour soutenir les objectifs et les signaux
7.4 But
Signal 7.5
7.6 Métrique
7.7 Validation des indicateurs à l'aide de données
7.8 Agir et suivre les résultats
7.9 En conclusion
7.10 Résumé des points clés
[Partie III Processus]
CHAPITRE 8 GUIDE DE STYLE ET RÈGLES
8.1 Pourquoi des règles sont nécessaires
8.2 Création de règles
8.3 Règles de modification
8.4 Lignes directrices
8.5 Application des règles
8.6 En conclusion
8.7 Résumé des points clés
CHAPITRE 9 Révision du code
9.1 Flux de revue de code
9.2 Revue de code chez Google
9.3 Avantages des revues de code
9.4 Bonnes pratiques de revue de code
9.5 Types de revue de code
9.6 En conclusion
9.7 Résumé des points clés
CHAPITRE 10 Documentation
10.1 Qu'est-ce que la documentation ?
10.2 Pourquoi la documentation est nécessaire
10.3 La documentation est identique au code
10.4 Connaître ses lecteurs
10.5 Types de documents
10.6 Examen de la documentation
10.7 Philosophie de la documentation
10.8 Quand avez-vous besoin d'un rédacteur technique ?
10.9 En conclusion
10.10 Résumé des points clés
APERÇU DU TEST DU CHAPITRE 11
11.1 Pourquoi rédiger des tests ?
11.2 Conception d'une suite de tests
11.3 Tests à l'échelle de Google
11.4 Historique des tests de Google
11.5 Limites des tests automatisés
11.6 En conclusion
11.7 Résumé des points clés
CHAPITRE 12 TESTS UNITAIRES
12.1 Il doit être facile à entretenir.
12.2 Prévenir les tests fragiles
12.3 Rédiger des tests clairs
12.4 Tests et partage de code : DAMP, pas DRY !
12.5 En conclusion
12.6 Résumé des points clés
CHAPITRE 13 BANDE DE TEST
13.1 L'impact des bandes de test sur le développement logiciel
Bande de test 13.2 @ Google
13.3 Concepts de base
13.4 Techniques d'utilisation des bandes de test
13.5 Mise en œuvre réelle
13.6 Tricherie (objets factices)
13.7 Écrasement (Tige)
13.8 Test des interactions
13.9 En conclusion
13.10 Résumé des points clés
CHAPITRE 14 UN GRAND TEST
14.1 Qu'est-ce qu'un test plus important ?
14.2 Test plus approfondi chez Google
14.3 Structure d'un test à grande échelle
14.4 Types de tests plus importants
14.5 Tests à grande échelle et flux de travail des développeurs
14.6 En conclusion
14.7 Résumé des points clés
CHAPITRE 15 Élimination
15.1 Raisons de la mise au rebut
15.2 Pourquoi l’élimination est-elle si difficile ?
15.3 Types d'élimination
15.4 Gestion du processus d'élimination
15.5 En conclusion
15.6 Résumé des points clés
[Partie IV Outils]
CHAPITRE 16 Contrôle de version et gestion des branches
16.1 Qu'est-ce que le contrôle de version ?
16.2 Gestion de succursale
16.3 Gestion des versions chez Google
16.4 Monorepo (dépôt unique)
16.5 L'avenir du contrôle de version
16.6 En conclusion
16.7 Résumé des points clés
CHAPITRE 17 Recherche de code
17.1 Interface utilisateur de recherche de code
17.2 Comment les développeurs Google utilisent la recherche de code
17.3 Pourquoi a-t-il été créé en tant qu'outil web autonome ?
17.4 L’impact de l’échelle sur la conception
17.5 Comment Google l'a-t-il mis en œuvre ?
17.6 Les compromis que fait Google
17.7 En conclusion
17.8 Résumé des points clés
CHAPITRE 18 Systèmes de construction et philosophie de construction
18.1 Objectif du système de construction
18.2 Que se passe-t-il si je n'ai pas de système de construction ?
18.3 Système de construction moderne
18.4 Gestion des modules et des dépendances
18.5 En conclusion
18.6 Résumé des points clés
CHAPITRE 19 Critique : L'outil d'analyse de code de Google
19.1 Principes des outils de revue de code
19.2 Flux de revue de code
19.3 Étape 1 : Créer un changement
19.4 Étape 2 : Demander une évaluation
19.5 Étapes 3-4 : Comprendre et commenter les changements
19.6 Étape 5 : Approuver la modification (Évaluer la modification)
19.7 Étape 6 : Valider les modifications
19.8 En conclusion
19.9 Résumé des points clés
CHAPITRE 20 Analyse statique
20.1 Caractéristiques de l'analyse statique effective
20.2 Principaux enseignements tirés de l'application de l'analyse statique
20.3 Tricorder : la plateforme d’analyse statique de Google
20.4 En conclusion
20.5 Résumé des points clés
CHAPITRE 21 Gestion des dépendances
21.1 Pourquoi la gestion des dépendances est difficile
21.2 Importation des dépendances
21.3 Gestion des dépendances (en théorie)
21.4 Limitations de la version significative
21.5 Gestion des dépendances lorsque les ressources sont infinies
21.6 En conclusion
21.7 Résumé des points clés
CHAPITRE 22 : CHANGEMENTS MAJEURS
22.1 Qu’est-ce qu’un changement majeur ?
22.2 Qui gère les changements à grande échelle ?
22.3 Facteurs bloquant les changements atomiques
22.4 Infrastructure de changement à grande échelle
22.5 Processus de changement à grande échelle
22.6 En conclusion
22.7 Résumé des points clés
CHAPITRE 23 Intégration continue
23.1 Qu'est-ce que l'intégration continue ?
23.2 Intégration continue chez Google
23.3 En conclusion
23.4 Résumé des points clés
CHAPITRE 24 Livraison continue
24.1 Le concept de livraison continue chez Google
24.2 La vitesse est un sport d'équipe : décomposer la distribution en éléments gérables
24.3 Isoler et évaluer les modifications : protection avec des indicateurs de fonctionnalités
24.4 Lutte pour l'agilité : Équiper le train de déploiement
24.5 Concentrez-vous sur la qualité et les utilisateurs : déployez uniquement les fonctionnalités que vous utiliserez.
24.6 Retour à l'origine : Prendre des décisions fondées sur les données plus tôt
24.7 Changer la culture d'équipe : établir des disciplines de distribution
24.8 En conclusion
24.9 Résumé des points clés
CHAPITRE 25 L'informatique en tant que service
25.1 Maîtriser votre environnement informatique
25.2 Écriture de logiciels pour le calcul géré
25.3 CaaS par période et échelle
25.4 Choisir un service de calcul
25.5 En conclusion
25.6 Résumé des points clés
CHAPITRE 1 Qu'est-ce que le génie logiciel ?
1.1 Le temps et les changements
1.2 Évolutivité et efficacité
1.3 Compromis et coûts
1.4 Génie logiciel vs. Programmation
1.5 En conclusion
1.6 Résumé des points clés
[Partie II Culture]
CHAPITRE 2 : Favoriser le travail d'équipe
2.1 Je veux masquer mon code
2.2 Le mythe du génie
2.3 Se cacher est nuisible
2.4 Tout dépend de l'équipe
2.5 En conclusion
2.6 Résumé des points clés
CHAPITRE 3 Partage des connaissances
3.1 Obstacles à l'apprentissage
3.2 Philosophie
3.3 Établir les bases : la sécurité psychologique
3.4 Approfondir mes connaissances
3.5 Élargir votre question : Demandez à la communauté
3.6 Enrichir ses connaissances : chacun a quelque chose à enseigner
3.7 Développer les connaissances de l'organisation
3.8 Système de lisibilité : Système de mentorat standardisé par le biais de la revue de code
3.9 En conclusion
3.10 Résumé des points clés
CHAPITRE 4 : L'INGÉNIERIE AU SERVICE D'UNE SOCIÉTÉ ÉQUITABLE
4.1 Les préjugés sont inévitables
4.2 Comprendre pourquoi la diversité est nécessaire
4.3 Développement des compétences multiculturelles
4.4 Pratiquer la diversité
4.5 Rejeter une approche unique
4.6 Remise en question des processus établis
4.7 Valeur par rapport au résultat
4.8 Passons à l'avant sans perdre d'intérêt.
4.9 En conclusion
4.10 Résumé des points clés
CHAPITRE 5 : DIRIGER UNE ÉQUIPE
5.1 Responsable et chef de projet technique (ou les deux)
5.2 Du contributeur individuel au leader
5.3 Responsable de l'ingénierie
5.4 Anti-motifs
5.5 Modèle correct
5.6 Questions inattendues
5.7 Autres conseils et astuces
5.8 Les gens sont comme des plantes
5.9 En conclusion
5.10 Résumé des points clés
CHAPITRE 6 DIRIGER UNE ORGANISATION EN CROISSANCE
6.1 Toujours décider
6.2 Toujours partir
6.3 Toujours évoluer
6.4 En conclusion
6.5 Résumé des points clés
CHAPITRE 7 : MESURER LA PRODUCTIVITÉ DES INGÉNIEURS
7.1 Pourquoi mesurer la productivité en ingénierie ?
7.2 Sélection : Est-ce que cela vaut la peine de mesurer ?
7.3 Cadre GSM : Sélection d’indicateurs pertinents pour soutenir les objectifs et les signaux
7.4 But
Signal 7.5
7.6 Métrique
7.7 Validation des indicateurs à l'aide de données
7.8 Agir et suivre les résultats
7.9 En conclusion
7.10 Résumé des points clés
[Partie III Processus]
CHAPITRE 8 GUIDE DE STYLE ET RÈGLES
8.1 Pourquoi des règles sont nécessaires
8.2 Création de règles
8.3 Règles de modification
8.4 Lignes directrices
8.5 Application des règles
8.6 En conclusion
8.7 Résumé des points clés
CHAPITRE 9 Révision du code
9.1 Flux de revue de code
9.2 Revue de code chez Google
9.3 Avantages des revues de code
9.4 Bonnes pratiques de revue de code
9.5 Types de revue de code
9.6 En conclusion
9.7 Résumé des points clés
CHAPITRE 10 Documentation
10.1 Qu'est-ce que la documentation ?
10.2 Pourquoi la documentation est nécessaire
10.3 La documentation est identique au code
10.4 Connaître ses lecteurs
10.5 Types de documents
10.6 Examen de la documentation
10.7 Philosophie de la documentation
10.8 Quand avez-vous besoin d'un rédacteur technique ?
10.9 En conclusion
10.10 Résumé des points clés
APERÇU DU TEST DU CHAPITRE 11
11.1 Pourquoi rédiger des tests ?
11.2 Conception d'une suite de tests
11.3 Tests à l'échelle de Google
11.4 Historique des tests de Google
11.5 Limites des tests automatisés
11.6 En conclusion
11.7 Résumé des points clés
CHAPITRE 12 TESTS UNITAIRES
12.1 Il doit être facile à entretenir.
12.2 Prévenir les tests fragiles
12.3 Rédiger des tests clairs
12.4 Tests et partage de code : DAMP, pas DRY !
12.5 En conclusion
12.6 Résumé des points clés
CHAPITRE 13 BANDE DE TEST
13.1 L'impact des bandes de test sur le développement logiciel
Bande de test 13.2 @ Google
13.3 Concepts de base
13.4 Techniques d'utilisation des bandes de test
13.5 Mise en œuvre réelle
13.6 Tricherie (objets factices)
13.7 Écrasement (Tige)
13.8 Test des interactions
13.9 En conclusion
13.10 Résumé des points clés
CHAPITRE 14 UN GRAND TEST
14.1 Qu'est-ce qu'un test plus important ?
14.2 Test plus approfondi chez Google
14.3 Structure d'un test à grande échelle
14.4 Types de tests plus importants
14.5 Tests à grande échelle et flux de travail des développeurs
14.6 En conclusion
14.7 Résumé des points clés
CHAPITRE 15 Élimination
15.1 Raisons de la mise au rebut
15.2 Pourquoi l’élimination est-elle si difficile ?
15.3 Types d'élimination
15.4 Gestion du processus d'élimination
15.5 En conclusion
15.6 Résumé des points clés
[Partie IV Outils]
CHAPITRE 16 Contrôle de version et gestion des branches
16.1 Qu'est-ce que le contrôle de version ?
16.2 Gestion de succursale
16.3 Gestion des versions chez Google
16.4 Monorepo (dépôt unique)
16.5 L'avenir du contrôle de version
16.6 En conclusion
16.7 Résumé des points clés
CHAPITRE 17 Recherche de code
17.1 Interface utilisateur de recherche de code
17.2 Comment les développeurs Google utilisent la recherche de code
17.3 Pourquoi a-t-il été créé en tant qu'outil web autonome ?
17.4 L’impact de l’échelle sur la conception
17.5 Comment Google l'a-t-il mis en œuvre ?
17.6 Les compromis que fait Google
17.7 En conclusion
17.8 Résumé des points clés
CHAPITRE 18 Systèmes de construction et philosophie de construction
18.1 Objectif du système de construction
18.2 Que se passe-t-il si je n'ai pas de système de construction ?
18.3 Système de construction moderne
18.4 Gestion des modules et des dépendances
18.5 En conclusion
18.6 Résumé des points clés
CHAPITRE 19 Critique : L'outil d'analyse de code de Google
19.1 Principes des outils de revue de code
19.2 Flux de revue de code
19.3 Étape 1 : Créer un changement
19.4 Étape 2 : Demander une évaluation
19.5 Étapes 3-4 : Comprendre et commenter les changements
19.6 Étape 5 : Approuver la modification (Évaluer la modification)
19.7 Étape 6 : Valider les modifications
19.8 En conclusion
19.9 Résumé des points clés
CHAPITRE 20 Analyse statique
20.1 Caractéristiques de l'analyse statique effective
20.2 Principaux enseignements tirés de l'application de l'analyse statique
20.3 Tricorder : la plateforme d’analyse statique de Google
20.4 En conclusion
20.5 Résumé des points clés
CHAPITRE 21 Gestion des dépendances
21.1 Pourquoi la gestion des dépendances est difficile
21.2 Importation des dépendances
21.3 Gestion des dépendances (en théorie)
21.4 Limitations de la version significative
21.5 Gestion des dépendances lorsque les ressources sont infinies
21.6 En conclusion
21.7 Résumé des points clés
CHAPITRE 22 : CHANGEMENTS MAJEURS
22.1 Qu’est-ce qu’un changement majeur ?
22.2 Qui gère les changements à grande échelle ?
22.3 Facteurs bloquant les changements atomiques
22.4 Infrastructure de changement à grande échelle
22.5 Processus de changement à grande échelle
22.6 En conclusion
22.7 Résumé des points clés
CHAPITRE 23 Intégration continue
23.1 Qu'est-ce que l'intégration continue ?
23.2 Intégration continue chez Google
23.3 En conclusion
23.4 Résumé des points clés
CHAPITRE 24 Livraison continue
24.1 Le concept de livraison continue chez Google
24.2 La vitesse est un sport d'équipe : décomposer la distribution en éléments gérables
24.3 Isoler et évaluer les modifications : protection avec des indicateurs de fonctionnalités
24.4 Lutte pour l'agilité : Équiper le train de déploiement
24.5 Concentrez-vous sur la qualité et les utilisateurs : déployez uniquement les fonctionnalités que vous utiliserez.
24.6 Retour à l'origine : Prendre des décisions fondées sur les données plus tôt
24.7 Changer la culture d'équipe : établir des disciplines de distribution
24.8 En conclusion
24.9 Résumé des points clés
CHAPITRE 25 L'informatique en tant que service
25.1 Maîtriser votre environnement informatique
25.2 Écriture de logiciels pour le calcul géré
25.3 CaaS par période et échelle
25.4 Choisir un service de calcul
25.5 En conclusion
25.6 Résumé des points clés
Image détaillée

Avis de l'éditeur
Un employé de Google dévoile des stratégies d'ingénierie qui apportent l'innovation aux entreprises.
Vous n'avez pas besoin de créer une autre entreprise géante de génie logiciel appelée « Google ».
Cependant, si vous ignorez l'immense savoir-faire accumulé par Google au fil des ans, vous passerez à côté des connaissances en génie logiciel que des dizaines de milliers d'ingénieurs ont perfectionnées au cours des 20 dernières années.
Ce sont des connaissances trop précieuses pour être ignorées.
Dans cet ouvrage, les ingénieurs logiciels et les rédacteurs techniques de Google se réunissent pour présenter la culture, les processus et les outils d'ingénierie uniques de Google.
Au-delà de la simple explication des fonctionnalités de l'outil et de son utilisation, il détaille également la philosophie et les processus suivis par les équipes de Google.
Nous examinerons également trois principes fondamentaux que les organisations de développement logiciel ne devraient jamais oublier lors de la conception, de l'écriture et de la maintenance du code.
Ce livre propose de nombreuses études de cas et des exemples de techniques pratiques éprouvées par des dizaines de milliers d'employés de Google. Nous espérons qu'il vous permettra d'approfondir votre compréhension des fondamentaux du génie logiciel et de devenir un excellent ingénieur.
Vous n'avez pas besoin de créer une autre entreprise géante de génie logiciel appelée « Google ».
Cependant, si vous ignorez l'immense savoir-faire accumulé par Google au fil des ans, vous passerez à côté des connaissances en génie logiciel que des dizaines de milliers d'ingénieurs ont perfectionnées au cours des 20 dernières années.
Ce sont des connaissances trop précieuses pour être ignorées.
Dans cet ouvrage, les ingénieurs logiciels et les rédacteurs techniques de Google se réunissent pour présenter la culture, les processus et les outils d'ingénierie uniques de Google.
Au-delà de la simple explication des fonctionnalités de l'outil et de son utilisation, il détaille également la philosophie et les processus suivis par les équipes de Google.
Nous examinerons également trois principes fondamentaux que les organisations de développement logiciel ne devraient jamais oublier lors de la conception, de l'écriture et de la maintenance du code.
Ce livre propose de nombreuses études de cas et des exemples de techniques pratiques éprouvées par des dizaines de milliers d'employés de Google. Nous espérons qu'il vous permettra d'approfondir votre compréhension des fondamentaux du génie logiciel et de devenir un excellent ingénieur.
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 10 mai 2022
Nombre de pages, poids, dimensions : 704 pages | 1 325 g | 183 × 235 × 40 mm
- ISBN13 : 9791162245620
- ISBN10 : 116224562X
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne