16 Nisan 2010

anti-patterns

en çok yapılan doğru olmayan eylemler ile ilgili güzel bir yazı, anti-patterns: burda

bazı güzel örnekler:

Organizational anti-patterns
Cash cow: A profitable legacy product that often leads to complacency about new products
Management by perkele: Authoritarian style of management with no tolerance for dissent
Mushroom management: Keeping employees uninformed and misinformed (kept in the dark and fed manure)

Project management anti-patterns
Death march: Everyone knows that the project is going to be a disaster – except the CEO. However, the truth remains hidden and the project is artificially kept alive until the Day Zero finally comes ("Big Bang"). Alternative definition: Employees are pressured to work late nights and weekends on a project with an unreasonable deadline.
Groupthink: During groupthink, members of the group avoid promoting viewpoints outside the comfort zone of consensus thinking.
Smoke and mirrors: Demonstrating how unimplemented functions will appear
Software bloat: Allowing successive versions of a system to demand ever more resources

Software design anti-patterns
Big ball of mud: A system with no recognizable structure
Gas factory: An unnecessarily complex design
Gold plating: Continuing to work on a task or project well past the point at which extra effort is adding value
Inner-platform effect: A system so customizable as to become a poor replica of the software development platform

Object-oriented design anti-patterns
God object: Concentrating too many functions in a single part of the design (class)
Object orgy: Failing to properly encapsulate objects permitting unrestricted access to their internals
Poltergeists: Objects whose sole purpose is to pass information to another object
Sequential coupling: A class that requires its methods to be called in a particular order

Programming anti-patterns
Accidental complexity: Introducing unnecessary complexity into a solution
Blind faith: Lack of checking of (a) the correctness of a bug fix or (b) the result of a subroutine
Cargo cult programming: Using patterns and methods without understanding why
Coding by exception: Adding new code to handle each special case as it is recognized
Error hiding: Catching an error message before it can be shown to the user and either showing nothing or showing a meaningless message
Lava flow: Retaining undesirable (redundant or low-quality) code because removing it is too expensive or has unpredictable consequences
Magic numbers: Including unexplained numbers in algorithms
Magic strings: Including literal strings in code, for comparisons, as event types etc.

Methodological anti-patterns
Copy and paste programming: Copying (and modifying) existing code rather than creating generic solutions
Premature optimization: Coding early-on for perceived efficiency, sacrificing good design, maintainability, and sometimes even real-world efficiency
Programming by permutation (or "programming by accident"): Trying to approach a solution by successively modifying the code to see if it works
Tester Driven Development: Software projects in which new requirements are specified in bug reports

Hiç yorum yok: