ASP.NET – 如何有效地使用设计模式而不需要过度工程!
从ASP.NET出来以来,我一直在努力奋斗,我会感到人们对这个困境的想法。
在经典的ASP中,代码层是最小的。 ASP页面包含HTML和脚本组合。 COM组件包含业务逻辑和DAO基础设施。 ASP页面本身是凌乱的,但一切都在一个地方。 ASP.NET的代码隐藏了代码,没关系。控件允许我们在表示层上更加面向对象。这些东西都不错 这是我的问题我进入的许多项目是企业Web应用程序,但不是那么复杂,所以说10个左右的网页/用户界面,大量的数据库交互等等。这些以前是一块蛋糕要理解。现在我经常会遇到5到10层代码来创建一个相当简单的网页。这些可能包括ASP,代码隐藏,控制类,DTO类,ORM对象,然后还有其他一些刚刚投入到它的地狱。 除了到达数据库的5-10层之外,还有许多创建用于存储普通数据的自定义对象,而不是像例如集合那样使用POCO(普通的老CLR对象)。为了理解这些对象,通常需要追溯包括3个或更多级别的对象和接口的继承性搜索。 这是关键:以前,我看了一个ASP页面,并且说了1到2个小对象,一些SQL查询,这些工作已经完成,并且维护和理解相当简单。 现在,对于同一页面,可能会有50个对象或更多的对象,在自定义命名空间中传播数百个对象。 我问你,代码工匠,这是进步吗?有些人有点笨拙地用自己喜欢的新设计模式玩具吗?有快乐的媒介吗?有没有办法有效地使用设计模式,而不会创建这么多的对象,它变得比旧的程序范例变得更糟的意大利面条代码? 请分享你的想法。 解决方法
放弃组织需要这些抽象层次的可能性(不太可能,但它确实发生),开发人员(特别是在非敏捷的企业/企业环境中)增加太多的抽象层面是非常普遍的。它发生在经典的ASP,.NET只是使它更容易。我们这个职业中的大多数人都有一种自然的过度复杂的趋势,要克服这个问题。
此外,许多平庸的开发人员错误地认为,最大限度地提高抽象层次和模式使用,使他们成为更好的开发人员。 最后,许多平庸的开发人员被教导他们应该使用层次,抽象和模式,但没有被教导得很好,不知道如何,何时或为什么。所以他们进入一个项目思考“好吧,我知道我应该在这里有一些层次”,你可以想象出来的是什么。 最终,最佳做法的“最佳实践”是尽可能简单地编码UNTIL,您遇到一个阻碍您前进的真正问题。很多时候,你应该有一个模式或最佳实践在你的工具箱是正确的任务,就像你有一个坚果的正确扳手。最好的做法和模式是工具 – 你不会出现一个锤子,开始摆动,直到你有一个需要捣毁的指甲。同样的软件开发。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 在日历上设置最小和最大日期?
- asp.net – 使用冗长的服务器进程取消asynch回发
- 根据存储的时区修改ASP.NET MVC C#中的日期
- asp.net – 如何自动执行功能/集成测试和数据库回滚
- asp.net-mvc – 绑定动作参数以在ASP.NET MVC中请求cookie
- asp.net-mvc-3 – ASP.NET MVC3 Razor – 在将视图放置在备
- asp.net – DropDownList的EditorTemplate
- asp.net-mvc – MVC脚手架 – 参考程序集中缺少类
- asp.net-mvc – AutoMapper xUnit:缺少类型映射配置或不支
- 反射及LINQ结果集转换dataTable并序列化 将DataTable序列
- asp.net-mvc-3 – 任务/线程的Ninject Scope问题
- asp.net-mvc – 如何修复System.Net.Sockets.Soc
- 过滤ASP.NET Core API中的属性
- asp.net-mvc-3 – 单元测试一个文件上传,怎么样?
- asp.net-mvc – 在请求之间保持/缓存数据 – 常用
- 有哪些工具可用于向ASP.NET项目添加本地化?
- asp.net – 查询字符串:查询字符串是否包含也包
- System.Net.ServicePointManager.DefaultConnect
- linq – ASP.NET Web API GET方法:为单个参数传
- 如何使用Razor在ASP.NET网页中的attribut中写入a