Think in Java
一本让人沮丧的书。
--mark
一、分析和设计
不同于C primer plus,她教你的不单是扎实的基础,还是一种思考问题的方法,你会不会忽然有一天发现自己不会编程!
1、 阶段 0 :拟出一个计划
假如能在整个过程中设置几个标志,或者“路标”,将更有益于你集中注意力。这恐怕比单纯地为了“完成工作”而工作好得多。至少,在达到了一个又一个的目标,经过了一个接一个的路标以后,可对自己的进度有清晰的把握,干劲也会相应地提高,不会产生“路遥漫漫无期”的感觉。
(1)通过proc实现gsl芯片读写(√)
(2)实现单行写读,如f0<20(√)
(3)实现各种格式的读写
(4)有ui界面的apk软件包 / 需要考虑周期
2、阶段 1 :要制作什么?
在上一代程序设计中(即“过程化或程序化设计”),这个阶段称为“建立需求分析和系统规格”。当然,那些操作今天已经不再需要了,或者至少改换了形式。大量令人头痛的文档资料已成为历史。但当时的初衷是好的。需求分析的意思是“建立一系列规则,根据它判断任务什么时候完成,以及客户怎样才能满意”。系统规格则表示“这里是一些具体的说明,让你知道程序需要做什么(而不是怎样做)才能满足要求”。
这些都需要取得参与者的一致同意,所以我建议尽可能地简化它们——最好采用列表和基本图表的形式——以节省时间。
=================仅对我有效=================
(1)需要解析格式(讨论列出),兼顾.h文件的格式
(2)需要的子功能?如原始值和差值(方式)
3、阶段 2 :如何构建?
在这一阶段,必须拿出一套设计方案,并解释其中包含的各类对象在外观上是什么样子,以及相互间是如何沟通的。此时可考虑采用一种特殊的图表工具:“统一建模语言”(UML)。请到 http://www.rational.com去下载一份 UML 规格书。作为第 1 阶段中的描述工具,UML 也是很有帮助的。此外,还可用它在第 2 阶段中处理一些图表(如流程图)。
=================仅对我有效=================
gsl i2c interface
/\
|| (driver:str2hex)
||
X -----------------------------
X - Unified text format - /**
X - /\ - * Sometime you need
X - || (shell script) - * input the text by hand.
X - || - */
X -----------------------------
irregular text
(1)各字符串的解析完全由驱动完成,需要解析.h文件的格式!
(2)所有控制由文本完成
改(有不合理处):
(1)字符串由shell脚本解析为统一格式的字符串(考虑到以后维护更简单,在改动输入格式的时候驱动的接口可以不变)
(2)驱动完成统一格式的字符串到调用read、write接口的参数
4、阶段 3 :开始创建
作为真正的程序员,这并非可有可无的一种素质。全面的思考、周密的准备、良好的构造不仅使程序更易构建与调试,也使其更易理解和维护,而那正是一套软件赢利的必要条件。
构建好系统,并令其运行起来后,必须进行实际检验,以前做的那些需求分析和系统规格便可派上用场了。
全面地考察自己的程序,确定提出的所有要求均已满足。现在一切似乎都该结束了?是吗?
=================仅对我有效=================
(1)开始代码实现
(2)反问自己这样可靠吗?
5、阶段 4 :校订
“你第一次做的东西并不完善,所以需为自己留下一个深入学习、认知的空间,再回过头去作一些改变”。对于要解决的问题,随着对它的学习和了解愈加深入,可能需要作出大量改动。进行这些工作的一个动力是随着不断的改革优化,终于能够从自己的努力中得到回报,无论这需要经历一个较短还是较长的时期。
什么时候才叫“达到理想的状态”呢?这并不仅仅意味着程序必须按要求的那样工作,并能适应各种指定的“使用条件”,它也意味着代码的内部结构应当尽善尽美。至少,我们应能感觉出整个结构都能良好地协调运作。没有笨拙的语法,没有臃肿的对象,也没有一些华而不实的东西。除此以外,必须保证程序结构有很强的生命力。由于多方面的原因,以后对程序的改动是必不可少。但必须确定改动能够方便和清楚地进行。
幸运的是,面向对象的程序设计语言特别适合进行这类连续作出的修改——由对象建立起来的边界可有效保证结构的整体性,并能防范对无关对象进行的无谓干扰、破坏。也可以对自己的程序作一些看似激烈的大变动,同时不会破坏程序的整体性,不会波及到其他代码。事实上,对“校订”的支持是 OOP 非常重要的一个特点。
=================仅对我有效=================
(1)维护!维护!!
浙公网安备 33010602011771号