编程的修养

Posted buyishi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程的修养相关的知识,希望对你有一定的参考价值。

很久之前就听说过王垠这个人,起初只是觉得这个人很牛,还没让我到仰慕的地步。以前也经常翻阅王垠写的“程序员的心理疾病”,

说那是“心理疾病”,可能略显夸张。事实上,那不仅仅是程序员才有的问题,很多职业工作者都普遍存在这样或那样的问题。当

然,人无完人^_^我也存在很多问题。关于这个“心理疾病”的话题,在此我不多论述,以后我会好好聊聊。

编程的智慧?

大概在一个多月之前,我开始迷恋王垠的博客,对王垠产生了一种前所未有的崇拜之情。在看了王垠的博客编程的智慧后,也是颇有感悟。

不过,说那(良好的编码风格,写有条理、思路清晰、可读性高的代码)是编程的智慧,好像又显得有些言过其实了。你想想看,身为一名

软件开发员,命名一个变量或是类什么的,并让它的名字具备较强的描述性,这是一件很困难的事吗?再举个例子,对于一名程序员,他要

使应用实现某个功能,要实现这个功能,会调用某些API,为了快速完成这个功能,于是他在百度上找到了答案;这本身并不奇怪,但糟糕的是,

他随手复制粘贴了代码,测试运行后,发现没毛病,就觉得万事大吉了,这真的好吗?也许真的不会出现bug,但是那代码逻辑是否经过整理呢?

或许以后会给这个项目的维护人员带来困扰。通常不是很复杂的功能,在Google或百度得到答案后,根据自己的需求再对代码进行一次清理,

理清头绪,这很复杂吗?答案很明显,不困难不复杂。所以说那是编程的智慧,好像不恰当,用“习惯”代替“智慧”好像更好些。要写出直观优雅的代码,

仅仅是习惯好还不够,所以,我把那称作是“编程的修养”。

编程的智慧!

以前我一厢情愿地认为那是编程的修养而不能算是智慧,但随着工作经验的增长,接触过的开发也越来越多,也看了太多糟糕含糊的代码后,

我发现那确实是一种智慧,而不单纯是修养。有些开发还是有分寸的,知道自己的代码欠缺条理,有不足之处,愿意接受别人合理的建议。

而有些开发就让人觉得很不爽,写了一手含糊代码还认为那是合理的,甚至还理直气壮=_=我就遇到过几次这样的情况,当时我特别火大,

心里骂:“人怎么会笨到这种地步!笨就算了,还不知道自己笨!”我也不是太确定这样的人心里在想些什么,是我冒犯了他的颜面么?

总之跟这样的人一组,真心觉得很不爽。有人开口闭口就是设计模式、项目架构,然而事实却是他们连基本的业务逻辑代码都写得乱七八糟,

实在没看出他们的设计能力体现在哪里。以前的一个同事写了这样的代码:

技术分享图片

 

技术分享图片

这两段代码的作用是监听蓝牙开关状态,实在是无力吐槽这命名风格了,其中正在开启或关闭的状态监听是多余的,

那个interface的设计也是多余的,看上去好像是在遵循解耦的风格,然而真正意义上的解耦应该体现在逻辑上,

而不只是物理的文件上。那两段代码中的class和interface本身就存在绝对的关联,所以这样的解耦是毫无意义的。

于是我把它们改成了这样:

技术分享图片

对蓝牙配对状态的监听是我后来加进去的,因为有这样的需求。

智慧还是修养?

那究竟是编程的智慧还是修养?这个看怎么理解吧,也许因人而异。

建议

有太多糟糕的例子,如阿里的刷脸支付demo、百度的语音合成demo等(我不想吐槽太多=_=因为我困了,写完这篇博客我就睡了x_x)。

如果你的项目里需要用到其他公司提供的API,建议不要直接从他们提供的demo里copy代码,因为经验告诉我,靠谱的demo不多。

以上是关于编程的修养的主要内容,如果未能解决你的问题,请参考以下文章

编程的修养

编程修养(精品文,建议认真品读并实践)

嵌入式C/C++编程修养

C/C++ 程序员的编程修养

C/C++程序员的编程修养

C/C++程序员的编程修养