首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

软件开发中小结

2013-03-20 
软件开发中总结本人从事嵌入式c++方面的开发.自己写的软件常常被抱怨bug多, 开发慢, 用户使用不方便, 不可

软件开发中总结

本人从事嵌入式c++方面的开发.
自己写的软件常常被抱怨bug多, 开发慢, 用户使用不方便, 不可团队开发.
这四大问题一直困扰着我.造成这些问题的原因我思考了一下, 罗列出来, 望高手指教
1. 思维顺序应该是 客户体验--->程序框架--->代码

在开发一项功能时, 我经常是大概了解了一下客户需求或者说业务逻辑, 再参考一下别家产品的
模样(做嵌入式仪器的,主要通过说明书), 就在脑子里构建架构, 然后写代码.
了解需求的时间大概1分钟~1天, 脑子里构建架构大概1分钟~1小时, 代码1天~1个月
这样做出来的软件,最多没有bug, 架构一定不好, 后期维护麻烦, 多人协作也不适宜.
最关键的是用程序员的思维写出的程序客户不方便, 所谓程序员的思维就是计算机的思维,
比如春晚小品, 把大象放冰箱里要几步? 答 1开门, 2放, 3关门. 在程序员的脑子里
程序就是这么写的, 一般人就会认为是个笑话.

正确的思路是围绕着用户体验, 用户不管你软件是怎么实现的, 方便就行.
满足体验了后最关键的是架构, 不能跟我一样先写代码后想架构

这条做到了可以解决用户使用不方便, 目前这条自己做的很不好, 打0分吧

2. 架构一定要好
多花时间在构想架构上比什么都重要, 我觉得好的架构要有几个原则
1) 文档视图强制分离, 用2个线程. 视图可以调用文档, 反之不行. 这样可以将一个功能划分成2块
   减轻程序负担, 但要保证线程同步
2) 合理运用c++. 需要的时候用,不需要或不会的时候千万别用. 
刚做c++程序时, 我会为了封装类而封装类, 现在看是事倍功半
c++提供的比c多的特性必须十分了解再用, 比如virtual函数, 我觉得只有在抽象工厂模式下
才能发挥应有的效果. 其实<设计模式>换个角度看是教你c++的语法特性的实际用法,
如果只学c++语法后就滥用真的有说不完的问题
3) 高度抽象. 对业务逻辑透彻了解后,进行高度抽象, 能确保今后的代码可维护行强.
未经抽象的c++代码和c是没区别的.

架构好可以做到维护方便, 团队开发方便, 这条给自己打60分

3.  设计之初就考虑代码复用
尽量把小功能写成二进制库, 并写接口文档

每个人都写的话整个团队就少了很多重复工作, 开发周期缩短.但若都是源码的形势分散在
某个工程里的画, 在公司服务内谈代码复用就是空谈. 就是本人代码复用也不一定行, 
因为没有强制的写成独立模块.

这方面我的工作从来没做过, 0分, 公司也鲜有听说, 偶尔有源码级的而已

4.写测试用例, 
这个本人几乎没写过, 测试基本交给第三方黑盒, 结果就是bug满天飞.所以这一项是0分

5.开发工具
开发工具的选择对于提高开发效率至关重要. 
1) 如果可以选择的话用java替换c++. c++实在是太复杂了, 我认为掌握c++需要三个阶段
a)语法, 找本好的c++
b)语法的实际用途, 需要看设计模式,才知道那些语法的有意义的用途, 而不是c++语法书上说的
c)了解c++的陷阱, <effective c++>的, 我看不如叫<c++陷阱与缺陷>

java相对c++来说优点主要有强制写法,减少出错, 如去掉默认参数, 去掉全局函数
把复杂的事情让计算机做, 如内存管理

2) 用已有的软件库. 现在我的程序自己实现了一套UI, Linux下的, 好处很多
比如绘图块, 简单等. 但现在发现坏处更多: bug比通用多, 加复杂功能时
时间耗费多, 为了开发对话框及上面的控件, 用了2个月的时间
[解决办法]
软件开发中小结
[解决办法]
软件开发中小结赞~
[解决办法]
得时刻反思总结啊
[解决办法]
软件开发中小结
[解决办法]
软件开发中小结
[解决办法]
新春快乐。呵呵。
[解决办法]
软件开发中小结
新春快乐
新年快乐
祝大家新年快乐,工作顺利!
不管2012过的怎么样,2013是一个新的开始,万事如意!
[解决办法]
楼主威武!总结才有进步!
软件开发中小结
------解决方案--------------------


很不错的啊!软件开发中小结
[解决办法]
c++只会语法,不会用c++,感觉c++给我用浪费了很多功能特性
[解决办法]
程序员要做的不是尽力避免错误,而是聚焦在快速发现并改正错误。真正以快速方式轻易解决错误,“快速的失败”远胜过“预防错误”。Fred George

[解决办法]
软件开发中小结
[解决办法]
软件开发中小结常来看
[解决办法]
多总结总是好的
[解决办法]
软件开发中小结
[解决办法]
用java不如用.net
[解决办法]
软件开发中小结
[解决办法]
感觉说反了。

只要你能满足需求(包括性能需求),性能高,代码结构清晰就可以了。

其他的需要吃亏长经验。

热点排行