“A career is born in public, talent in privacy.” – Marilyn Monroe
In the digital age, where information about any topics can be found simply by going to search engines, it has become difficult to keep up. There are many websites in the world that practically looks and does the same actions as another website. Since information flow can be found from multiple sources, a business must offer something incredibly different to stand out.
From Marilyn’s quote, the journey of a career should be publicly known, but the details to achieve each step should be kept in private and only revealed to those who wish to know more. Inform the public with enough information that they can relate to their business. Yet protect the most valuable knowledge for those who are willing to listen, to learn and to invest in you. This requires a balancing act to help entice customers and keep them mesmerized for your expertise by continually learning and combining new ideas too.
In computer science, there is a concept called information hiding. It is related to inheritance and abstraction where the client is given access to the API method, but the logical details are kept hidden and available only to developers. Why? Because if the details of each API method is changed and updated in the future, the calls for each method on different files does not need to be altered as well. This makes it simpler to manage the program because there is no need to modify every function call on different files.
For example, a function might be used by different classes or objects that have 1,000+ lines of code. Without inheritance and abstraction, it will be very difficult to find where that functionality is located and will have to change each one. That gets very tedious and frustrating to update in the future.
What Is Encapsulation?
Another name for information hiding is encapsulation. It means the process of breaking apart the elements of an abstraction that creates its structure and behavior. Therefore, it separates the interface of an abstraction and its implementation. There are usually three access keywords used by multiple programming languages to allow encapsulation:
- public – A variable, function, class, constructor or interface is available to all classes so it can be accessed anywhere
- protected – A variable, function, or constructor can only be gained access within its parent class or its subclasses
- private – A variable, function or constructor is gained access within the parent/base class only
The decisions made to figure out which parts become protected or private depend on how important those details are to the overall program. Similarly, the level of access users have is based on how much time and effort they are willing to learn new concepts to understand abstract data. Showing a non-programmer logical code can feel overwhelming in the beginning.
Encapsulation in Web Development
When the data structure for each content or object type is determined, you, as a client, are given access to add new contents and edit existing ones. While normal users are given read-only access. However, the developer hides some display mode access from the client because allowing you the ability to change any of those may potentially break your website or cause unpredictable errors that are difficult to debug and fix.
Those details usually consist of the logical code that queries the database and display them as lists, tables or other dynamic user interface. The only time when developers give clients access to everything on a complex website is when they are ready to relinquish all control. Strictly speaking, that is the time when the web developer has given up on the client and their website is completely in chaos mode, which we do not want to happen.
Everything requires a fine balance of knowing which details are publically revealed, and which details should remain private and only divulged to a select few. In terms of your business, what knowledge or skills do you have that should be kept private or protected and only exposed to your most trusted prospects? From your own experiences, when is the right time to change a potential to a loyal customer?