Software Engineering

 1. Design Principles

 SOLID

    • Single Responsibility Principle (SRP)
    • Open/Closed Principle (OCP)
    • Liskov Substitution Principle (LSP)
    • Interface Segregation Principle (ISP)
    • Dependency Inversion Principle (DIP)

DRY (Don’t Repeat Yourself)

KISS (Keep It Simple, Stupid)

Other Important Principles

    • YAGNI (You Ain’t Gonna Need It)
    • Convention over Configuration (CoC)
    • Composition over Inheritance
    • Law of Demeter (LoD)

2. Design Patterns:

1. Creational:

PatternPurpose
Abstract FactoryCreate families of related objects without specifying concrete classes
BuilderConstruct complex objects step by step
Factory MethodDefine interface for creating objects, let subclasses decide instantiation
PrototypeCreate new objects by cloning existing ones
SingletonEnsure a class has only one instance and provide global access

 

2. Structural

PatternPurpose
AdapterConvert interface of a class into another expected interface
BridgeDecouple abstraction from implementation so both can vary independently
CompositeCompose objects into tree structures to represent part-whole hierarchies
DecoratorAdd responsibilities to objects dynamically
FacadeProvide simplified interface to complex subsystem
FlyweightShare fine-grained objects efficiently when using large numbers
ProxyProvide surrogate/placeholder for another object to control access

 

3.Behavioral


PatternPurpose
Chain of ResponsibilityPass request along chain of handlers until one processes it
CommandEncapsulate request as object, enabling parameterization and queuing
InterpreterDefine grammar for simple language and interpreter for it
IteratorProvide sequential access to elements without exposing underlying representation
MediatorDefine object that encapsulates how set of objects interact
MementoCapture and externalize object's internal state without violating encapsulation
ObserverDefine one-to-many dependency between objects so all get notified of changes
StateAllow object to alter its behavior when internal state changes
StrategyDefine family of algorithms, encapsulate each, make interchangeable
Template MethodDefine skeleton of algorithm, let subclasses override specific steps
VisitorRepresent operations to be performed on elements of object structure



AI Native Software Development:
1. Reference link - https://www.youtube.com/watch?v=9u6xvcNJaxc

Comments

Popular posts from this blog

All About Gen AI Noise

Nano Cloud