你会吗?

如果我现在问下大家你会OOP 吗?你会OOD吗?

你知道SOLID吗?你会在实际工作中运用这些原则吗?

你知道模式吗,你会在实际项目中适时引入合理的设计模式来解决项目中的代码坏味吗?

你知道ORM框架吗?你会使用EF吗?

你知道WebAPI吗?你会设计合理的API吗?

你知道MVC吗?你会用MVC写一个权限系统吗?

 

你真的会吗?

事实上好多人只是停留在“知道”这个层面,实际工作中总是会用各种理由来让自己的代码充满的“坏味”和“坑”。

会OOP和OOD的同学总会整出好多多功能类。

会SOLID的同学总是常常使用public的字段,不注意提炼接口。

会设计模式的同学,总是在系统代码中充斥着冗余的耦合性及高的“三层”代码。

会设计模式的同学也搞不清MVC,MVP,MVVM到底有啥区别。

会ORM框架的人总是在一个全局的DbContext中执行n多次commit,然后还来一句“EF性能整的好差”。

会WebAPI的同学设计API还会在实现时不使用OK()和NotFound(),而是自己重复着各种花样的返回结果。

会MVC的同学不懂得PartialView,还会controller中使用IQuerable的对象以及DbContext。

 

这些做法的最后结果就是代码还乱,加班做完更乱?

最后来一句“C#性能就是没有C++好”,敢问就这个样子去写代码,用C++只会让你死都不知道死在那里。

够好吗?

实际项目中我也看到好多同学,看到了使用了.NET的特性,如果扩展方法,经常回个string类型写个扩展类,可谁知项目中随处可见重复或者类似功能的代码。

也有同学在代码中使用了Linq,可是一个匿名方法写了两三百行,你让看代码的人情何以堪? 或许你小时候一定是写综合方程表达式受过老师无数的表扬,让后现在也计划一个匿名函数把所有业务都搞定。

 

至于重复的代码?和不一致的命名规则,以及文件组织结构。你是否能够刚觉到代码让你看的时候感觉到舒畅?

重要单元测试的缺失,每次修改BUG都把测试交给一个不知所措的测试人员。是一种严重的缺乏职业品质的做法,更不用说工匠精神啦。

 

还有好多,待续。

 

小结

希望真心想做技术的同学不要只停留在“会”,更要追求“好”,“更好”。

只有这种想法在你脑海里时常出现,才会让我们的向“技术大牛”看起,才会有朝一日走向“技术大牛”。

另外就是学技术不要停留在“HOW”,更要多问问What,WHY,WHEN,WHERE?

