你会吗?

如果我现在问下大家你会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. 设计模式之迪米特原则(LOD)(最少知识原则)

    来源:迪米特法则(LoD)最初是用来作为面向对象的系统设计风格的一种法则,是很多著名系统,如火星登陆软件系统.木星的欧罗巴卫星轨道飞船的软件系统的指导设计原则. 迪米特法则(LoD)又可分为两种:狭义 ...

  2. 8.GitHub实战系列~8.使用GitHub建立自己的免费博客

    github实战汇总:http://www.cnblogs.com/dunitian/p/5038719.html 创建一个用户名.github.io的仓库 选择设置页面风格 页面基本信息 选择一个你 ...

  3. 【Win 10应用开发】AdaptiveTrigger在自定义控件中是可以触发的

    前些天,看到有网友给我留言,说AdaptiveTrigger在自定义控件(模板化控件)中不能触发.因为当时我正在写其他的代码,就没有去做实验来验证,于是我就给这位网友提了使用GotoVisualSta ...

  4. BOM,DOM,ECMAScripts三者的关系

    一:DOM 文档对象模型(DOM)是表示文档(比如HTML和XML)和访问.操作构成文档的各种元素的应用程序接口(API) DOM是HTML与JavaScript之间沟通的桥梁.   DOM下,HTM ...

  5. Hadoop的体系结构

    HDFS和MapReduce是Hadoop的两大核心.而整个Hadoop的体系结构主要是通过HDFS来实现对分布式存储的底层支持的,并且它会通过MapReduce来实现对分布式并行任务处理的程序支持. ...

  6. 【项目记录】-液化气配送app android版

    15年底参与过甲方呼叫中心平台开发.液化气配送app android版要求1个月开发完成.开发此项目以前我只有过一周android的开发经验.(与甲方签署过保密协议,遵循职业道德有些敏感信息不能写.) ...

  7. Linux上oracle精简版客户端快速部署

    RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能. 方案:用精简版实现客户端的快速部署 1.上传oracle精简版客户端到服务器/tmp目录 ...

  8. ASP.NET Core 中文文档 第一章 入门

    原文:Getting Started 翻译:娄宇(Lyrics) 校对:刘怡(AlexLEWIS) 1.安装 .NET Core 2.创建一个新的 .NET Core 项目: mkdir aspnet ...

  9. 深入理解脚本化CSS系列第二篇——查询计算样式

    × 目录 [1]getComputedStyle [2]注意事项 [3]currentStyle[4]IE 前面的话 元素的渲染结果是多个CSS样式博弈后的最终结果,这也是CSS中的C(cascade ...

  10. 基于 Cmd MarkDown 的 markdown 语法学习

    首先我要打一个属于干货的广告:CmdMarkDown 是非常好用的markdown编辑器软件,支持全平台,由作业部落出品,分为客户端与WEB端两种使用场景. 本篇博客学习的markdown语法都是基于 ...