Opis ebooka: Clean Code Cookbook
Often, software engineers and architects work with large, complex code bases that they need to scale and maintain. With this cookbook, author Maximiliano Contieri takes you beyond the concept of clean code by showing you how to identify improvement opportunities and their impact on production code. When it comes to reliability and system evolution, these techniques provide benefits that pay off over time.
Using real life examples in JavaScript, PHP, Java, Python, and many other programming languages, this cookbook provides proven recipes to help you scale and maintain large systems. Every section covers fundamental concepts including readability, coupling, testability, and extensibility, as well as code smells—symptoms of a problem that requires special attention—and the recipes to address them.
As you proceed through this book, refactoring recipes and the variety of code smells increase in complexity. You will:
- Understand the benefits of clean code and learn how to detect code smells
- Learn refactoring techniques step by step
- Gain illustrative code examples in several modern programming languages
- Get a comprehensive catalog of common code smells, their impacts, and possible solutions
- Use code that's straight to the point, favoring readability and learning
Wybrane bestsellery
-
Język modelowania UML i będące jego częścią diagramy UML odgrywają ważną rolę w inżynierii oprogramowania. Stanowią komunikacyjny pomost podczas pracy zespołowej i w kontaktach zarówno z menedżerami, jak i klientami biznesowymi, niekoniecznie zorientowanymi w procesach projektowych i deweloperski...
UML. Kurs video. Projektowanie diagramów i modelowanie systemów w teorii i praktyce UML. Kurs video. Projektowanie diagramów i modelowanie systemów w teorii i praktyce
(58.04 zł najniższa cena z 30 dni)83.85 zł
129.00 zł(-35%) -
Głębokie sieci neuronowe mają niesamowity potencjał. Osiągnięcia ostatnich lat nadały procesom uczenia głębokiego zupełnie nową jakość. Obecnie nawet programiści niezaznajomieni z tą technologią mogą korzystać z prostych i niezwykle skutecznych narzędzi, pozwalających na sprawne implementowanie p...
Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow. Wydanie III Uczenie maszynowe z użyciem Scikit-Learn, Keras i TensorFlow. Wydanie III
(107.40 zł najniższa cena z 30 dni)107.40 zł
179.00 zł(-40%) -
Dave Thomas i Andy Hunt napisali pierwsze wydanie tej wpływowej książki w 1999 roku, aby pomóc swoim klientom tworzyć lepsze oprogramowanie i na nowo odnaleźć radość z kodowania. Nauki płynące z tamtego wydania pomogły wielu pokoleniom programistów zbadać istotę rozwoju oprogramowania, niezależni...
Pragmatyczny programista. Od czeladnika do mistrza. Wydanie II Pragmatyczny programista. Od czeladnika do mistrza. Wydanie II
(46.20 zł najniższa cena z 30 dni)46.20 zł
77.00 zł(-40%) -
O tym, ile problemów sprawia niedbale napisany kod, wie każdy programista. Nie wszyscy jednak wiedzą, jak napisać ten świetny, „czysty” kod i czym właściwie powinien się on charakteryzować. Co więcej – jak odróżnić dobry kod od złego? Odpowiedź na te pytania oraz sposoby tworzen...(47.40 zł najniższa cena z 30 dni)
47.40 zł
79.00 zł(-40%) -
This book explores the potential of ChatGPT-powered chatbots and conversational AI. You'll delve into understanding the technology, its implementation, and practical use cases, while leveraging AI-powered conversations.
ChatGPT for Conversational AI and Chatbots. Learn how to automate conversations with the latest large language model technologies ChatGPT for Conversational AI and Chatbots. Learn how to automate conversations with the latest large language model technologies
(92.88 zł najniższa cena z 30 dni) -
This book will help you understand key security principles and how they are implemented with Spring Security. You’ll also gain an in-depth understanding of Spring Security's new features applied to servlet and reactive Spring applications.
Spring Security. Effectively secure your web apps, RESTful services, cloud apps, and microservice architectures - Fourth Edition Spring Security. Effectively secure your web apps, RESTful services, cloud apps, and microservice architectures - Fourth Edition
-
Are you ready to be a part of the AI revolution? This book guides you through the concepts and steps you'll need to quickly add the latest and best AI models and features to your applications with real-world examples using Microsoft Semantic Kernel.
Building AI Applications with Microsoft Semantic Kernel. Easily integrate generative AI capabilities and copilot experiences into your applications Building AI Applications with Microsoft Semantic Kernel. Easily integrate generative AI capabilities and copilot experiences into your applications
O autorze ebooka
Maximiliano Contieri jest programistą i wykładowcą na Uniwersytecie w Buenos Aires. Pisze na popularnych platformach blogowych o czystym kodzie, refaktoryzacji i brzydkich zapachach kodu. Jest zwolennikiem stosowania fundamentalnych zasad programowania do konstruowania eleganckich, skalowalnych i solidnych rozwiązań.
Ebooka "Clean Code Cookbook" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Clean Code Cookbook" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Clean Code Cookbook" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-10-981-4468-5, 9781098144685
- Data wydania ebooka:
-
2023-09-11
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 2.3MB
- Rozmiar pliku Mobi:
- 6.2MB
Spis treści ebooka
- Foreword
- Preface
- Who This Book Is For
- How This Book Is Organized
- What You Need to Use This Book
- Access This Book in Digital Format
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- 1. Clean Code
- 1.1. What Is a Code Smell?
- 1.2. What Is Refactoring?
- 1.3. What Is a Recipe?
- 1.4. Why Clean Code?
- 1.5. Readability, Performance, or Both
- 1.6. Software Types
- 1.7. Machine-Generated Code
- 1.8. Naming Considerations Throughout the Book
- 1.9. Design Patterns
- 1.10. Programming Language Paradigms
- 1.11. Objects Versus Classes
- 1.12. Changeability
- 2. Setting Up the Axioms
- 2.0. Introduction
- 2.1. Why Is It a Model?
- 2.2. Why Is It Abstract?
- 2.3. Why Is It Programmable?
- 2.4. Why Is It Partial?
- 2.5. Why Is It Explanatory?
- 2.6. Why Is It About Reality?
- 2.7. Inferring the Rules
- 2.8. The One and Only Software Design Principle
- 3. Anemic Models
- 3.0. Introduction
- 3.1. Converting Anemic Objects to Rich Objects
- 3.2. Identifying the Essence of Your Objects
- 3.3. Removing Setters from Objects
- 3.4. Removing Anemic Code Generators
- 3.5. Removing Automatic Properties
- 3.6. Removing DTOs
- 3.7. Completing Empty Constructors
- 3.8. Removing Getters
- 3.9. Preventing Object Orgy
- 3.10. Removing Dynamic Properties
- 4. Primitive Obsession
- 4.0. Introduction
- 4.1. Creating Small Objects
- 4.2. Reifying Primitive Data
- 4.3. Reifying Associative Arrays
- 4.4. Removing String Abuses
- 4.5. Reifying Timestamps
- 4.6. Reifying Subsets as Objects
- 4.7. Reifying String Validations
- 4.8. Removing Unnecessary Properties
- 4.9. Creating Date Intervals
- 5. Mutability
- 5.0. Introduction
- 5.1. Changing var to const
- 5.2. Declaring Variables to Be Variable
- 5.3. Forbidding Changes in the Essence
- 5.4. Avoiding Mutable const Arrays
- 5.5. Removing Lazy Initialization
- 5.6. Freezing Mutable Constants
- 5.7. Removing Side Effects
- 5.8. Preventing Hoisting
- 6. Declarative Code
- 6.0. Introduction
- 6.1. Narrowing Reused Variables
- 6.2. Removing Empty Lines
- 6.3. Removing Versioned Methods
- 6.4. Removing Double Negatives
- 6.5. Changing Misplaced Responsibilities
- 6.6. Replacing Explicit Iterations
- 6.7. Documenting Design Decisions
- 6.8. Replacing Magic Numbers with Constants
- 6.9. Separating What and How
- 6.10. Documenting Regular Expressions
- 6.11. Rewriting Yoda Conditions
- 6.12. Removing Comedian Methods
- 6.13. Avoiding Callback Hell
- 6.14. Generating Good Error Messages
- 6.15. Avoiding Magic Corrections
- 7. Naming
- 7.0. Introduction
- 7.1. Expanding Abbreviations
- 7.2. Renaming and Breaking Helpers and Utils
- 7.3. Renaming MyObjects
- 7.4. Renaming Result Variables
- 7.5. Renaming Variables Named After Types
- 7.6. Renaming Long Names
- 7.7. Renaming Abstract Names
- 7.8. Correcting Spelling Mistakes
- 7.9. Removing Class Names from Attributes
- 7.10. Removing the First Letter from Classes and Interfaces
- 7.11. Renaming Basic / Do Functions
- 7.12. Converting Plural Classes to Singular
- 7.13. Removing Collection from Names
- 7.14. Removing Impl Prefix/Suffix from Class Names
- 7.15. Renaming Arguments According to Role
- 7.16. Removing Redundant Parameter Names
- 7.17. Removing Gratuitous Context from Names
- 7.18. Avoiding Data Naming
- 8. Comments
- 8.0. Introduction
- 8.1. Removing Commented Code
- 8.2. Removing Obsolete Comments
- 8.3. Removing Logical Comments
- 8.4. Removing Getter Comments
- 8.5. Converting Comments to Function Names
- 8.6. Removing Comments Inside Methods
- 8.7. Replacing Comments with Tests
- 9. Standards
- 9.0. Introduction
- 9.1. Following Code Standards
- 9.2. Standardizing Indentations
- 9.3. Unifying Case Conventions
- 9.4. Writing Code in English
- 9.5. Unifying Parameter Order
- 9.6. Fixing Broken Windows
- 10. Complexity
- 10.0. Introduction
- 10.1. Removing Repeated Code
- 10.2. Removing Settings/Configs and Feature Toggles
- 10.3. Changing State as Properties
- 10.4. Removing Cleverness from Code
- 10.5. Breaking Multiple Promises
- 10.6. Breaking Long Chains of Collaborations
- 10.7. Extracting a Method to an Object
- 10.8. Looking After Array Constructors
- 10.9. Removing Poltergeist Objects
- 11. Bloaters
- 11.0. Introduction
- 11.1. Breaking Too Long Methods
- 11.2. Reducing Excess Arguments
- 11.3. Reducing Excess Variables
- 11.4. Removing Excessive Parentheses
- 11.5. Removing Excess Methods
- 11.6. Breaking Too Many Attributes
- 11.7. Reducing Import Lists
- 11.8. Breaking And Functions
- 11.9. Breaking Fat Interfaces
- 12. YAGNI
- 12.0. Introduction
- 12.1. Removing Dead Code
- 12.2. Using Code Instead of Diagrams
- 12.3. Refactoring Classes with One Subclass
- 12.4. Removing One-Use Interfaces
- 12.5. Removing Design Pattern Abuses
- 12.6. Replacing Business Collections
- 13. Fail Fast
- 13.0. Introduction
- 13.1. Refactoring Reassignment of Variables
- 13.2. Enforcing Preconditions
- 13.3. Using Stricter Parameters
- 13.4. Removing Default from Switches
- 13.5. Avoiding Modifying Collections While Traversing
- 13.6. Redefining Hash and Equality
- 13.7. Refactoring Without Functional Changes
- 14. Ifs
- 14.0. Introduction
- 14.1. Replacing Accidental Ifs with Polymorphism
- 14.2. Renaming Flag Variables for Events
- 14.3. Reifying Boolean Variables
- 14.4. Replacing Switch/Case/Elseif Statements
- 14.5. Replacing Hardcoded If Conditions with Collections
- 14.6. Changing Boolean to Short-Circuit Conditions
- 14.7. Adding Implicit Else
- 14.8. Rewriting Conditional Arrow Code
- 14.9. Avoiding Short-Circuit Hacks
- 14.10. Rewriting Nested Arrow Code
- 14.11. Preventing Return Boolean Values for Condition Checks
- 14.12. Changing Comparison Against Booleans
- 14.13. Extracting from Long Ternaries
- 14.14. Converting Nonpolymorphic Functions to Polymorphic
- 14.15. Changing Equal Comparison
- 14.16. Reifying Hardcoded Business Conditions
- 14.17. Removing Gratuitous Booleans
- 14.18. Rewriting Nested Ternaries
- 15. Null
- 15.0. Introduction
- 15.1. Creating Null Objects
- 15.2. Removing Optional Chaining
- 15.3. Converting Optional Attributes to a Collection
- 15.4. Using Real Objects for Null
- 15.5. Representing Unknown Locations Without Using Null
- 16. Premature Optimization
- 16.0. Introduction
- 16.1. Avoiding IDs on Objects
- 16.2. Removing Premature Optimization
- 16.3. Removing Bitwise Premature Optimizations
- 16.4. Reducing Overgeneralization
- 16.5. Changing Structural Optimizations
- 16.6. Removing Anchor Boats
- 16.7. Extracting Caches from Domain Objects
- 16.8. Removing Callback Events Based on Implementation
- 16.9. Removing Queries from Constructors
- 16.10. Removing Code from Destructors
- 17. Coupling
- 17.0. Introduction
- 17.1. Making Hidden Assumptions Explicit
- 17.2. Replacing Singletons
- 17.3. Breaking God Objects
- 17.4. Breaking Divergent Change
- 17.5. Converting 9999 Special Flag Values to Normal
- 17.6. Removing Shotgun Surgery
- 17.7. Removing Optional Arguments
- 17.8. Preventing Feature Envy
- 17.9. Removing the Middleman
- 17.10. Moving Default Arguments to the End
- 17.11. Avoiding the Ripple Effect
- 17.12. Removing Accidental Methods on Business Objects
- 17.13. Removing Business Code from the User Interface
- 17.14. Changing Coupling to Classes
- 17.15. Refactoring Data Clumps
- 17.16. Breaking Inappropriate Intimacy
- 17.17. Converting Fungible Objects
- 18. Globals
- 18.0. Introduction
- 18.1. Reifying Global Functions
- 18.2. Reifying Static Functions
- 18.3. Replacing GoTo with Structured Code
- 18.4. Removing Global Classes
- 18.5. Changing Global Date Creation
- 19. Hierarchies
- 19.0. Introduction
- 19.1. Breaking Deep Inheritance
- 19.2. Breaking Yo-Yo Hierarchies
- 19.3. Breaking Subclassification for Code Reuse
- 19.4. Replacing is-a Relationship with Behavior
- 19.5. Removing Nested Classes
- 19.6. Renaming Isolated Classes
- 19.7. Making Concrete Classes Final
- 19.8. Defining Class Inheritance Explicitly
- 19.9. Migrating Empty Classes
- 19.10. Delaying Premature Classification
- 19.11. Removing Protected Attributes
- 19.12. Completing Empty Implementations
- 20. Testing
- 20.0. Introduction
- 20.1. Testing Private Methods
- 20.2. Adding Descriptions to Assertions
- 20.3. Migrating assertTrue to Specific Assertions
- 20.4. Replacing Mocks with Real Objects
- 20.5. Refining Generic Assertions
- 20.6. Removing Flaky Tests
- 20.7. Changing Float Number Assertions
- 20.8. Changing Test Data to Realistic Data
- 20.9. Protecting Tests Violating Encapsulation
- 20.10. Removing Irrelevant Test Information
- 20.11. Adding Coverage for Every Merge Request
- 20.12. Rewriting Tests Depending on Dates
- 20.13. Learning a New Programming Language
- 21. Technical Debt
- 21.0. Introduction
- 21.1. Removing Production-Dependent Code
- 21.2. Removing Defect Trackers
- 21.3. Removing Warning/Strict Off
- 21.4. Preventing and Removing ToDos and FixMes
- 22. Exceptions
- 22.0. Introduction
- 22.1. Removing Empty Exception Blocks
- 22.2. Removing Unnecessary Exceptions
- 22.3. Rewriting Exceptions for Expected Cases
- 22.4. Rewriting Nested Try/Catches
- 22.5. Replacing Return Codes with Exceptions
- 22.6. Rewriting Exception Arrow Code
- 22.7. Hiding Low-Level Errors from End Users
- 22.8. Narrowing Exception Tries
- 23. Metaprogramming
- 23.0. Introduction
- 23.1. Removing Metaprogramming Usage
- 23.2. Reifying Anonymous Functions
- 23.3. Removing Preprocessors
- 23.4. Removing Dynamic Methods
- 24. Types
- 24.0. Introduction
- 24.1. Removing Type Checking
- 24.2. Dealing with Truthy Values
- 24.3. Changing Float Numbers to Decimals
- 25. Security
- 25.0. Introduction
- 25.1. Sanitizing Inputs
- 25.2. Changing Sequential IDs
- 25.3. Removing Package Dependencies
- 25.4. Replacing Evil Regular Expressions
- 25.5. Protecting Object Deserialization
- Glossary of Terms
- Index
O'Reilly Media - inne książki
-
Keeping up with the Python ecosystem can be daunting. Its developer tooling doesn't provide the out-of-the-box experience native to languages like Rust and Go. When it comes to long-term project maintenance or collaborating with others, every Python project faces the same problem: how to build re...(201.03 zł najniższa cena z 30 dni)
200.93 zł
239.00 zł(-16%) -
Bringing a deep-learning project into production at scale is quite challenging. To successfully scale your project, a foundational understanding of full stack deep learning, including the knowledge that lies at the intersection of hardware, software, data, and algorithms, is required.This book il...(241.36 zł najniższa cena z 30 dni)
241.26 zł
289.00 zł(-17%) -
Frontend developers have to consider many things: browser compatibility, usability, performance, scalability, SEO, and other best practices. But the most fundamental aspect of creating websites is one that often falls short: accessibility. Accessibility is the cornerstone of any website, and if a...(200.59 zł najniższa cena z 30 dni)
200.09 zł
239.00 zł(-16%) -
In this insightful and comprehensive guide, Addy Osmani shares more than a decade of experience working on the Chrome team at Google, uncovering secrets to engineering effectiveness, efficiency, and team success. Engineers and engineering leaders looking to scale their effectiveness and drive tra...(114.93 zł najniższa cena z 30 dni)
114.88 zł
149.00 zł(-23%) -
Data modeling is the single most overlooked feature in Power BI Desktop, yet it's what sets Power BI apart from other tools on the market. This practical book serves as your fast-forward button for data modeling with Power BI, Analysis Services tabular, and SQL databases. It serves as a starting ...(199.08 zł najniższa cena z 30 dni)
198.88 zł
239.00 zł(-17%) -
C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 12.0 and .NET 8 fundamentals and techniques for building c...(241.02 zł najniższa cena z 30 dni)
240.92 zł
289.00 zł(-17%) -
Learn how to get started with Futures Thinking. With this practical guide, Phil Balagtas, founder of the Design Futures Initiative and the global Speculative Futures network, shows you how designers and futurists have made futures work at companies such as Atari, IBM, Apple, Disney, Autodesk, Luf...(148.10 zł najniższa cena z 30 dni)
148.00 zł
179.00 zł(-17%) -
Augmented Analytics isn't just another book on data and analytics; it's a holistic resource for reimagining the way your entire organization interacts with information to become insight-driven.Moving beyond traditional, limited ways of making sense of data, Augmented Analytics provides a dynamic,...(174.74 zł najniższa cena z 30 dni)
174.54 zł
219.00 zł(-20%) -
Learn how to prepare for—and pass—the Kubernetes and Cloud Native Associate (KCNA) certification exam. This practical guide serves as both a study guide and point of entry for practitioners looking to explore and adopt cloud native technologies. Adrián González Sánchez ...
Kubernetes and Cloud Native Associate (KCNA) Study Guide Kubernetes and Cloud Native Associate (KCNA) Study Guide
(169.14 zł najniższa cena z 30 dni)177.65 zł
199.00 zł(-11%) -
Python is an excellent way to get started in programming, and this clear, concise guide walks you through Python a step at a time—beginning with basic programming concepts before moving on to functions, data structures, and object-oriented design. This revised third edition reflects the gro...(140.34 zł najniższa cena z 30 dni)
140.14 zł
179.00 zł(-22%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
![Loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
![ajax-loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
Oceny i opinie klientów: Clean Code Cookbook Maximiliano Contieri (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.