美文网首页
代码里的隐藏逻辑

代码里的隐藏逻辑

作者: 大师兄在简书 | 来源:发表于2017-08-15 16:05 被阅读14次

“代码是逻辑的产物”

健壮的代码自然是逻辑严密的

代码中的try except,类型检查,以及之后的unit test都可以当作是对代码逻辑严密性的保障以及检测的范畴。

所以说理解一段代码可以说最主要的问题是理解作者的逻辑,了解一段代码的目的以及实现方式是理解代码的首要任务。

在看一段代码时,我们能够很容易很直观的看到一段代码,调用了哪些函数,执行了哪些命令以及做了哪些数据操作,经过一番思考之后,我们便应该能够对一段代码的目的以及实现方式有一个很好的理解,这时我们可以说是比较充分的了解这段代码的内在逻辑,也就是说了解了作者的代码意图。

当然在读代码时就结合一段代码而言,我们能够进行逐步的分析以对其作出充分的理解。但要想把读代码所得的收获得以应用却是一个“用”的过程,也就是说就结合代码将要实现的功能而言,我们紧接着要注意的便是代码的“实现方式”。

不同的人写同一段代码的时候,自然代码的目的是一样的,如果不同的代码都实现了同一个功能,那么比较代码的优劣自然就要考虑代码的实现方式了。

这里举一个案例:Daemon程序(Python实现),负责监控test.py进程。

初看到此问题,我们便会有个初步的思路,及写一个while循环,轮询ps -ef | grep test.py | grep -v "grep",当结果为空时,执行“python test.py”。到此为止可能一个监控的daemon程序就算大功告成了。

其实看过大多数代码就会发现还不止如此,比如为了节约系统资源,会在while循环末尾加上sleep(sleep_time),每次循环终止sleep一段时间,还比如有些不会把轮询的命令硬编码到Daemon程序中,而是采用动态加载的方式实现,因为对一个监控服务而言,有时候是不能任意重启的,只能伴随系统的启动而启动,随着系统的关闭而关闭,这个时候如果遇到需要更新Daemon的时候,是不是就会出现问题了呢,比如还是监控test.py这个进程,如果一次更新,要求不重启系统以及Daemon进程,同时给test.py 进程加一个参数-a,那么在往服务器上同步代码之后,代码明显是不能生效的。考虑到这个问题,就需要将轮询命令与Daemon进程解耦,采用动态加载的方式实现。

这就是我要说的“代码里的隐藏逻辑”,虽然代码的目的一致,都能实现相应的功能,而且代码的实现形式也没有很大的问题,但是结合实际情况从代码的健壮性以及稳定性上看还是能够分出高下的。

---正文结束---
这是一篇不知所云的文章.....
如果有雷同,纯属巧合,如有意见请先点“喜欢”再(这几个字划掉..)在评论里指出...

相关文章

  • 代码里的隐藏逻辑

    “代码是逻辑的产物” 健壮的代码自然是逻辑严密的 代码中的try except,类型检查,以及之后的unit te...

  • quill-editor结合el-upload自定义上传图片记录

    借用el-upload完成上传操作,隐藏此元素 元素部分代码 配置代码 逻辑部分代码

  • 微信小程序如何动态显示隐藏 class

    视图代码,使用变量控制隐藏类名 逻辑层

  • iOS 代码里逻辑分支的处理

    iOS 代码里逻辑分支的处理iOS 代码里逻辑分支的处理

  • MySQL存储过程小玩一下

    对于存储过程一般会被不建议使用,因为其隐藏了业务逻辑的同时也给开发人员阅读逻辑代码对代码逻辑的理解不透明。当然,存...

  • 第一章 整洁代码

    1.3.5 什么是优雅代码 代码逻辑直截了当 ,叫缺陷难以隐藏; 尽量减少依赖关系,使代码易于维护; 依据某种分层...

  • Clean Code --第一章

    整洁的代码态度; 什么是整洁的代码优雅和高效的代码,代码逻辑应当直接了当,叫缺陷难以隐藏,尽量减少依赖关系,使之便...

  • 代码简洁之道 - 笔记

    1. 什么是整洁代码 我喜欢优雅和高效的代码。代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护...

  • Clean Code --如何写出整洁的代码(上)

    我喜欢这样的代码:代码逻辑直接了当,几乎不会隐藏缺陷;代码的依赖关系非常简单,维护起来非常容易;有完善的错误异常处...

  • 一、什么是整洁代码

    我喜欢优雅和高效的代码,代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善...

网友评论

      本文标题:代码里的隐藏逻辑

      本文链接:https://www.haomeiwen.com/subject/scimrxtx.html