当创新进入更高的阶层,设计越来越高层化,模块化。对于模块和积木的选择是非常难的。比如说,RTOS市面上不下上百种;文件系统常用的系统不下几十种。在这么多模块中选出自己合适的模块,真的是太难了。那么有没有什么技巧呢?
首先,要对自己的应用熟悉。对自己的应用熟悉,也就是对需求的理解。需求的理解越深刻,对模块的选取和定位越有帮助。中国有句古话,叫差之毫厘,谬以千里。目标方向的理解不充分,是产生错误的根源。这里没什么好说的,只有充分理解的基础上才可以进一步的定位相关的问题。
其次,划分模块时,要将需求和模块紧密的对应起来。确定模块所有完成的功能。不要先去找模块,先要知道,你需要什么样的模块。将所有的细节都列出来。我们就需要从别处找到一个合适的积木去填补这个空白。这是基础,基础工作一定要做好。
再次,寻找模块。模块可以在互联网上去搜索,也可以找相关的论文,这些论文的作者对相关的领域做了比较精细的研究。可以缩短对这个模块的研究以及加深对相关领域的理解。对于每个模块,需要精确的理解他们的特性, 每个模块都有给出特性表。不妨将这些特性表输入到Excel表格里,相似的功能模块都对其做一个系统的比较。将这些特点再与系统需要的功能和性能进行比较。有可能有些适合,有些不适合。没有100%的合适。
最后,锁定目标。很多时候,没有那么合适的。可能只有80%甚至只有60%满足要求。那么这时候,需要给你的需求做个优先级。选择那些重要需求满足的模块,再做考察。这是可以做到的。可能还剩下些需求,没办法满足。如果完全满足,那也不用纠结了。剩下的需求满足不满足主要考察修改的难易度,以及工作量。如果其他问题还要考虑升级等各方面问题。
当然,不排除一些神来之笔,即使优先级高的需求不满足,采用特殊的思路,通过修改需求。可以达到出人意料的结果。即使这么做了,也不排除项目失败的可能性。失败是成功他妈,有妈在手还不怕他儿子来救她吗?需要细致的总结,问题出在哪里。模块在应用之后,也需要做应用方面的文档,得到模块应用中的更精确的信息。以促使下一个项目中的进一步应用。