“会”和 "好”纯粹是两个概念

你会吗?

如果我现在问下大家你会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?

时间: 2024-08-08 07:36:03

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

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 method attribute of the FORM element specifies the HTTP method used to send the form to the processing agent. This attribute may take two values: get:Wi

文件编码和文件内的字符串字面值编码是两个概念

我们知道,CALabel的字符串使用的是UTF8编码,通常在xcode下,直接CALabel *p = ...; p->setText("汉字"),显示汉字是没有任何问题的,但是,在VS2013中却显示的是乱码.很多人在群里面问了,我都答:请使用UTF8编码.他说,我的文件是UTF8格式的啊.呵呵,没那么简单好吗,文件编码和字符串字面值编码是两个概念. VS2013的一条预编译指令#pragma execution_character_set("utf-8")

「数据结构」和「数据类型」两个概念的本质是什么,区别与联系是什么?

数据结构:相互之间存在一种或多种特定关系的数据元素的集合. 数据类型:是指一组性质相同的值得集合及定义在此集合上的一些操作的总称. 网友观点:数据类型是数据的一种分类,是按照数据结构来分类的.数据类型的出现是为了把数据分成所需内存大小不同的数据. 数据结构强调结构,即元素间的关系:数据类型强调类型,即作用于元素的合法操作. 「数据结构」和「数据类型」两个概念的本质是什么,区别与联系是什么?

事件的独立和事件互不相容两个概念的区别

实在是对这个感冒了,随从网上拉了一篇资料,免得下次又忘了. 要真正的解决这个问题,必须首先牢牢记住他们的定义. 什么事件的独立? 事件A,B独立是指这两个事件之间的概率满足一个等式:P(AB)=P(A)P(B) 事件A,B互不相容是指这两个事件之间的运算满足一个等式:AB=空集. 也就是说,实际上这两个概念是从不同的角度进行定义的.独立是从概率的角度,互不相容是从事件的关系运算上. 另外这两个概念的理解上,还有一点 如果说"事件A,B独立"这是一个物体的汉语描述,那么"P(A

进程的两大概念

目录 进程的两大概念 一.进程的并行与并发 二.同步异步阻塞非阻塞 进程的两大概念 一.进程的并行与并发 并行:是指两者同时执行,比如赛跑,两个人都在不停的往前跑 并发:是指资源有限的情况下,两者交替轮流使用资源,比如一段路同时只能过一个人,A走一段后,让给B,B用完继续给A,交替使用,目的是提高效率 区别 并行是同时运行,只有具备多个CPU才能实现并行 并发是伪并行,看起来是同时运行,单个CPU+多道技术就可以实现并发 二.同步异步阻塞非阻塞 阻塞与非阻塞 阻塞(等待),凡是遇到I/O都会阻塞

数据分析必须想清楚的两个概念:指标和维度(转)

指标与维度是数据分析中最常用到的术语,它们是非常基础的,但是又很重要,经常有朋友没有搞清楚它们之间的关系,只有掌握理解了,我们的数据分析工作开展就就容易多了.现在就来说说指标与维度的那些事. 1.指标 指标,用于衡量事物发展程度的单位或方法,它还有个IT上常用的名字,也就是度量.例如:人口数.GDP.收入.用户数.利润率.留存率.覆盖率等.很多公司都有自己的KPI指标体系,就是通过几个关键指标来衡量公司业务运营情况的好坏. 指标需要经过加和.平均等汇总计算方式得到,并且是需要在一定的前提条件进行

EOS 上线前,先搞懂这两个基本概念

如果你曾经尝试在本地运行 EOS 测试节点,会发现编译.运行并不是特别复杂,但官方教程里两个概念很容易把人搞晕: Account(账户)和 Wallet (钱包). EOS 的 Wallet 跟其他区块链项目是类似的,都是一个基本功能:本地储存密钥,仅此而已.你可能说了不对啊,其他项目的 Wallet 不光存密钥,还存代币呢.这里就是大家的一个误区,其他项目的 Wallet 也没有存你的代币,你的代币是存在整个区块链网络里的,只是区块链网络里的代币可以由你钱包里的密钥支配,给你了"钱包存代币&q

[笔记]《游戏架构设计与策划基础》第三章 游戏概念及原型设计

概念设计的过程:产生创意.加工创意和创建游戏概念设计文档. 3.1 创意的来源 (1)大胆设想 (2)利用现有的娱乐资源 (3)利用现有的游戏体系 (4)收集创意 3.2 加工创意 (1)合成--需要考虑如何将两个概念融合而成一款游戏,带给玩家新的游戏体验. (2)共鸣--含有协作的意思,它使故事和主题内容对游戏玩家能够产生更加深刻的影响. 3.3 游戏概念设计文档 一般包括以下要素的部分或全部:      标题--游戏的名称.      平台--游戏适合的平台.      种类--游戏的种类.

产品质量的核心——概念的完整性

产品质量的核心——概念的完整性 ——读<人月神话>有感 转眼本学期已进入尾声,通过十几周对于“软件工程概论”这门课程的学习,我对软件开发的实现过程也有了一定程度的认识和了解.在此环境下,为了能够更好地理解和学习软件工程项目知识,也为了储备专业知识以应对之后的工作需求,通过查阅我接触到<人月神话>这本书——一本在发行四十年之后仍然继续流行.在软件管理领域堪称经典的著作. <人月神话>的作者Brooks在这本书中总结了自己在IBM公司任职项目经理时的实践经验,他详细地阐述了