
عنوان:
Code Complete
نویسنده:
Steve McConnell
انتشارات:
Microsoft Press
نسخه:
حجم:
8MB
معرفی کتاب: "راهنمای جامع کدنویسی"
Zero Trust in Resilient Cloud and Network Architectures یک راهنمای عملی و جامع برای پیادهسازی معماریهای خودکار و مقاوم با تمرکز بر تفکیکپذیری (Segmentation) و امنیت در هر مقیاسی است — از آزمایشگاههای کوچک گرفته تا شبکههای حساس سازمانی.
این کتاب توسط تیمی از مهندسان ارشد شرکت Cisco نوشته شده و راهکارهایی واقعی و قابلاجرا برای استقرار معماریهای Zero Trust ارائه میدهد، چه تازه در آغاز مسیر باشید و چه بخواهید زیرساخت موجود را ارتقاء دهید.
آنچه در این کتاب میآموزید:
- ✓ پیادهسازی Zero Trust برای تفکیک، احراز هویت و کاهش ریسک در محیطهای IoT
- ✓ اتوماسیون عملیات شبکه با ابزارهایی مانند Terraform و Ansible
- ✓ استقرار در مقیاس سازمانی با بهرهگیری از تجربیات عملی Cisco
- ✓ ادغام یکپارچه امنیت شبکه داخلی و ابری
- ✓ استفاده از فناوریهای Meraki، EVPN، Pub/Sub در شبکههای مقاوم
- ✓ آشنایی با مفاهیم پیشرفتهای مانند امنیت کوانتومی و Zero Trust صنعتی
ویژگیهای نسخه جدید:
نسخه جدید این کتاب تمرکز ویژهای بر تابآوری شبکه در شرایط بحرانی دارد و به بررسی تکنولوژیهای نوین مانند شبکههای نرمافزارمحور (SDN) و راهکارهای Cisco در حوزه امنیت ابری میپردازد.
مناسب چه کسانی است؟
اگر شما متخصص شبکه، امنیت اطلاعات، DevOps یا اتوماسیون هستید، این کتاب یک منبع کلیدی برای ساخت و مدیریت زیرساختهای مقاوم، ایمن و مدرن خواهد بود.
مطالعه این کتاب به شما کمک میکند درک عمیقی از شیوههای نوین تفکیک ترافیک، کنترل دسترسی پویا و عملیات شبکه خودکار داشته باشید — مفاهیمی حیاتی برای امنیت نسل جدید زیرساختهای ابری و هیبریدی.
فهرست مطالب
- Cover
- Further Praise for Code Complete
- Contents at a Glance
- Table of Contents
- Preface
- Acknowledgments
- Checklists
- Tables
- Figures
- Part I: Laying the Foundation
- Chapter 1: Welcome to Software Construction
- 1.1 What Is Software Construction?
- 1.2 Why Is Software Construction Important?
- 1.3 How to Read This Book
- Key Points
- Chapter 2: Metaphors for a Richer Understanding of Software Development
- 2.1 The Importance of Metaphors
- 2.2 How to Use Software Metaphors
- 2.3 Common Software Metaphors
- Additional Resources
- Key Points
- Chapter 3: Measure Twice, Cut Once: Upstream Prerequisites
- 3.1 Importance of Prerequisites
- 3.2 Determine the Kind of Software You’re Working On
- 3.3 Problem-Definition Prerequisite
- 3.4 Requirements Prerequisite
- 3.5 Architecture Prerequisite
- 3.6 Amount of Time to Spend on Upstream Prerequisites
- Additional Resources
- Key Points
- Chapter 4: Key Construction Decisions
- 4.1 Choice of Programming Language
- 4.2 Programming Conventions
- 4.3 Your Location on the Technology Wave
- 4.4 Selection of Major Construction Practices
- Key Points
- Part II: Creating High-Quality Code
- Chapter 5: Design in Construction
- 5.1 Design Challenges
- 5.2 Key Design Concepts
- 5.3 Design Building Blocks: Heuristics
- 5.4 Design Practices
- 5.5 Comments on Popular Methodologies
- Additional Resources
- Key Points
- Chapter 6: Working Classes
- 6.1 Class Foundations: Abstract Data Types (ADTs)
- 6.2 Good Class Interfaces
- 6.3 Design and Implementation Issues
- 6.4 Reasons to Create a Class
- 6.5 Language-Specific Issues
- 6.6 Beyond Classes: Packages
- Additional Resources
- Key Points
- Chapter 7: High-Quality Routines
- 7.1 Valid Reasons to Create a Routine
- 7.2 Design at the Routine Level
- 7.3 Good Routine Names
- 7.4 How Long Can a Routine Be?
- 7.5 How to Use Routine Parameters
- 7.6 Special Considerations in the Use of Functions
- 7.7 Macro Routines and Inline Routines
- Key Points
- Chapter 8: Defensive Programming
- 8.1 Protecting Your Program from Invalid Inputs
- 8.2 Assertions
- 8.3 Error-Handling Techniques
- 8.4 Exceptions
- 8.5 Barricade Your Program to Contain the Damage Caused by Errors
- 8.6 Debugging Aids
- 8.7 Determining How Much Defensive Programming to Leave in Production Code
- 8.8 Being Defensive About Defensive Programming
- Additional Resources
- Key Points
- Chapter 9: The Pseudocode Programming Process
- 9.1 Summary of Steps in Building Classes and Routines
- 9.2 Pseudocode for Pros
- 9.3 Constructing Routines by Using the PPP
- 9.4 Alternatives to the PPP
- Key Points
- Part III: Variables
- Chapter 10: General Issues in Using Variables
- 10.1 Data Literacy
- 10.2 Making Variable Declarations Easy
- 10.3 Guidelines for Initializing Variables
- 10.4 Scope
- 10.5 Persistence
- 10.6 Binding Time
- 10.7 Relationship Between Data Types and Control Structures
- 10.8 Using Each Variable for Exactly One Purpose
- Key Points
- Chapter 11: The Power of Variable Names
- 11.1 Considerations in Choosing Good Names
- 11.2 Naming Specific Types of Data
- 11.3 The Power of Naming Conventions
- 11.4 Informal Naming Conventions
- 11.5 Standardized Prefixes
- 11.6 Creating Short Names That Are Readable
- 11.7 Kinds of Names to Avoid
- Key Points
- Chapter 12: Fundamental Data Types
- 12.1 Numbers in General
- 12.2 Integers
- 12.3 Floating-Point Numbers
- 12.4 Characters and Strings
- 12.5 Boolean Variables
- 12.6 Enumerated Types
- 12.7 Named Constants
- 12.8 Arrays
- 12.9 Creating Your Own Types (Type Aliasing)
- Key Points
- Chapter 13: Unusual Data Types
- 13.1 Structures
- 13.2 Pointers
- 13.3 Global Data
- Additional Resources
- Key Points
- Part IV: Statements
- Chapter 14: Organizing Straight-Line Code
- Chapter 15: Using Conditionals
- Chapter 16: Controlling Loops
- 16.1 Selecting the Kind of Loop
- 16.2 Controlling the Loop
- 16.3 Creating Loops Easily—From the Inside Out
- 16.4 Correspondence Between Loops and Arrays
- Key Points
- Chapter 17: Unusual Control Structures
- 17.1 Multiple Returns from a Routine
- 17.2 Recursion
- 17.3 goto
- 17.4 Perspective on Unusual Control Structures
- Additional Resources
- Key Points
- Chapter 18: Table-Driven Methods
- 18.1 General Considerations in Using Table-Driven Methods
- 18.2 Direct Access Tables
- 18.3 Indexed Access Tables
- 18.4 Stair-Step Access Tables
- 18.5 Other Examples of Table Lookups
- Key Points
- Chapter 19: General Control Issues
- 19.1 Boolean Expressions
- 19.2 Compound Statements (Blocks)
- 19.3 Null Statements
- 19.4 Taming Dangerously Deep Nesting
- 19.5 A Programming Foundation: Structured Programming
- 19.6 Control Structures and Complexity
- Key Points
- Chapter 20:The Software-Quality Landscape
- 20.1 Characteristics of Software Quality
- 20.2 Techniques for Improving Software Quality
- 20.3 Relative Effectiveness of Quality Techniques
- 20.4 When to Do Quality Assurance
- 20.5 The General Principle of Software Quality
- Additional Resources
- Key Points
- Chapter 21: Collaborative Construction
- 21.1 Overview of Collaborative Development Practices
- 21.2 Pair Programming
- 21.3 Formal Inspections
- 21.4 Other Kinds of Collaborative Development Practices
- 21.5 Comparison of Collaborative Construction Techniques
- Additional Resources
- Key Points
- Chapter 22: Developer Testing
- 22.1 Role of Developer Testing in Software Quality
- 22.2 Recommended Approach to Developer Testing
- 22.3 Bag of Testing Tricks
- 22.4 Typical Errors
- 22.5 Test-Support Tools
- 22.6 Improving Your Testing
- 22.7 Keeping Test Records
- Additional Resources
- Key Points
- Chapter 23: Debugging
- 23.1 Overview of Debugging Issues
- 23.2 Finding a Defect
- 23.3 Fixing a Defect
- 23.4 Psychological Considerations in Debugging
- 23.5 Debugging Tools—Obvious and Not-So-Obvious
- Additional Resources
- Key Points
- Chapter 24: Refactoring
- 24.1 Kinds of Software Evolution
- 24.2 Introduction to Refactoring
- 23.3 Specific Refactorings
- 23.4 Refactoring Safely
- 23.5 Refactoring Strategies
- Additional Resources
- Key Points
- Chapter 25: Code-Tuning Strategies
- 25.1 Performance Overview
- 25.2 Introduction to Code Tuning
- 25.3 Kinds of Fat and Molasses
- 25.4 Measurement
- 25.5 Iteration
- 25.6 Summary of the Approach to Code Tuning
- Additional Resources
- Key Points
- Chapter 26: Code-Tuning Techniques
- 26.1 Logic
- 26.2 Loops
- 26.3 Data Transformations
- 26.4 Expressions
- 26.5 Routines
- 26.6 Recoding in a Low-Level Language
- 26.7 The More Things Change, the More They Stay the Same
- Additional Resources
- Key Points
- Part VI: System Considerations
- Chapter 27: How Program Size Affects Construction
- 27.1 Communication and Size
- 27.2 Range of Project Sizes
- 27.3 Effect of Project Size on Errors
- 27.4 Effect of Project Size on Productivity
- 27.5 Effect of Project Size on Development Activities
- Additional Resources
- Key Points
- Chapter 28: Managing Construction
- 28.1 Encouraging Good Coding
- 28.2 Configuration Management
- 28.3 Estimating a Construction Schedule
- 28.4 Measurement
- 28.5 Treating Programmers as People
- 28.6 Managing Your Manager
- Additional Resources on Managing Construction
- Key Points
- Chapter 29: Integration
- 29.1 Importance of the Integration Approach
- 29.2 Integration Frequency—Phased or Incremental?
- 29.3 Incremental Integration Strategies
- 29.4 Daily Build and Smoke Test
- Additional Resources
- Key Points
- Chapter 30: Programming Tools
- 30.1 Design Tools
- 30.2 Source-Code Tools
- 30.3 Executable-Code Tools
- 30.4 Tool-Oriented Environments
- 30.5 Building Your Own Programming Tools
- 30.6 Tool Fantasyland
- Additional Resources
- Key Points
- Part VII: Software Craftsmanship
- Chapter 31: Layout and Style
- 31.1 Layout Fundamentals
- 31.2 Layout Techniques
- 31.3 Layout Styles
- 31.4 Laying Out Control Structures
- 31.5 Laying Out Individual Statements
- 31.6 Laying Out Comments
- 31.7 Laying Out Routines
- 31.8 Laying Out Classes
- Additional Resources
- Key Points
- Chapter 32: Self-Documenting Code
- 32.1 External Documentation
- 32.2 Programming Style as Documentation
- 32.3 To Comment or Not to Comment
- 32.4 Keys to Effective Comments
- 32.5 Commenting Techniques
- 32.6 IEEE Standards
- Additional Resources
- Key Points
- Chapter 33: Personal Character
- 33.1 Isn’t Personal Character Off the Topic?
- 33.2 Intelligence and Humility
- 33.3 Curiosity
- 33.4 Intellectual Honesty
- 33.5 Communication and Cooperation
- 33.6 Creativity and Discipline
- 33.7 Laziness
- 33.8 Characteristics That Don’t Matter As Much As You Might Think
- 3.9 Habits
- Additional Resources
- Key Points
- Chapter 34: Themes in Software Craftsmanship
- 34.1 Conquer Complexity
- 34.2 Pick Your Process
- 34.3 Write Programs for People First, Computers Second
- 34.4 Program into Your Language, Not in It
- 34.5 Focus Your Attention with the Help of Conventions
- 34.6 Program in Terms of the Problem Domain
- 34.7 Watch for Falling Rocks
- 34.8 Iterate, Repeatedly, Again and Again
- 34.9 Thou Shalt Rend Software and Religion Asunder
- Key Points
- Chapter 35: Where to Find More Information
- 35.1 Information About Software Construction
- 35.2 Topics Beyond Construction
- 35.3 Periodicals
- 35.4 A Software Developer’s Reading Plan
- 35.5 Joining a Professional Organization
- Bibliography
- Index
- About the Author
مشخصات
نام کتاب
Code Complete
نویسنده
Steve McConnell
انتشارات
Microsoft Press
تاریخ انتشار
2016
ISBN
0735619670; 9780735619678
تعداد صفحات
952
زبان
انگلیسی
فرمت
حجم
8MB
موضوع
Programming