显示标签为“学习”的博文。显示所有博文
显示标签为“学习”的博文。显示所有博文

2014年3月22日星期六

开始学习Qt

春节之后的周末,又是一通瞎忙,好久没有踏下心的看书学习了。今日终得闲,加上最近几日工作中受到的刺激,感觉还是要继续战斗才好,随时做好新起航的准备。

按照之前想的那么多,又想重温设计模式和重构,又想学习Qt,又想学一些自动化测试,想学的太多,反倒出现了选择困难和厌学情绪。思考之后,决定先学Qt,然后写一个简单的程序来实现所有的设计模式,做这个程序的过程中估计重构和测试也就都能设计到了。

Qt如今已经发布了5.2.1,并且可以支持iOS和android开发(不过对移动软件的开发相信很难真的有实际的实践意义,原生开发工具已经足够好了,看不到任何去学这个的必要,当然这肯定是后话了),国内网站中对Qt的讨论主要还是集中在Qt4,毕竟对于公司开发的话不可能果断的舍弃旧的代码用新的框架重构,不过对于我个人兴趣式的学习,我还是决定学习最新的版本,从Qt5直接入手。

在网上的搜索过程中,找到了一位大牛的博客DEVBEAN' S WORLD,在他的博客中,专门有一个单元叫Qt学习之路2。这位大牛以前也写过一个学习教程是Qt学习之路,当时是针对Qt4写的,如今他将自己曾经的所有博客针对Qt5进行了重新整理,放在网上供大家学习,对他这种精神真的是佩服的五体投地啊。

今天先学习了前六篇教程,对Qt有了个初步的了解,尤其是对信号槽(slot)这个概念有了个直观的概念。以下摘抄自该教程第四节,Qt 学习之路 2(4):信号槽
所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。(这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。)
有这么好的教程网站,之后要加快学习的脚步才好。

2014年1月24日星期五

参加公司培训

月初参加了公司的内部培训,培训的内容关于clean code。当时听完两天的培训后,心里还是挺有感触的,但是迟迟没有写下来,现在一些细节就想不起来了。记得多少就说多少吧。拖延症害死人啊!

挺有感触的一点是:什么是编程?
最初天真的以为会写个Hello World就算是会写程序了,这个想法实在是too young too simple了。在这几年的自学过程中逐渐认识到,光是会写几个函数不能算是会C语言,当学会了数据结构可以用结构体和指针自行实现stack & queue时,才感觉C语言入了门;光是写一个类把函数封装在一起也不算是会C++,当逐一把二十多种经典设计模式敲过一遍之后,才意识到OOD思想的精髓。听了这次的培训,意识到,以上的这些,最多只能算是掌握了某一门编程语言,真正编写程序,除了基本的语言知识,还需要掌握重构的能力,以及UT的能力。

说到重构,倒也不是新知识,以前也曾花过时间和精力读书学习过,但是碍于没有接触过真正的项目,也没有重构的需求,所看的书都成了纸上谈兵。而UT,对于我这个半路出家的程序猿,就是完全遗漏掉的知识了。

听完这次培训,忽然感觉写程序也是非常有意思的,这种打磨一个程序的感觉,不亚于打磨一件手工制品,不亚于打磨一个算法的速度或效果,之前之所以没有这样的感觉,其实还是由于对这个行业的不深入不了解。说到底,人丑就该多读书啊!

放个书单上来吧,说说最近想重读或初读的书:
重构,这个看过一两遍了,之后要拿代码出来针对性的改一改。
设计模式,这个看过很多遍了,但是培训的时候发现很多模式都记不得了,而且UML还是挺重要的,还要再复习下。
大话设计模式,这个买来翻过几页,现在回头重读一遍,一定会有更好的收获。
Head First 设计模式,这个没有看过,不过应该和上一本设计模式差不多,找来速看一遍吧。
单元测试之道C#版,单元测试的书好像没找到C++的,拿这本C#的凑合看?
代码大全2,这书经典中的经典,就是厚度让人望而生畏。。。

说到最后,今年一定要开始学习写QT程序了!立字为据。