Legacy Recommendations

In my experience, backward / forward compatibility commitments are a gilded cell in software development. I especially noticed that this applies to document file formats and programming languages ​​/ APIs. Customers and partners hate it when existing data or code is violated; however, if you never break compatibility, you can seriously limit your ability to innovate in the long run.

Are there solutions to this problem besides the gradual obsolescence of old features? It seems that virtualization, as in Windows 7 XP mode, is one exciting feature. Are there any others?

In addition, for those of us who want to develop new systems that are as possible as possible for the future, what lessons can we learn from past mistakes made in the industry?

+5
source share
3 answers

Innovation by expanding rather than rewriting public APIs. Have consistent common public interfaces for functionality. You can rewrite private modules at any time as long as you ship the public API modules with the expected results.

API . API, , , .

, . API, , , .

, - , .

+5

XML DTD , . , , .

0

Here is a good example: Using SLF4J Bridges , you can easily switch from one logging module to another in Java.

0
source

All Articles