最近学习到的一些东西的整理[技术方面]
系里组织了一个软件开发大赛,我报了名。看了去年他们获奖的作品,基本都是.NET和JAVA的 一些附书源码。
那会脑袋发热,正想做一个记帐的工具,于是就开始做。
最开始设计的时候,又是跨平台(LINUX,WINDOWS,手机),又是自己实现数据结构,又是动态链接库调用的,好像非得这样才能现实出水平。。
软件得有界面,考虑到跨平台,用从来没接触过的QT来做。想着把数据结构实现到动态链接库里,最后数据保存用SQLITE。。
想好了就开始做,QT刚开始用着还很爽,慢慢发现这种快感仅限于简单的界面,QT太庞大,太复杂了。。以至于让我感觉无从下手。。效率越来越低,没办法,放弃了。。一想,夸平台,除了QT,就用wxWidgets吧。。这个好歹熟悉一些,附带的例子也很全面。。拿来重新作界面,QT作了好几天的界面,拿wx一上午就搞定了。。虽然也是一边做一边骂界面。。然后开始写数据结构,觉得用链表就可以了,写完了在CONSOLE下测试了下,没问题,就封装成DLL,给wx调用。那时想的很天真。。觉得维护一条链,查找的时候重新生成就好了。。最后内存泄露的一塌糊涂。。改阿改阿改。。终于能正常运行了,结果只要数据一多,还是会挂。。调试了两个小时,放弃了。。又是指针,又是DLL,指来指去的,晕了(应该不是链表的问题,问题还是出在界面上获取链表节点时)弄的很消沉
觉得该调整下了,用C#爽了下。。把Windows Mobile端做好了,一上午就搞定了500行代码不到。。搞定了C#,觉得SYMBIAN也就那么回事,开始跃跃欲试搞S60,因为以前一直没做过SYMBIAN上的东西,得知S60上有个PYS60,如获至宝。。配置好了手机端的环境,运行了下附带的例子,觉得很牛B阿。。哪想到PYS60 PC端的配置可耻的失败了。。又被打击到了。。因为没几天就要交了,所以很着急,上火,眼睛肿的老高。。
突然一想,反正要夸平台,不如搞UBUNTU下的,也体验下wxWidgets的跨平台能力,装好wxWidgets,弄好CodeBlocks,开搞~一个下午加一个晚上,搞完了,数据结构用的是STL中的,界面用wxFormBuilder做的,体验很好,也没漏~第二天,把UBUNTU下的版本拷贝到了Windows下,心想还要改什么东西。。哪知道只要Windows下的CodeBlocks和wx配置好了,直接那过来编译就行了~爽的一塌糊涂,然后又测试了下,把三个平台间保存数据的XML文件互相复制/粘贴了一下,OK,没任何问题,心里踏实了
然后回过头看做的这个东西,觉得很简单,却在上面浪费了两个礼拜的时间。。总结出以下经验:
1、不要过渡设计。能做多少做多少,别贪多。把一些基础功能作好,比手忙搅乱的作不完要好。
2、不要乱用自己不熟悉的工具。因为你不知道他能让你提升效率还是降低效率。
3、一定要先写文档,先写文档,先写文档,规定好数据的格式,然后再去实现。甚至在写代码之前,应该把函数名、变量名都规定好,有同一的风格。这样才不会写着写着就晕了。
4、别迷信什么敏捷开发。。写过几十W,上百W行代码的大牛有资格敏捷,你代码还不到10W行,越“敏捷”越低效。
那会脑袋发热,正想做一个记帐的工具,于是就开始做。
最开始设计的时候,又是跨平台(LINUX,WINDOWS,手机),又是自己实现数据结构,又是动态链接库调用的,好像非得这样才能现实出水平。。
软件得有界面,考虑到跨平台,用从来没接触过的QT来做。想着把数据结构实现到动态链接库里,最后数据保存用SQLITE。。
想好了就开始做,QT刚开始用着还很爽,慢慢发现这种快感仅限于简单的界面,QT太庞大,太复杂了。。以至于让我感觉无从下手。。效率越来越低,没办法,放弃了。。一想,夸平台,除了QT,就用wxWidgets吧。。这个好歹熟悉一些,附带的例子也很全面。。拿来重新作界面,QT作了好几天的界面,拿wx一上午就搞定了。。虽然也是一边做一边骂界面。。然后开始写数据结构,觉得用链表就可以了,写完了在CONSOLE下测试了下,没问题,就封装成DLL,给wx调用。那时想的很天真。。觉得维护一条链,查找的时候重新生成就好了。。最后内存泄露的一塌糊涂。。改阿改阿改。。终于能正常运行了,结果只要数据一多,还是会挂。。调试了两个小时,放弃了。。又是指针,又是DLL,指来指去的,晕了(应该不是链表的问题,问题还是出在界面上获取链表节点时)弄的很消沉
觉得该调整下了,用C#爽了下。。把Windows Mobile端做好了,一上午就搞定了500行代码不到。。搞定了C#,觉得SYMBIAN也就那么回事,开始跃跃欲试搞S60,因为以前一直没做过SYMBIAN上的东西,得知S60上有个PYS60,如获至宝。。配置好了手机端的环境,运行了下附带的例子,觉得很牛B阿。。哪想到PYS60 PC端的配置可耻的失败了。。又被打击到了。。因为没几天就要交了,所以很着急,上火,眼睛肿的老高。。
突然一想,反正要夸平台,不如搞UBUNTU下的,也体验下wxWidgets的跨平台能力,装好wxWidgets,弄好CodeBlocks,开搞~一个下午加一个晚上,搞完了,数据结构用的是STL中的,界面用wxFormBuilder做的,体验很好,也没漏~第二天,把UBUNTU下的版本拷贝到了Windows下,心想还要改什么东西。。哪知道只要Windows下的CodeBlocks和wx配置好了,直接那过来编译就行了~爽的一塌糊涂,然后又测试了下,把三个平台间保存数据的XML文件互相复制/粘贴了一下,OK,没任何问题,心里踏实了
然后回过头看做的这个东西,觉得很简单,却在上面浪费了两个礼拜的时间。。总结出以下经验:
1、不要过渡设计。能做多少做多少,别贪多。把一些基础功能作好,比手忙搅乱的作不完要好。
2、不要乱用自己不熟悉的工具。因为你不知道他能让你提升效率还是降低效率。
3、一定要先写文档,先写文档,先写文档,规定好数据的格式,然后再去实现。甚至在写代码之前,应该把函数名、变量名都规定好,有同一的风格。这样才不会写着写着就晕了。
4、别迷信什么敏捷开发。。写过几十W,上百W行代码的大牛有资格敏捷,你代码还不到10W行,越“敏捷”越低效。
5、别把简单的事情弄复杂。没必要又造轮子又造车,分析好项目的侧重点,然后才能实现的比较完善
东西再烂,也是自己做的,况且从中也感觉到了自己的提升。。
贴个图安慰下吧。。不知道这玩意放出去有多少人用。。呵呵~