时间已经过了很久,我也过了一万好多分了.虽然算万分感谢的续集有些牵强,但是为了把我的**顺起来,还是打上这个tag.题目借用一个文档的命名 how to,也有想写多点欲望.难以给更多人更合适的指示,也只能管中窥豹了.
又是一个深夜,时间在今天和明天交替.因为想了很久,不知如何开始这个题目.就在这个特殊的时间片里,完成一个小的**.来抛砖引玉.[本来这段时间应该好好休息,为了明天的工作,为公司的责任,但是,写出来会责任更大,我选择熬夜]
我敢肯定,看我这篇**的人90%的都在做着不规范的开发.例如:在不同的项目中做重复开发,代码复用性差.在一个工程中代码易读性差,几周不看就不知道写的什么.或者遇到问题,无法debug,或者遇到性能瓶颈难以处理........
最近的心理膨胀是因为看了Linux的38版本的patch,一个个文件去看,看那些小的改动的重构模式,非常熟悉.然后把高版本的一个功能降级到底版本中去.再次感谢方正集团的王老师,带我走向软件架构.看完一本枯燥的<重构---改变既有代码的设计>完成了我的纯软件之旅.
看着周围的人,为了一个结果,一个进度.一个给老板看到的过程,为了一个周报,写满难以理解的代码.并且,为了调试或者说协同调试,浪费了很多时间.但是这些,或许能转化成周报里完美的表达.
很多人,为什么不规范化开发?因为他们觉得项目足够小,数周或者数月.随便调试一下过了就行了.以后做版本升级还不知猴年马月,或者说还是别人做.到时候重新开发....小老板们也急功近利,或者不懂技术,或者总监懒得管,赚钱够了就行...
由于项目的保密性.就谈一个没有完成的项目.是一个老师的水平仪.
基于2轴加速度传感器用一个12bitad单片机采集.找了很多人,都没做完.
单片机只支持汇编语言.我最后留下一个带有全部中文注释的文件,也没有做完.就毕业了.
这个在代码级别上没有规范化开发的过程.但是在实现方式有借鉴的可能.
1.ad精度足够.
2.正弦波的离散数组查找表的实现.
3.汇编语言的实现.
失败的根源在于:
1.设备用透明胶沾到精密倾角测量设备上误差难控制.重现性太差.
2.汇编语言开发调试难度大,仿真器性能差.开发效率不好.建议使用高等芯片完成,然后做简化.
3.带精度的东西.必须有精密的测试流程.否则一切调试都是徒劳.
优势在于开发过程,采用了从上到下的开发方式.
使用matlab进行误差1%和2%的正弦数据线性化.这样保证软件上精度可控.而以前采用的等间隔采样离散成数组的方式,误差不稳定.要么数据太大,计算太慢,要么某些数据精度不达标.
在假定两轴传感器输入正确的情况下,做好软仿真.
首先在学术上保证精确度.然后再在实验平台做重复性实验,完成相应的矫正流程.
睡了.祝大家好运
================
发帖的瞬间,想起某公司的开发方式,给大家提出一个思考题:为什么用多线程?单核cpu中,哪个性能好?多核cpu中,性能又如何?各种锁机制,是为什么存在?真的是和教科书里说的是为了防止竞态吗?有没有更深入的意义? |