[课程相关]附加题——读后感

零、读哪本

这三本,客观和主观来说都是好书,不过我选择了《重构》,简单说下原因。

代码大全的厚度就让我有点发怵,翻翻目录,基本上是讲软件开发的整个过程,理论上的东西我之前看过不少,所以这种大部头还是等有时间了再看吧。

敏捷开发的话,由于我目前很少做团队开发,所以没有合适的应用环境。虽然对敏捷开发很感兴趣,不过考虑到当前应用不了,所以暂时推后。

最后就是重构了。由于我没事经常写写代码,所以对于这种从代码角度来谈的书比较容易产生共鸣,再加上自己也逐渐会遇到一些烂代码带来的问题,所以就决定读这本了。

 

一、时间

书本身不算厚,我又有上课不爱听课的习惯,所以就装书包里了,上课没事时候就拿出来读。

我读书速度比较快,这本技术上的难点也不多,所以看起来很快,大概一个星期左右就看完了。

稍微跑题一点说说看书。

 

高考完被疯转的日志有一类就是关于看书,大致就是说,大学期间一定要的xxx本书,xxx老师推荐的书单之类的东西。

我印象最深刻的数字就是400,忘了是谁推荐的,总之就是说大学期间要看400本书,除了小说什么方面都可以,会有很大收获。

作为刚高考完对大学充满无限憧憬和期望的千万毕业生之一,我自然也把读书列入了计划。

上了大学之后,当然,发现现实并不像之前想的那么美好。

每天课和作业就占去绝大多数时间,再加上娱乐活动,基本上没有了所谓的课余时间。

不过值得庆幸的是我的读书习惯很早很早之前就养成了,大概可以追溯到小学一年级放假被我妈锁在家里的时候。。。

总之,虽然时间很紧,现实很惨,书还是一本一本在读。

 

我读的书基本上只有两类,技术类和小说类。平时一般会同时读3~4本技术书和1本小说,每天交替着读,这样不容易枯燥。

到现在的话,没具体统计过,不过应该读过60本左右了,虽然不多,但是质量还是不错的。争取毕业之前读够100本。

 

下面进入主题吧,《重构》读后感。

 

二、读后感

先来说说翻译。

经典书籍也得要牛人翻译才行,否则各种外国文化的梗加上难懂的技术内容绝对会吓跑大部分读者。

所幸当前国内有好几个很不错的出版社,基本上能保证译本的质量,这本书就是其中之一。

 

读之前简单翻了翻目录,基本对我胃口,讲的知识点我比较感兴趣。

内容的话,第一感觉就是——不愧是老外的好书。

再和国内的大部分技术书来对比,简直天上地下。。。国人别的不行,唯善抄袭和毁掉一个行业。

 

作为读后感,那重点就是“感”,我就不抄书了,说几个我印象比较深刻的重点。

 

1、变量名

其实变量名这东西。。。我相信100个程序员看到这个标题有99人都能知道我要说啥。其实这东西就像“名人名言”,所有人都听过,所有人都明白,但是自己真正遇到问题时候还是按照自己的习惯来做事。要不怎么说不见棺材不落泪呢,就是这个道理。

所以我也不想再嚼这没味的口香糖了,我来谈谈一些个人的想法吧。

都知道变量名要写清楚,不过有一点很多人不知道,那就是清楚也要适度。举个例子,循环变量,写i,j就比写the_number_used_for_cycle好。

所以真正的规则是:约定俗称>清晰命名>随意命名。

举个例子方便理解,“对面那个煎饼店”和“xx路xx号”,肯定是前者更容易理解。

深究的话,可能涉及到一些人脑方面的东西,我不太了解,就不瞎扯了。

 

2、函数长度

同样不想重复。

大家都知道的,长度不要超过一个屏幕。

不过这个还是不够清晰,我觉得更好记也更好用的是:一个函数只干一件事。

如果一个函数干了多件事,那可能就需要拆分了。

初学者的话,可以用另一条规则:看一个函数是否还能继续拆。

只要你不是脑残,我相信就能正确使用这条规则。你要非把每一句都拆开那我没办法了,这么聪慧实在不适合做程序员。

 

3、注释

就一句话:别说废话,要说重点。

 

4、没了

对,就是没了。我觉得从代码这个层次来说,需要注意的就这三点。只要做好这三点,那么我们就基本可以说这个代码风格不错。

可能你会问我,你凭什么说不错?

准则就是,这段代码给另外一个程序员他能不能看懂。

能看懂就是好风格。

 

三、升级

”从代码这个层次来说“。

所以说呢,肯定还有别的层次,也就是这章要说的——设计层次。

 

说之前先扯点废话。

 

重构的书大部分会把这两个层次放在一起讲,虽然没错,但是对于一个初学者来说,一下子多了这么多的规则,无论是谁肯定都很难做到。

而且看看历史上的各种牛逼定理公式吧,基本上都是一句话或者几句话,所以说完美的东西也同样是简洁的,如果不简洁就说明出问题了。

 

所以我觉得,如果是刚学重构,那么先把上面的3条都养成习惯再说,一口气吃不成胖子。

 

然后说正事。

 

设计层面要说什么呢,就是设计模式。

那么什么是设计模式?一句话:解决常见问题的套路。

就好像你看到直角三角形就能想起来用勾股定理,设计模式就是一些固定套路,前人根据实际经验总结出来,这样我们就可以解决很多常见问题。

 

推荐一本书——大话设计模式,国人写的,确实很不错,深入浅出。

 

对于设计模式我不想说太多,原因同上,你没有实际的经历,听了也是白听。

 

我想谈谈更本质的问题——实践与理论的结合。

 

我觉得什么语言什么技术什么模式,说穿了,你得学会那才是你的东西。那么怎么学会呢?没有捷径,只能靠实践。

很多没学过编程的人问我,什么语言好啊?我没有基础学什么?

我说你0基础,学啥都差不太多,只要你学会一门,其他的都很容易学,你可以学一下c,java,python这些都可以。

 

然后他们会问我,c和java有什么区别啊?哪个好学啊?

。。。

我说 c没有对象 c没有垃圾处理机制 c。。。

 

我说你0基础,我和你说这些有什么用,你能听懂吗?

还有哪个好学,我告诉你,0基础学哪个都不好学,但是只要你踏踏实实学会一个语言,那学其他的都很简单。

然后再过一段时间,他们就没消息了,想必自学失败。

 

怎么说呢,我的观点就是,如果要学一个东西,那么先不要去了解深入的东西,只要掌握基本的信息足够让你判断是否需要学这个东西就可以了。

 

剩下的就是去学。

 

很多人死在实践这一步上,但是要想学会恰恰就差这一步。

 

四、总结

 

我不想做毫无意义的复读机或者打字机,如果你看到这里,无论你是否同意我的观点,我相信你都有所收获,至少能引发你的一些思考,我觉得这就够了。

人要进步靠的是内在的动力。

你可能感兴趣的:(读后感)