Author Archives: Mukesh Yadav

SOLID: Dependency Inversion Principle

Dependency Inversion Principle Previous Principle: Interface Segregation Principle High-level modules should not depend on low-level modules. Both should depend on abstractions. When designing a system we have low level classes (classes which implement primary operation like: Network access, Disk access, Database access) and high level classes which have business logic. High level classes are dependent on Continue Reading »

SOLID: Interface Segregation Principle

Interface Segregation Principle Previous Principle: Liskov’s Substitution Principle A client should never be forced to implement an interface that it doesn’t use or clients shouldn’t be forced to depend on methods they do not use. In OOD we provide abstraction to module using interfaces, so we create an interface for a module and an implementation class. Continue Reading »

SOLID: Open Close Principle

Open Close Principle If you have not read Single Responsibility Principle Start from here Single Responsibility Principle Classes should be open for extension, but closed for modification This principle states that any new functionality can be added in a system with minimum modification in the current code. Means the system should be open to additions but it should Continue Reading »

SOLID: Single Responsibility Principle

Object Oriented Design Principles A good design is most important step of Software Development life cycle, and to have a good design we must follow some set of guidelines. According to Robert Martin in “Agile Software Development: Principles, Patterns, and Practices” there are 3 main reasons of bad design that should be avoided: Rigidity – System Continue Reading »

Tailor: Clean and Organized Code

  I found this quote by James O. Coplien on Japanese workplace organization methodology called 5S Clean your workplace on daily basis completely or set cleaning frequency. Use cleaning as inspection. Prevent machinery and equipment deterioration. Keep workplace safe and easy to work. Keep workplace clean and pleasing to work in. Just like our organization, the codebase Continue Reading »

Performance Analysis through Instruments tool for iOS App

  Instruments Tool Instruments is a powerful and flexible performance-analysis and testing tool. It is a  part of the Xcode tool set. Instruments tool is designed to help you profile your iOS applications in order to increase their performance and better utilization of resources. We will see How to  find hot-spots in code using Time Continue Reading »