[Post] What is Anti-Pattern and What is Anti-Pattern

Source: Internet
Author: User

An Anti-Pattern is a pattern that tell you how to go from a bad solution.     
Contrast to an ameliorative pattern, which is a pattern that tells how to go from a bad solution to a good solution.
Anti-pattern: tells you about the bad solutions you should not use in development, design, and management.
Opposite to the improved mode, the reverse mode tells us to avoid using the excellent mode for these bad modes.

Content flowing Copy from http://en.wikipedia.org/wiki/Anti-patternAnti-pattern

1 Known anti-patterns
1.1 Organizational anti-patterns
1.2 Project management anti-patterns
1.3 Analysis anti-patterns
1.4 Software design anti-patterns
1.4.1 Object-oriented design anti-patterns
1.5 Programming anti-patterns
1.6 Methodological anti-patterns
1.7 Configuration Management anti-patterns
2 See also
3 References
4 Further reading
5 external links

Known anti-patterns

Organizational anti-patterns
Analysis paralysis:Sort ting disproportionate effort to the analysis phase of a project
Cash Cow: a profitable legacy product that often leads to complacency about new products
Design by committee: the result of having condition contributors to a design, but no uniying vision
Escalation of commitment:Failing to revoke a demo-when it proves wrong
Management by perkele: authoritarian style of management with no tolerance for dissent
Moral hazard: insulating a demo-maker from the consequences of his or her demo.
Mushroom management: Keeping employees uninformed and misinformed (kept in the dark and fed manure)
Stovepipe:A structure that supports mostly up-down flow of data but inhibits cross organizational communication
Vendor lock-in:Making a system excessively dependent on an externally supplied component [4]

Project management anti-patterns
Death march:Everyone knows that the project is going to be a disaster-author t 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

 Analysis anti-patterns
Bystander apathy:When a requirement or design demo-is wrong, but the people who notice this do nothing because it affects a larger number of people.

Software design anti-patterns

Invalid action inversion:Not exposing implemented functionality required by users, so that they re-implement it using higher level functions
Ambiguous viewpoint:Presenting a model (usually OOAD) without specifying its viewpoint
Big ball of mud: a system with no recognizable structure
Database-as-IPC:Using a database as the message queue for routine interprocess communication where a much more lightweight mechanic wocould be suitable
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
Input kludge:Failing to specify and implement handling of possibly invalid input
Interface bloat:Making an interface so powerful that it is extremely difficult to implement
Magic pushbutton:Coding implementation logic directly within interface code, without using cancel action.
Race hazard:Failing to see the consequence of different orders of events
Stovepipe system:A barely maintainable partition age of ill-related components

Object-oriented design anti-patterns
Anemic Domain Model:The use of domain model without any business logic which is not OOP because each object shoshould have both attributes and behaviors
BaseBean:Inheriting functionality from a utility class rather than delegating to it
Call super:Requiring subclasses to call a superclass's overridden method
Circle-ellipse problem:Subtyping variable-types on the basis of value-subtypes
Circular dependency:Introducing unnecessary direct or indirect mutual dependencies between objects or software modules
Constant interface:Using interfaces to define constants
God object:Concentrating too functions in a single part of the design (class)
Object cesspool:Reusing objects whose state does not conform to the (possibly implicit) contract for re-use
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 special order
Yo-yo problem:A structure (e.g., of inheritance) that is hard to understand due to excessive fragmentation

Programming anti-patterns
Accidental complexity:Introducing unnecessary complexity into a solution
Action at a distance:Unexpected interaction between widely separated parts of a system
Blind faith:Lack of checking of (a) the correctness of a bug fix or (B) the result of a subroutine
Boat anchor:Retaining a part of a system that no longer has any use
Busy spin:Consuming CPU while waiting for something to happen, usually by repeated checking instead of messaging
Caching failure:Forgetting to reset an error flag when an error has been corrected
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
Expection handling:(From Exception + wrong CT) Using a language's error handling system to implement normal program logic
Hard code:Embedding assumptions about the environment of a system in its implementation
Lava flow:Retaining undesirable (redundant or low-quality) code because removing it is too expensive or has unpredictable consequences [5] [6]
Loop-switch sequence:Encoding a set of sequential steps using a loop over a switch statement
Magic numbers:Including unexplained numbers in algorithms
Magic strings:Including literal strings in code, for comparisons, as event types etc.
Soft code:Storing business logic in configuration files rather than source code [7]
Spaghetti code:Systems whose structure is barely comprehensible, especially because of misuse of code structures

