阅读更多

6顶
0踩

非技术
在我先前的博客中,我主要讲了我们的编码风格应该适应我们所处的业务领域。即不同的业务领域需要不同编码风格的软件。例如,为防御体系写的软件必须强健稳定,因为一次崩溃可能就会终结它的生命周期,而为市场交易写的软件,则必须可维护,并且还可以添加广告,通常这些项目和软件的生命周期都非常短,所以这些软件还必须可以重复使用。



虽然我之前从没看到过它被应用于这些业务领域,但是关于编码优先顺序这一观点却并不是最近才出来的。我第一次看到这一观点是在Steve Maguire写的一本由微软出版社于1997年出版的书上,书名叫做《Debugging the Development Process》。

在这本书中,Steve论述了关于在编写软件时,我们应该建立优先顺序的观点。他列举的他认为需要考虑的优先事项包括:
  • 规模
  • 速度
  • 稳健性
  • 安全性
  • 可测试性
  • 可维护性
  • 简单
  • 可重用性
  • 可移植性

现在说说那个时候的背景——1997年,那时的CD-RW驱动器和媒介刚问世,内存还很昂贵,处理器还很慢,语种选择还是C / C++。

随着时间的推移,现在的Java程序员通常毋需再考虑规模和速度,所以上面的列表可以缩减为:
  • 安全性
  • 可测试性
  • 稳健性
  • 可维护性
  • 简单
  • 可重用性

下面我们要讨论的是上面这个列表是否还适用于今天,具体为……
1.安全性

虽然写着的是“安全性”,但是Steve真正想说的是编程范例和算法。有些技术是比其他的要来得更安全,例如,使用查表返回值比使用逻辑驱动来计算数值要安全。我们设计时也需要考虑到安全性这一特点。

2.可测试性和稳健性

对我来说,这两者差不多。从定义上讲,经过充分测试的代码就会比较稳健。如果你正在使用测试驱动开发(TDD),那么你也可以将这一条从列表中删除,这是因为它们在此进程中是固有的。如果你是不喜欢使用TDD的程序员大军中的一员,那么这一条应该保留……

3.可维护性

这一条可以反映出一个人的代码风格、思维条理和清楚表达自己的能力。在风格方面,大家可以借鉴Uncle Bob在《Clean Code>中的描述,这也是我最喜欢的书籍之一。Uncle Bob的风格……怎么说呢,整体感觉就是干净。方法和类都很短,服从SRP和整洁的布局。这也是优秀软件的关键属性。

4.简单

代码简单是我们共同的目标追求,但是这并不意味着写出来的代码是被过分简化的,我们只需要做到,代码虽然最简化,没有装饰、没有镀金,也不具备以后可能需要添加的功能,但是依然可以完成工作。这种最简化代码的观点已然成为了敏捷社区的核心思想,甚至Shane Warden和James Shore也在他们的《The Art of Agile Development》一书中,花费了一整章的篇幅来描述这一观点,包括它的概念,如“once and only once”以及“you ain’t gonna need it”。

5.可重用性

这一点我就不多说了,我们总是希望现在写的代码以后还可以再次使用,省时省力。

综上所述

首先,自1997年以来,很多事情都发生了变化,这是毋庸置疑的。但是在我看来,一些好的观点依然值得我们学习和借鉴……
  • 大小: 32.2 KB
