Software Patterns Made Easy
()
About this ebook
Design patterns are just as complicated as writing code. They are solutions to a class of problems readily available for use for your code. Design patterns also allow you to share solutions other programmers have discovered.
Design Patterns Made Easy represent insightful solutions
Related to Software Patterns Made Easy
Related ebooks
Software Design Methodology: From Principles to Architectural Styles Rating: 5 out of 5 stars5/5Tanmay Teaches Go: The Ideal Language for Backend Developers Rating: 0 out of 5 stars0 ratingsProgramming Problems: A Primer for The Technical Interview Rating: 4 out of 5 stars4/5RESTful API Design - Best Practices in API Design with REST: API-University Series, #3 Rating: 5 out of 5 stars5/5The Easiest Way to Learn Design Patterns Rating: 0 out of 5 stars0 ratingsProgramming Problems: Advanced Algorithms Rating: 4 out of 5 stars4/5Diary of a Software Craftsman Rating: 5 out of 5 stars5/5Microservices Architecture Handbook: Non-Programmer's Guide for Building Microservices Rating: 5 out of 5 stars5/5Art of Clean Code: How to Write Codes for Human Rating: 3 out of 5 stars3/5Refactoring for Software Design Smells: Managing Technical Debt Rating: 4 out of 5 stars4/5Developing Cloud Native Applications in Azure using .NET Core: A Practitioner’s Guide to Design, Develop and Deploy Apps Rating: 0 out of 5 stars0 ratingsHands-On System Design: Learn System Design, Scaling Applications, Software Development Design Patterns with Real Use-Cases Rating: 0 out of 5 stars0 ratingsThe Black Book of the Programmer Rating: 0 out of 5 stars0 ratingsThe Coder Habits: The #39# Habits of the Professional Programmer Rating: 5 out of 5 stars5/5Learning .NET High-performance Programming Rating: 0 out of 5 stars0 ratingsDevOps and Microservices: Non-Programmer's Guide to DevOps and Microservices Rating: 4 out of 5 stars4/5How To Build Microservices: Top 10 Hacks To Modeling, Integrating & Deploying Microservices Rating: 0 out of 5 stars0 ratingsFundamentals of Software Engineering: Designed to provide an insight into the software engineering concepts Rating: 0 out of 5 stars0 ratingsMastering Non-Functional Requirements Rating: 5 out of 5 stars5/5Learning Go Programming: Build ScalableNext-Gen Web Application using Golang (English Edition) Rating: 0 out of 5 stars0 ratingsASP.NET Application Development Fundamentals Rating: 0 out of 5 stars0 ratingsGood Code, Bad Code: Think like a software engineer Rating: 5 out of 5 stars5/5Domain-Driven Design in PHP Rating: 0 out of 5 stars0 ratings10x Software Engineer Rating: 0 out of 5 stars0 ratings
Enterprise Applications For You
Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Bitcoin For Dummies Rating: 4 out of 5 stars4/5Learn Windows PowerShell in a Month of Lunches Rating: 0 out of 5 stars0 ratingsCreating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Excel Formulas and Functions 2020: Excel Academy, #1 Rating: 4 out of 5 stars4/5101 Ready-to-Use Excel Formulas Rating: 4 out of 5 stars4/5Enterprise AI For Dummies Rating: 3 out of 5 stars3/5The New Email Revolution: Save Time, Make Money, and Write Emails People Actually Want to Read! Rating: 5 out of 5 stars5/5Microsoft Power Platform A Deep Dive: Dig into Power Apps, Power Automate, Power BI, and Power Virtual Agents (English Edition) Rating: 0 out of 5 stars0 ratingsExcel 2019 Bible Rating: 4 out of 5 stars4/5Excel Guide for Success Rating: 5 out of 5 stars5/5ChatGPT Ultimate User Guide - How to Make Money Online Faster and More Precise Using AI Technology Rating: 0 out of 5 stars0 ratingsExcel 2019 For Dummies Rating: 3 out of 5 stars3/5QuickBooks 2023 All-in-One For Dummies Rating: 0 out of 5 stars0 ratingsExperts' Guide to OneNote Rating: 5 out of 5 stars5/5Building Web Services with Microsoft Azure Rating: 0 out of 5 stars0 ratingsExcel Formulas That Automate Tasks You No Longer Have Time For Rating: 5 out of 5 stars5/5Data Governance: How to Design, Deploy and Sustain an Effective Data Governance Program Rating: 4 out of 5 stars4/550 Useful Excel Functions: Excel Essentials, #3 Rating: 5 out of 5 stars5/5QuickBooks Online For Dummies Rating: 0 out of 5 stars0 ratingsQuickBooks 2021 For Dummies Rating: 0 out of 5 stars0 ratingsExcel Tips and Tricks Rating: 0 out of 5 stars0 ratingsLearning Microsoft Azure Rating: 4 out of 5 stars4/5Managing Humans: Biting and Humorous Tales of a Software Engineering Manager Rating: 4 out of 5 stars4/5The Ridiculously Simple Guide to Google Docs: A Practical Guide to Cloud-Based Word Processing Rating: 0 out of 5 stars0 ratings
Reviews for Software Patterns Made Easy
0 ratings0 reviews
Book preview
Software Patterns Made Easy - Justice Nanhou
Software Patterns
Made Easy
Justice Nanhou
Copyrights Reserved © 2021- Justice Nanhou
Table of Contents
Disclaimer ......................................................................................
Acknowledgments .........................................................................
Introduction ...................................................................................
What Are Design Patterns and Why Do You Need Them? ......
What Are Design Patterns and Where Do They Originate From
Structure of a Design Pattern ......................................................
Benefits of Design Patterns .........................................................
Creational Design Patterns ..........................................................
Abstract Factory ..........................................................................
Builder .........................................................................................
Factory Method ...........................................................................
Prototype .....................................................................................
Singleton .....................................................................................
Structural Design Patterns ...........................................................
Adapter ........................................................................................
Bridge ..........................................................................................
Composite ...................................................................................
Decorator .....................................................................................
Façade .........................................................................................
Behavioural Design Patterns .......................................................
Chain of Responsibility ...............................................................
Command ....................................................................................
Interpreter ....................................................................................
Strategy .......................................................................................
Visitor Pattern .............................................................................
How Can You Apply Design Patterns .........................................
Uses of Design Patterns ..............................................................
Creational Design Patterns ..........................................................
Factory Method ...........................................................................
Abstract Factory Method .........................................................
Builder .....................................................................................
Prototype .................................................................................
Singleton ..................................................................................
Structural Design Patterns .......................................................
Adaptor ....................................................................................
Composite ................................................................................
Decorator .................................................................................
Façade ......................................................................................
Behavioural Design Patterns .......................................................
Chain of Responsibility ...........................................................
Command ................................................................................
Interpreter ................................................................................
Strategy ....................................................................................
Visitor ......................................................................................
Overview of Modern Concurrency and Parallelism Concepts .
Concurrency vs. Parallelism .......................................................
Processes and Threads ................................................................
Green Threads .............................................................................
Protothreads ................................................................................
Fibers ...........................................................................................
Generators ...................................................................................
Coroutines ...................................................................................
Goroutines ...................................................................................
Actors ..........................................................................................
LMAX Disruptor .........................................................................
Common Software Architectural Patterns .................................
What is an Architectural Pattern? ...............................................
Layered Pattern ...........................................................................
The Most Commonly Found 4 Layers Of A General
Information System .................................................................
Usage .......................................................................................
Client-Server Pattern ...................................................................
Usage .......................................................................................
Master-Slave Pattern ...................................................................
Usage .......................................................................................
Pipe-Filter Pattern .......................................................................
Usage .......................................................................................
Broker Pattern .............................................................................
Usage .......................................................................................
Peer-to-Peer Pattern ....................................................................
Usage .......................................................................................
Event-Bus Pattern .......................................................................
Usage .......................................................................................
Model-View-Controller Pattern ..................................................
Usage .......................................................................................
Blackboard Pattern ......................................................................
Usage .......................................................................................
Interpreter Pattern .......................................................................
Usage .......................................................................................
Authentication and Authorisation ...............................................
Authentication .............................................................................
Local Authentication ...................................................................
Two Factor Authentication ......................................................
The second factor required in two-step authentication
process can be: .........................................................................
A knowledge Factor ................................................................
A possession Factor .................................................................
An inherence Factor ................................................................
A location Factor .....................................................................
Multi Factor Authentication ....................................................
Authorization ..............................................................................
Access Control ............................................................................
Discretionary Access Control ..................................................
Role-Based Access Control .....................................................
Attribute-Based Access Control ..............................................
Mandatory Access Control ......................................................
Events and Events Processing ......................................................
What are Events? ........................................................................
Event Programming ....................................................................
Complex Event Processing .........................................................
How Complex Event Processing Works .....................................
Stream Processing .........................................................................
What is Stream Processing? ........................................................
How does it work? ......................................................................
Use Cases ....................................................................................
Real-Time Fraud and Anomaly Detection ..............................
Internet of Things (IoT) Edge Analytics .................................
Real-Time Personalization, Marketing and Advertising .........
Stateless VS Stateful Stream Processing ....................................
Microservices .................................................................................
What is Microservices? ...............................................................
A brief history of microservices ..................................................
The Six Characteristics of Microservices ...................................
1. Multiple Components .......................................................
2. Built for Business .............................................................
3. Simple Routing ................................................................
4. Decentralised ....................................................................
5. Failure Resistant ...............................................................
6. Evolutionary .....................................................................
Microservices Can Increase the Efficiency of Business .............
Database .........................................................................................
What is Database? .......................................................................
What is Database Management System? ....................................
Benefits of Database Management System .................................
Data security ............................................................................
Data sharing .............................................................................
DBMS helps to create an atmosphere where end users have
better access to more efficiently-managed data. .....................
Data access and auditing .........................................................
Data integration .......................................................................
Abstraction and independence .................................................
Uniform management and administration ...............................
Types of Database Management Systems ...................................
Hierarchical Databases ............................................................
Network Databases ..................................................................
Relational Databases ...............................................................
NoSQL Databases ...................................................................
Criticism ........................................................................................
Targets the Wrong Problem ........................................................
Lacks Formal Foundations ..........................................................
Leads to Inefficient Solutions .....................................................
Disclaimer
Software Patterns Made Easy
No part of this book can be transferred or replicated in any form, which includes print, electronic, photocopying, scanning, mechan-ical, or recording without subsequent written permission from the author.
While the author has taken the utmost efforts to ensure the accu-racy of the written content, all readers are advised to follow the information stated therein at their own risk. The author will not be held responsible for any individual or economic damage caused by the misunderstanding of information. All readers of this book are encouraged to seek expert advice when required.
This book has been written for informational purposes only. Efforts have been made to make this book as comprehensive and precise as possible. Nevertheless, there may be mistakes in typogra-phy or content. Also, this book provides information only up to the publishing date. Therefore, this book should be used as a guide -
not as the ultimate source.
The primary purpose of this book is to teach readers about the topic being discussed. The writer and the publisher do not warrant that the information contained in this book is comprehensive and will not be held responsible for any errors or oversights. The writer and publisher will have neither accountability nor blame to any individual or Object in regards to any loss or damage which is caused or alleged to be caused directly or indirectly through this book.
Acknowledgments
To all the individuals I have had the opportunity to lead, be led by, or watch their leadership from afar, I want to thank you for inspiring and motivating me.
I would like to thank my lovely parents, Louisette and Jean Nanhou. My tutor and second father, Christian Seudieu and his family for their advice.
Having an idea and turning it into a book is as hard as it sounds.
The experience is both internally challenging and rewarding. I want to thank the individuals that helped make this happen, especially Walter Krasniqi, Ryan Fernandez and their amazing publishing team.
Finally, the heavenly father for inspiration and daily strength.
Introduction
If you are ever writing code and get the funny feeling that you have solved the problem you were working on before, you probably have! You might well have come across the same kind of situation in the past, felt puzzled about it, and came up with a solution to that problem. This might have happened quite a few times.
However,