1 这个项目要做三个工具,做包工具、打包加密工具、升级工具,由于时间和能力,基本完成前两个工具,升级工具只做了界面逻辑。
2 用到的技术,用c++写功能逻辑dll,C#编写界面逻辑,C#界面调用dll来实现功能。这样的好处是界面逻辑实现简单(起码比MFC好),功能逻辑用c++写,方便功能移植。缺点是C#和dll直接的参数传递,如果不是原生数据类型,无法直接传递,所以调用就不那么灵活。
3 这次使用了crypto++开源加密算法库(c++的lib形态),调用时都花了好多时间去配置项目属性(之前老报 xxx未识别的符号),步骤大概是
<1包含头文件#include "xxx",
<2 导入库#pragma comment(lib, "xxx.lib")
< 3 配置项目属性,c++->一般配置,导入库的头文件位置
<4 配置项目属性,link->一般配置,导入库的lib文件位置
<5 配置项目属性,c++->代码生成 执行方式设置为 MTD(relase模式对应MT)
<6 在代码中调用库函数,并执行
4 由于项目规模变大,单元测试和集成测试复杂度变高,做包和打包工具主要步骤都是读入一个文件,生成文件头,和其他的文件一起,再组合成一个文件组合体。那么就要写拆分文件组合体的代码来进行单元测试,验证从输出是否能逆处理出输入。当前未写出逆处理。
5 犯了个错,原来加密算法库是由产品部门提供的,我以为他们有义务协助加密算法库的配置,但反应上不是这样的,我应该问有没有加密算法库的使用说明,或者问问我们部门内有谁使用过这个库,让他来帮配置。另外对他们能解决这个问题有了依赖性,忘记了思考。到后来,自己也没有配置好这个库,在问问产品部门,是否必须使用他们提供的库,回答是不必须。哎,在这里瞎折腾,于是就搜索了个开源加密算法库来用用。(警示:项目中有哪些条件是你自以为被限定)
6 时间分配上犯了错,解决加密算法库配置问题花了接近两天,应限定解决问题的试探时间上限,如果解决不了就先放下。(试探上限设定为半天吧)
7 另外需增加搜索的面,如中文、英文搜索引擎,用户说明文档、官网、msdn。
8 沟通的问题,提问的方式,是否把问题点表示清楚。
9 由于刚用dll来编写程序,还未完全适应,调试也增加了很多难度,进度也变慢了。