美文网首页
学习总结:WorkShop(一)

学习总结:WorkShop(一)

作者: 茶与树 | 来源:发表于2017-06-23 18:22 被阅读0次

学习总结:WorkShop(一)

基于RestfulAPI的Service服务-Micro-Service to ingestion auto seller data

  • What is a /Workshop/?(2 min)
  • Rest API introduction (5 min)
  • Workshop demo Q & A.(10~15 min)
  • New requirement introduction and analysis (5 min)
  • Task separation (20 min)
  • Work out solution (20 min)
  • AML (20 min)
  • Pair programming (TDD?) (1 hour)
  • Docker & Deployment (30 min)
  • Free talk (30 min ~ 1 hour)</br>

    初入IT行业,承蒙老师(阿尔法二狗)指引,于17年6月10日在thoughtwork开始生涯中第一次Workshop,
    记录下学习心得,以备日后查看。新手上路,大佬们多多指教。

一、Workshop

Workshop最早的定义为,由几个人进行密集讨论的集会,通常需要当场练习,后续在IT行业广为
推广,为求“跳脱喧嚣、远离噪音、沉下心一起做一次深潜”为愿景。

二、Restful架构

1、概述

"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时、
高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领
域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使
得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。

    RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、
 扩展方便,所以正得到越来越多网站的采用。(引用自:阮一峰博客“理解restful构架”)

REST(Representational State Transfer)如果一个架构符合REST原则,就称它为
RESTful架构。

      ps:Representational State Transfer 中,这里省略了主语Resource,State为资
 源的状态,Reset可以理解为用户在使用互联网软件的过程中,资源的状态的转化。(个人理解)

2、分类说明

1)资源(resource)

资源,即为网络上的具体信息。文字、图片、音频等等都可以视为资源。每一种资源都有与之对应的
特定的URI,想要获取特定的资源,就要访问与之相对应的URI。
eg:Uri resource(/companies/{id}/employees/{id})

2)表述性(representational)

资源是一种信息,信息有各种各样不同的表述方式,具体的表述方式就是资源的表述性。

    eg:文本资源的表述性可以为:TXT,HTML,XML,JSON等。

3)状态转换(state transfer)

 互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,
 如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。
 而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。
 (引用自:阮一峰博客“理解restful构架”)

具体来讲就是HTTP协议下常用的四种方法:GET(查找)、POST(新增)、PUT(更新)、DELETE(删除)

三、Service Demo Q&A

  • Q:阅读完全未接触过的代码时,使用什么方式可以快速的了解代码的架构。</br>
    A:对于Rest API架构的代码来说,可以通过Controller快速了解RestAPI构成,阅读modules可以快速
    的了解项目数据结构。

  • Q:Rest API架构的项目开发过程中,有哪些实用的工具。</br>
    A:

    1. Curl:curl是利用URL语法在命令行方式下工作的开源文件传输工具</br>
    2. postman:自带UI的Web开发工具,更加方便实用和测试</br>
    3. Raml:RAML的全称是RESTful API建模语言,这是一种基于YAML格式的新规范,人机都能很好的理解。
  • Q:测试代码的原理。</br>
    A: 设定好被测模块的运行目标,当测试代码得到该结果时,证明被测模块功能正常。

四、完整的项目开发模块和需求分析方法

1、项目开发模块

 Project{
    Coding{
        Dao
        Controller
        Service
        Model
        ...
    }
    Doc{}
    Test{
      UI AutoTest
      UnitTest{
          Junti
         ...
      }
    }
    Deploy{}
 }

2、需求分析方法

在收到客户需求后,一定不能直接根据大致的理解就进行项目的开发,这个时候的Coding大部分都是废品,
在理清需求之后大部分,甚至全部代码都需要返工,所有盲目的编写代码是项目开发中最大的忌讳,而与之
相对的,分析客户需求成了重中之重。</br></br>
首先,对需求进行分级,用户提出的需求作为最高等级。从最高等级的需求开始拆分,将需求尽量的细化成
一个一个有逻辑关联的单功能模块,便于分单元开发与测试。</br></br>
一般需求都会拆分两至三次,最低级的需求要求实现单一功能,设计好模块的输入和要求的输出。完成好最
低级需求的分析后才可开始按模块的进行开发。</br></br>
建议:开发与测试同步进行。

相关文章

网友评论

      本文标题:学习总结:WorkShop(一)

      本文链接:https://www.haomeiwen.com/subject/hpnccxtx.html