自由行

2009-09-13

敏捷软件开发之旅(1)-一个重要的里程碑

Filed under: Projects Log, 程序员, 精益软件开发之旅 — thomas @ 23:03

v1.5.0是XqCap4的一个标签(svn tags) ,这个标签的软件实现手机拍照软件的核心功能。

作为手机拍照软件,主要的功能包括:
图片的拍摄、存储、查看;
视频的录制、存储、回放;
拍摄参数的设置,如:图片的尺寸,清晰度,曝光度等;
录制参数的设置,如:视频的尺寸(QCIF, QVGA, VGA…),编码格式等;
其中核心的功能是图片的拍摄、存储,视频的录制、存储,其次是图片的浏览、视频的回放;

在v1.5.0中除视频的回放没有实现,其它的已经实现了,当然只支持少量的参数设置。尽管最终目标还有一段距离,不过拍照和录视频的功能都实现了,而这些是需要和底层服务、驱动打交道的,比较困难,而其它的功能开发与一般的应用一致,难度就低很多了。解决了困难的问题,在演进中提炼和完善了架构设计,剩下的开发工作更有把握。可以说现在的状态是一个分水岭。如果说前面是一段上坡路,后面就是走下坡的路了,将会轻松很多。

从时间跨度上看,2009.08.22~2009.09.13,除08.29给人咨询移动应用开发的事情,精力主要花在开发上。在这23天中提交了82次代码,平均每天4次。每天晚上大概三个小时,4个周末全天10小时左右,共15*3 + 8*10 = 125小时,由于白天在公司也是开发,所以每天的开发时间将近12小时,确实比较累。

这中间对架构进行三次修改,这些修改对于敏捷软件开发来说是非常重要的,这也是笔者这次敏捷软件开发实践的初衷。架构如何演进出来而不是在最初就确定,是一个区别于非敏捷的重要特征,其中的一些细节问题留待后续文章叙述。

2009-06-04

项目手记(3)-”不期而遇”

Filed under: Projects Log — thomas @ 23:46

Late evening, To be Eidted.

2009-05-26

项目手记(2)-用户界面与数据分离

Filed under: Projects Log — thomas @ 00:20

谋未定,不动。虽然很想着手写代码,但是却又不知如何写,难免有些无奈。

工作之余开始考虑,昨天似乎是很清晰的分析,竟然变得模糊起来。这也怪自己,当时分析了主要功能点,和实现的顺序,不过没有用笔记录下来。今天经过一天的忙碌,把原先的记忆冲淡了。只能老老实实的再做一次分析。首先要考虑与界面有关的功能,比如与外部应用的交互,应用内部的功能相对应切换等。

对于应用来说,界面与数据分离是很大的挑战。而对于s60应用而言,利用现成的AppUi/View/Container/Controls框架来规划架构比较合适。

做一下简单罗列:

1. 安排多少个View;

2. 每个View里有哪些Container;

3. 如何加载Control,支持半透明效果;

4. 用户事件处理;

做了一些尝试后发现,还是从大的层次确定,也就是先确定AppUi,然后确定View,再确定View中的Container和之下的控件。调整了几次后得到类的层次和对象的归属关系。

值得说明的是,Avkon的View并不是直接的UI类。因为它不能直接接受用户输入,也不直接绘制窗口,但它可以作为容器,拥有Container,而AppUi将事件派发给Container,它继承自CCoeControl。与View对立的概念是Mode或者说是数据,所谓用户界面与数据分离,主要是View和Mode的分离,给出一个清晰的界限。

2009-05-25

项目手记(1)-框架分离

Filed under: Projects Log — thomas @ 00:50

在S60v5.0上进行框架分离,析出AppUi, View, Container三个UI类别。

1. S60v5.0的模拟器比起SEMC内部SDK中的要快很多,大约20s能够启动完成;所以在S60上析出框架,最后在目标SDK上验证,这样就能节省大量时间;

2. svn的目录整理甚是繁琐,尤其是目录,文件名的更改,涉及的项目文件,头文件包含也必须要改;

3. 实例类需要调用框架类的虚函数,框架包含了一部分设计决策;

Powered by WordPress