Home 成长之路 Leetcode题解

0 137

之前做研发的时候,因为我刚入职,需求都是由我的导师和Leader分配的,所以给到我手里时只需要我设计方案并给出工期,没有关注标准的需求研发流程。

此时,我已转岗至业务中台测试岗,在这边有标准的研发流程,我想是可以参考的,因此特意记录。

 

一、标准研发流程图

二、标准研发流程说明

1.角色关系

产品和研发的关系

  • 产品要具备独立性,独立成立产品团队/部门,独立开展工作;
  • 产品负责需求,需求决定了开发实现什么,故相关开发人员(负责相应功能模块的开发人员)一定要参加需求评审会议以便及时了解需求;
  • 开发人员最怕什么?十个有九个会说需求又变了,所以产品对于需求变更一定要慎重,通过建立起相应的需求管理规范和制度来做到无随意的需求变更,需求变更后干系人都能及时得到通知;
  • 开发人员要彻底理解需求,这是进行开发的前提;开发人员要多和产品人员沟通,及时消除对于需求的误解和疑惑;

产品和测试的关系

  • 测试人员(一般都会开展交叉测试,所以都参与)一定要参加需求评审会议以便及时了解需求;
  • 测试人员依据需求文档设计编写出测试用例后一定要进行测试用例评审并一定要邀请产品人员参会;因为产品人员对需求是最了解的。
  • 需求确认变更后测试人员要及时得到通知并尽快更新测试用例并根据实际情况是否进行测试用例评审。

测试与研发的关系

  • 测试要具备独立性,独立成立测试团队/部门,独立开展工作;
  • 测试人员要懂代码(看懂代码是基础,会写代码更好),懂代码是和开发团队的沟通利器,也是开展自动化测试的基础。当今语言很多,个人认为优先掌握Java或者Python;
  • 测试人员要有一定的沟通能力,报告缺陷时请描述清楚但去除不必要的测试步骤,也别忘了描述测试环境等相关信息,可以附带缺陷出现的截图,日志文件,甚至录制一段重现缺陷的视频都是让开发人员迅速重现缺陷的很好的办法;
  • 测试人员在报告缺陷时如有把握,可以给出解决方案,这样的测试人员我相信开发人员一定很喜欢。

2.会议类型

需求评审&需求澄清会议

产品:主持人;需要说明需求背景、需求内容、需求目标、需求完成的时间点,并通过会上讨论完善需求或者调整需求。

研发:在与会前需要大致了解需求,会上以自己对产品or业务的理解,逐一与产品、测试确认需求点,对需求不合理的地方提出质疑,可要求产品重新评估。研发人员需要更关注需求实现层面,例如实现难度、实现方式是否合理等。

测试:在与会前需要大致了解需求,会上以自己对产品or业务的理解,逐一与产品、研发确认需求点,对需求不合理的地方提出质疑,可要求产品重新评估。测试人员需要更关注需求所带来的影响,例如是否会影响线上业务、是否存在潜在风险点等。

注:会议可分三阶段:会前、会中、会后;

  1. 会前要求各方对需求有大致了解。
  2. 会中要求各方落实需求细节,并记录待修改、待确认的问题,不可有遗漏点。
  3. 会后要求各方对会议提出的问题进行跟进,产品及时更新需求Tapd文档,研发及时更新需求技术方案,测试及时调整设计用例。

需求阶段结束、进入方案阶段

需求评审&需求澄清会议

 

1.refuse  拒绝

She asked him to leave,but he refused;

她叫他走,但他不肯

2.soluble 可溶的;可解决的

water soluble

水溶性的,溶于水的

3.brave 勇敢的

brave soldiers

勇敢的士兵

4.hat 帽子

Maria was wearing a beautiful new hat;

玛利亚带上了一顶新帽子

5.beach 海滩,湖滩,河滩

a sandy beach

沙滩

6.authority 当局,官方;权利

an argeement(协议;同意,一直) between the US and Colombian authorities

美国和哥伦比亚当局之间的协议

7.roast 烤;烘

Are you going to roasting the chicken?

这鸡你准备用来烤吗?

8.amplify 放大,扩大;增强

an amplify guitar

带有扩音设备的电吉他

9.bulk

大部分;体积,块头

The bulk of consumers are based in towns;

大部分消费者是城镇居民

10.certificate  证书,执照;合格证书,文凭

birth/death/marriage certificate

