¿Alguna metodología alternativa de programación de flujo principal para OOP usando C #?

8

En lo que respecta a los lenguajes de programación, me encanta C # y, de hecho, todo lo bueno que proviene del marco .net (LINQ, etc.).

Mi principal preocupación es que parece que estoy produciendo demasiado código, y al usar OOP, me preocupa que mi código no siempre sea tan fácil de administrar.

Quiero seguir usando C # y .Net, pero ¿existen otros enfoques para aplicar el lenguaje para obtener menos código en general y ser más fácil de administrar en comparación con el libro de texto OOP?

¡Gracias por adelantado!

JL01
fuente

Respuestas:

11

Sí, he encontrado el mismo problema. OOP no es la mejor manera de resolver todos los problemas. Sin embargo, C # admite bastante bien el paradigma funcional y ahora lo he usado con éxito en algunos proyectos.

Aquí hay una charla interesante con respecto a la simplificación que debería darle algo de reflexión al menos: http://skillsmatter.com/podcast/design-architecture/simple-is-better

Eliminado
fuente
1

Si está dispuesto a experimentar, pruebe AOP / C # como aquí y aquí . El PDF tiene una hoja fina sobre pros y contras.

mtijn
fuente
1

La Programación Orientada a Aspectos puede permitirle ganar algo de eficiencia al manejar sus "preocupaciones transversales" de manera uniforme. Hay otros posibles beneficios, pero en mi opinión, ¡sería útil para usted!

http://en.wikipedia.org/wiki/Aspect-oriented_programming http://www.sharpcrafters.com/aop.net

Justin Vieira
fuente
0

Antes de desviarse demasiado en diferentes metodologías, asegúrese de aprovechar la refactorización para simplificar y consolidar su código. Aquí está el catálogo de Fowler, la " Lista alfa de refactorizaciones ", cada una de las cuales puede ayudarlo a mejorar y administrar su código C #.

Al aprender a diseñar de manera efectiva para la reutilización y al optimizar su aplicación de interfaces, clases abstractas, jerarquías de clases, inyección de dependencias y herramientas similares que existen dentro de la metodología estándar orientada a objetos, puede encontrarse en el camino correcto para lograr los resultados deseados. .

Más allá de eso, @Chris Smith ya te ha señalado el hecho de que las versiones más nuevas de C # (3.5 y 4.0) han agregado varias capacidades de programación funcional que pueden ayudarte a hacer que tu código sea genial.

Si te gusta la programación funcional, prueba el nuevo lenguaje F # de Microsoft . En realidad es más como "objeto funcional", una mezcla de las dos metodologías. También es posible que desee saber que puede mezclar F # y C # en la misma solución .NET .

¡También estoy de acuerdo con los otros comentaristas en que AOP ciertamente tiene sus usos!

John Tobler
fuente
0

OOPS puede haber causado más código, pero si su aplicación es grande, la complejidad reducida que trae OOPS habría resultado en un código y claridad manejables y mantenibles. Si este no es el caso y lo siente como una carga, estoy seguro de que podría haberlo usado incorrectamente. compruebe si sus clases representan los objetos de dominio correctamente y la comunicación entre ellos está cerca de cómo sucede en el sistema del mundo real que intenta simular en el programa.

En C #, demasiado código no es una razón realista para alejarse de OOPS en mi humilde opinión. Un cambio de paradigma debería tener una razón mucho más válida, en realidad.

se puede hacer 'programación estructurada' en C # ... pero supongo que será una pérdida de tiempo y esfuerzo. Y la mayoría de las alternativas convencionales también utilizan OOPS.

WinW
fuente