软件开发流程 Acemyzoe

Software development process

软件开发生命周期 software development life cycle(SDLC)

方法

  • 敏捷开发:迭代开发+增量开发
    • 开发原则:
      1. 通过尽早并持续交付有价值的软件来使客户满意。
      2. 即使在后期开发中,也欢迎不断变化的需求。
      3. 频繁交付工作软件(数周而不是数月)
      4. 商界人士与开发人员之间的紧密日常合作
      5. 项目是围绕积极进取的个人建立的,应该值得信任
      6. 面对面的对话是最好的交流方式(同一地点)
      7. 工作软件是进度的主要衡量标准
      8. 可持续发展,能够保持稳定的步伐
      9. 持续关注技术卓越和良好的设计
      10. 简洁性(最大化未完成工作量的艺术)至关重要
      11. 自组织团队会提供最佳的架构,需求和设计
      12. 团队定期思考如何提高效率,并做出相应调整
    • 敏捷软件开发框架
    • 敏捷软件开发实践
  • 迭代开发
    1. 需求分析(requirements analysis)
    2. 设计(design)
    3. 编码(coding)
    4. 测试(testing)
    5. 部署和评估(deployment / evaluation)

实践

  • 测试驱动开发 Test-driven development (TDD)
    • 将需求转换为非常具体的测试用例,然后对代码进行改进以使测试通过
  • CI/CD 持续集成以及持续交付持续部署
    • 持续集成CI是每天将所有开发人员的工作副本合并到共享主线中的一种做法。
    • 工作流程
      1. 在本地进行测试
      2. 用CI编译代码
      3. 在CI中运行测试
      4. 从CI部署工件
    • CI / CD生态系统的关键组件是测试环境,它通过在软件交付的早期阶段自动发现最严重的错误来减少测试时间。

SaaS

软件即服务 Software as a Service

在这种交付模式中,软件仅需通过网络,不须经过传统的安装步骤即可使用,软件及其相关的数据集中托管于云端服务。

Rest

Representational State Transfer

web服务实现方案:Rest、SOAPXML-RPC

  • 基于HTTPURIXML以及HTML现有的广泛流行的协议和标准。
  • 资源是由URI来指定。
  • 对资源的操作包括获取、创建、修改和删除,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
  • 通过操作资源的表现形式来操作资源。
  • 资源的表现形式则是XML或者HTML,取决于读者是机器还是人、是消费Web服务的客户软件还是Web浏览器。当然也可以是任何其他的格式,例如JSON。

RESTful API

  • 直观简短的资源地址:URI,比如:http://example.com/resources
  • 传输的资源:Web服务接受与返回的互联网媒体类型,比如:JSONXMLYAML等。
  • 对资源的操作:Web服务在该资源上所支持的一系列请求方法(比如:POST,GET,PUT或DELETE)。
资源 GET PUT POST DELETE
一组资源的URI,比如https://example.com/resources 列出URI,以及该资源组中每个资源的详细信息(后者可选)。 使用给定的一组资源替换当前整组资源。 在本组资源中创建/追加一个新的资源。该操作往往返回新资源的URL。 删除整组资源。
单个资源的URI,比如https://example.com/resources/142 获取指定的资源的详细信息,格式可以自选一个合适的网络媒体类型(比如:XML、JSON等) 替换/创建指定的资源。并将其追加到相应的资源组中。 把指定的资源当做一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源。 删除指定的元素。