软件开发中总结

ma100 2013-02-02 02:29:13

本人从事嵌入式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个月的时间
...全文
8146 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShengFei01 2013-03-12
  • 打赏
  • 举报
回复
多练习,多总结。
小雷FansUnion 2013-03-12
  • 打赏
  • 举报
回复
既然自己意识到了问题,可以多看几本好书,提高下理论,然后在实践中 逐步提高,如何?
  • 打赏
  • 举报
回复
jianmuyan 2013-02-27
  • 打赏
  • 举报
回复
学习了。。。
whbwh123 2013-02-25
  • 打赏
  • 举报
回复
lz学习来了
一叶之舟 2013-02-25
  • 打赏
  • 举报
回复
没有强制的写成独立模块. 这可不是强制的,写成独立模块是程序必须做到的,等强制这样做,恐怕永远也做不到。
shen_wei 2013-02-25
  • 打赏
  • 举报
回复
总结才是正确的。。
tzg157 2013-02-25
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
txzsp 2013-02-25
  • 打赏
  • 举报
回复
comeonyouhe 2013-02-25
  • 打赏
  • 举报
回复
是否能在为别人打工的过程中,深化把东西做好做精的思想和习惯。
饺克力克 2013-02-24
  • 打赏
  • 举报
回复
可读性有点差啊。
lhw7791086 2013-02-24
  • 打赏
  • 举报
回复
安林 2013-02-24
  • 打赏
  • 举报
回复
先架构,再编码,挺深刻的!
xxl5172 2013-02-24
  • 打赏
  • 举报
回复
不错 不错噢噢噢噢
artzers 2013-02-23
  • 打赏
  • 举报
回复
看了LZ的总结有点收获吧 我只用C++ 之前水平不高我总是优先降低编码成本 现在终于要开始注重用户体验了 又得重新写架构 不过我已经学了很多了,新架构力求高复用,良好用户体验!
desert_tian 2013-02-23
  • 打赏
  • 举报
回复
写的蛮好,真实,深刻
lieye_leaves 2013-02-23
  • 打赏
  • 举报
回复
楼主写的不错
山书生 2013-02-23
  • 打赏
  • 举报
回复
看来不能仅仅作为一个马工,还是要广泛一些。 向上。
  • 打赏
  • 举报
回复
pupingpp 2013-02-23
  • 打赏
  • 举报
回复
加载更多回复(27)

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