zoukankan      html  css  js  c++  java
  • java秋招题小结2

    1.软件开发三要素

    三要素是方法、工具、过程。

    方法是完成软件开发的各项任务的技术方法,为软件开发提供“如何做”的技术。工具为运用方法而提供的自动的或半自动的软件工程的支撑环境。

    过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤,如何将软件工程方法与软件工具相结合,合理、及时地进行软件开发。

    2.

     

     1.4.1 迭代式开发 (主体是时间周期)

    项目按照时间周期进行迭代,比如A功能优先级比较高,则在第一个迭代周期
    内优先开发A功能,并上线。第二个迭代周期开发B功能。
    

    1.4.2 增量交付 (主体是功能模块)

    瀑布式开发模型:需求评审、概要设计、详细设计、开发、单元测试、
    集成测试、上线。如微软的Vista系统,从1997年立项到2005年才问世,但是用
    户反馈并不好,Vista操作系统的开发就是采用瀑布模型。

    增量式开发:则代表产品是在每个周期结束时被逐步交付使用的。如微软在吸取Vista操作系统采用传统的瀑布式开发流程之后,发现操作系统并不能完全覆盖用户的需求。在2005-2007两年时间内 通过内部推行的敏捷开发原则,上线了win7,获得市场的一致好评。

    1.4.3 开发团队和用户反馈推动产品开发

    敏捷开发提倡用户参与到产品或项目开发的整个流程当中,通过用户反馈使得
    产品更加符合用户频繁变动的需求。
    

    1.4.4 持续集成

    采用敏捷开发的产品在产品初期会上线基本功能,之后的功能是根据收集到的
    用户反馈进行开发的,实现功能模块的持续集成。
    

    1.4.5 开发团队自我管理

    传统的开发模式,注重文档约束,而敏捷开发原则的推行原则要求团队内部交
    流便利、文化相对开发,除去必要的文档约束,如Api接口文档,最注重的是团
    队成员的高效交流,以此来提高产品、项目的开发效率、开发质量。
     
    敏捷开发缺点

    劣势:

    但敏捷注重人员的沟通,忽略文档的重要性,若项目人员流动大太,又给维护带来不少难度,特别项目存在新手比较多时,老员工比较累。

    需要项目中存在经验较强的人,要不大项目中容易遇到瓶颈问题。由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大的困难。

    3.领域驱动开发

    服务器后端发展三个阶段:

    1. UI+DataBase的两层架构,这种面向数据库的架构(上图table module )没有灵活性。
    2. UI+Service+DataBase的多层SOA架构,这种服务+表模型的架构易使服务变得囊肿,难于维护拓展,伸缩性能差,见这里讨论Spring Web 应用的最大败笔.
    3. DDD+SOA微服务的事件驱动的CQRS读写分离架构,应付复杂业务逻辑,以聚合模型替代数据表模型,以并发的事件驱动替代串联的消息驱动。真正实现以业务实体为核心的灵活拓展。

      DDD革命性在于:领域模型准确反映了业务语言,而传统J2EE或Spring+Hibernate等事务性编程模型只关心数据,这些数据对象除了简单setter/getter方法外,没有任何业务方法,被比喻成失血模型,那么领域模型这种带有业务方法的充血模型到底好在哪里?

    https://www.jdon.com/ddd.html

  • 相关阅读:
    检测是否安装了新包
    redux和mobx的比较
    ssh登录远程服务器
    法律
    如何解决二方包彼此依赖?
    创业
    【转】裸辞4个月,面试30家公司。
    添加群机器人
    RESTful状态码说明
    MongoDB简单介绍以及基本命令
  • 原文地址:https://www.cnblogs.com/jiexing/p/11627344.html
Copyright © 2011-2022 走看看