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 enough abstraction
Methodological * 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
Technological * Cargo cult programming * Big ball of mud * Circular dependency * Sequential coupling * Yo-yo / spaghetti * Hard-coded assumptions
Bug Patterns * Bug Patterns in Java * Null Pointers * Double Descent * Orphaned Thread * etc * FindBugs, Checkstyle & linters
Code smells * Duplicated code * Feature envy * Inappropriate intimacy * Indecent Exposure * Conditional complexity * Large class * Inconsistent naming * Solution sprawl * etc http://blog.codinghorror.com/code-smells/
Conclusion * 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
Recommend
More recommend