Antipatterns in Software Engineering
- Dr. Vadim Zaytsev aka @grammarware
2015
Antipatterns in Software Engineering Dr. Vadim Zaytsev aka - - PowerPoint PPT Presentation
Antipatterns in Software Engineering Dr. Vadim Zaytsev aka @grammarware 2015 Design AntiPatterns * AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis * Using design patterns is a design anti-pattern * not
2015
* AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis * “Using design patterns is a design anti-pattern”
* not enough abstraction
* Copy-paste programming * Premature optimisation * root of all evil * Dependency hell * Rule of credibility * First 90% of code - 90% of time, remaining 10% - the other 90% of time * Analysis paralysis * Vendor lock-in * Smoke and mirrors
* Cargo cult programming * Big ball of mud * Circular dependency * Sequential coupling * Yo-yo / spaghetti * Hard-coded assumptions
* Bug Patterns in Java * Null Pointers * Double Descent * Orphaned Thread * etc * FindBugs, Checkstyle & linters
* Duplicated code * Feature envy * Inappropriate intimacy * Indecent Exposure * Conditional complexity * Large class * Inconsistent naming * Solution sprawl * etc
http://blog.codinghorror.com/code-smells/
* Not all patterns are positive * Learn to recognise & avoid * Not all antipatterns are negative * Further reading: * Code Complete, http://cc2e.com * How to Write Unmaintainable Code,
http://thc.org/root/phun/unmaintain.html