Software Architecture and Clean Code Design in OOP
- Description
- Curriculum
- FAQ
- Reviews
From this course, you can learn Software Architecture and Clean Code Design in OOP.
There are a lot of other courses on this topic. So, why would you choose exactly this course? Here are just a few reasons:
– Coding examples
To learn to program is not enough just watching videos and reading books. You also need to have a lot of practice. In this training course, you will review multiple practical tasks and coding examples which will help you learn and understand Java better.
– Open source code
We hide nothing from our students! Including the source code for the home task solutions and source code of examples that were shared during the lesson. Having the source code you can just copy and paste it to run it on your local computer to understand how things work better.
You are allowed to use all source code examples for learning purposes. This helps significantly to configure the environment and make tests work, especially in case students didn’t work with any testing framework in the past.
– Q&A support
The significant difference between the online and offline learning process is the instructor’s availability. If you are in one room with a tutor he always can help you to get understand the specific concept or to help fix your code on your computer.
In this course, we are supporting students with answers to any questions flagged in the Q&A section. In case there will be recurring questions – separate video lessons will be created to show how to address the issue.
So with this course you are not just getting video materials, code exercises, source code, access to the free mobile application without limits (which is still pretty cool, huh? 🙂 ), but you also get tutor support and answers to your questions along with this course.
– Relevant knowledge
After our team investigated other Java courses on Udemy we realized that most of them have nothing in common with real life. The information which is shared there is very old and significantly out of date. For example, the instructor teaches a framework which is not been used already for 15 years. Or instructors do stress on the programming design which is not used anymore at all!
The instructor of this course is a consultant in a top-rated IT outsourcing company and helps to bring cutting-edge solutions in IT for all his clients. Feel free to check the LinkedIn page of the instructor and check skills endorsement. More than 19 thousand people across all over the world (BTW most of them are from the top 100 companies of the world) evaluated the skills of Andrii Piatakha.
With this course, you can be sure that you will spend your time learning the right things from one of the best IT consultants in the world.
– Free mobile App without limits for our students
Knowing Java is one skill. Be able to pass interviews in the company – that is another skill 🙂 Nowadays a lot of companies use tests to select candidates on the first level of interview. We developed applications to practice skills specifically for such purposes.
In this course, we will provide you link to download our FREE mobile app for android. (soon it will be also available for iOS platforms)
The instructor of this course comes up with hundreds of tests that are used to test the knowledge of candidates. With this application, you will be well-prepared for the interview.
Also, only for our students – there is no limit on attempts to pass certification. In the course, we will tell you how to set up a special bonus code that will remove restrictions for our students inside the app.
– High concentration of useful material in each lesson
Sometimes you can notice that watching 5 minutes of our lesson is equivalent to watching another 30 minutes lesson.
This is because time spent for preparation for the lesson (script for the lesson, lesson structure) and video editing (to cut boring pieces of the lesson or time when the program loads) sometimes 10 times as much (sometimes even 20) as the final lesson duration after video editing.
Also, each topic is separated from another. In case some concept will be explained in the next lesson and you don’t need to worry about understanding this in the scope of this lesson – the instructor will make an announcement when a specific topic will be covered.
Go and try it yourself! We will appreciate your feedback.
So don’t wait! Take a look at the lessons’ preview if you still have doubts!
Buy this course today, and you will get all updates for FREE!
For those who successfully passed this training course, or for students who were recognized for asking amazing questions, there is a special offer from the IT-Bulls company! The creator of this course is IT-Bulls company CEO and Founder. We are always in search of talents to run our amazing startups together with you. Probably you always dreamed about running your startup? In this course, you will be able to find the team who will teach you how to do that and (in particular cases) will be glad to help with implementation!
Hope you enjoy this course! And remember, we appreciate all your feedback! Your feedback will help us to become even better! Your feedback will help us to create to best Java course ever!
See you at the lessons! 🙂
-
1Communication planVideo lesson
From this lecture you will learn:
• How to communicate during this course• Where to ask questions
• How to ask questions
• Communication channels
-
2Unlimited access to 'Learn IT' application for studentsVideo lesson
From this lecture you will learn:
• Where to find good tests to verify your knowledge
• How to get unlimited access to Learn IT application (only for my students from Udemy)
-
3Tips to Improve Your Course Taking ExperienceText lesson
-
4SOLID principles overview & Single Responsibility PrincipleVideo lesson
From this lecture you will learn:
• What are SOLID principles
• SOLID principles in OOP
• Single responsibility principle
-
5Open / Closed PrincipleVideo lesson
From this lecture you will learn:
• Open / closed principle
• Code examples
-
6Liskov Substitution PrincipleVideo lesson
From this lecture you will learn:
• Liskov substitution principle
• Code examples
-
7Interface Segregation PrincipleVideo lesson
From this lecture you will learn:
• Interface segregation principle
• Code examples
-
8Dependency Inversion PrincipleVideo lesson
From this lecture you will learn:
• Dependency inversion principle
• Code examples
-
9Single Responsibility Principle: User Registration and Authentication Refactoring ExerciseQuiz
-
10Open / Closed Principle: Shape Refactoring ChallengeQuiz
-
11Liskov Substitution Principle: Square and Rectangle Refactoring ChallengeQuiz
-
12Interface Segregation Principle: Worker Refactoring ChallengeQuiz
-
13Dependency Inversion Principle: Car-Engine Refactoring ChallengeQuiz
-
14Clean Code Architecture, Coupling & CohesionVideo lesson
• What is a clean architecture
• What is a coupling
• Types of a coupling
• What is a cohesion
• Types of a cohesion
• Benefits of Clean Architecture
• Plugin concept
• Why do we need clean architecture
• Advantages and disadvantages of clean architecture
-
15Tell, Don’t Ask Pricniple & Data StructuresVideo lesson
• Tell, don’t ask principle
• How to apply ‘Tell don’t ask’ in real life
• What is data structures
• Objects VS Data structures
• Getters and Setters in objects
• When to use data structures
-
16Law of DemeterVideo lesson
• What is Law of Demeter
• Goals
• Exception from law
• Pros & Cons
• Code Examples
-
17Packaging Pricniples p.1: Cohesion PrinciplesVideo lesson
• Problem statement
• Why do we need a good structure
• How to establish good code structure
• Factors to consider during the code grouping
• Cohesion Principles
• Common closure principle
• Common reuse principle
• Reuse-release equivalence principle
-
18Packaging Pricniples p.2: Coupling Principles and OthersVideo lesson
• Coupling principles
• Acyclic dependencies principle
• Stable dependencies principle
• Stable abstractions principle
• Package by layer
• Package by feature
• Conway's law
• How technical factors impact code structure
• Tools for code analysis
-
19GoF Patterns: OverviewVideo lesson
• Why do we need design patterns
• What are GoF patterns
• Key points of GoF patterns
• Creational Patterns: Overview
• Structural Patterns: Overview
• Behavioral Patterns: Overview
• Class & Object Patterns
• What patterns we are going to learn in this course
• Answers to most common questions of my students
-
20Creational PatternsVideo lesson
• Singleton
• Prototype
• Factory Method
• Builder
• Abstract Factory
• Factory Method VS Abstract Factory
-
21Structural Patterns, p.1Video lesson
• Proxy
• Decorator
• Adapter
• Façade
• Comparative Analysis
-
22Structural Patterns, p.2Video lesson
• Bridge
• Flyweight
• Composite
-
23Behevioral Patterns, p.1Video lesson
Strategy Pattern
Command Pattern
Strategy VS Command
Template Method
Iterator
Chain of responsibility
-
24Behevioral Patterns, p.2Video lesson
• Visitor
• Visitor VS Decorator
• State
• Observer
• Memento
-
25Behevioral Patterns, p.3Video lesson
• Interpreter
• Mediator
-
26Test-driven development: TheoryVideo lesson
From this lecture you will learn:
• What is TDD• TDD Cycle - main steps of TDD iteration
• Three laws of TDD
• Test-first approach VS TDD
• Testing pyramid and TDD
• Defect cost increase
• Pros of using TDD
-
27BDD & ATTDVideo lesson
From this lecture you will learn:
BDD and its history.
TDD VS BDD
Gherkin DSL
How to create BDD scenarios
How to apply BDD knowledge on practice for software developer
Advantages and Disadvantages of BDD
Acceptance test-driven development
ATTD VS TDD VS BDD
-
28TDD, BDD & ATTD - PracticeVideo lesson
In this lesson we will implement application with the help of TDD approach.
-
29About this sectionText lesson
-
30Databases: Overview - Part 1Video lesson
Why we need databases
Purposes & Advantages of databases
Database VS DBMS
Types of databases
Relational databases
-
31Databases: Overview - Part 2Video lesson
Non-Relational databases
Examples of relational, NoSQL and other databases
Document-oriented databases
Key-value storages
Graph databases
Wide column databases
Object-oriented databases
Hierarchical databases
Time series databases
Column-oriented databases
Cloud databases
Centralized and Distributed Databases
Pros and cons of different types of database
Overview of the most popular relational database management systems
-
32MySQL: Overview & Installation (including Workbench Installation)Video lesson
MySQL Overview
Main Features of MySQL
MySQL Server installation
MySQL Workbench Installation
MySQL Shell installation
Creation of root user in MySQL
Connecting MySQL Server to MySQL Workbench
Windows Service for MySQL
-
33Relational Databases: Basic ConceptsVideo lesson
Basic terms (table, entity, attribute, tuple, record, etc)
Database VS Schema
Primary key
How to choose primary key
Simple VS compound primary key
Natural VS surrogate primary key
Alternate key
Foreign key
Relationship
Types of relationships
One-to-many relationship
Many-to-many relationship
One-to-one relationship
-
34Create Schema & Table: Naming, Collation, Engines, Types, Column PropertiesVideo lesson
MySQL Workbench interface
Create schema
Naming convention
Character set
Collation
Create table
Singular VS Plural for table names
MySQL Storage Engines
Which storage engine to choose
Data types
Column Properties
-
35Database Modelling & Design: Conceptual, Logical and Physical Data ModelsVideo lesson
Data model
Database model
Why data modelling is important
Database design
Data context
Conceptual data model
Logical data model
Physical data model
-
36Referential Integrity: Foreign Key Constraint & Cascading OperationsVideo lesson
Referential Integrity
Consequences of broken referential integrity
Cascade Operations
Foreign key constraint
Remove foreign key constraint
Data consistency
Data integrity
Data quality
Data validity
-
37Indexes in DatabasesVideo lesson
What are indexes
Lookup table
Why we need indexes
What does indexing do
Index types
Primary index (dense and sparse)
Secondary index
Clustering index
Multilevel index
B-tree
How to create and remove indexes in database
Advantages of indexing
Disadvantages of indexing
-
38Database Normalization & DenormalizationVideo lesson
Data Anomalies
Insertion anomaly
Update anomaly
Deletion anomaly
Dependency theory
Normalization
Normal forms with Examples
Denormalization
-
39DAO (Data Access Object) Design PatternVideo lesson
Problem statement
What is DAO pattern
DAO pattern elements
DAO pattern sequence diagram
What is DTO
DAO live demo example
-
40MVC Design PatternVideo lesson
MVC Pattern: Overview
Controller
Model
View
Advantages and Disadvantages
MVC code examples
-
41Layered ArchitectureVideo lesson
Layered Architecture overview
Why we need Layered Architecture
Closed Layer concept
Layers of Isolation
Open Layer concept
Code example of Layered Architecture
Sinkhole anti-pattern
Layered Architecture and Monolithic Architecture
Advantages and Disadvantages of Layered Architecture
-
43Task OverviewVideo lesson
Review Exam task
Overview of the expected result
-
44Solution Overview: Part 1Video lesson
From Task #1 till Task #7 (inclusively)
-
45Solution Overview: Part 2Video lesson
From Task #8 till Task #13 (inclusively)
-
46Solution Overview: Part 3Video lesson
From Task #14 till Task #16 (inclusively)
-
48OWASP Top 10: OverviewVideo lesson
What is OWASP
What is OWASP Top 10
Why OWASP Top 10 is important
OWASP Top 10 2021
What is Common Weakness Enumeration (CWE)
What are Common Vulnerabilities and Exposures (CVE)
What is the Common Vulnerability Scoring System (CVSS)
OWASP Top 10 2017 VS OWASP 2021
-
49Broken Access ControlVideo lesson
What is Access Control
Authorization VS Authentication
Types of Access Control
OAuth (Overview)
JWT (Overview)
What is Broken Access Control
Impact
Insecure ID Vulnerability
Path Traversal Vulnerability
Poison Null Bytes Attack
Safelisting
Client Caching Vulnerability
Violation of the principle of least privilege
Elevation of privilege
Review Roles Management Approach
How to prevent (including design solutions)
Example of Attack Scenarios
-
50Cryptography Failures (Theory, Sensitive Data, Data Breach, Types of Failures)Video lesson
Cryptographic Failures: Overview
The most common root causes
Comparative analysis between OWASP Top 10 2017 & 2021
Notable Common Weakness Enumerations
Types of cryptographic failures
Personal data VS Sensitive data
Types of sensitive data
Cryptographic Failure vs. Data Breach
What leads to cryptographic failures
-
51Cryptography Failures (Practical Examples, SQL Injections, TLS/SSL, HTTPS)Video lesson
Example of attack scenraios
SQL Injections
TLS & SSL
HTTPS VS HTTP
Enabling HTTPS on Tomcat web server
-
52Cryptography Failures (Examples, Password Encryption, Hashing, Salting)Video lesson
Example of attack scenraios
Password encryption practical exercise
Passwords hashing
Salted passwords
Hashing algorithms (MD5, SHA, PBKDF2, BCrypt, and SCrypt)
How to prevent cryptographic failures
-
53Injection (Overview, Fuzzing, CWEs, Impact, Injection Types, Command Injection)Video lesson
Injection Risk Category: Overview
Fuzzing
Notable Common Weakness Enumerations (CWEs)
Impact
Comparison of Injection in OWASP Top 10 2021 and 2017
Injection Types
Command Injection
-
54Injection (Cross Site Scripting, Types of XSS, SQL, JPA, NoSQL Injections)Video lesson
Cross Site Scripting
Types of Cross Site Scripting
SQL Injection
JPA Injection
NoSQL Injection
-
55Injection (XPath Injection, Log Injection, Input Validation)Video lesson
XML: XPath Injection
Log Injection
How to prevent injection vulnerabilities
Input Validation: Goals
Input Validation: Strategies
Input Validation: Techniques
-
56Insecure Design (Overivew, CWEs, Shift Left Security, Threat Modeling Manifesto)Video lesson
Insecure Design Overview
Insecure Design VS Insecure Implementation
Shift left security approach
Notable CWEs
What is secure design
Threat Modeling
Goal of threat modeling
Threat Modeling Manifesto: Overview
Threat Modeling Manifesto: Values
Threat Modeling Manifesto: Principles
-
57Insecure Design (Secure Design Process, Security Controls, Metrics, Examples)Video lesson
Build a secure design process
Business impact analysis
Working with threat register
Security controls
Security design document
Secure Design Process Metrics
Example of Attacks
How to prevent
-
58Security Misconfiguration (Overview, CWEs, Types, Real-life attacks)Video lesson
Overview
Potential Impact
Notable CWEs
Security Misconfiguration in OWASP Top 10 2021 VS 2017
Types of security misconfiguration
Examples of real-life attacks
Federated Architecture
-
59Security Misconfiguration (Hardening, Zero Trust, Defense in Depth, Practice)Video lesson
Security Hardening
Zero Trust Security Model
NIST 800-207
Defense in Depth
NIST 800-123
Best Practices for System Hardening
Example of Attacks - Demo
How to prevent
-
60Vulnerable & Outdated ComponentsVideo lesson
Overview
Risk Factors
Why it is hard to update outdated components
Notable CWEs
How attackers use vulnerable components
Real-life example
OWASP Top 10 2021 VS 2017
Demo of dependency check plugin
Vulnerability scanners
How to prevent
-
61Identification & Authentication FailuresVideo lesson
Overview
Potential Impact
Notable CWEs
OWASP Top 10 2017 VS 2021
How attackers exploit authentication failures
Session fixation
Cross-Site Request Forgery (CSRF)
Execution After Redirect (EAR)
Risk factors
Multi-factor authentication (MFA)
Review of different factors
Session ID Entropy
Examples of Attacks
Credential stuffing
Brute force access
Session hijacking
How to prevent
-
62Software & Data Integrity FailuresVideo lesson
Overview
Potential impact review
Common Weakness Enumerations
OWASP Top 10 2017 VS 2021
Examples of Attacks
How to prevent
-
63Security Logging & Monitoring FailuresVideo lesson
What is logging and logs
Overview of Security Logging and Monitoring Failures Category
Potential Impact
Risk Factors
Challenges
Log Management Tools
Libraries for Logging in Java
Notable Common Weakness Enumerations
OWASP Top 10 2017 VS 2021
Attack Examples
How to Prevent
-
64Server-Side Request Forgery (SSRF)Video lesson
Overview
Trust relationships
Risk factors
Potential impact
Types of SSRF
OWASP Top 10 2017 VS 2021
Capital One Incident: Overview
SSRF Java Example
Examples of Attacks
How to prevent
-
65Logging in Java: Part 1 (Logging theory, Logging Levels, Java Logging Framework)Video lesson
What is logging and logs
Goals of logging
Overview of libraries for logging in Java
Java Logging Framework (java.util.logging)
Key elements of Java Logging Framework
java.util.logging package overview
Logging Levels
Logging Levels in Java Logging Framework
Java Logging Framework practical examples
Using of Logger per class
-
66Logging in Java: Part 2 (Log4J, Logback, SLF4J)Video lesson
Log4J & Log4J2
Logging levels in Log4J
Structure elements of Log4J
Triggering policies in Log4J
Rollover strategies in Log4J
Log4J2 practical examples
Logback
Logback features
Logback practical examples
SLF4J
SLF4J + Log4J2
SLF4J + Logback
-
68REST Architecture: Overview and Key PrinciplesVideo lesson
Definition of REST
REST API
REST Principles/Constraints
Client-server communication
Stateless communication
Caching
Uniform interface
Layered system
Code on demand
Resource
Resource Methods
REST VS HTTP
-
69Naming Convention for RESTful ServicesVideo lesson
Why it is important to follow guidelines?
Use nouns to represent resources, not verbs
Use pluralized nouns for resources
Use hyphens and lowercase
Use forward slashes for hierarchy but not trailing forward slash
Avoid using file extensions
API Versioning
Use query parameters
Punctuation for list
Intuitive names, no jargon
No abridging
Avoid using special characters
Keep API consistent
-
70RESTful Service Implementation with Spring MVCVideo lesson
Configure required dependencies
Creation of the REST Web Service
@RestController VS @Controller
@ResponseBody
@RequestBody
@PathVariable
@RequestParam
@ResponseStatus
@ResopnseEntity
Read HTTP Headers in REST Controller
@RequestHeader
-
71Review of tools for API testing & Postman InstallationVideo lesson
Tools for API testing: Overview
SOAP
Comparative analysis of Postman, Fiddler and Wireshark
Postman
Key components of Postman
Postman Desktop VS Web Version
Postman installation
-
72API Testing with PostmanVideo lesson
Postman Interface Review
Import/Export collections
Create new collections
Sending requests with different HTTP methods
Reading response in Postman
Sending and reading custom headers
Testing of RESTful service
CRUD Operations with resource using REST API
Difference between form-data and x-www-form-urlencoded
-
74Use Case DiagramVideo lesson
What is Use Case Diagram
Key Elements of Use Case Diagram
Actor
Use Case
Relationships
Association
Generalization
Include
Extend
System Boundary
Use Case Diagram for online shopping system
Diagrams.net Interface
Practical example review
-
75Sequence DiagramVideo lesson
What is a sequence diagram
Key elements of sequence diagram
Lifelines
Messages
Activation Bars
Return Messages
Fragments
Types of messages
Types of fragments
Real life example: User Registration Sequence Diagram
-
76Activity DiagramVideo lesson
What is activity diagram
Components of Activity Diagram
Activity Diagram VS Sequence Diagram
When to use Activity Diagram
Real-life example - Activity Diagram for Order Processing Workflow
-
77State Machine DiagramVideo lesson
What is State Machine Diagram
Types of State Machine Diagram
Behavioral State Machine
Protocol State Machine
Elements of State Machine Diagram
State
Types of State
Review of two practical examples
-
78Communication Diagram (formerly known as Collaboration Diagram)Video lesson
What is a communication diagram
Collaboration VS Communication diagram
Communication VS Sequence diagram
Elements of Communication diagram
Real-life example: Communication diagram for online shop
-
79Timing DiagramVideo lesson
What is Timing Diagram
Purpose and goal of Timing Diagram
When to use Timing Diagram
Elements of Timing Diagram
Review of practical example
-
80Interaction Overview DiagramVideo lesson
What is Interaction Overview Diagram
Group of Interaction Diagrams
Purpose of Interaction Overview Diagram
Elements of Interaction Overview Diagram
Review of practical example
External Links May Contain Affiliate Links read more