English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 84 Lessons (14h 32m) | 4.95 GB
Become a senior developer. Solve intricate software design challenges, craft code that’s clean and easy to work on. Completely change the way you approach software design.
This online course is a modern take on software design. It contains everything I know about software design, structured in such a way that you will:
- Consistently make better design decisions
- Gain the technical knowledge you need to get to the next step of your career
- Design complex software
- Improve your existing code immensely
- Create software that is easy to change and scale
Ultimately, its only goal is to make you unlock your full potential.
On top of that, you’ll be part of a private student community where you can exchange with people all over the world, find friends, and get extra support when you need it.
Table of Contents
The Software Designer Mindset
1 Course Introduction
2 Type Hints
3 Data Types
4 Data Structures
5 Classes and Dataclasses
6 The Mighty Function
7 Inheritance and Abstractions
8 Mixins
9 Final Thoughts
10 Favor Composition Over Inheritance
11 High Cohesion
12 Low Coupling
13 Start With The Data
14 Depend On Abstractions
15 Separate Creation From Use
16 Keep Things Simple
17 Project Scaffolding
18 Organizing Your Code
19 Error Handling
20 Course Wrap Up
21 Domain Modelling And Levels Of Software Design
22 History of Computing, Data Vs Processing
23 Mixins And Composition
24 How To Do Great Code Reviews
25 A Code Review Of Python Fire
26 May 2022 Q&A Session
27 VS Code Extensions
28 Vim Editor Plugin
29 AI Tools And Autoformatting
30 VS Code And Pylint Settings
31 Pyenv
The Software Designer Mindset COMPLETE Extension
1 Introduction To Domain Modeling
2 Domain Building Blocks
3 Domain Modeling
4 Implementing Effective Domain Models
5 Bonus: Collaboration and Communication Strategies
6 Why Understanding The Domain Is Important
7 Modelling The Domain
8 What Is An API?
9 Creating An API Server
10 Setting Up The Database Models
11 Relationships Between Models
12 Creating The Database System
13 Patching Everything Up
14 Why Scaffolding Is Useful
15 What Is The Layered Architecture?
16 Creating A Layered Architecture
17 Analysis
18 Developing A Basic Customer API
19 Creating A New Customer
20 Converting Database Query Results
21 Updating An Existing Customer
22 Adding Booking Operations
23 Adding The Booking Router
24 Analysis
25 Introduction
26 Creating An Abstract Data Interface
27 Database Implementation
28 Updating The Booking Operation
29 Updating The Booking Router
30 Writing Unit Tests
31 Final Thoughts
32 Introduction
33 Exploratory Questions
34 Organizational Questions
35 Architecture and Design Questions
36 Personal Development Questions
37 Avoid Type Abuse
38 Use Built-In Constructs
39 Use Clear Names
40 Avoid Flags
41 Don’t Use Too Many Arguments
42 Use Shallow Nesting
43 Avoid Deeply Nested Conditionals
44 No Wildcard Imports
45 Write Symmetrical Code
46 Only Use Self If Needed
47 Keep Classes Small
48 Tell Don’t Ask
49 Use Meaningful Instance Variables
50 Avoid Redundancy
51 Don’t Redefine Programming Concepts
52 BONUS #1: Protocol Segregation
53 BONUS #2: Function Composition
Resolve the captcha to access the links!