Clean Code
- الوصف
- أقسام الدرس
- رأي
As a developer, you should be able to write code which works – of course!
A lot of developers write bad code nonetheless – even though the code works. Because “working code” is not the same as “clean code”!
This course teaches you how to write clean code – code that is easy to read and understand by humans, not just computers!
In this course, you’ll learn what exactly clean code is and, more importantly, how you can write clean code. Because if your code is written in a clean way, it’s easier to read and understand and therefore easier to maintain.
Because it’s NOT just the computer who needs to understand your code – your colleagues and your future self needs to be able to understand it as well!
In this course, we’ll dive into all the main “pain points” related to clean code (or bad code – depending on how you look at it) and you will not just learn what makes up bad code but of course also how to turn it into clean code.
Specifically, you will learn about:
-
Naming “things” (variables, properties, classes, functions, …) properly and in a clean way
-
Common pitfalls and mistakes you should avoid when naming things
-
Comments and that most of them are bad
-
Good comments you might consider adding to your code
-
Code formatting – both horizontal and vertical formatting
-
Functions and how to limit the number of function parameters
-
How to write clean functions by focusing on “one thing”
-
How levels of abstraction help you split functions and keep them small
-
How to write DRY functions and avoid unexpected side effects
-
Avoiding deeply nested control structures with guards and by extracting functionality into functions
-
Errors and error handling as a replacement for if-statements
-
Objects & data containers/ data structures and why that differentiation could matter
-
Cohesion and how to write good (small!) classes
-
The Law of Demeter and why it matters for clean code
-
What the SOLID principles are and why they matter when it comes to writing clean code
-
Much more!
This course is a compilation of common patterns, best practices, principles and rules related to writing clean code.
In this course, you’ll learn about a broad variety of concepts, rules, ideas, thoughts and principles and by the end of course, you’ll have a good idea of what to keep in mind when it comes to writing clean code.
This is not a design patterns or general patterns course though – we will entirely focus on patterns, rules and concepts that help with writing clean code specifically.
All these concepts and rules are backed up by examples, code snippets and demos. And to ensure that you get the most out of this course, and you don’t just learn a bunch of theory which you forget soon after, there also are plenty of challenges for you to apply what you learned!
This course uses Python, JavaScript and TypeScript for code examples but you don’t need to know these languages to follow along and get a lot out of the course. In addition, the course does not focus on a specific programming style or paradigm (like functional programming, object-oriented programming etc) but instead covers general concepts and techniques which will always apply.
What are the course prerequisites?
-
Basic programming knowledge (no matter which language) is required!
-
You don’t need to know any specific programming language or programming paradigm to follow along
-
NO prior experience with writing clean code is required
-
1Welcome to the Course!درس فيديو
-
2What is "Clean Code"?درس فيديو
-
3Clean Code - Key Pain Points & How To Write Clean Codeدرس فيديو
-
4How Is This Course Structured?درس فيديو
-
5Course Prerequisitesدرس فيديو
-
6Clean Code & Strongly Typed Languagesدرس فيديو
-
7About The Course Code Examplesدرس فيديو
-
8Join Our Learning Community!درس نصي
-
9Functional, OOP, Procedural: The Course Concepts Always Apply!درس فيديو
-
10Clean Code, Principles & Patterns & Clean Architectureدرس فيديو
-
11Clean Code vs Quick Codeدرس فيديو
-
12Module & Course Resourcesدرس نصي
-
13Course Setupدرس نصي
-
14Module Introductionدرس فيديو
-
15Why Good Names Matterدرس فيديو
-
16Choosing Good Namesدرس فيديو
-
17Casing Conventions & Programming Languagesدرس فيديو
-
18Naming Variables & Properties - Theoryدرس فيديو
-
19Naming Variables & Properties - Examplesدرس فيديو
-
20Naming Functions & Methods - Theoryدرس فيديو
-
21Naming Functions & Methods - Examplesدرس فيديو
-
22Naming Classes - Theoryدرس فيديو
-
23Naming Classes - Examplesدرس فيديو
-
24Exceptions You Should Be Aware Ofدرس فيديو
-
25Common Errors & Pitfallsدرس فيديو
-
26Demo Time!درس فيديو
-
27Your Challenge - Problemدرس فيديو
-
28Your Challenge - Solutionدرس فيديو
-
29Module Resourcesدرس نصي
-
30Module Introductionدرس فيديو
-
31Bad Commentsدرس فيديو
-
32Good Commentsدرس فيديو
-
33What is "Code Formatting" Really About?درس فيديو
-
34Vertical Formattingدرس فيديو
-
35Formatting: Language-specific Considerationsدرس فيديو
-
36Horizontal Formattingدرس فيديو
-
37Your Challenge - Problemدرس فيديو
-
38Your Challenge - Solutionدرس فيديو
-
39Module Resourcesدرس نصي
-
40Module Introductionدرس فيديو
-
41Analyzing Key Function Partsدرس فيديو
-
42Keep The Number Of Parameters Low!درس فيديو
-
43Refactoring Function Parameters - Ideas & Conceptsدرس فيديو
-
44When One Parameter Is Just Rightدرس فيديو
-
45Two Parameters & When To Refactorدرس فيديو
-
46Dealing With Too Many Valuesدرس فيديو
-
47Functions With A Dynamic Number Of Parametersدرس فيديو
-
48Beware Of "Output Parameters"درس فيديو
-
49Functions Should Be Small & Do One Thing!درس فيديو
-
50Why "Levels of Abstraction" Matterدرس فيديو
-
51When Should You Split?درس فيديو
-
52Demo & Challengeدرس فيديو
-
53Stay DRY - Don't Repeat Yourselfدرس فيديو
-
54Splitting Functions To Stay DRYدرس فيديو
-
55Don't Overdo It - Avoid Useless Extractionsدرس فيديو
-
56Understanding & Avoiding (Unexpected) Side Effectsدرس فيديو
-
57Side Effects - A Challengeدرس فيديو
-
58Why Unit Tests Matter & Help A Lot!درس فيديو
-
59Module Resourcesدرس نصي
-
60Module Introductionدرس فيديو
-
61Useful Concepts - An Overviewدرس فيديو
-
62Introducing "Guards"درس فيديو
-
63Guards In Actionدرس فيديو
-
64Extracting Control Structures & Preferring Positive Phrasingدرس فيديو
-
65Extracting Control Structures Into Functionsدرس فيديو
-
66Writing Clean Functions With Control Structuresدرس فيديو
-
67Inverting Conditional Logicدرس فيديو
-
68Embrace Errors & Error Handlingدرس فيديو
-
69Creating More Error Guardsدرس فيديو
-
70Extracting Validation Codeدرس فيديو
-
71Error Handling Is One Thing!درس فيديو
-
72Using Factory Functions & Polymorphismدرس فيديو
-
73Working with Default Parametersدرس فيديو
-
74Avoid "Magic Numbers & Strings"درس نصي
-
75Module Summaryدرس فيديو
-
76Module Resourcesدرس نصي
-
77Module Introductionدرس فيديو
-
78Important: This is NOT an OOP or "Patterns & Principles" Course!درس فيديو
-
79Objects vs Data Containers / Data Structuresدرس فيديو
-
80Why The Differentiation Mattersدرس فيديو
-
81Classes & Polymorphismدرس فيديو
-
82Classes Should Be Small!درس فيديو
-
83Understanding "Cohesion"درس فيديو
-
84The "Law Of Demeter" And Why You Should "Tell, Not Ask"درس فيديو
-
85The SOLID Principlesدرس فيديو
-
86The Single-Responsibility-Principle (SRP) & Why It Mattersدرس فيديو
-
87The Open-Closed Principle (OCP) & Why It Mattersدرس فيديو
-
88The Liskov Substitution Principleدرس فيديو
-
89The Interface Segregation Principleدرس فيديو
-
90The Dependency Inversion Principleدرس فيديو
-
91Module Resourcesدرس نصي