2. Team communication
• RoadMap with T-shirt sizes;
• Project expectations;
• Internal/External sessions;
• Code reviews;
• NO superheroes;
• NO minor players;
• Architecture – many suggestions, only one solution should GO (!).
2
5. CodeCity, going through the Jungle
• e.g. the PRO webServicesImpl “city”:
1. God classes – higher complexity and
logic encapsulated between a huge amount
of methods – nightmare to maintain.
2. Brain classes – high complexity and
encapsulation could be even with one
method usage.
More details - A. Riel. Object-Oriented Design
Heuristics. Addison-Wesley, 1996.
5
6. Profilers to use
• Java: VisualVM, JConsole;
• PHP: Clockwork, Anbu;
• SQL: Neor SQL (MySQL), pgtop (PostgreSQL), ExpressProfiler (MSSQL);
• JavaScript: Firebug, Web developer tools;
6
7. Validators to use
• HTML - http://validator.w3.org/
• CSS - http://jigsaw.w3.org/css-validator/
• XML - http://xmlvalidation.com/
7
9. Courses and readings
• Online courses, e. g. Coursera – https://class.coursera.org/posa-
002/lecture/preview
• Webinars, e. g. MIT -
https://sdm.mit.edu/news/news_articles/webinar_021411/webinar-
systems-thinking-software-architecture.html
• Grady Booch / Handbook of Software Architecture
• Len Bass, Paul Clements, Rick Kazman / Software architecture in practice
9