آموزش تکنیک های پیشرفته برنامه نویسی دفاعی

Advanced Defensive Programming Techniques

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره: این دوره گام به گام شما را از طریق فرایند توسعه شیوه های طراحی دفاعی ، که می تواند کدگذاری دفاعی رایج را جایگزین کند ، به جای بهتر طراحی و اجرای نرم افزار ، هدایت می کند. چند بار باید از موارد صفر ، صفر و موارد شگفت انگیز برخورد با دستورالعمل سوئیچ دفاع کنید. ، غیرممکن است شاخه های دیگر ، و غیره؟ آیا زندگی شما با مشکلات ناشی از داده های غیر منتظره یا وضعیت سیستم نامعتبر دست و پنجه نرم می کند؟ در این دوره ، تکنیک های پیشرفته برنامه نویسی دفاعی ، شما می آموزید که چگونه با استفاده از طراحی دفاع کنید ، به طوری که تقریباً همه کدهای دفاعی صریح با خوشحالی حذف می شوند. ابتدا ، نحوه ساخت اعتبار را کشف خواهید کرد. در مرحله بعدی ، نحوه دقیق طراحی یک رابط عمومی را کشف خواهید کرد. سرانجام ، نحوه متحد سازی جریان خطا را پوشش خواهید داد ، بنابراین هیچ چیز غیرقابل پیش بینی نمی تواند شما را غافلگیر کند. با پایان این دوره ، شما دانش لازم را برای توسعه کارآمد تمرین طراحی دفاعی خود خواهید داشت.

سرفصل ها و درس ها

بررسی اجمالی دوره Course Overview

  • بررسی اجمالی دوره Course Overview

درک محدودیت های کد دفاع سنتی Understanding Limitations of Traditional Defensive Code

  • اولین قانون برنامه نویسی دفاعی The First Law of Defensive Programming

  • چه چیزی در این دوره دنبال می شود؟ What Follows in This Course?

  • تکنیک های دفاعی سنتی Traditional Defensive Techniques

  • طراحی دفاعی: یک آزمایش Defensive Design: An Experiment

  • به نام روش نمی توان دفاع کرد Called Method Cannot Defend

  • تعریف دامنه های عملکرد Defining Function Domains

  • خلاصه Summary

رفع فساد فقط با ایجاد اشیاist سازگار Removing Corruption by Only Creating Consistent Objects

  • ایجاد اشیا Creating Objects

  • ایجاد اشیا سازگار Creating Consistent Objects

  • جوانب مثبت و منفی سازنده های متعدد Pros and Cons of Multiple Constructors

  • درک محدودیت های سازنده Understanding Limitations of the Constructor

  • ارتقا Const سازنده به سازنده Promoting Constructor into Builder

  • تغییرات در اجرای سازنده Variations in the Builder Implementation

  • خلاصه Summary

از بین بردن فساد فقط با ایجاد انتقال های معتبر دولتی Removing Corruption by Only Making Valid State Transitions

  • بهره مندی از مزایای اعتبار سنجی سازنده Reaping the Benefits of Constructor Validation

  • دفاع در تنظیم کنندگان املاک Defending in Property Setters

  • شناخت انواع مشخصه Understanding Distinct Kinds of Properties

  • دفاع در جهش های پیچیده Defending in Complex Mutations

  • دامنه های عملکرد دوباره بازدید شده است Function Domains Revisited

  • وقتی سازنده به چندین شی وابسته است When Constructor Depends on Multiple Objects

  • ایجاد اشیا در مراحل کوچک Creating Objects in Small Steps

  • سازگار با دوام و پارامتر Persistence and Parameterized Constructors

  • خلاصه Summary

کنار گذاشتن کد دفاع با اجتناب از انواع اولیه Dismissing Defensive Code by Avoiding Primitive Types

  • دلایل جلوگیری از برشمردن The Reasons to Avoid Enumerations

  • گزینه های جایگزین برای شمارش Alternatives to Enumerations

  • تبدیل شمارش به یک کلاس Converting Enumeration to a Class

  • دلایل هرگز ردیف کردن داده ها The Reasons to Never Stringify Data

  • بهره مندی از مزایای کپسوله سازی رشته ای Reaping the Benefits of String Encapsulation

  • به طور کلی از انواع ابتدایی پرهیز کنید Avoiding Primitive Types Altogether

  • مثال: مدل سازی پول Example: Modeling Money

  • ماندگاری: مقیاس کوچک CQRS و DDD Persistence: Small-scale CQRS and DDD

  • نشان دادن پایداری Demonstrating Persistence

  • خلاصه Summary

تعریف دامنه های عملکرد به عنوان خط اصلی دفاع Defining Function Domains as the Primary Line of Defense

  • معرفی بندهای گارد Introducing Guard Clauses

  • محافظت در برابر فقط پوچ Guarding Against Null Only

  • از قوانین تجارت محافظت نکنید Don't Guard Business Rules

  • حذف محافظان از طریق طراحی Removing Guards Through Design

  • تبدیل Domain Rules به Rule Object ها Turning Domain Rules into Rule Objects

  • تبدیل اشیاule Rule به عناصر فعال Turning Rule Objects into Active Elements

  • تکمیل فیلتر دانش آموزان Completing the Students Filter

  • ماندگاری: پرس و جو از مدل های نمایش Persistence: Querying View Models

  • خلاصه Summary

طراحی دفاعی به جای نوشتن کد دفاع Building Defensive Design Instead of Writing Defensive Code

  • حالت کپسوله سازی Encapsulating State

  • نگهداری اطلاعات مرتبط با هم Keeping Related Data Together

  • تبدیل موارد زنجیره ای به زنجیره قوانین Turning Chained Ifs into the Chain of Rules

  • دوست شدن با عبارات منظم Making Friends with Regular Expressions

  • جایگزینی شاخه با عبارات منظم Replacing Branching with Regular Expressions

  • انتقال عبارات به پیکربندی Moving Expressions out to Configuration

  • پایداری: ایجاد و به روزرسانی اشیا Dom دامنه Persistence: Creating and Updating Domain Objects

  • خلاصه Summary

اصل کار با اشیا، ، نه با پوچ ها The Principle of Working with Objects, Not with Nulls

  • درک نقش پوچ Understanding the Role of Null

  • چرا کامپایلرها هنوز به Null اعتماد می کنند؟ Why Compilers Still Rely on Null?

  • پوچ را از یک روش برگردانید Do Not Return Null from a Method

  • استفاده از پاسخگویی در محتوای اختیاری Using Callback on Optional Content

  • بارگذاری بیش از حد API های موجود برای بازگشت هرگز به حالت تهی Overloading Existing APIs to Never Return Null

  • بازگرداندن یک شی O اختیاری Returning an Optional Object

  • در حال پیاده سازی نوع گزینه سفارشی Implementing Custom Option Type

  • مصرف گزینه Consuming the Option

  • پایداری: ایجاد اشیاain دامنه پیچیده Persistence: Creating Complex Domain Objects

  • خلاصه Summary

ساخت مدل دامنه غنی به عنوان یک دفاع موثر با طراحی Building Rich Domain Model as an Effective Defense by Design

  • بررسی مجدد اشیاm غیرقابل تغییر Reconsidering Immutable Objects

  • تبدیل کلاسها غیرقابل تغییر Turning Classes Immutable

  • به طور کلی از Allasing Bugs اجتناب کنید Avoiding Aliasing Bugs Altogether

  • نکته منفی تغییر ناپذیری The Downside of Immutability

  • قابلیت تغییر پذیری محدود با ویژگی های تنظیم یک بار Constrained Mutability with Set-once Properties

  • مصرف اشیا نیمه قابل تغییر Consuming Semi-mutable Objects

  • با استفاده از مدل تاریخی Using Historical Model

  • اجرای الگوی تاریخی ساده Implementing Simple Historical Model

  • خلاصه Summary

طراحی گردش کار جایگزین به جای دفاع از خطاها Designing Alternative Workflows Instead of Defending from Errors

  • کدهای وضعیت چه مشکلی دارند؟ What’s Wrong with Status Codes?

  • درک اثرات پرتاب استثناها Understanding Effects of Throwing Exceptions

  • چه مواردی است که به معنای انجام نیست What Exceptions Are Not Meant to Do

  • هیچ چیز استثنایی را در موارد استثنایی رها نکنید Leave Nothing Exceptional in Exceptions

  • برگرداندن یک نوع چند شکل به جای یک استثنا Returning a Polymorphic Type Instead of an Exception

  • تفکیک مقادیر مثبت و منفی Separating Positive and Negative Return Values

  • اختراع نوع یا نوع Inventing the Either Type

  • مصرف هر نوع Consuming the Either Type

  • خلاصه Summary

نمایش نظرات

آموزش تکنیک های پیشرفته برنامه نویسی دفاعی
جزییات دوره
6h 22m
79
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
183
4.9 از 5
دارد
دارد
دارد
Zoran Horvat
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Zoran Horvat Zoran Horvat

مدیرعامل و مشاور اصلی در Coding Helmet s.p.r.l.