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

代码里的隐藏逻辑

作者: 大师兄在简书 | 来源:发表于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进程解耦,采用动态加载的方式实现。

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

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

    相关文章

      网友评论

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

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