“会”和 "好”纯粹是两个概念的更多相关文章

  1. The "get" method should be used when the form is idempotent---正交的两个概念---

    https://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.1 17.13.1 Form submission method The me ...

  2. 前端路由、后端路由——想要学好vue-router 或者 node.js 必须得明白的两个概念

    前端路由和后端路由的概念讲解 引言 正文 一.路由的概念 二.后端路由 三.前端路由 四.其他知识 结束语 引言 无论你是正在学习vue 还是在学习node, 你一定会碰到前端路由和后端路由这两个概念 ...

  3. 鸿蒙内核源码分析(并发并行篇) | 听过无数遍的两个概念 | 百篇博客分析OpenHarmony源码 | v25.01

    百篇博客系列篇.本篇为: v25.xx 鸿蒙内核源码分析(并发并行篇) | 听过无数遍的两个概念 | 51.c.h .o 任务管理相关篇为: v03.xx 鸿蒙内核源码分析(时钟任务篇) | 触发调度 ...

  4. Vue2.0 中,“渐进式框架”和“自底向上增量开发的设计”这两个概念是什么?(转)

    https://www.zhihu.com/question/51907207?rf=55052497 徐飞 在我看来,渐进式代表的含义是:主张最少. 每个框架都不可避免会有自己的一些特点,从而会对使 ...

  5. java is-a、has-a和like-a、组合、聚合和继承 两组概念的区别

    is a 代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机.PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性.因此在用 Java语言实现时,应该将PC机和工作站定义成两种 ...

  6. 两个概念:CCA和LDA

    典型相关性分析(CCA) https://blog.csdn.net/Mbx8X9u/article/details/78824216 典型关联分析(Canonical Correlation Ana ...

  7. 如何理解andriod中的View和framelayout两个概念

    View 和 FrameLayout 是包含关系,FrameLayout 继承自ViewGroup,然后继承自View. FrameLayout是一种 ViewGroup,可以在里面放其它的View, ...

  8. Oracle User Calls 和 Executions 两个概念的区别

    User calls = (User session Login + Parsing within a session + Executions of sql's/Cursors ) per seco ...

  9. The "get" method should be used when the form is idempotent---正交的两个概念 get 幂等

    https://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.1 17.13.1 Form submission method The me ...

随机推荐

  1. IOS 封装功能和逻辑思想

    在ios开发中,难免会用到helper的思想.这篇就简单讲解下关于helper的简单实用方法. 假设我们要做一个这样的界面: 会议分为四种情况: 未召开 正在召开 已结束 已取消 再看看逻辑关系: 编 ...

  2. 学习Spring——两个你熟悉的不能再熟悉的场景使用

    最近公众号受邀获取了留言和赠送模板的权限,小开心(欢迎去公众号JackieZheng围观). 我们大致的了解了Spring这个框架对于依赖注入的使用和诠释可谓是淋漓尽致.因为有了Spring的这个IO ...

  3. AngularJs学习笔记(制作留言板)

    原文地址:http://www.jmingzi.cn/?post=13 初学Anjularjs两天了,一边学一边写的留言板,只有一级回复嵌套.演示地址 这里总结一下学习的过程和笔记.另外,看看这篇文章 ...

  4. WebComponent魔法堂:深究Custom Element 之 面向痛点编程

    前言  最近加入到新项目组负责前端技术预研和选型,一直偏向于以Polymer为代表的WebComponent技术线,于是查阅各类资料想说服老大向这方面靠,最后得到的结果是:"资料99%是英语 ...

  5. Kafka 如何读取offset topic内容 (__consumer_offsets)

    众所周知,由于Zookeeper并不适合大批量的频繁写入操作,新版Kafka已推荐将consumer的位移信息保存在Kafka内部的topic中,即__consumer_offsets topic,并 ...

  6. winform程序一启动抛出异常--调用目标发生异常

    在本机测试没有问题,可一到别的电脑上就抛出异常,这是最麻烦的事,一时间还找不出什么原因,本机上还无法重现. 现在好了,终于找到一个完美解决的办法,在Program.cs类中加入如下代码 static ...

  7. EnumHelper.cs枚举助手(枚举描述信息多语言支持)C#

    C#里面经常会用到枚举类型,枚举是值类型对象,如果你想用枚举类型的多属性特性,或者你想在MVC页面上通过简单的值类型转换,将某字段值所代表的含义转换为文字显示,这时候必须要将枚举扩展,是它支持文本描述 ...

  8. 微信小程序demo理解

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Verdana } p.p2 { margin: 0.0px 0.0px 0.0px 0.0p ...

  9. 如何实现一个php框架系列文章【2】实现类的自动加载

    根据前一篇文章的设计原则,我们暂时把php文件分为3类,类名和文件名都遵守如下约定.   类名 文件名 路径 模型类m {$app}Mod  {$app}.mod.php {$app}/model   ...

  10. 【转】OpenCV 移植学习--EMCV

    在Opencv论坛有好些这方面的帖子,主要看了一下几个牛人的帖子,比如论坛管理员于博士Shiqi Yu:(EMCV:可在DSP上运行的OpenCV)http://www.opencv.org.cn/f ...