Posts

Ensure derived classes are substitutable for Base classes with Liskov’s Substitution Principle

Image
T his article, the third of the 5-part article on S.O.L.I.D design principles, is about the “L,” Liskov’s substitution principle made famous by  Robert C. Martin  (Uncle Bob)in his paper,  https://web.archive.org/web/20150924054349/http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf . The principle was initially introduced by  Barbara Liskov  in a 1987 conference keynote address titled  Data abstraction and hierarchy .  https://dl.acm.org/citation.cfm?id=62141 S — Single-responsibility principle O — Open-closed principle L — Liskov substitution principle I — Interface segregation principle D — Dependency Inversion Principle Contracts, Promises & APIs The public  interface , method of an object is its contract with the rest of the world. That API or contract is that objects promise to the world or the client of what service it provides. In the field of  Software engineering , modularisation is ...

Voice User Interface(VUI) and VUI Bots

Image
H ow we speak to others, convey our thoughts and views, influence our quality of life to a high degree. Across cultures and geographies, voice-based communication has been the most effective way of expressing oneself. Your voice is a part of you, and it’s the most intimate form of contact with the world. No other form of communication can convey emotion and personality as our voice. One could argue in favour of haptic inputs like the sense of touch, head movement, hand gestures, etc being equally effective. But the scope of voice communication is much more extensive compared to touch-based communication. When it comes to interaction with external systems, as with everything, things have evolved. Primitive beings used everything from thin feather quills, pigeons, fire, and smoke. The advent of printing was perhaps the greatest achievement of humankind as a whole. We then graduated from type systems, print sets to modern electronic devices to the present generation of hardwa...

How to choose a technology stack for web application development

Image
The popularity of every great web or mobile-based application depends upon how versatile and how much of an intuitive feeling does it give. Every software company, be it a 2 people startup to a global conglomerate that has offices in multiple countries, attribute their success solely on their product. The DNA of a great product depends upon the various tools and languages used to make it a successful product. Every software company is unique in its origins. Each company is created to solve a specific problem. There are companies that are in the same field and provide the same service but have uniqueness built into them through their tech stack, culture, and business model. There is a demand for a certain application. It could be a mobile or web application or both. Many of the new and upcoming entrepreneurs don’t have a technical background. The lack of technical background didn’t stop some of the best companies from dominating the global environment, for example, Jeff Bez...