Free Download Clean Code Principles And Patterns: Python Edition by Petri Silén
English | January 18, 2024 | ISBN: B0CSTKVLCY | 1260 pages | PDF | 11 Mb
Clean Code Principles and Patterns is one of the most comprehensive no-fluff guides for software developers to help them write clean code every day. The author, Petri Silén, has almost 30 years of industry experience in designing and implementing software, and now he puts all his knowledge gained during the years into this book. The book is packed with principles and patterns that help developers, from novices and juniors to seniors and experts, to write cleaner code. The principles and patterns presented in the book are accompanied by realistic yet straightforward examples to help the reader understand them better. Examples are written in Python. Most of the examples are directly applicable to other programming languages, too. The reader should have basic knowledge of Python to get the full benefit from this book. The source code for all major examples presented in the book is available in a public GitHub repository.
The book is divided into ten chapters:Architectural design principlesObject-oriented design principlesCoding principlesTesting principlesSecurity principlesAPI design principlesDatabase types and related principlesConcurrent programming principlesTeamwork principlesDevSecOps
After reading this book, you will know the following and much more:How to design modern cloud-native microservicesWhat are autopilot microservicesWhat are event sourcing, CQRS, distributed transactions, saga orchestration pattern, and saga choreography patternWhat are the five SOLID principles, and how to put them into use in real-life codeWhat are the 25 design patterns, and how to use themWhat is the MVC pattern, and how MVP and MVVM differ from each otherHow to achieve a clean design for a microserviceWhy and how to use dependency injectionDetailed instructions with concrete examples on how to uniformly name various software entities like classes, functions, and variablesWhy you should prefer composition over inheritanceHow to split a software system into domains using domain-driven designHow to organize a source code repositoryHow to organize code into directoriesConcrete ways how to avoid writing comments and refactor comments awayWhat are the most common issues that static code analyzers find, and how to correct themThe most important refactoring techniques for everyday useWhy you should use a statically typed languageHow to correctly handle errors and exceptionsHow to not forget to handle errors and exceptionsWhy you should never pass or return a null valueHow to avoid off-by-one errors effectivelyWhat you should remember when using a Google search to get answersWhen and how to optimize codeTDD, Unit testing, mocking, integration testing, E2E testing, and non-functional testingWhat is threat modeling and how to conduct itAuthentication and authorization using OpenID Connect and OAuth2What are the essential security features to implement in an applicationHow to design APIs using technologies like JSON-RPC, REST, GraphQL, SSE, WebSocket, gRPC, and event-driven servicesWhen and how to use a relational database, document database, key-value store, or wide-column databaseHow to avoid SQL injection attacks using ORM or parameterized SQL queriesWhen to use threading or parallel algorithms and how to ensure thread safetyWhat principles to follow when working in a software development teamWhat are DevOps, SecOps, and continuous integration (CI), and what is the difference between continuous delivery (CD) and continuous deployment (CD)