Table des matières[Cacher][Montrer]
- 1. Concevoir une application gourmande en données
- 2. Conception et analyse de systèmes modernes
- 3. Analyse et conception du système par Scott Tiley
- 4. Modèle de conception tête première
- 5. Architecture propre
- 6. Analyse et conception du système par Dennis, Wixom et Roth
- 7. Entretien sur la conception du système par Alex Xu
- 8. Modèles d'entreprise d'architecture d'application
- 9. Créer des microservices
- 10. Conception pratique du système
- 11. Conception du système embarqué
- 12. Entretien sur la conception du système : un guide complet
- 13. Conception d'un système distribué
- 14. Conception d'un système d'apprentissage automatique
- 15. Concevoir des systèmes sécurisés
- 16. Analyse, conception et test du système
- 17. Modèle d'architecture logicielle pour les systèmes sans serveur
- 18. Architectures natives du cloud
- 19. Introduction à la conception de systèmes à microprocesseur
- 20. Entretien de conception de système de craquage
- Conclusion
Pour les étudiants visant des stages techniques, la conception de systèmes est un sujet essentiel. Les employeurs d'aujourd'hui recherchent des étudiants dotés d'excellentes capacités de résolution de problèmes et de solides bases en informatique.
Dans de nombreux entretiens FAANG, les questions de conception du système sont devenues routinières. La conception du système est l'un des facteurs clés qui déterminent votre candidature dans une organisation technologique.
Par conséquent, il devient crucial que vous ayez une prise ferme sur le matériau et que vous le compreniez au mieux de vos capacités. Les livres sont la source de connaissances la plus fiable.
L'auteur veut vous faciliter la tâche, un ensemble gérable de tous les enseignements de votre vie. Lors de l'apprentissage de la conception de systèmes, il n'y a pas de meilleur moyen d'apprendre qu'en lisant les livres les plus importants écrits par des auteurs de renom.
20 livres spécialement choisis sur la conception de systèmes sont répertoriés dans cet article.
Ils vous aideront à bien comprendre l'analyse du système et les idées de conception et renforceront votre confiance en vous avant un entretien de conception de système ou amélioreront vos connaissances à ce sujet.
1. Concevoir une application gourmande en données
Les difficultés liées aux données dans la conception de systèmes incluent aujourd'hui celles liées à l'évolutivité, la cohérence, la fiabilité, l'efficacité et la maintenabilité.
De plus, il peut être difficile de choisir le meilleur outil pour votre application parmi les nombreux disponibles (tels que les processeurs par lots, les courtiers de messages, etc.).
Que signifie la terminologie ici?
Les avantages et les inconvénients des diverses technologies de traitement et de stockage des données sont discutés dans ce livre de l'auteur Martin Kleppmann.
Des idées et algorithmes de base aux utilisations dans le monde réel et aux détails de diverses technologies, le livre donne un examen exhaustif des systèmes de stockage de données. Ce livre aidera les débutants à accélérer leurs processus d'apprentissage en incorporant l'expérience d'architectes système expérimentés.
L'auteur combine habilement des concepts théoriques avec des applications réelles dans son travail. Toute personne intéressée par les données volumineuses, les systèmes distribués ou les bases de données internes devrait le lire.
Ce livre est tellement plus que ce que vous pourriez imaginer. Des approches plus récentes telles que les microservices, les architectures réactives, DevOps et le traitement de flux combinent des méthodes éprouvées telles que les architectures orientées services et pilotées par les événements.
Bon nombre de ces modèles sont efficaces lorsqu'ils sont utilisés indépendamment, mais comme le montre cet ebook utile, lorsqu'ils sont combinés, ils offrent une stratégie plus complète et plus convaincante.
2. Conception et analyse de systèmes modernes
Considérez que vous voulez une approche pratique pour étudier les concepts, les capacités et les méthodes liées à analyse et conception du système. Le meilleur livre de conception de système pour vous dans cette situation est celui-ci.
Ce livre est plus adapté au développement d'un système d'apprentissage complet pour les élèves car il contient également une section sur les approches agiles. Les concepts, capacités, approches, stratégies, outils et perspectives nécessaires aux analystes de systèmes pour créer des systèmes d'information sont présentés dans Modern Systems Analysis and Design, qui met davantage l'accent sur la pratique que sur la théorie.
Les auteurs supposent que les étudiants ont suivi un cours d'introduction aux systèmes informatiques et qu'ils ont une certaine expérience préalable en rédaction de programmes dans au moins un langage de programmation.
Les rédacteurs donnent un cadre conceptuel et méthodique tout en parcourant logiquement les enjeux en faisant référence au cycle de vie du développement des systèmes.
3. Analyse et conception du système par Scott Tiley
L'un des manuels de conception de systèmes les plus importants actuellement accessibles est largement reconnu comme étant ce livre de Scott Tiley sur la conception de systèmes. Pour construire de meilleurs systèmes, les concepteurs de systèmes ont utilisé et comparent des méthodes traditionnelles et de pointe.
Ce livre vous aidera à comprendre ce qui a changé, pourquoi le changement a dû être fait et pourquoi il a dû être fait en premier lieu.
En plus d'apprendre le fonctionnement des systèmes, vous découvrirez également le cloud computing et application mobile, entre autres, selon les auteurs, qui affirment que ce livre contient des sections sur le codage orienté objet et la méthodologie agile, deux des méthodologies les plus fréquemment utilisées dans les entreprises aujourd'hui.
Le livre regorge de devoirs et d'exercices qui vous obligeront à réfléchir et à utiliser immédiatement les informations que vous venez d'acquérir.
4. Tête d'abord modèle de conception
Vous voulez apprendre de ceux qui vous ont précédé, car vous n'aimez pas partir de zéro en matière de création de logiciels. Pour apprendre des expériences d'autres personnes qui ont été confrontées à des défis de conception de système similaires aux vôtres, vous vous tournez vers les modèles de conception.
Grâce à l'utilisation de modèles de conception, vous pouvez utiliser les connaissances des autres afin de pouvoir vous concentrer sur des tâches plus difficiles ou plus agréables.
Ce livre, écrit par Eric Freeman et Elisabeth Robson, enseigne ce que sont les motifs et quand, pourquoi et comment les utiliser dans vos propres créations. Il explore également les idées orientées objet qui sous-tendent les conceptions.
Il s'agit d'une méthode amusante pour apprendre et améliorer votre compréhension du développement logiciel. Vous étudierez les idées et les modèles de conception fondamentaux afin de pouvoir résoudre les problèmes de conception de logiciels et de communiquer en langage de modèle avec votre équipe.
Cela peut ne pas sembler "assez sérieux" au début, mais au fil du temps, des choses restent gravées dans votre cerveau et vous aimez découvrir des modèles. Ce livre simplifie et clarifie efficacement les modèles.
5. Architecture propre
Robert est un auteur accompli qui a écrit un certain nombre de livres sur le développement agile et le code propre.
Maintenant, il va sans dire qu'après avoir lu les livres de Robert C. Martin, vous serez en mesure d'améliorer le flux de votre code et d'inclure des techniques agiles dans vos solutions de conception en plus de comprendre les idées de conception de systèmes.
Néanmoins, ce livre se concentre sur les principes fondamentaux de l'analyse et de la conception de systèmes ainsi que sur les nombreuses difficultés auxquelles les concepteurs de systèmes sont confrontés lors de la création d'une solution du monde réel.
Ce livre traite également des techniques de développement piloté par les tests et de la manière d'exécuter des tests unitaires pour augmenter l'efficacité du système. Pour les étudiants en conception de systèmes et tous ceux qui essaient d'élever le niveau de leur logiciel ces jours-ci, ce livre est le meilleur accessible.
Clean Architecture explique les décisions que vous devez prendre et pourquoi elles sont essentielles à votre succès, plutôt que de simplement vous présenter une variété de possibilités et de dire : « Faites preuve de bon sens ».
6. Analyse et conception du système par Dennis, Wixom et Roth
Ce livre fournit des explications détaillées sur des projets applicables à des situations réelles, ce qui vous aide à mieux comprendre l'analyse et la conception de systèmes. Le livre comprend également plusieurs études de cas et exemples, qui sont tous détaillés en détail.
Ce livre vous aidera à améliorer vos études de conception de réseau et à acquérir une solide compréhension des concepts d'analyse et de conception de système.
En conséquence, selon votre point de vue, ce livre peut être classé à la fois comme un livre de conception de système pour les débutants et comme un livre de conception de système pour les étudiants en informatique de niveau moyen et supérieur.
Des instances et des exemples en cours d'exécution sont utilisés pour illustrer les idées clés, qui sont ensuite étayées par des explications approfondies et d'autres fonctionnalités qui mettent l'accent sur les détails importants et mettent l'accent sur l'acte de « faire » en plus de « l'apprentissage ».
Les étudiants acquièrent les informations et les capacités fondamentales dont un analyste professionnel a besoin, ainsi qu'un instinct pour l'approche, les outils et les techniques lorsqu'ils appliquent leur propre travail à des situations réelles.
7. Entretien sur la conception du système par Alex Xu
Les développeurs ont souvent les réponses à questions d'entrevue sur la conception du système parce qu'ils sont intimidés par la vaste gamme de choix potentiels. Mais s'il n'y a pas de réponse claire, comment pouvez-vous y répondre efficacement lors d'un entretien ?
Le meilleur livre actuellement sur le marché, celui-ci est recommandé à tous ceux qui se préparent à un entretien de conception de système. Le livre comprend de nombreuses illustrations et graphiques qui vous aident à comprendre la méthode réelle en apparaissant comme de véritables éléments de questionnaire.
De plus, ce livre vous aidera à comprendre ce que les responsables du recrutement veulent voir dans votre solution, vous permettant de réussir facilement votre examen de conception de système ultérieur. Cela vous donnera plus d'assurance tout au long de cet entretien crucial.
La méthode pour aborder un défi de conception de système est présentée en détail dans ce livre. Il fournit également plusieurs exemples du monde réel pour montrer comment fonctionne une approche méthodique, ainsi que des instructions claires que vous pouvez suivre.
8. Modèles d'entreprise d'architecture d'application
L'introduction de plusieurs nouvelles technologies habilitantes a profité à la profession du développement d'applications d'entreprise. Les plates-formes permettant le développement orienté objet à plusieurs niveaux, telles que Java et .NET, sont déjà largement répandues.
Bien que ces nouveaux outils et technologies puissent être utilisés pour créer des applications puissantes, ils sont difficiles à mettre en pratique. Parce que leurs développeurs ne comprennent pas les principes architecturaux que les développeurs d'objets expérimentés ont appris, les applications métier échouent fréquemment de manière régulière.
Les développeurs d'applications d'entreprise sont confrontés à plusieurs difficultés, ce qui a inspiré les auteurs de Patterns of Enterprise Application Architecture à écrire leur livre.
L'auteur, un célèbre concepteur orienté objet Martin Fowler, a observé que les mêmes principes de conception fondamentaux peuvent être modifiés et appliqués pour résoudre les problèmes courants indépendamment des changements technologiques, de Smalltalk à CORBA en passant par Java et .NET.
Martin déconstruit plus de quarante solutions répétitives en modèles avec l'aide d'un groupe de bénévoles compétents. Le produit final est un précieux manuel de correctifs qui peut être utilisé avec n'importe quelle plate-forme d'application d'entreprise.
9. Créer des microservices
Au cours des dix dernières années, les systèmes distribués sont passés de grandes applications monolithiques gourmandes en code à des microservices plus compacts et indépendants. Cependant, la création de ces systèmes comporte son propre ensemble de défis.
Ce livre présente une approche complète des problèmes que les architectes système et les administrateurs doivent prendre en compte lors de la création, de l'administration et de la mise à niveau des architectures de microservices, avec de nombreux exemples et des conseils utiles.
Les technologies pour les microservices se développent rapidement. Tout en plongeant dans les approches les plus récentes pour concevoir, intégrer, tester, déployer et surveiller vos propres services autonomes, l'auteur Sam Newman vous donne une base solide dans les principes.
Tout au long du livre, vous suivrez une société hypothétique pour voir comment la création d'une architecture de microservice affecte un domaine particulier.
10. Conception de système pratique
Ce livre se concentre sur la mise à l'échelle des applications logicielles et emmène le lecteur dans un voyage en profondeur. Après avoir lu cet article, vous comprendrez mieux comment créer une application évolutive au niveau de l'entreprise.
Le livre passe par des concepts de conception de système, réseaux informatiques, les principaux protocoles de mise en réseau, les mécanismes d'accès aux données évolutifs et les styles architecturaux alternatifs pour la construction du système.
Une enquête détaillée sur de nombreuses technologies et leur mise en œuvre est effectuée, y compris Cache Memory, CDN, Equilibreurs de chargeet Files d'attente de messagerie.
Le livre explique également comment construire une solution évolutive au niveau de l'entreprise en utilisant diverses combinaisons de technologies. Votre décision sur le chemin optimal pour l'architecture du système est facilitée par votre analyse de plusieurs conceptions architecturales.
Le livre examine également les modèles de conception et programmation orientée objet techniques qui aident à écrire un code clair et maintenable. En utilisant plusieurs exemples de conception de systèmes réels, le lecteur obtiendra une compréhension intuitive des divers outils et méthodes de production d'un système évolutif.
11. Conception de systèmes embarqués
Fournir une introduction approfondie aux concepts fondamentaux des systèmes embarqués, avec des applications dans les systèmes cyber-physiques et l'Internet des objets, est une caractéristique particulière de ce manuel en libre accès.
Une étude des modèles de spécification et des langages pour les systèmes embarqués et cyber-physiques précède une introduction au domaine.
Il explique les bases du logiciel système pour les systèmes embarqués, y compris les systèmes d'exploitation en temps réel, et donne une introduction de base aux composants matériels utilisés dans ces systèmes.
En outre, l'auteur présente un aperçu des méthodes de mappage des programmes aux plates-formes d'exécution, y compris les plates-formes multicœurs, et parle des approches d'évaluation et de validation des systèmes embarqués.
Étant donné que les systèmes embarqués doivent fonctionner selon des paramètres stricts, le livre comprend également une collection triée sur le volet d'approches d'optimisation, telles que les techniques d'optimisation logicielle. Dans la conclusion du livre, les tests sont brièvement abordés.
12. Entretien de conception de système : un guide complet
L'entretien de conception du système est l'une des parties les plus détestées et les plus difficiles des entretiens d'embauche technique. Les incertitudes font peur.
Mais si vous examinez attentivement les analyses et les procédures détaillées dans ce magazine, vous serez en mesure de surmonter tous les obstacles que vous rencontrerez en utilisant des techniques d'ingénierie des données pour les évaluations.
Vous découvrirez les nombreuses méthodes d'entretien pour les ingénieurs. Vous aurez une compréhension complète des étapes nécessaires pour utiliser des applications gourmandes en données après avoir lu ce guide.
Après l'avoir lu, que vous soyez un praticien ou un ingénieur non backend, vous en apprendrez beaucoup sur la façon de mettre en œuvre des systèmes de données sur des réseaux, y compris RDBMS, NoSQL, IMS et autres.
13. Conception d'un système distribué
Les grandes entreprises travaillent dur pour mettre en œuvre de nouvelles technologies pour développer de nouveaux produits, procédures et modèles commerciaux dans la lutte pour être compétitives sur les marchés en évolution rapide d'aujourd'hui.
Mettre trop l'accent sur la technologie et pas assez sur les types de processus que la technologie permet est cependant un obstacle à la transformation numérique.
Et si divers secteurs d'entreprise étaient autorisés à créer leurs propres services et applications, et que la prise de décision était décentralisée plutôt que centralisée ? Afin de permettre aux différents secteurs d'activité de répondre aux données en temps réel, cette recherche étudie l'idée d'une plateforme commerciale numérique.
Dans une entreprise numérique, de nombreuses innovations se produiront de plus en plus à la périphérie, qu'il s'agisse d'appareils IoT ou d'utilisateurs professionnels (des spécialistes du marketing aux scientifiques des données).
Votre personnel informatique de base peut donner à ces industries les ressources numériques dont elles ont besoin pour se développer rapidement afin de rationaliser le processus. Ce livre étudie : D'importants changements organisationnels et culturels sont nécessaires pour établir des capacités commerciales par le biais d'équipes de produits interfonctionnelles. un système de connexion des programmes, des bases de données, des clients, des partenaires, les réseaux sociaux, et appareils Internet des objets.
Dans le but de développer des services de pointe dans des paramètres low-code ou no-code, la programmation API interne Application Platform as a Service, Integration Platform as a Service et Integration Software as a Service sont quelques exemples d'outils.
14. Conception d'un système d'apprentissage automatique
Les systèmes d'apprentissage automatique sont à la fois complexes et spéciaux. Ils sont complexes parce qu'ils ont un large éventail de parties constituantes et de parties prenantes.
Parce qu'ils dépendent de données, qui varient considérablement d'un cas d'utilisation à l'autre, ils sont particuliers.
Dans ce livre, vous découvrirez une méthode complète pour créer des systèmes ML fiables, évolutifs, maintenables et adaptables à l'évolution de l'environnement et des exigences de l'entreprise.
L'auteur Chip Huyen, co-fondateur de Claypot AI, tient compte de la manière dont chaque choix de conception peut aider votre système dans son ensemble à atteindre ses objectifs.
Les exemples incluent la manière de gérer et de produire des données de formation, les fonctionnalités à utiliser, la fréquence de recyclage des modèles et les éléments à surveiller. La méthodologie itérative de ce livre utilise des études de cas réels qui sont étayées par une multitude de sources.
15. Concevoir des systèmes sécurisés
La technologie, la sécurité physique et les processus humains sont tous liés dans les systèmes modernes. Les attaquants en sont conscients et profitent fréquemment d'une faille dans un type de protection pour prendre le contrôle d'une activité par ailleurs sécurisée.
Nous avons besoin d'un modèle unique et global qui peut être appliqué pour expliquer chaque composant du système sur un pied d'égalité afin de révéler ces défauts.
Des cadenas au phishing en passant par la conception de logiciels d'entreprise, Designing Secure Systems présente une approche théorique des problèmes sous-jacents à tous les types de systèmes et explique comment les faiblesses dans un domaine d'un système entraînent des vulnérabilités dans d'autres domaines tout en mettant en œuvre les cadres et les normes utilisés dans l'industrie de la cybersécurité.
La sécurité de l'ensemble du système, y compris son personnel, ses procédures et sa technologie, sera analysée à l'aide d'un modèle unique.
16. Analyse, conception et test du système
L'objectif est d'utiliser un langage simple pour aider les étudiants de niveau A à comprendre les concepts d'analyse de système, de conception de système, de test et de SIG.
Le livre est destiné à donner aux lecteurs les connaissances dont ils ont besoin pour comprendre l'analyse système, les aspects de conception et la fonction des tests dans le développement logiciel.
Une compréhension approfondie est fournie par des études de cas en plus d'une base théorique. À l'aide de nombreux graphiques dans un langage simple, les normes et les lignes directrices pour la conception de formulaires, la conception de rapports, la conception d'interfaces graphiques, etc., sont explorées.
Les avantages et les inconvénients des outils CASE sont également brièvement abordés. Des exemples simples et efficaces illustrent les normes de diagramme UML les plus récentes. Le livre traite à la fois des méthodologies d'analyse et de conception de logiciels structurés et orientés objet.
À l'aide de nombreux exemples et illustrations, les stratégies de collecte de faits, le développement d'applications conjointes (JAD), la réingénierie des processus métier, les techniques d'organigramme, les diagrammes de flux de données, les arbres de décision, les tables de décision, les graphiques structurés et les dictionnaires de données sont expliqués de manière simple. Anglais.
Les étudiants, les programmeurs, les chercheurs et les développeurs de logiciels qui souhaitent comprendre, analyser et créer des logiciels devraient lire ce livre.
17. Modèle d'architecture logicielle pour les systèmes sans serveur
Ce livre montre comment construire et exécuter des systèmes anti-fragiles et vous guide à travers les composants architecturaux fondamentaux qui permettent le changement, tels que les événements, les services autonomes et micro-interfaces, qui alimentent les systèmes logiciels d'entreprise.
Vous allez segmenter un système et définir des paramètres afin que les équipes puissent fonctionner de manière indépendante et accélérer la vitesse d'invention. Outre les nombreux modèles de conception de services autonomes, le livre couvre également les événements de bas niveau et les modèles de données qui prennent en charge l'ensemble de l'architecture.
Vous vous concentrerez sur les meilleures pratiques en matière de sécurité, de fiabilité, de testabilité, d'observabilité et de performances au fur et à mesure.
Le livre rassemble ensuite tout ce que vous avez appris en décrivant les processus d'expérimentation, de déploiement et de livraison continus avant de vous donner quelques derniers conseils sur la façon de commencer à aller de l'avant.
À la fin de ce livre, vous serez en mesure de concevoir vos propres systèmes sans serveur, pilotés par les événements, suffisamment flexibles pour produire de la valeur à la vitesse requise par votre entreprise.
18. Architectures cloud natives
La plus grande avancée révolutionnaire dans le domaine des technologies de l'information depuis la virtualisation a été le cloud computing. Vous avez plus de flexibilité avec les conceptions natives du cloud par rapport aux systèmes traditionnels.
Lorsque les organisations découvrent qu'elles ne peuvent pas migrer vers le cloud, elles doivent mettre à jour leurs modèles et architectures de développement afin d'en tirer parti.
La modernisation organisationnelle, la modernisation du déploiement et les modèles architecturaux cloud-native sont les trois éléments clés que l'architecture cloud-native affiche lors de la fourniture d'architectures cloud-native contemporaines.
Afin de décrire et de clarifier ce qu'est et n'est pas l'architecture cloud-native, ce livre commence par une brève introduction aux architectures cloud-native.
Vous comprendrez un cadre d'adoption du cloud et apprendrez à créer des architectures cloud natives en utilisant les concepts architecturaux de microservices et d'informatique sans serveur.
Les principaux composants de la conception native du cloud, tels que l'évolutivité, la réduction des coûts, la sécurité et les méthodes permettant d'atteindre l'excellence opérationnelle, seront ensuite abordés. Vous découvrirez également une variété de conceptions de cloud public, d'AWS et d'Azure à Google Cloud Platform, dans les derniers chapitres.
19. Introduction à la conception de systèmes à base de microprocesseur
Pour les étudiants en génie et en informatique qui poursuivent leur premier semestre de conception de systèmes à base de microprocesseurs, ce livre est recommandé.
Il commence par un résumé des idées fondamentales, puis guide le lecteur à travers la construction d'un exemple simple de microprocesseur en utilisant une approche méthodique, étape par étape, de la résolution de problèmes.
L'installation et la programmation de systèmes de micro-ordinateurs construits autour d'un deuxième microprocesseur sont ensuite démontrées au lecteur. Une meilleure compréhension et une plus grande efficacité d'apprentissage sont fournies par les nombreuses instances et exercices résolus.
En outre, de nombreux systèmes basés sur des microprocesseurs qui ont été construits expressément à des fins pédagogiques sont minutieusement développés, simulés et implémentés sur des plates-formes basées sur FPGA dans la dernière section du livre.
Les rédacteurs de ce manuel se sont appuyés sur leur richesse de connaissances tout en créant des ressources d'apprentissage pour les cours d'ingénierie de premier cycle et des cycles supérieurs.
20. Entretien de conception de système de craquage
Vous devez avoir des connaissances sur la conception de systèmes si vous souhaitez progresser dans le domaine du génie logiciel. Même si vous débutez avec le codage, c'est une bonne idée d'avoir une longueur d'avance sur la compréhension de l'architecture du système.
Au début de votre carrière, vos capacités de codage détermineront principalement vos performances. D'un autre côté, les entretiens de haut niveau donneront souvent plus de poids à vos connaissances et à votre expertise en matière de conception d'applications.
Le fait que les entretiens de conception de système soient plus ouverts et manquent d'une seule bonne réponse les rend les plus difficiles à réaliser pour les ingénieurs.
Avec ce livre, l'auteur espère vous fournir une feuille de route pour naviguer dans ce genre d'entretiens, car l'absence d'organisation peut être intimidante.
Conclusion
En conclusion, les 20 livres énumérés ci-dessus sont les plus grands livres de conception de systèmes en ligne. Faites attention à ne pas vous laisser submerger par eux et achetez-les tous.
Choisissez un livre que vous aimez vraiment et assurez-vous de le lire d'un bout à l'autre. Il est préférable de lire patiemment un livre plutôt que d'en parcourir rapidement plusieurs.
Vous pouvez augmenter vos connaissances à l'aide de ces livres, et vous pourriez même réussir l'entretien de conception du système.
Soyez sympa! Laissez un commentaire