Date post: | 26-Dec-2015 |
Category: |
Documents |
Upload: | jasmin-blankenship |
View: | 216 times |
Download: | 0 times |
"We speak of the “architecture” of a symphony, and call architecture,
in its turn, “frozen music.”
—Deryck Cooke, The Language of Music
"In wider use, the term “architecture” always means “unchanging deep structure.”
—Stewart Brand, How Buildings Learn
The consequence of a bad architecture is not constrained within the code. It spills outside to affect
people, teams, processes, and timescales.
It’s important to know what you’re designing before you start designing it. If you don’t know what it is and
what it’s supposed to do, don’t design it yet. Only design what you know you need.
Main principles• Locating functionality
• Consistency
• Growing the architecture(stone principle)
• Deferring design decisions(YAGNI principle)
• Maintaining quality
• Tests!
• Time for design
• Working with the design(no one owns any area of the design)
• Sharing the responsibility for the whole architecture
Further chapters• ENTERPRISE APPLICATION ARCHITECTURE
• SYSTEMS ARCHITECTURE
• END-USER APPLICATION ARCHITECTURES
• LANGUAGES AND ARCHITECTURE
Examples : DarkStar
• Problems:• The system be distributed and concurrent, but we needed to present a much simpler
programming model to the game developer• Needs to be able to start small and then increase capacity as the user base increases, and
then decrease capacity as interest in the game wanes• Players are interacting with only a very small percentage of the occupants of the world • Latency Is the Enemy
Examples - Architecting for Scale• Decisions:• Very thick client • Geographical distribution of servers • Very thick client • Not a feature set but requirements to the system is the main concern of a software
developer• Services
KDEFree software community producing integrated set of cross-platform applications designed to run on Unix systems.
Akonadi
Akonadi is Personal Information Management framework for KDE.
It's main purpose is providing universal datastore for PIM applications.
Expectations
• Building and maintaining architecture in community project
• Evaluating developer's code and its adjustment to project's ideas and patterns
• Expressing main ideas and patterns shortly