首页新闻找找看学习计划

C# 和 ASP.NET 学习工作中进入瓶颈

0
悬赏园豆:5 [已解决问题] 解决于 2018-02-02 12:57

各位高手,我在使用C# 和ASP.NET 中感觉自已遇见了瓶颈,工作中安排的任务可以顺利完成,但是所写的代码,感觉不是那种CLEAN CODE,不知道应该如何在实际编写代码中顺利的使用类似,继承,重载等等所学的知识。实际上,代码的可读性,和逻辑性并没有真正代码一段好代码的要求,我一直在寻找如何进行改进,但是始终是无头的苍蝇,不知道应该怎么跨过这个瓶颈。有没有也有类似经历并且已经跨过瓶颈的朋友,可以帮我指点迷津?

MingWei496的主页 MingWei496 | 初学一级 | 园豆:193
提问于:2018-01-27 13:11
< >
分享
最佳答案
1

写业务应用和写功能代码,是两码事儿,写业务应用的时候,不要为这些事情所愁。你可以去给你们公司封装一个通用的dll。你就会发现,什么继承之类的特性,你都用得上。比如,你要封装一个日志功能,那么,日志往哪儿,往哪儿存,你总不能事先写死吧,你要留有接口,给调用的人员来实现,后来你发现,接口的话 ,会使多个类里面依然有重复代码,这个时候,你可能就要用项目abstract类。依此类推吧。总的来说,不是你的问题,而是应用场景不同而已。如果你对功能性代码好奇,给你一个微软的源码,看着挺舒服的,有可以学习的地方:http://referencesource.microsoft.com/#mscorlib/system/math.cs

收获园豆:5
ensleep | 小虾三级 |园豆:1391 | 2018-01-31 10:07
其他回答(5)
1

.NET Core是开源的,那么多世界顶尖高手写的代码供你学习、参考、折腾,你却躲在自己的角落望着自己的代码迷茫,而不如饥似渴地跳入这些优秀代码的海洋。每天耳濡目染这些优秀的代码,你自然会知道自己努力的方向。

dudu | 园豆:39704 (高人七级) | 2018-01-27 14:07
1

多阅读开源项目,你会豁然开朗的

ludi | 园豆:16 (初学一级) | 2018-01-27 14:29
1

封装太多是这样的。我给你建议的话 —— 我通常建议别人去用gdi+,或者xna做个游戏试试。

没有框框,刚开始你写的会比较冗余,然后思考怎么把代码变简单。

然后你还会发现平时的写法竟然都可能出错(微软封装的好),你再跑去看看这些细节微软是怎么做的。

这个将助你对类(归类,子类化问题)有快速进步。

这是第一步,第二步框架化的思考 —— 

你以第一个简单的游戏,改一个类似的游戏,此刻可以思考如何用很少的代码来改以及再来改一个类似的游戏。

你逐步剥离实现代码...。
以上有助你对面向对象的认知。

如果这个游戏有物理模拟,还有特效等,你先都可以自己实现,你可以体验到很多东西,比如导弹如何打飞机的,天气怎么预报的...那个超炫的“品牌的力量”大概是怎么做出来的...甚至你都可以实现那种变形人电影......我只能很多很多...

这两步完成了,你的代码应该比较干净了。

 

继续对原理的认知——

随便买点按键或者摇杆(只要纯硬件,只有电路接口),你可以基于此来控制游戏,看控制的多少,可以先上简单的并口。

买点串口感受时序,为什么需要设置波特率......慢慢你将会体会很多时候scan和event.Invoke的底层关系区别。其他要开发的硬件貌似没什么必要推荐了。

有条件玩玩并口和串口也就差不多了,理解得还可以的话,你能体会码流在网线的样子,串口通讯写了的话,你可以小小的体会tcp/ip协议得有多么复杂。

... 

理解的凑合的话,除了html这种(这种根本不算程序),大约常见的视图模型开发应该都是非常容易上手。

如果把上面的问题解决了,我相信你解决问题的思路绝对和现时不一样。

这么多应用开发中相对难点的估计应该是由0.X开始的game,里面越往里面看,东西真是太多,很多技巧,包括算法。

顺便说一下xna是个淘汰的东西了,但monogame捡起来了,现在通常游戏都是基于整套工具和框架的,你可以试试monogame。我之前用这个试了试在android和linux也都还凑合。

微软的代码和管理真心佩服(虽然有传言怎么怎么,我只看人家的结果[源代码]),干净这个自不必多说,容错性相比其他公司的也非常不错了,那么大的类库几乎很少能看到一个函数被重写一些一次 —— 而且跨度之大。

—— 这算是我的一些体会吧。

关于变量的一些习惯问题 —— 不推荐vc 匈牙利命名法这些,复杂冗余等等,我建议直接用微软的习惯,这样一看都就明白。

比如Is、Has开头就知道是bool,函数动名词,事件[这个微软不同时期稍微表现的不好]状语方式等等...

你会觉得和asp.net没什么关系,你届时回头一看,可能很多都已经不是问题了。

看是一回事,练习,理解才是你的升华。

花飘水流兮 | 园豆:10527 (专家六级) | 2018-01-27 15:47
0

自己做过的项目都去网上下载一个类似功能的开源项目,然后阅读下开源项目里是怎么实现的,和自己写的对比下有哪些比自己写得好的,好在哪里!

MrBug | 园豆:273 (菜鸟二级) | 2018-01-27 19:05
0

谢谢大家的指教。

MingWei496 | 园豆:193 (初学一级) | 2018-01-27 20:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册