Tuesday: NoSQL Day
|Smart phones||Smart phones||Smart phones|
|Architecture||Cloud & nosql||Patterns|
|Web development||Web development||Social media|
|Collaboration||Realizing business ideas||Software craftsmanship|
Kevlin is an independent consultant and trainer based in the UK. His development interests are in patterns, programming, practice and process. He has been a columnist for various magazines and web sites, including Better Software, The Register, Application Development Advisor, Java Report and the C/C++ Users Journal. Kevlin is co-author of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages. He is editor of the 97 Things Every Programmer Should Know project.
Track: Software craftsmanship, friday 11:20 - 12:10
Modern programmers have a lot on their minds. Programming languages, programming techniques, development environments, coding style, tools, development process, deadlines, meetings, software architecture, design patterns, team dynamics, code, requirements, bugs, code quality. And more. A lot.
The 97 Things Every Programmer Should Know project has collected together the wisdom of many contributors to offer a distilled snapshot of what every programmer should know. This session draws from this crowdsourced collection to present some highlights and useful advice.
Track: Patterns, friday 13:10 - 14:00
Apparently, everyone knows about patterns. Except for the ones that don't. Which is basically all the people who've never come across patterns... plus most of the people who have.
Singleton as a rite of patternhood and a source of excitement. Patterns as the raw materials of blueprint-driven architecture and design by diktat. Patterns as something you don't need to know any more because you've got frameworks, libraries and middleware by the download. Patterns as something you don't need to know because you're building on UML, legacy code or emergent design. All these misconceptions... and more.
In this talk, let's take an alternative tour of patterns, one that is based on improving the habitability of code, communication, exploration, empiricism, reasoning, incremental development, sharing design and bridging rather than barricading different levels of expertise.