看了很多东西现在感觉不会写代码了,怎么回事??????

Ohyes陈陈 2015-08-10 11:05:20
最近一段时间我看了很多之前没有用到的东西:领域驱动、IOC、ASP.NET MVC ABP开源项目、在ASP.NET MVC中使用领域驱动设计和Repository模式等等就不一一列举出来了、还有很多。其中最多的是ASP.NET MVC里面使用数据仓库Repository和IOC依赖注入、我发现看的很多使用ASP.NET MVC都用了这两个。有人说使用Repository是为了后面能够切换数据比如Sqlserver换成oracle。在我没看之前要实现换数据库这个肯定会使用抽象工厂模式分别为IDAL层写SQL server和oracle的Dal实现、通过反射等等、然后需要切换改个配置文件就好了。当然这个都不是这个的主题。
看了很多东西后、我发现现在越来越不敢写代码了、比如:有一个接口和一个实现这个接口的类我会想着用IOC容器、通过构造函数注入等等来实现、但是这时又会想会不会有人还有其他的写法啊什么的(就是想这段代码写得很有艺术感.......)。导致修修改改、总觉得还有比这个好得多的方法来完成。
...全文
294 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
卧_槽 2015-08-20
  • 打赏
  • 举报
回复 1
引用 9 楼 scear1992 的回复:
[quote=引用 8 楼 於黾的回复:]代码是真正的务实的,而不是追求漂亮的 就好比一张设计图纸,它应该是严谨的,而不仅仅是流于表面,不能因为某个线条破坏了美感就随便把它去掉的
嗯嗯,主要是我看了这一些人的项目很简单的东西抽象了很多抽象类和接口之类的然后转一大圈调用一个方法…………[/quote] 那是你根本没有明白被人为什么要绕一大圈,绕一大圈是为了解决一个什么问题。
於黾 2015-08-11
  • 打赏
  • 举报
回复
代码是真正的务实的,而不是追求漂亮的 就好比一张设计图纸,它应该是严谨的,而不仅仅是流于表面,不能因为某个线条破坏了美感就随便把它去掉的
於黾 2015-08-11
  • 打赏
  • 举报
回复
就是想这段代码写得很有艺术感....... sp1234以前说过一句话 写代码不是什么高尚的事情 如果你想把代码写的有艺术感,那么你还是改行去做艺术家,而不要写代码了
Ohyes陈陈 2015-08-11
  • 打赏
  • 举报
回复
感谢各位的回答。
  • 打赏
  • 举报
回复
放心大胆的去写,从看到自己真正实践是有很长的路要走的
winnowc 2015-08-11
  • 打赏
  • 举报
回复
需要把看到的那些知识真正融入到自己的技能中,让知识为你服务,而不是被知识牵着走。 具体来说就是还按照原来的方式写代码,但是在写的过程中加入更多的思考,不要急于运用自己还没看明白的东西。相信你看到的东西能够给你一些另外的视角来看待自己写的和看到的代码。 看代码和思考的目的就是一定程度上搞明白那些技术是为了解决什么问题,自己的代码中存不存在这样的问题,如果存在,有多少影响,如果重构修改,又有多少好处和副作用。 这不是一件可以一蹴而就的事情,需要通过观察思考找到一些可操作的切入点,慢慢重构现有代码。比如你提到的切换数据库的需求,原来会使用抽象工厂、反射方式来实现,那么知道了IoC/DI框架,这是可以当作万能抽象工厂使用的,就节省了自己实现抽象工厂的代码。同时,它使用的技术是比反射快得多的表达式动态编译和/或直接IL生成动态方法。而可能的最大代价就是有了一把锤子,看什么都是钉子了,开始滥用IoC/DI。 需要特别注意的一点是:不要想着把代码写得有艺术感,这个目标是错误的。这样的结果是只能提升逼格,不能提升技术水平。正确的目标永远是提高生产力——能够更有效率的实现需求,并且实现的更健壮、更易于维护。 最后说下你提到的几个技术,像MVC和IoC/DI框架这两个目前已经很成熟了,所以我推荐尝试。但是对于Repository和Unit of Work模式是应该要认真考虑的,只有在确实需要的时候才应该使用(尤其是如果使用了EF,它本来就实现了这两种模式的一定功能),不要徒增复杂度。而DDD这个应该学习其设计思想,慎用相关技术,比如CQRS和ES。ABP它的设计是符合了目前流行的设计理念,但是我其实并不看好这种类型的框架,因为你未必真正需要使用这里面的那么多模式和其依赖的东西,又很难只使用一部分,所以我会在需要实现一种模式的时候拿它作为一种实现参考和复杂度指标自己实现。
Ohyes陈陈 2015-08-11
  • 打赏
  • 举报
回复
引用 8 楼 於黾的回复:
代码是真正的务实的,而不是追求漂亮的 就好比一张设计图纸,它应该是严谨的,而不仅仅是流于表面,不能因为某个线条破坏了美感就随便把它去掉的
嗯嗯,主要是我看了这一些人的项目很简单的东西抽象了很多抽象类和接口之类的然后转一大圈调用一个方法…………
threenewbee 2015-08-10
  • 打赏
  • 举报
回复
这和武术类似,你只学了一些皮毛,都是花拳绣腿。根本没有深究其理。
全栈极简 2015-08-10
  • 打赏
  • 举报
回复
不同的项目针对不同的项目开发团队会选用不同的技术架构,没有固定的模式。 不要生搬硬套某些框架,能切切实实的给你的项目带来好处这才是最重要的内容。 至于代码艺术感,不要形成这种“强迫症”,因为总有更有艺术感的代码等着你去优化。掌握好这个度很重要。
  • 打赏
  • 举报
回复
你被一帮搞培训的人坑了。真正的项目很少那么写代码的!让我们负责任地告诉你该如何写代码,该如何循序渐进。千万不要上那些动不动就抽象得特别过分的人的当。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