architecture analysis by maxym shabatura
TRANSCRIPT
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 (!).
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.
6
Profilers to use
• Java: VisualVM, JConsole;
• PHP: Clockwork, Anbu;
• SQL: Neor SQL (MySQL), pgtop (PostgreSQL), ExpressProfiler (MSSQL);
• JavaScript: Firebug, Web developer tools;
7
Validators to use
• HTML - http://validator.w3.org/
• CSS - http://jigsaw.w3.org/css-validator/
• XML - http://xmlvalidation.com/
8
Static code analyzer
• Multilanguage - SonarQube http://umbra.romexsoft.com:9000/dashboard/index/4181
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