Software Architecture and Clean Code Design in OOP

Learn design patterns and principles for Object-oriented programming to make your software scalable and easy to maintain
Software Architecture and Clean Code Design in OOP
File Size :
10.63 GB
Total length :
21h 15m



Andrii Piatakha


Last update




Software Architecture and Clean Code Design in OOP

What you’ll learn

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)

Software Architecture and Clean Code Design in OOP


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”


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 examplesTo 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 codeWe 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 knowledgeAfter 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 studentsKnowing 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 lessonSometimes 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! 🙂


Section 1: Introduction

Lecture 1 Communication plan

Lecture 2 Unlimited access to ‘Learn IT’ application for students

Lecture 3 Tips to Improve Your Course Taking Experience

Section 2: SOLID Principles

Lecture 4 SOLID principles overview & Single Responsibility Principle

Lecture 5 Tips to Improve Your Course Taking Experience

Lecture 6 Open / Closed Principle

Lecture 7 Liskov Substitution Principle

Lecture 8 Interface Segregation Principle

Lecture 9 Dependency Inversion Principle

Section 3: Object-oriented Architecture, Clean Code Design (Advanced)

Lecture 10 Clean Code Architecture, Coupling & Cohesion

Lecture 11 Tell, Don’t Ask Pricniple & Data Structures

Lecture 12 Law of Demeter

Lecture 13 Packaging Pricniples p.1: Cohesion Principles

Lecture 14 Packaging Pricniples p.2: Coupling Principles and Others

Section 4: GoF Design Patterns of Software Architecture in OOP

Lecture 15 GoF Patterns: Overview

Lecture 16 Creational Patterns

Lecture 17 Structural Patterns, p.1

Lecture 18 Structural Patterns, p.2

Lecture 19 Behevioral Patterns, p.1

Lecture 20 Behevioral Patterns, p.2

Lecture 21 Behevioral Patterns, p.3

Section 5: TDD, BDD & ATTD

Lecture 22 Test-driven development: Theory

Lecture 23 BDD & ATTD

Lecture 24 TDD, BDD & ATTD – Practice

Section 6: Databases Architecture from Scratch

Lecture 25 About this section

Lecture 26 Databases: Overview – Part 1

Lecture 27 Databases: Overview – Part 2

Lecture 28 MySQL: Overview & Installation (including Workbench Installation)

Lecture 29 Relational Databases: Basic Concepts

Lecture 30 Create Schema & Table: Naming, Collation, Engines, Types, Column Properties

Lecture 31 Database Modelling & Design: Conceptual, Logical and Physical Data Models

Lecture 32 Referential Integrity: Foreign Key Constraint & Cascading Operations

Lecture 33 Indexes in Databases

Section 7: Web Application Design Patterns

Lecture 34 DAO (Data Access Object) Design Pattern

Lecture 35 MVC Design Pattern

Lecture 36 Layered Architecture

Section 8: ===== Exam: DAO, Database, JDBC, SQL ======

Lecture 37 Exam task review and solution

Section 9: ===== Exam: MVC & Layered Architecture =====

Lecture 38 Task Overview

Lecture 39 Solution Overview: Part 1

Lecture 40 Solution Overview: Part 2

Lecture 41 Solution Overview: Part 3

Section 10: Data Access Software Design Pattern

Lecture 42 Connection Pooling: DBCP, C3P0, HikariCP & Tomcat Connection Pool with JNDI

Section 11: Secure Software Architecture and Secure Coding

Lecture 43 OWASP Top 10: Overview

Lecture 44 Broken Access Control

Lecture 45 Cryptography Failures (Theory, Sensitive Data, Data Breach, Types of Failures)

Lecture 46 Cryptography Failures (Practical Examples, SQL Injections, TLS/SSL, HTTPS)

Lecture 47 Cryptography Failures (Examples, Password Encryption, Hashing, Salting)

Lecture 48 Injection (Overview, Fuzzing, CWEs, Impact, Injection Types, Command Injection)

Lecture 49 Injection (Cross Site Scripting, Types of XSS, SQL, JPA, NoSQL Injections)

Lecture 50 Injection (XPath Injection, Log Injection, Input Validation)

Lecture 51 Insecure Design (Overivew, CWEs, Shift Left Security, Threat Modeling Manifesto)

Lecture 52 Insecure Design (Secure Design Process, Security Controls, Metrics, Examples)

Lecture 53 Security Misconfiguration (Overview, CWEs, Types, Real-life attacks)

Lecture 54 Security Misconfiguration (Hardening, Zero Trust, Defense in Depth, Practice)

Lecture 55 Vulnerable & Outdated Components

Lecture 56 Identification & Authentication Failures

Lecture 57 Software & Data Integrity Failures

Lecture 58 Security Logging & Monitoring Failures

Lecture 59 Server-Side Request Forgery (SSRF)

Section 12: Logging in Java

Lecture 60 Logging in Java: Part 1 (Logging theory, Logging Levels, Java Logging Framework)

Lecture 61 Logging in Java: Part 2 (Log4J, Logback, SLF4J)

Section 13: ===== EXAM TASK: OWASP Top 10, Secure Coding & Logging =====

Lecture 62 Exam Task: Description and Solution (with reference to the source code)

Section 14: REST Architecture

Lecture 63 REST Architecture: Overview and Key Principles

Lecture 64 Naming Convention for RESTful Services

Lecture 65 RESTful Service Implementation with Spring MVC

Lecture 66 Review of tools for API testing & Postman Installation

Section 15: Bonus section

Lecture 67 Bonus lesson

Sofware engineers that use OOP in any programming language,Software technical leads,Future Software Architects

Course Information:

Udemy | English | 21h 15m | 10.63 GB
Created by: Andrii Piatakha

You Can See More Courses in the Developer >> Greetings from

New Courses

Scroll to Top