¿Cuáles son los antipatrones clave que se deben evitar al diseñar aplicaciones para la empresa? Estamos usando C# y SQL Server y Silverlight, por cierto, pero imagino que algunos de los antipatrones serán de lenguaje neutral.Enterprise Architecture Anti-patterns
Respuesta
La Wikipedia es bastante completa sobre el tema anti-patterns y aquí está el libro sobre el tema: AntiPatterns.
Top cinco en mi experiencia:
- Premature optimization
- Anemic Domain Model
- God object
- Golden Hammer (cf. expresiones regulares)
- Chain Gang
Gracias Jason - ¿Alguna idea sobre los 2 o 3 primeros? –
Ese catálogo anti-patrones está lleno de entradas frívolas y discusiones sobre arrojar bicicletas. –
Gracias Jason - ¡eso es genial! –
sumidero Empresa:
1: leer que su acceso de base de datos debe estar en una capa separada
2: Hey, tenemos una capa de base de datos.
2 (b) Oye, incluso tenemos una capa de delegado para abstraer nuestra base de datos.
3: aplique el law of leaky abstractions -porque hay métodos en los delegados que obtienen cosas, solo suponga que están ahí para usar sin pensar en las consecuencias- como en la llamada "getPurchaseOrder()" 10 veces seguidas en una página, aunque getPurchaseOrder() es un método que envuelve 5 llamadas de bases de datos separadas.
4: Siéntese y disfrute de sus páginas web que se cargan con 100 llamadas a bases de datos separadas (lamentablemente, no una exageración).
¿No estoy seguro de cómo llamaría esto a un antipatrón? tal vez "Las capas no son gratis"?
La separación de las preocupaciones de acceso a datos del resto de la aplicación no necesariamente da como resultado el patrón de repositorio primitivo que está describiendo, con los métodos get y set para cada tipo de entidad en el sistema. No es sincero sugerir que los números 3 y 4 son consecuencias naturales de los números 1 y 2. –
@Rex: pueden no ser consecuencias naturales, pero sin duda son un antipatrón. Algo que ocurre con la frecuencia suficiente para considerar evitarlo. – Tom
@Rex, entiendo que un antipatrón es un patrón negativo en el que puede caer el código. Lo que estoy pensando aquí es la codificación contra capas sin ser consciente, o pensar que debes considerar, lo que realmente están haciendo. p.ej. Dado mi ejemplo anterior, usted ve (bueno, lo he visto, de todos modos, las personas escriben una línea como: if (getPurchaseOrder()! = null && getPurchaseOrder(). price> 10). –
- 1. Enterprise, Systems and Application Architecture (¿Mejores prácticas?)
- 2. Antipatterns con Ruby on Rails
- 3. N-Layer Architecture
- 4. NHibernate architecture?
- 5. Game Architecture
- 6. Windows Mobile UI Architecture
- 7. Spring MVC Plugin Architecture
- 8. MIPS architecture syscall instruction
- 9. Multi-Tenant CQRS Architecture
- 10. Killer Apps architecture description
- 11. Ruby Plugin Architecture
- 12. OpenID Architecture para Java
- 13. jQuery MVC architecture
- 14. Flex project architecture?
- 15. Cloud Agnostic Architecture?
- 16. Ideal .NET Architecture?
- 17. play thread architecture
- 18. Good Architecture Entrevista Preguntas
- 19. C# DLL's plugin-architecture
- 20. Windows OS Architecture Book
- 21. SaaS Architecture Pregunta de Newbie
- 22. iOS App Architecture con NSOperations
- 23. Mobile Development Architecture & Design Patterns
- 24. ServiceBus Architecture Pros y contras
- 25. Bluez Architecture: explique esta arquitectura
- 26. Orchestration vs Message Driven Architecture
- 27. Sharp Architecture para aplicaciones Winform?
- 28. API Wrapper Architecture Best Practice
- 29. apple enterprise account
- 30. Enterprise Data Auditing
Wiki de la comunidad? –
Algunos podrían considerar Enterprise Architecture en sí misma como un anti-patrón. – cletus
No creo que esto sea wiki de la comunidad, pero feliz de ser guiado –