wanted insist on the need to unify the way we work within a company, community ... I mean, everyone should use Windows or Linux
, or Word, openOfficem, Messenger or Outlook. In that respect, I advocate open standards, the ODF, for each person to choose the tool that is most comfortable.
I mean the form of a project, how to encode, and above all, how to manage it.
The first pillar of the project, the schedule should be made following
design patterns. The patterns are theoretical use cases, independent of programming language that solve problems common to all applications. For example, the most common and easy to understand are the standard 3-layer, or for a website, using a MVC, and data access, use or Persistence DAOs Managers (the latter is more convenient, because it requires less code and avoid the temptation to DAO / BO oriented tables)
Often these patterns easily jump to us, especially when a person does not have much experience or knowledge in the area, does not understand its usefulness and the jumps. Work Project Architect usual ends up being the revision of this code, anyone miss these patterns. We should not automate the generation of code to prevent this? Should not the programmer to focus on business rules instead of building the skeleton of an application that has no global knowledge?
On the other hand, the success of a project depends not only on their programming. The tests must be constant. It is very important to perform tests from the beginning, from the first classes. You have to perform unit testing, but performance tests and profilings.
The former serve to ensure that any change that disrupts the team does not the work of another, in addition to proving that functionality does what it must. These unit testings should be run periodically, even at night, for a constant monitoring of work and to recover quickly if something has gone wrong.
The performance test are also interesting them at an early stage to avoid choosing technologies or lines of development of high consumption and later be difficult to replace. An interesting alternative or complement to these tests are the prototypes, simulate a real scenario and perform a mini application to stress.
Third, profiling tests can help us to identify bottlenecks bottle of an application, especially when attacking the BDD. Many times we find complex queries that are not easily resolved. These queries, as constructed can have a better or worse result. These tests will identify queries with response times ineffective, and we will correct them, or act on the BDD, adding indexes ...
Finally, the documentation, the great unknown. I am the first documentation does not, and is a great error. Today the wiki, and tools like Trac
allow us to have a better vision of the project, code can be directly related documentation and tickets.
tools to help accomplish these tasks? Many: Rational Rose,
SVN, Maven
,
jUnit , Continuum
,
jProfiler ,
Trac ,
Jira, Confluence
... Why not unify them all?
Well, not all, but a few.
The framework we propose (I will announce the project soon opensource) integrates Maven2, pluggins automatic generation of project wizards to facilitate the development eclipse according to patterns, automatic creation of jUnits, documentation. In addition to using SVN, Trac
, Continuum and management jProfiler the project.
Not bad, it saves a lot of work, controls that do things well and can focus on business logic. With a little help of developer projects achieve high performance by the technology used, easy to maintain, because they use standard components, consistent, configurable, and scalable, by the nature of the patterns used.
In short: MORE PRODUCTIVITY AND COST LESS