来自: 码农网
6
0
评论 共 4 条 请登录后发表评论
4 楼 alixjiang 2015-01-28 14:01
我倒认为,除了上面那些,现在对企业而言,用户体验是至关重要的一环,程序的速度直接影响着用户体验了
3 楼 alixjiang 2015-01-28 13:59
现在的JAVA程序员通常不需要考虑速度?那搞那么性能优化做什么?
2 楼 fm395728572 2015-01-28 11:07
时间与优雅程度是挂钩的,时间不允许,你优雅作甚
1 楼 2007202070 2015-01-23 14:04
   

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 手机模拟器1--MidpX1.3

    手机模拟器1--MidpX1.3,找了很久才找到的

  • JAVA模拟器_MidpX J2ME Emulators Package

    JAVA模拟器_MidpX J2ME Emulators Package 这是最近才发现的一个JAVA模拟器,才不到2MB,比起MOTO SDK来说要小巧很多.而且更方便的是,安装完此软件之后,JAR文件就会关联到这个模拟器软件了,双击你想预览的JAVA程序(游戏,软件,电子书等等)就可以在电脑上看到运行效果了.是不是很不错呢? 真的很不错,下了一定要顶啊!!! ...

  • 优秀代码所具备的品质

    安全性 可测试性 稳健性 可维护性 简单 可重用性 转载于:https://www.cnblogs.com/jking10/p/4248078.html

  • 程序员如何写出一手漂亮的代码?

    如果为了节省几微秒的时间而使你的程序陷入无望的复杂性,那很好,但那将是任何人对它进行的最后一次优化。...选择正确的名称,按照逻辑组织代码,每行代码只表达一个想法,日积月累你的代码就会易于阅读,且易于使用。

  • 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?

    这些几乎涵盖我们所能听到的描述代码质量的所有常用词汇,你可以看一看。看到如此多的描述词,你可能要问了,我们到底该用哪些词来描述一段代码的质量呢?实际上,我们很难通过其中的某个或者某几个词汇来

  • 优秀工程师应该具备哪些素质_创业团队里优秀工程师需要具备哪些素质?

    我曾为创业公司面试过很多工程师,他们中有些人在 Google 这种大公司中拥有丰富的工作经验,但他们并不适合创业公司。不能说他们没能力,但他们在创业公司中表现得确实并不那么出类拔萃。在多年的工作中,我发现的确...

  • 腾讯 Code Review 规范出炉!你还敢乱写代码??

    来源:腾讯技术工程前言作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论。发现不少同学 code review 与写出好代码的...

  • 如何把代码写的更优雅,你需要这一份代码精进书单!

    加个“星标”,每天带你读好书! 黄小斜写了一年多的代码,渐渐地代码量也上来了,但是,代码写的多就是好吗,简单的数量堆积似乎并不能起到太好的效果,毕竟我们CRUD写多了,也不怎么需要架构设计,甚至连个...

  • 软件测试师具备的素质_一名优秀的测试人员应该具备哪些素质?

    对于软件测试人员来说需要具备的素质,我觉得首先最重要的是要有一定的理论知识和测试技能,这是测试工作的基础。那么我们测试人员还应该具备哪些素质才能在工作当中被不断的认可呢?一名优秀的测试人员应该具有的...

  • 什么是优秀代码之我见

    一个偶然机会自己参加一个面试,问到什么是优秀代码?针对这个问题我的回答给出两条:可读性和可继承性。...但是通过我反复查找资料可以总结如下,优秀代码需要具备如下特征:   1. 满足基本需求。再...

  • 腾讯 Code Review 规范出炉,你还敢乱写代码?

    前言 作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论。发现不少同学 code review 与写出好代码的水平有待提高。在这里,想分享一下我的一些...设计理念你可能道听途说了一

  • 一文说透低代码平台/无代码平台

    为了提高企业的适应能力,以便迅速有效地满足市场需求,为企业内外部快速开发满足业务和市场需求的软件解决方案,在历经最底层的汇编、高级语言、更高效率的编程框架(如 Spring 框架、大前端框架等)后,计算机科学...

  • 优秀的项目经理需要具备哪些品质?

    5、一个能擅长学习、记录、思考、总结和分享的项目经理一定很优秀。 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:李小翀 链接:...

  • 电力系统中基于MATLAB的价格型需求响应与电价弹性矩阵优化

    内容概要:本文详细介绍了如何利用MATLAB进行价格型需求响应的研究,特别是电价弹性矩阵的构建与优化。文章首先解释了电价弹性矩阵的概念及其重要性,接着展示了如何通过MATLAB代码实现弹性矩阵的初始化、负荷变化量的计算以及优化方法。文中还讨论了如何通过非线性约束和目标函数最小化峰谷差,确保用户用电舒适度的同时实现负荷的有效调节。此外,文章提供了具体的代码实例,包括原始负荷曲线与优化后负荷曲线的对比图,以及基于历史数据的参数优化方法。 适合人群:从事电力系统优化、能源管理及相关领域的研究人员和技术人员。 使用场景及目标:适用于希望深入了解并掌握价格型需求响应机制的专业人士,旨在帮助他们更好地理解和应用电价弹性矩阵,优化电力系统的负荷分布,提高能源利用效率。 其他说明:文章强调了实际应用中的注意事项,如弹性矩阵的动态校准和用户价格敏感度的滞后效应,提供了实用的技术细节和实践经验。

  • 一级医院医疗信息管理系统安装调试技术服务合同20240801.pdf

    一级医院医疗信息管理系统安装调试技术服务合同20240801.pdf

  • 表5 文献综述.doc

    表5 文献综述.doc

  • 36W低压输入正激电源, 正激变压器设计方法步骤及谐振电感的设计方法,主要讲诉了正激电源变压器测的输入输出参数,按输入的条件设计相关的变压器的参数,同时将输出电感的设计方法一并例出,详细的设计步骤

    36W低压输入正激电源 变压器电感设计

  • 基于YOLOv8的深度学习课堂行为检测系统源码(含检测图片和视频)

    基于YOLOv8的深度学习课堂行为检测系统源码,软件开发环境python3.9,系统界面开发pyqt5。在使用前安装python3.9,并安装软件所需的依赖库,直接运行MainProgram.py文件即可打开程序。模型训练时,将train,val数据集的绝对路径改为自己项目数据集的绝对路径,运行train.py文件即可开始进行模型训练,内含项目文件说明,以及检测图片和视频。

Global site tag (gtag.js) - Google Analytics