Welcome to the Coding Practices repository! Here you'll find notes on Standard Coding Practices, Design Patterns, SOLID principles, Agile principles, and other stuff related to Software design and development to enhance your development experience. 🌟
Section | Description | Link |
---|---|---|
SOLID Principles | Principles for object-oriented design | SOLID Principles |
Design Patterns | Common design patterns and their applications | Design Patterns |
Agile Principles | Principles for Agile development | Agile Principles |
Coding notes for standard practices to follow for a better dev experience and mental peace for other Devs 😇.
This project demonstrates the SOLID principles of object-oriented design, which are essential for creating maintainable and scalable software. Each principle is implemented in its respective PHP file.
Principle | Example | Description |
---|---|---|
Single Responsibility Principle (SRP) | Single-Responsibility.php | "A class should have only one reason to change or have only one job/responsibility." |
Open/Closed Principle (OCP) | Open-Closed.php | "A class should be open for extensions but closed for modifications." |
Liskov Substitution Principle (LSP) | Liskov-Substitution.php | "Objects in a program should be replaceable with instances of their subtypes without altering the correctness of the program." |
Interface Segregation Principle (ISP) | Interface-Segregation.php | "A client should not be forced to depend on methods it does not use." |
Dependency Inversion Principle (DIP) | Dependency-Inversion.php | "Depend upon abstractions. Do not depend upon concretions." |
"Design patterns are solutions to common and repeating problems in software design."
Category | Patterns |
---|---|
Creational | Singleton, Prototype, Factory Method, Abstract Factory, Builder |
Structural | Facade, Adapter, Decorator, Proxy, Composite, Bridge, Flyweight |
Behavioral | Memento, State, Iterator, Observer, Mediator, Strategy, Command, Template Method, Visitor, Chain of Responsibility |
Agile is an iterative approach to project management and software development that focuses on flexibility, customer satisfaction, and team collaboration. For more information on Agile principles and methodologies, check out the Agile Principles, Agile Manifesto and Agile Alliance.
- 📧 Email: shahrukhanwar@proton.me
- 🌐 Portfolio: shahrukhanwar.vercel.app
- 💼 LinkedIn: linkedin.com/in/devshahrukh
- 🐦 Twitter: x.com/devshahrukh
This project is open source and available under the MIT License.
If you find this project useful, star the repository, consider supporting me:
For more information on design patterns, check out this cheat sheet.
Feel free to contribute by creating PRs to this repository. Thanks everyone! ❤️