上嵌吧 关注:318贴子:1,693
  • 1回复贴,共1

只有不断学习,才不会被IT淘汰

只看楼主收藏回复


经过1星期的QT学习,我基本对QT的编程机制和数据库有了初步的了解,毕竟时间太短,无论是QT,还是msql数据库,只是完成了一个大概的认知,在这种情况下,要单独完成这个扫雷的QT项目,确实有一定的挑战性,回首做项目的一星期,我对一句话深有体会:“人都是被逼出来的”。
不给你限定时间,人就会拖拉,一个任务,刚接手时或许感觉没头绪,对自己是否有能力完成这个任务产生怀疑,这完全是没必要的,因为这是一种逃避,也不会让你创造什么实际价值。
QT只是一种工具,要完成扫雷的效果,最终还是得要靠C、C++实现,具体的说,是扫雷的算法,例如布雷阵,鼠标点击事件触发,图片显示机制,扩散触发,暂停游戏,棋标,以及用户自定义布累等等,都是一些关键技术点,因为本人是单独制作的这个项目,工作量略大,在这种情况下只有提高调试效率,才能按时完成任务。
按我以前的项目流程,先搭框架,确认框架可行后再着手写代码,将较大的项目逐步细分,分块完成功能,最后再优化系统界面友好性。剧本是这么写的,实际操作起来就不是这么顺利了,QT里有几百个类,每个类有几十个函数,其复杂度可想而知,而且由于一些未知原因,在终端界面可行的代码在QT里是不可行的(QT程序运行机制问题),例如,在用户第一次点到雷后系统要对雷阵调整,保证用户不会第一次就踩到雷,我没采用删除旧雷阵,建立新雷阵的传统做法(效率太低),而是在已有雷阵上调整,结果发现QT的一些很让人难以理解的行为。
程序异常退出,这是我在设计布雷算法时经常遇到的问题,项目做下来后总结出:原因只有一个:容器被非法越界访问。很简单吧?事实上我大多数时间都花在这方面了。
其次就是一谈到QT,就不得不说的信号槽机制。这东西其实搞懂了,会感觉很简单,就是信号传递,槽来实现具体功能。信号槽出错也能通过F9调试很容易找出原因。
总结下来QT其实作为一种做界面的工具,只要会用就行。任何界面的灵魂,仍然是其表面以下的,数据传送,以及算数逻辑运算的算法。学的越多,不懂的也就越多,这句话一点都不假,只有不断学习,才不会被IT淘汰。
SQ1310-詹同学


IP属地:广东1楼2013-09-30 16:35回复


    IP属地:江苏本楼含有高级字体3楼2013-12-26 11:17
    回复