舉報

會員
Clean Code in C#
TraditionallyassociatedwithdevelopingWindowsdesktopapplicationsandgames,C#isnowusedinawidevarietyofdomains,suchaswebandcloudapps,andhasbecomeincreasinglypopularformobiledevelopment.Despiteitsextensivecodingfeatures,professionalsexperienceproblemsrelatedtoefficiency,scalability,andmaintainabilitybecauseofbadcode.CleanCodeinC#willhelpyouidentifytheseproblemsandsolvethemusingcodingbestpractices.Thebookstartswithacomparisonofgoodandbadcode,helpingyouunderstandtheimportanceofcodingstandards,principles,andmethodologies.You’llthengettogripswithcodereviewsandtheirroleinimprovingyourcodewhileensuringthatyouadheretoindustry-recognizedcodingstandards.ThisC#bookcoversunittesting,delvesintotest-drivendevelopment,andaddressescross-cuttingconcerns.You’llexploregoodprogrammingpracticesforobjects,datastructures,exceptionhandling,andotheraspectsofwritingC#computerprograms.Onceyou’vestudiedAPIdesignanddiscoveredtoolsforimprovingcodequality,you’lllookatexamplesofbadcodeandunderstandwhichcodingpracticesyoushouldavoid.Bytheendofthiscleancodebook,you’llhavethedevelopedskillsyouneedinordertoapplyindustry-approvedcodingpracticestowriteclean,readable,extendable,andmaintainableC#code.
目錄(165章)
倒序
- 封面
- 版權信息
- 獻辭
- About Packt
- Why subscribe?
- Contributors
- Preface
- Coding Standards and Principles in C#
- Technical requirements
- Good code versus bad code
- The need for coding standards principles and methodologies
- Summary
- Questions
- Further reading
- Code Review – Process and Importance
- The code review process
- Preparing code for review
- Leading a code review
- Knowing what to review
- Knowing when to send code for review
- Providing and responding to review feedback
- Summary
- Questions
- Further reading
- Classes Objects and Data Structures
- Technical requirements
- Organizing classes
- A class should have only one responsibility
- Commenting for documentation generation
- Cohesion and coupling
- Design for change
- The Law of Demeter
- Immutable objects and data structures
- Objects should hide data and expose methods
- Data structures should expose data and have no methods
- Summary
- Questions
- Further reading
- Writing Clean Functions
- Understanding functional programming
- Keeping methods small
- Avoiding duplication
- Avoiding multiple parameters
- Summary
- Questions
- Further reading
- Exception Handling
- Checked and unchecked exceptions
- Avoiding NullPointerExceptions
- Business rule exceptions
- Exceptions should provide meaningful information
- Building your own custom exceptions
- Summary
- Questions
- Further reading
- Unit Testing
- Technical Requirements
- Understanding the reasons for a good test
- Understanding the testing tools
- TDD methodology practice – fail pass and refactor
- Removing redundant tests comments and dead code
- Summary
- Questions
- Further reading
- End-to-End System Testing
- E2E testing
- Factories
- Dependency injection
- Modularization
- Summary
- Questions
- Further reading
- Threading and Concurrency
- Understanding the thread life cycle
- Adding thread parameters
- Using a thread pool
- Using a mutex with synchronous threads
- Working with parallel threads using semaphores
- Limiting the number of processors and threads in the thread pool
- Preventing deadlocks
- Preventing race conditions
- Understanding static constructors and methods
- Mutability immutability and thread safety
- Synchronized method dependencies
- Using the Interlocked class
- General recommendations
- Summary
- Questions
- Further reading
- Designing and Developing APIs
- Technical requirements
- What is an API?
- API proxies
- API design guidelines
- API design using RAML
- Summary
- Questions
- Further reading
- Securing APIs with API Keys and Azure Key Vault
- Technical requirements
- Undertaking the API project – dividend calendar
- Accessing the Morningstar API
- Creating the dividend calendar ASP.NET Core web application in Azure
- Using an API key to secure our dividend calendar API
- Testing our API key security
- Addingthe dividend calendar code
- Throttling our API
- Summary
- Questions
- Further reading
- Addressing Cross-Cutting Concerns
- Technical requirements
- The decorator pattern
- The proxy pattern
- AOP with PostSharp
- Project – cross-cutting concerns reusable library
- Summary
- Questions
- Further reading
- Using Tools to Improve Code Quality
- Technical requirements
- Defining good-quality code
- Performing code cleanup and calculating code metrics
- Performing code analysis
- Using quick actions
- Using the JetBrains dotTrace profiler
- Using JetBrains ReSharper
- Using Telerik JustDecompile
- Summary
- Questions
- Further reading
- Refactoring C# Code – Identifying Code Smells
- Technical requirements
- Application-level code smells
- Class-level code smells
- Method-level smells
- Summary
- Questions
- Further reading
- Refactoring C# Code – Implementing Design Patterns
- Technical requirements
- Implementing creational design patterns
- Implementing structural design patterns
- Overview of behavioral design patterns
- Final thoughts
- Summary
- Questions
- Further reading
- Assessments
- Chapter 1
- Chapter 2
- Chapter 3
- Chapter 4
- Chapter 5
- Chapter 6
- Chapter 7
- Chapter 8
- Chapter 9
- Chapter 10
- Chapter 11
- Chapter 12
- Chapter 13
- Chapter 14
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-18 18:28:37
推薦閱讀
- Twilio Best Practices
- Practical Game Design
- Securing WebLogic Server 12c
- Elasticsearch for Hadoop
- Python完全自學教程
- Mastering Backbone.js
- App Inventor創意趣味編程進階
- Python項目實戰從入門到精通
- R語言數據可視化:科技圖表繪制
- Mastering jQuery Mobile
- Apache Solr PHP Integration
- 邊玩邊學Scratch3.0少兒趣味編程
- Visual C++開發寶典
- Scratch編程從入門到精通
- MongoDB Administrator’s Guide
- 透視C#核心技術:系統架構及移動端開發
- C++面向對象程序設計教程
- jQuery基礎教程(第4版)
- Learning Node.js for Mobile Application Development
- JavaWeb入門經典
- Hadoop技術內幕:深入解析HadoopCommon和HDFS架構設計與實現原理
- JavaScript Promises Essentials
- Python Geospatial Development(Third Edition)
- 響應式Web設計:HTML5和CSS3實踐指南
- Python Django Web典型模塊開發實戰
- IBM Informix 11.x系統管理與開發指南
- Python量化投資:技術、模型與策略
- Maven Essentials
- C語言程序設計案例式教程(第2版)
- 讓工作化繁為簡:用Python實現辦公自動化