Methodological anti-patterns
Copy and paste programming:Copying (and modifying) existing code rather than creating generic solutions
Golden hammer:Assuming that a favorite solution is universally applicable (see: Silver Bullet)
Improbability factor:Assuming that it is improbable that a known error will occur
Premature optimization:Coding early-on for perceived efficiency, sacririicing 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
Reinventing the wheel:Failing to adopt an existing, adequate solution
Silver bullet:Assuming that a favorite technical solution can solve a larger process or problem
Tester driven development: software projects in which new requirements are specified in bug reports

Configuration Management anti-patterns
Dependency hell: Problems with versions of required products
DLL hell: overutilization of the dynamic-Link Libraries (DLLs), specifically on Microsoft Windows
Extension conflict: Problems with Different Extensions to pre-Mac OS x versions of the Mac OS attempting to patch the same parts of the Operating System
Jar hell: overutilization of the multiple jar files, usually causing versioning and location problems because of misunderstanding of the Java class Loading Model

See also
Code smell-symptom of unsound Programming
List of software development philosophies-approaches, styles, maxims and philosophies for software development
Software Peter Principle

^ Budgen, D. (2003). Software design. Harlow, Eng.: Addison-Wesley. pp. 225. ISBN 0-201-72219-4. http://books.google.com/books? Id = bnY3vb606bAC & pg = PA225 & dq = % 22anti-pattern % 22 + date: 1990-2003 & lr = & as_brr = 3 & sig = signature # PPA225, M1."As described in Long (2001), design anti-patterns are 'obvious, but wrong, solutions to recurring problems '."
^ Scott W. ambler (1998 ). process patterns: building large-scale systems using object technology. cambridge, UK: Cambridge University Press. pp. 4. ISBN 0-521-64568-9. http://books.google.com/books? Id = qJJk2yEeoZoC & pg = PA4 & dq = % 22anti-pattern % 22 + date: 1990-2001 & lr = & sig = NExBN4vweIRBnMfR223RG0R-dVo."... Common approaches to solving recurring problems that prove to be ineffective. These approaches are called antipatterns ."
^ Koenig, Andrew (March/sort l 1995 ). "Patterns and Antipatterns ". journal of Object-Oriented Programming 8, (1): 46-48 .; was later re-printed in the: Rising, Linda (1998 ). the patterns handbook: techniques, strategies, and applications. cambridge, U. k.: Cambridge University Press. pp. 387. ISBN 0-521-64818-1. http://books.google.com/books? Id = required uixgmywec & pg = PT1 & dq = 0-521-64818-1 & lr = & as_brr = 3 & sig = Fb61zp1zqrcOZYysT7QjIXsuBvo # PPA387, M1."Anti-pattern is just like pattern, doesn't that instead of solution it gives something thats looks superficially like a solution, but isn' t one ."
^ Vendor Lock-In at antipatterns.com
^ Lava Flow at antipatterns.com
^ Uninitialized ented 'lava flow' antipatterns complicate process
^ Soft Coding

 Further reading
Laplante, Phillip A.; Colin J. Neill (2005). Antipatterns: Identification, Refactoring and Management. Auerbach Publications. ISBN 0-8493-2994-9.
Brown, William J .; raphael C. malveau, Hays W. "Skip" McCormick, Scott W. thomas, Theresa Hudson (ed ). (2000 ). anti-Patterns in Project Management. john Wiley & Sons, ltd. ISBN 0-471-36366-9.

 External links
Anti-pattern at WikiWikiWeb
Anti-patterns catalog
AntiPatterns.com Web site for the AntiPatterns book
Patterns of Toxic Behavior
Retrieved from "http://en.wikipedia.org/wiki/Anti-pattern"


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.