Filename Size 1. Course Overview/01. Course Overview.mp4 3.2 MB 10. Designing Alternative Workflows Instead of Defending from Errors/71. What’s Wrong with Status Codes.mp4 12.2 MB 10. Designing Alternative Workflows Instead of Defending from Errors/72. Understanding Effects of Throwing Exceptions.mp4 11.7 MB 10. Designing Alternative Workflows Instead of Defending from Errors/73. What Exceptions Are Not Meant to Do.mp4 18 MB 10. Designing Alternative Workflows Instead of Defending from Errors/74. Leave Nothing Exceptional in Exceptions.mp4 24.5 MB 10. Designing Alternative Workflows Instead of Defending from Errors/75. Returning a Polymorphic Type Instead of an Exception.mp4 18.2 MB 10. Designing Alternative Workflows Instead of Defending from Errors/76. Separating Positive and Negative Return Values.mp4 19.8 MB 10. Designing Alternative Workflows Instead of Defending from Errors/77. Inventing the Either Type.mp4 22.5 MB 10. Designing Alternative Workflows Instead of Defending from Errors/78. Consuming the Either Type.mp4 11.7 MB 10. Designing Alternative Workflows Instead of Defending from Errors/79. Summary.mp4 6.8 MB 2. Understanding Limitations of Traditional Defensive Code/02. The First Law of Defensive Programming.mp4 10.9 MB 2. Understanding Limitations of Traditional Defensive Code/03. What Follows in This Course.mp4 17.4 MB 2. Understanding Limitations of Traditional Defensive Code/04. Traditional Defensive Techniques.mp4 9.7 MB 2. Understanding Limitations of Traditional Defensive Code/05. Defensive Design - An Experiment.mp4 15.9 MB 2. Understanding Limitations of Traditional Defensive Code/06. Called Method Cannot Defend.mp4 10.4 MB 2. Understanding Limitations of Traditional Defensive Code/07. Defining Function Domains.mp4 9.6 MB 2. Understanding Limitations of Traditional Defensive Code/08. Summary.mp4 3.7 MB 3. Removing Corruption by Only Creating Consistent Objects/09. Creating Objects.mp4 6 MB 3. Removing Corruption by Only Creating Consistent Objects/10. Creating Consistent Objects.mp4 9.9 MB 3. Removing Corruption by Only Creating Consistent Objects/11. Pros and Cons of Multiple Constructors.mp4 25.2 MB 3. Removing Corruption by Only Creating Consistent Objects/12. Understanding Limitations of the Constructor.mp4 9 MB 3. Removing Corruption by Only Creating Consistent Objects/13. Promoting Constructor into Builder.mp4 8.4 MB 3. Removing Corruption by Only Creating Consistent Objects/14. Variations in the Builder Implementation.mp4 24.4 MB 3. Removing Corruption by Only Creating Consistent Objects/15. Summary.mp4 6.6 MB 4. Removing Corruption by Only Making Valid State Transitions/16. Reaping the Benefits of Constructor Validation.mp4 19.5 MB 4. Removing Corruption by Only Making Valid State Transitions/17. Defending in Property Setters.mp4 16.8 MB 4. Removing Corruption by Only Making Valid State Transitions/18. Understanding Distinct Kinds of Properties.mp4 6.4 MB 4. Removing Corruption by Only Making Valid State Transitions/19. Defending in Complex Mutations.mp4 21.7 MB 4. Removing Corruption by Only Making Valid State Transitions/20. Function Domains Revisited.mp4 10.9 MB 4. Removing Corruption by Only Making Valid State Transitions/21. When Constructor Depends on Multiple Objects.mp4 13.4 MB 4. Removing Corruption by Only Making Valid State Transitions/22. Creating Objects in Small Steps.mp4 10.4 MB 4. Removing Corruption by Only Making Valid State Transitions/23. Persistence and Parameterized Constructors.mp4 10.8 MB 4. Removing Corruption by Only Making Valid State Transitions/24. Summary.mp4 4.5 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/25. The Reasons to Avoid Enumerations.mp4 16 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/26. Alternatives to Enumerations.mp4 7.6 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/27. Converting Enumeration to a Class.mp4 24.8 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/28. The Reasons to Never Stringify Data.mp4 26.6 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/29. Reaping the Benefits of String Encapsulation.mp4 15.2 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/30. Avoiding Primitive Types Altogether.mp4 4.8 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/31. Example - Modeling Money.mp4 10.7 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/32. Persistence - Small-scale CQRS and DDD.mp4 9.8 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/33. Demonstrating Persistence.mp4 22.6 MB 5. Dismissing Defensive Code by Avoiding Primitive Types/34. Summary.mp4 4.6 MB 6. Defining Function Domains as the Primary Line of Defense/35. Introducing Guard Clauses.mp4 11.4 MB 6. Defining Function Domains as the Primary Line of Defense/36. Guarding Against Null Only.mp4 15.2 MB 6. Defining Function Domains as the Primary Line of Defense/37. Don't Guard Business Rules.mp4 31.1 MB 6. Defining Function Domains as the Primary Line of Defense/38. Removing Guards Through Design.mp4 26.5 MB 6. Defining Function Domains as the Primary Line of Defense/39. Turning Domain Rules into Rule Objects.mp4 11 MB 6. Defining Function Domains as the Primary Line of Defense/40. Turning Rule Objects into Active Elements.mp4 26.9 MB 6. Defining Function Domains as the Primary Line of Defense/41. Completing the Students Filter.mp4 21.5 MB 6. Defining Function Domains as the Primary Line of Defense/42. Persistence - Querying View Models.mp4 29.9 MB 6. Defining Function Domains as the Primary Line of Defense/43. Summary.mp4 4.2 MB 7. Building Defensive Design Instead of Writing Defensive Code/44. Encapsulating State.mp4 17.5 MB 7. Building Defensive Design Instead of Writing Defensive Code/45. Keeping Related Data Together.mp4 20.9 MB 7. Building Defensive Design Instead of Writing Defensive Code/46. Turning Chained Ifs into the Chain of Rules.mp4 20.4 MB 7. Building Defensive Design Instead of Writing Defensive Code/47. Making Friends with Regular Expressions.mp4 8.4 MB 7. Building Defensive Design Instead of Writing Defensive Code/48. Replacing Branching with Regular Expressions.mp4 28.9 MB 7. Building Defensive Design Instead of Writing Defensive Code/49. Moving Expressions out to Configuration.mp4 24.2 MB 7. Building Defensive Design Instead of Writing Defensive Code/50. Persistence - Creating and Updating Domain Objects.mp4 34.9 MB 7. Building Defensive Design Instead of Writing Defensive Code/51. Summary.mp4 5.1 MB 8. The Principle of Working with Objects, Not with Nulls/52. Understanding the Role of Null.mp4 12.1 MB 8. The Principle of Working with Objects, Not with Nulls/53. Why Compilers Still Rely on Null.mp4 11.2 MB 8. The Principle of Working with Objects, Not with Nulls/54. Do Not Return Null from a Method.mp4 27.6 MB 8. The Principle of Working with Objects, Not with Nulls/55. Using Callback on Optional Content.mp4 12.6 MB 8. The Principle of Working with Objects, Not with Nulls/56. Overloading Existing APIs to Never Return Null.mp4 14.3 MB 8. The Principle of Working with Objects, Not with Nulls/57. Returning an Optional Object.mp4 18.8 MB 8. The Principle of Working with Objects, Not with Nulls/58. Implementing Custom Option Type.mp4 18.9 MB 8. The Principle of Working with Objects, Not with Nulls/59. Consuming the Option.mp4 26 MB 8. The Principle of Working with Objects, Not with Nulls/60. Persistence - Creating Complex Domain Objects.mp4 22 MB 8. The Principle of Working with Objects, Not with Nulls/61. Summary.mp4 3.4 MB 9. Building Rich Domain Model as an Effective Defense by Design/62. Reconsidering Immutable Objects.mp4 26.2 MB 9. Building Rich Domain Model as an Effective Defense by Design/63. Turning Classes Immutable.mp4 15.2 MB 9. Building Rich Domain Model as an Effective Defense by Design/64. Avoiding Aliasing Bugs Altogether.mp4 21.7 MB 9. Building Rich Domain Model as an Effective Defense by Design/65. The Downside of Immutability.mp4 19.4 MB 9. Building Rich Domain Model as an Effective Defense by Design/66. Constrained Mutability with Set-once Properties.mp4 19 MB 9. Building Rich Domain Model as an Effective Defense by Design/67. Consuming Semi-mutable Objects.mp4 18.4 MB 9. Building Rich Domain Model as an Effective Defense by Design/68. Using Historical Model.mp4 12.6 MB 9. Building Rich Domain Model as an Effective Defense by Design/69. Implementing Simple Historical Model.mp4 38.8 MB 9. Building Rich Domain Model as an Effective Defense by Design/70. Summary.mp4 5.8 MB free tutorials.txt 43 B