develpreneur podcast

Polymorphism Overview – Reducing code size and a better user experience

We start the next series of episodes with a polymorphism overview.  This is a core concept for proper object-oriented design.  Likewise, we will dig into several practical ways to use this. Polymorphism Overview – A Definition As with many topics, it seems best to start with a definition from Wikipedia. In programming languages and type theory, polymorphism is the provision of a single interface to entities of different types or the use of a single symbol to represent multiple different types. For our purposes, that symbol that is referred to can be considered a name.  The name can be a method, class, or property name. Class Vs. Object It is worth clarifying the difference between a class and an object. ... Read more

develpreneur podcast

Data Hiding – Practical Accessors

We have discussed the accessor levels of our data.  In most environments, the three levels are public, protected, and private.  In this episode, we go deeper into these concepts and a practical approach to data hiding. The Private Access Level This level of access should be our default.  It can be considered the critical step in data hiding.  Private hides our data and methods.  I find a physical example often works best for the goal of this approach.  When we purchase a physical device, we prefer fewer buttons and interface widgets over more.  The Apple iPod was a perfect example of this.  There were very few controls, so the interface was easy to understand.  Our software should follow the same... Read more

develpreneur podcast

A Practical Approach to Data Encapsulation

We have developed many bad habits over the years as OOP has proliferated frameworks and tools.  In this episode, we look at the practical side of data encapsulation and access levels like private, protected, and public. Tools Are A Beginning Modern frameworks and tools provide ways to generate a general object-oriented solution quickly.  Therefore, the tools will give us a start, but not the best solution.  There are too many details the tools are not privy to that are essential to the best solution.  We will make the best use of tools when we remember this fact.  That means we can not only move forward with generated code.  We must review what is provided and extend or remove details to... Read more

develpreneur podcast

Data Hiding – A Need To Know Software Approach

Data encapsulation and data hiding are terms for keeping object properties from public consumption.  This concept is an essential part of object-oriented programming.  We need to be able to have internal processes and values that we can change without impacting users.  It also allows us to limit the impact of changes in large systems.  Thus, we will start our OOP season with a look at this somewhat simple concept. Data Hiding is more than properties. One important facet of this topic is that we use encapsulation for more than attributes or properties.  That may not be obvious in the frameworks you use.  Therefore, we need to look at these expanded options for encapsulation.  We also can use this as an... Read more

develpreneur podcast

An Introduction to The Object-Oriented Programming Season

Object-Oriented Programming (OOP) and related concepts have become almost ubiquitous in modern software projects. It was a novel idea a few decades ago that has been incorporated into many frameworks and languages. We even have situations where OOP was “bolted on” to existing systems. However, all of that out of the box OOP design can hide it from us and keep us from fully embracing it. Therefore, this season will start from the OOP foundations and point to ways to embrace it in an intentional rather than accidental way. Avoid Duplication of Effort Software development is all about solving problems. The more we solve, the better we can serve our audience or customers. Thus, we want to avoid answering the... Read more

Agile Product Development

Agile Product Development

Agile methodologies have evolved to permit different teams to manage and work together for the proper execution of software creation and programming process.  This evolution eases the final delivery of each software product.  Likewise, it incorporates all the possible changes that occur in the meantime. Hence, agile product development has become an essential part of any software and apps development process. Agile Product Development Defined Agile Product Development is the latest hot term related to software product development.  It has been used across technologies and worldwide.  We see with the evolution of this terminology; it has become the most important part of product development in many areas.  Therefore, it is rare for a product to be developed without using the... Read more