zoukankan      html  css  js  c++  java
  • 实践的精髓

    1. 理解问题
    a. 谁将从问题的解决中获益
    b. 有哪些是未知的?哪些数据/功能/特征/行为是解决问题必须的
    c. 问题可以划分吗?是否可以描述更小/更容易理解的问题?
    d. 问题可以图形化描述吗?可以创建分析模型吗?

    2. 计划解决方案
    a. 以前曾经见过类似问题吗?在解决方案中是否隐藏着熟悉的模式?是否已经有软件实现了所需要的数据/功能/特征/行为?
    b. 类似问题是否解决?如果是,解决方案包含的元素是否可以复用?
    c. 可以定义子问题吗?如果可以,解决方案是否适用于子问题?
    d. 能用一种可以很快实现的方式来描述解决方案吗?能构建出设计模型吗?

    3. 实施计划
    a. 成果和计划一致吗?源码是否可以追溯到设计模型?
    b. 成果的各个组成部分是否都正确?设计和代码是否经过评审?或者更进一步,算法是否经过正确性证明?

    4. 检查结果
    a. 成果的每个部分是否可以进行测试?是否实现了合理的测试策略?
    b. 解决方案是否产生了与所要求的数据/功能/特征/行为的一致的结果?是否按照项目共利益者的需求对软件进行了确认?

    核心原则

    1.存在价值
    思想就是给用户提用价值,软件才有价值

    2.保持简洁
    简洁而不是简化,结果是易维护,少出错

    3.维护视图
    统一项目实施的思想/架构

    4.生产者要让消费者理解
    做的东西要让相关的人更容易懂/使用。比如编写的代码使得维护它的人更易读

    5.面向未来
    软件能够适应变化。设计时常问:如果出现。。。应该怎样应付。准备所有的解决方案以解决普遍问题。同时带来的是可复用性。

    6.计划复用

    7.认真思考
    在行动前清晰/完整的思考通常能产生更好的结果。一旦仔细思考过,能做好的可能性就变大了,而且能够获得更多如果做好的知识。如果仔细思考了,还是做错了,就会变成很有价值的经验。还能对一无所知的事物产生感性认知,这样慢慢就能找到答案。

    如果能够在使用前六条原则时经过认真思考,那么潜在的收益数不胜数。

  • 相关阅读:
    获取cookie
    EF数据迁移(当模型改变时更新数据库)
    EF有外键的查询
    EF查询
    前台主页面给子页面赋值(回调)
    jquery取元素值
    chart画图
    IIS 7.0 的 ASP.NET 应用程序生命周期概述(转载)
    查询服务器登录个数
    gridview中判断隐藏还是现实
  • 原文地址:https://www.cnblogs.com/bushe/p/4210536.html
Copyright © 2011-2022 走看看