antipatterns in software engineering
play

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


  1. Antipatterns in Software Engineering Dr. Vadim Zaytsev aka @grammarware 2015

  2. Design AntiPatterns * AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis * “Using design patterns is a design anti-pattern” * not enough abstraction

  3. 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

  4. Technological * Cargo cult programming * Big ball of mud * Circular dependency * Sequential coupling * Yo-yo / spaghetti * Hard-coded assumptions

  5. Bug Patterns * Bug Patterns in Java * Null Pointers * Double Descent * Orphaned Thread * etc * FindBugs, Checkstyle & linters

  6. 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/

  7. 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