用FREEBSD作开发的一些实现方式( 四 )


我们需要借鉴和利用这些流行的技术,不一定非要在项目的0.0.1版上应用,但是我们需要清晰软件项目的发展方向 。
这样做,将会让我们从一个简单的0.0.1版开始,最终实现最好的软件系统 。
4、确定整体项目的开发模型 。
实际上,开发一般分为两种模式:
1、从一开始就设计和实现一个合格的系统;(以3.0版进行发布)
2、首先建立一个系统(0.0.1版),然后找一批人完善和升级这个系统 。
从费用上讲,两种模型可能差不多 。大家按照自己的情况选择吧 。
G、软件项目(模块)的雏形:虚拟执行
虚拟执行的概念:实际上就是我们常用的确定界面法 。这个界面,就是我们的程序对于运行环境的适应的第一步 。
对于GUI程序,实际上就是简单的设计一个窗口,执行一个空的工作;
对于Deamon程序,就是设计一个空的独立进程,什么也不做;
对于module程序,就是实现一个虚拟的设备、工作,什么也不做 。
这样,就拥有了一个基础,并且可以进行新功能的调试 。并且是软件项目实现的开始 。
下一个阶段,就是不断地加入新的功能 。对于每一个功能来收,实际上也是从一个独立的虚拟执行开始,首先具有这个功能的界面,然后具有功能的细节 。
I、下一步怎么做?——驾驭你的代码
这一步,需要利用自己全部的知识,来驾驭自己的代码 。
A阶段:一个良好的设计文档
B阶段:结构代码设计——主结构
C阶段:真正的考验开始啦——子结构 。其中包含数据结构、算法、系统调用、C/C函数库、死锁分析等等 。
D阶段:调试并且发布测试版 。
A、B阶段:软件设计工程师的主要工作内容,工作成果的水准,将会影响整个的项目 。经验和理论是非常重要的 。
C、D阶段:软件代码工程师的主要工作内容,需要我们充分发挥自己的水平,驾驭代码,完成设计 。尝试、灵感、基本功、想象力是非常重要的 。
在实际的应用中,应当还有:
E阶段:排除一些编译器警告和移植到其他的系统中 。
1、在一些版本中,包括freebsd-stable/current或者使用不同的编译器,也许还有一些五花八门的安装环境 。会导致编译器的表现不一致 。或许不会导致程序运行的问题,但却是令人烦恼的 。
2、我们可能需要将程序移植到Linux或者win32下,早作准备是一个好主意 。
遭遇任何的困难,按照以下的“标准工作手册”
1、阅读各种参考手册中的相关内容,获得基础结构,其他的不明白的地方,与其去google搜索,不如编一个小程序获得答案 。
2、参考具有相同工作的软件代码,可能会获得经典的答案,比如:关闭文件的经典做法 。对于系统编程,则参看内核级源码,对于应用编程,则参看应用软件的代码 。
3、参考其他项目成员的程序,或者朋友自己编写的程序,可以获得具有相当价值的答案 。
4、搜索一些常见的论坛、论文站点的有用信息 。
5、实在不行,就在论坛、IRC、ICQ上大叫“help”? 也可以向资深的朋友求教 。
6、调整心态,勇敢的(或者硬着头皮)写下去 。
FAQ:
1、C/C如何作出取舍?
这一点不要看的绝对,实际上,C/C可以混合使用,共同发挥各自的优点 。C也可以借鉴C的思想,编写出来类似C的C程序(参看OOP with ANSI-C) 。
2、程序结构不佳怎么办?
在实现与清晰的结构之间,实际上是难以取舍的,不如就以实现为主 。程序的结构可以渐渐地进行修改 。
3、我编写的程序值得发布吗?

推荐阅读