In software design, we often make many decisions, such as, which architectural pattern to choose? Using what technology? These decisions directly affect the direction of software design.

In order to make software easy to change over the long term, every decision we make must be subject to the principle of reversibility, which premised on the ease of change.

Critical decisions are not easily reversed

In 2012, Qihoo 360 launched a sharing cloud disk. Based on 360’s security commitment, many users choose to save their precious files into 360 cloud disk without backup. But in 2016, 360 cloud disk announced that it will gradually shut down personal cloud disk services, which let 360 cloud disk users have begun to “rescue” data. The surge in downloads has slowed download speeds, forcing many users to give up some files in favor of more valuable content.

Cloud disk shut down the event to 360 company has brought a huge impact, but also to the users without backup data has brought untold losses.

At the beginning of a project, the team is typically faced with many choices, and as the requirements become more detailed and the architecture of the product takes shape, the choices become fewer and fewer. As a result, once a critical irreversible decision has been made, it becomes extremely difficult to change later.

Avoid making critical decisions that are irreversible

Here are some ways to avoid making critical decisions that are irreversible:

1. Flexible code

Highly coupled code makes it harder to fix, so teams can decouple the code to keep it flexible. At the same time, you can write less code to make changes more secure and easier.

2. Flexible architecture

In addition to keeping your code flexible, consider being flexible in terms of architecture, deployment, and vendor integration to make it easier to change later.

3. Be prepared for the unexpected

Be “crisis aware” and have a Plan B ready. A butterfly in the Amazon rainforest, with the occasional flapping of its wings, can cause a tornado in Texas two weeks later. This is often called the “butterfly effect”. In fact, although we can’t control the flapping of a butterfly’s wings or stop an approaching tornado, we can prepare precautions in advance to deal with the threat of a tornado.

In short, we don’t know what changes will take place in the future, but we do know that we need to make sure that our decisions are adaptable to different changes. Is your decision reversible?

The programmer the path to uniting the more wonderful video: www.zentao.net/programmer….