Course Overview
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! :)
FAQ
FAQ area empty
Course curriculum
-
Single Responsibility Principle: User Registration and Authentication Refactoring Exercise
0 -
Open / Closed Principle: Shape Refactoring Challenge
0 -
Liskov Substitution Principle: Square and Rectangle Refactoring Challenge
0 -
Interface Segregation Principle: Worker Refactoring Challenge
0 -
Dependency Inversion Principle: Car-Engine Refactoring Challenge
0
-
Clean Code Architecture, Coupling & Cohesion
1330 -
Tell, Don’t Ask Pricniple & Data Structures
1218 -
Law of Demeter
532 -
KISS Principle in OOP
1581 -
YAGNI Principle in OOP
1483 -
DRY Principle in OOP | Part 1
1112 -
DRY Principle in OOP | Part 2 - Practice
711 -
Packaging Pricniples p.1: Cohesion Principles
1289 -
Packaging Pricniples p.2: Coupling Principles and Others
1495
-
Course Introduction: Why SOA and EDA Still Matter
1325 -
Core Principles: Services, Boundaries, and Contracts
1444 -
SOA Essentials: Service Design That Survives Scale
1281 -
Communication Styles: Sync vs Async
1278 -
Event Driven Architecture Fundamentals
1315 -
Delivery Guarantees and Failure Reality
1363 -
Choreography vs Orchestration
1460 -
Event Contracts and Schema Evolution
997 -
Consistency Models and Business Transactions
1679 -
The Outbox Pattern and Reliable Publishing
953 -
Integration Patterns for Real Systems
896 -
Anti Patterns: What Breaks SOA and EDA
980 -
Observability and Operations for Event Systems
1175 -
Security and Trust Boundaries in Distributed Messaging
1161
-
About this section
-
Databases: Overview - Part 1
1496 -
Databases: Overview - Part 2
1378 -
MySQL: Overview & Installation (including Workbench Installation)
1242 -
Relational Databases: Basic Concepts
1644 -
Create Schema & Table: Naming, Collation, Engines, Types, Column Properties
2170 -
Database Modelling & Design: Conceptual, Logical and Physical Data Models
1535 -
Referential Integrity: Foreign Key Constraint & Cascading Operations
1294 -
Indexes in Databases
1233 -
Database Normalization & Denormalization
1958
-
OWASP Top 10: Overview
1127 -
Broken Access Control
2121 -
Cryptography Failures (Theory, Sensitive Data, Data Breach, Types of Failures)
778 -
Cryptography Failures (Practical Examples, SQL Injections, TLS/SSL, HTTPS)
1156 -
Cryptography Failures (Examples, Password Encryption, Hashing, Salting)
1056 -
Injection (Overview, Fuzzing, CWEs, Impact, Injection Types, Command Injection)
921 -
Injection (Cross Site Scripting, Types of XSS, SQL, JPA, NoSQL Injections)
989 -
Injection (XPath Injection, Log Injection, Input Validation)
962 -
Insecure Design (Overivew, CWEs, Shift Left Security, Threat Modeling Manifesto)
1181 -
Insecure Design (Secure Design Process, Security Controls, Metrics, Examples)
1378 -
Security Misconfiguration (Overview, CWEs, Types, Real-life attacks)
1217 -
Security Misconfiguration (Hardening, Zero Trust, Defense in Depth, Practice)
1742 -
Vulnerable & Outdated Components
1384 -
Identification & Authentication Failures
2034 -
Software & Data Integrity Failures
1053 -
Security Logging & Monitoring Failures
1374 -
Server-Side Request Forgery (SSRF)
1472 -
OWASP API Security Project & OWASP API Security Top 10 2023
-
Broken Object Level Authorization - Part 1
947 -
Broken Object Level Authorization - Part 2 (Practice)
695 -
Broken Object Level Authorization - Part 3 (Zero-Trust, UUIDs)
1292 -
Broken Authentication - Part 1 (Basics, Impact, Types of Attacks)
1078 -
Broken Authentication - Part 2 (Case Studies, OAuth, OpenID)
1217 -
Broken Authentication - P.3 - (Practice, JWT Tokens, Timing Attacks)
1669 -
Broken Object Property Level Authorization - Part 1
1250 -
Broken Object Property Level Authorization - Part 2 (Practice)
984 -
Unrestricted Resource Consumption - Part 1
1629 -
Unrestricted Resource Consumption - Part 2 (Practice)
595 -
Broken Function Level Authorization - Part 1
1158 -
Broken Function Level Authorization - Part 2 (Practice)
512 -
Unrestricted Access to Sensitive Business Flows - Part 1
1203 -
Unrestricted Access to Sensitive Business Flows - Part 2
1511 -
Unrestricted Access to Sensitive Business Flows - Part 3 (Practice)
595 -
Server Side Request Forgery - SSRF (OWASP 2023 Updates)
-
Security Misconfiguration (OWASP 2023 Updates)
-
Improper Inventory Management - Part 1
1622 -
Improper Inventory Management - Part 2 (Practice)
688 -
Unsafe Consumption of APIs - Part 1
1830 -
Unsafe Consumption of APIs - Part 2 (Practice)
568
-
Introduction to OWASP Top 10 2025: LLM
761 -
LLM01:2025 Prompt Injection
1525 -
LLM02:2025 Sensitive Information Disclosure
1217 -
LLM03:2025 Supply Chain
2348 -
LLM04:2025 Data and Model Poisoning
1255 -
LLM05:2025 Improper Output Handling
1676 -
LLM06:2025 Excessive Agency
1389 -
LLM07:2025 System Prompt Leakage
1150 -
LLM08:2025 Vector and Embedding Weaknesses
1164 -
LLM09:2025 Misinformation
922 -
LLM10:2025 Unbounded Consumption
1307
-
Why this section is part of the course - and why it is improtant
-
OAuth, OAuth 2.0, JWT & OpenID Connect, Identity Provider
1060 -
Practice: Auth0 - Configuration of Identity Provider
1658 -
OAuth & Open ID Connect Configuration in Spring Boot - Part 1
1031 -
OAuth & Open ID Connect Configuration in Spring Boot - Part 2
913 -
Testing Security: Testing of Spring Boot Endpoints - Part 1
991 -
Testing Security: Testing of Spring Boot Endpoints - Part 2
1432 -
Protecting APIs with Rate Limiting
981 -
Rate Limiting Practical Guide: Bucket4j
1030 -
Building Resilient Services with Resilience4j in Spring Boot. Circuit Breaker
805 -
Circuit Breaker - Practice
1121 -
Spring Boot + Resilience4j: Retry Pattern
1734 -
Spring Boot + Resilience4j: Time Limiter Pattern
1223 -
Spring Boot + Resilience4j: Rate Limitter Pattern
1163 -
Spring Boot + Resilience4j: Bulkhead Pattern
1948 -
Microservices Patterns in Practice: Exploring API Gateway
955 -
Spring Cloud Gateway: Practice
1066 -
Understanding Load Balancing: Concepts, Strategies, and Use Cases
1435 -
Implementing Load Balancing with Spring Cloud LoadBalancer
1453
-
Introduction to Cybersecurity p.1 - Overview of current cyber threat landscape
478 -
Introduction to Cybersecurity p.2 - Case Studies, Threat Analysis Models & More
1142 -
Introduction to Cybersecurity p.3 - Security Controls, SDD, SOC
1358 -
General Security Tips: Writing Code with Safety in Mind
1045 -
Securing Inputs: How to Validate and Sanitize Input Data
1297 -
Safeguarding Outputs: Effective Encoding for Secure Systems
792 -
Mastering Authentication: Best Practices for Managing User Credentials
1571 -
Securing Sessions: Preventing Hijacking and Improving Stability
1408 -
Locking Down Access: Implementing Robust Authorization Mechanisms
1552 -
Zero Trust Architecture and Modern Authentication
1521 -
Encryption Essentials: Protecting Data with Cryptography - Part 1
1114 -
Encryption Essentials: Protecting Data with Cryptography - Part 2
1152 -
Defending Data: Strategies for Protecting Sensitive Information
1313 -
Securing Databases: Best Practices for Preventing SQL Injection
1324 -
Safe File Handling: Preventing File-Based Vulnerabilities
1475 -
Protecting Communication Channels: Ensuring Secure Transmission of Data
1201 -
Hardening System Configurations: Reducing Attack Surface
1365 -
Cloud Security Best Practices
1357 -
Mobile Application Security
1482
-
Why this section is in this course and why it is important?
-
Metric, KPI & OKR
1405 -
RAG Status to Present KPI
-
Introduction to Engineering Excellence Metrics & KPIs
292 -
Development Metrics & KPIs: Tech Debt Ratio & Index, Cyclomatic Complexity
1685 -
Development Metrics & KPIs: Unit Test Related Metrics - Part 1
966 -
Development Metrics & KPIs: Unit Test Related Metrics - Part 2
1348 -
Development Metrics & KPIs: Duplicate Code & Commented Code Index
1465 -
Development Metrics & KPIs: Code Review Feedback Loop Time & Code Reviews
1343 -
Development Metrics & KPIs: Rules Compliance Index (RCI) & Violations
1562 -
Development Metrics & KPIs: Integration Test Coverage & End-to-End Test Coverage
1450 -
Build Metrics & KPIs: Time to Build, Build Verification Time & Pipeline Exec.
1414 -
Build Metrics & KPIs: Green & Broken Builds
1593 -
Release Metrics & KPIs: Cycle Time & Release Candidates
1292 -
Release Metrics & KPIs: Release Candidates Metrics
1306
-
Why this section is in this course and why it is important?
-
Defect Management Metrics & KPIs: Number of Open Defects & Defect Leakage
1951 -
Defect Management Metrics & KPIs: Defects per Severity/Priority/Env/Root cause
1783 -
Defect Management Metrics & KPIs: Defect Density, Non-Resolved Blockers & Others
1716 -
Defect Management Metrics & KPIs: Quality Debt Index, Bug Fixing Projection
1724 -
Defect Reopen, Defect Rejection, Open Defects Change Rate, Removal Efficiency
1246 -
Defect Resolution Time, Defect Age, Detection to Resolution Ratio
1302
-
Introduction to Extreme Programming (XP) - Part 1
868 -
Introduction to Extreme Programming (XP) - Part 2
1180 -
Pair Programming - Part 1
1093 -
Pair Programming - Part 2
1103 -
Planning Game - Part 1
1103 -
Planning Game - Part 2
1380 -
Test-Driven Development (TDD)
-
Whole Team - Part 1
967 -
Whole Team - Part 2
954 -
Continuous Integration (CI) - Part 1
1262 -
Continuous Integration (CI) - Part 2
1771 -
Refactoring or Design Improvement - Part 1
1470 -
Refactoring or Design Improvement - Part 2
1672 -
Small Releases - Part 1
992 -
Small Releases - Part 2
1077 -
Coding Standards - Part 1
793 -
Coding Standards - Part 2
859 -
Collective Code Ownership - Part 1
912 -
Collective Code Ownership - Part 2
1226 -
Simple Design - Part 1
1086 -
Simple Design - Part 2
1249 -
System Metaphor
1707 -
Sustainable Pace - Part 1
1221 -
Sustainable Pace - Part 2
1004
-
12 Factor Foundations: Context, Evolution, and Modern Relevance - PART 1
1343 -
12 Factor Foundations: Context, Evolution, and Modern Relevance - PART 2
1093 -
Factor 1: Codebase - Single Source of Truth
1012 -
Factor 2: Dependencies - Deterministic and Secure Software Supply Chain
1046 -
Factor 3: Config - Externalized Configuration as an Architectural Boundary
999 -
Secrets Management - Secure Handling and Lifecycle Control
1013 -
Environment Strategy - Controlling Dev, Stage, and Production Consistency
999 -
Factor 4: Backing Services - Attached, Swappable, and Portable by Design
1293 -
Factor 5: Build, Release, Run - Artifact Lifecycle Discipline
1368 -
Factor 6: Processes - Stateless Architecture and Scalable Execution
1297 -
Factor 7: Port Binding and Service Exposure Architecture
1401 -
Factor 8: Concurrency and Scaling Models
1249 -
Factor 9: Disposability and Operational Resilience
1273 -
Factor 10: Dev/Prod Parity and Environment Consistency
1034 -
Factor 11: Logs and Observability in Distributed Systems
1033 -
Factor 12: Admin Processes and Operational Safety
1019 -
Integrating the 12 Factors: Interdependencies, Microservices, and Kubernetes
1691 -
From Violations to Modernization: Anti Patterns and Migration Strategy
1124
Requirment
-
Basic understanding of Object-oriented programming. In case you don't have any priori knowledge of OOP, watch my other course that is named "Object-Oriented Programming - From Basics to Advance"
Outcomes
-
What is a good software architecture?
-
Basic principles in Software Architecture in OOP
-
SOLID principles
-
What is low coupling and high cohesion?
-
How to group units into packages, modules, namespaces or components
-
Practical, proven techniques to becoming a great Software Architect
-
Software design patterns
-
Architectural Patterns used in almost any software system
-
Clean code design
-
Review examples of SOLID code in object-oriented programming
-
Real-life examples of good and bad architecture
-
Test-driven development (TDD) to drive software architecture
-
Behavior-driven development (BDD)
-
Acceptance test-driven development (ATTD)
-
Database Architecture
-
Secure and Robust Architecture
-
Web application design patterns
-
MVC Design Pattern
-
DAO Pattern
-
Layered Architecture Pattern
-
REST Architecture
0 Student
1 Course
0 review