出生/死亡/结婚证书

11.dragon 龙

She worked a dragon on the new linen(亚麻) colth(布料)

她在新的亚麻布上绣了条龙

12.capable 有能力的;有才能的

I don’t think he’s  capable of murder(谋杀,凶死);.\

我不认为他有能力杀人

13.criticism 批评;批判;评论

Despite(尽管;不管) strong criticism ,the new system is still in place

尽管遭遇了猛烈的批评,新制度依然原封不动

14.accommodation 住所;工作场所

The price for the holiday includes flights and accommodation

度假的价格包括机票和房费

15.imply 暗示,意指

an implied threat 

隐含的危险

16.December 十二月

Last December they visited Prague

去年十二月他们去了布拉格

17.president 总统;最高权利人

Preasident Bush  步什总统

former president 前任总统

vice president 副总统

18.lately 最近,不久前

What have you bean doing lately?

你最近在干什么?

19.down  向下;在下面

Davied bent down to tie his shoelace(鞋带)

戴维弯腰系鞋带

20.matter 事情,物资

There are more important matters we need to discuss(讨论;论述,辩论)

21.lake 湖

Lake Michigan

密歇根湖

22.nor 既不…也不

He can neither read nor write

他既不会读也不会写

23.bench 长凳,条凳

We sat on a park bench

我们坐在公园的长椅上

24.stable 稳定的

 

 

https://blog.csdn.net/weixin_40001125/article/details/88663468

 

 

疑问

  1. 问:什么时候使用转发,什么时候使用重定向?

    如果要保留请求域中的数据,使用转发,否则使用重定向。

    以后访问数据库,增删改使用重定向,查询使用转发。

  2. 问:转发或重定向后续的代码是否还会运行?

    无论转发或重定向后续的代码都会执行

在springMVC中,/和/*的区别

/:只匹配所有的请求,不会去匹配jsp页面
/*:匹配所有的请求,包括jsp页面

我们的jsp页面直接返回给用户,如果写了/*,会再走一遍,变成hello.jsp.jsp成为死循环
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>




此处应有图

 

 

 

 

简要分析执行流程

1.DispatcherServlet表示前端控制器,是整个SpringMVC的控制中心,用户发出请求,DispatcherServlet接收请求并拦截请求

我们假设请求的url为:http://localhost:8080/SpringMVC/hello

如上url拆分成三部分:

http://localhost:8080服务器域名

SpringMVC部署在服务器上的web站点

hello表示控制器

通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的hello控制器

 

2.HandlerMapping为处理器映射;DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler;

 

3.HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器, 如上url被查找控制器为:hello

 

4.HandlerEexcution将解析后的信息传递给DispatcherServlet,如解析控制器映射等

 

5.HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler

 

6.Handler让具体的Controller执行

我们需要实现封装对象和视图跳转

7.Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView(给前端带一些数据并执行前端页面是哪个)

 

8.HandlerApater将视图逻辑名或模型床底给DispatcherServlet

 

9.DispatcherServlet调用视图解析器(ViewResolver)来解析HanlerAdapter传递的逻辑视图名

<!--    视图解析器:DispatcherServlet给他的ModelAndView
        1.获取了ModelAndView
        2.解析ModelAndView的视图
        3.拼接视图名字,找到对应的视图    /WEB-INF/jsp/hello.jsp
        4.将数据渲染到这个视图上
-->
<!--    添加视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!--    前缀-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--    后缀-->
    <property name="suffix" value=".jsp"/>
</bean>

10.视图解析器将解析的逻辑视图名传递给DispatcherServlet

 

11.DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图

 

12.最终视图呈现给用户

 

 

程序员所要做的事:

1.Controller层调用业务层

2.设置视图返回的名字

 

字符型常量和字符串常量的区别

1.形式上:字符常量是单个引号引起的一个字符;字符串常量是双引号引起的0个或若干个字符

2.含义上:字符常量相当于一个整型值(ASSIC值),可以参加表达式运算;字符串常量代表一个地址值(该字符串在内存中的存放位置)

3.占内存大小:字符常量只占两个字节;字符串常量占若干个字节(注意:char在Java里占两个字节)

补充:Java要确定每种基本类型所占存储空间的大小;它们的大小并不像其他语言那样随机器硬件架构的变化而变化;这种所占存储空间大小的不变性是Java程序比其他大多数语言编写的程序更具可移植性的原因之一;