Kristo Vaher has an interesting post looking at a development technique that's becoming more and more popular among web applications - API centric design. More development is being focused around reusable APIs than just making applications. Kristo fills you in on a few things you need to know about this technique and some things to watch out for along the way.
Modern web applications are often anything but stateless and consist of layers upon layers of session handling and asynchronous requests, where users can log in and their functionality is dependent upon dozens of checks before a page is returned to their web browser. In order to manage this problem a little better, we have to take discover - or rediscover - something that has existed in desktop software development for a dozen years: API-centric development and design.
For those new to the topic, he explains what an API is and how centering your development focus on it can help in the long run. He suggests that the API should be the software and everything else - clients, outside users, etc - just interacts with it. Some solutions are offered to help encourage this development including:
- Using a MVC (Model/View/Controller) structure
- Starting from day one to develop the API
- Planning before writing any code
- How teams should be working together, but on different elements