In This Chapter
Battling code complexity
Managing multiple developers
Dealing with performance issues
As your application grows in features, it become more complicated. Complexity is the kiss of death in software development. It breeds bugs and makes your code harder to maintain and enhance. To combat this, developers
Use abstraction to hide sub-routines and keep functional code as simple as possible.
Use automated testing to make sure new code doesn't break old features.
In addition to your application's growing complexity, your application will suffer from scaling pains as you gain more users. As your user base increases, so does your server load, disk space requirements, database hits, and Twitter API calls. You must address these scaling issues first, or your application is at risk of crashing.
This chapter is here to warn you of potential growing pains and point you in the direction of potential solutions.
Acceptance testing is done from the user interface side of your application. For example, if your app has a login mechanism, to do acceptance testing on that mechanism means you type a username and password, press the login button and verify the login page loaded. This is the most common and simple type of software testing. Acceptance testing can be done manually by a tester or the developer, but it's difficult and time consuming to test every feature of an application, and do it the same way each time. Fortunately, ...