• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
梦想照进灵魂
博客园    首页    新随笔    联系   管理    订阅  订阅
ThinkinJava

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)维护!维护!!


posted on 2012-08-24 00:18  梦想照进灵魂  阅读(468)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3