开发测试平台难吗?

测试开发栈

共 1878字,需浏览 4分钟

 · 2022-08-27

有挺长一段时间没出来正儿八经的分享干货了,今天登录后台一看,关注人数居然没掉还增了不少,这让我有些惭愧,暗自觉得有必要抽空继续写作下去,给关注我的朋友们带来一点价值。

关于近况?

来深圳有1年零8个月了。这期间一直在做着测试开发相关的工作,很感激又积累了一些大厂经验(解释下我还在的,没有润)。业内的裁员消息此起彼伏,虽然不乏各种自媒体和XX平台的焦虑话题热炒,但确实感觉卷的又更厉害了,体验比之前差了一些,但大环境如此却又好像无可奈何(听说读书可以破万卷),做好当下,以不变应万变。

关于主题?
以前我喜欢写纯技术主题的内容,这种知识分享确实简单明了,别人拿来就可以用,但是对于我来说总有技术话题枯竭的时候(其实是水平有限,江郎才尽,没得写了),所以后面可能会尝试各种主题风格,当然核心还是测试开发相关技术,只为了找到一个比较舒适的表达和分享方式(比如今天这种)。

说点有价值的?

之前在交流群里,听到很多同学在问如何开发测试平台,需要什么知识?开发测试平台——曾经这是很多业务线测试er心中难以逾越的技术高度,包括当初我也是,可是随着工程技能的提高(注意我说的是工程技能),发现这并不是很复杂的事情。

为什么我用的是工程技能?而不是编程技能?

后面接触很多同事和圈内人士才发现,其实只要是这个行业内大家的编程基础都不算差,if - else - for - while 大家都懂,可是为什么实践起来就犯难了呢?其实就是缺乏工程能力,不知道怎么去搭建工程、拆解模块、分析程序业务……

工程能力就好比房子的设计和搭框架结构的能力,编程实现就好比给房子结构里面添砖加瓦,总的来说工程能力是包含了一定的设计和架构能力的,需要有全局的思维,不仅仅只是盯着编程实现。具体表现为解决下面几个问题:

1、技术如何选型?

要实现这个功能或平台之前,你得先确定用什么编程语言、用什么框架、用什么来存储……?这就是技术选型,你需要结合你自身或团队的技术栈来选择合适的语言和框架。

2、业务模块如何拆解?

为啥要拆解,主要是两方面考虑,一是用于业务分析,编程也要对应具体的业务需求,如果不拆解分析,稍微复杂点的业务,就容易导致逻辑不清、流程不明,实现全靠感觉,这样功能的实现后不就是灾难吗?二是用于团队开发模式,团队成员分工和工时评估都是基于这些。

3、工程结构如何搭建?

前面准备工作都完成了,现在要具体的实施了,工程结构如何搭建呢?打开IDE,从创建项目开始,根据你的项目特点(比如web项目、纯后台项目、多平台项目等)选择不同的项目类型(通常IDE都会根据你的项目类型自动给你生成项目结构)。

各种语言各种项目模式,不过核心就只有一个:前台负责展示,后台负责数据和计算。基于这个核心不管你什么花里胡哨的模式,都逃不过这个工程结构:
common层:放一些通用方法、类,比如errors、常量等
controller层:控制器层,放跟前台交互的接口映射入口和路由
service层:可以理解是controller的具体业务逻辑实现层,包含与dao层的数据交互
dao层:数据层,包含models模型数据定义等,跟db或缓存之类的crud操作
utils层:工具类,也可以放common里面

4、基于结构编码实现

前期编码实现可以就按着结构去写就行了,即使有冗余代码和结构也没关系,等你多实践几次熟练后,可以结合编程的设计理念(各种继承、多态、聚合、封装等)来优化你的代码。

5、前后台如何关联?

有些同学可能对前后台是如何交互的还不太了解,那么你打开一个web页面,按下F12显示出开发者工具栏,再刷新下页面在右侧网络tab可以看到各种请求,这些请求除去资源类,其他基本都是与后台交互的http请求。
目前最常见的就是前后台分离的交互模式,前台负责渲染和展示,后台提供接口来实现数据和业务逻辑,前台通过请求接口向后台拉取数据。

6、服务如何部署?

前后台服务都写好了,web服务为例,这时候你发现请求的都是ip:端口的方式,对外使用还是不够方便,这就还需要绑定域名,通过再启动一个nginx反向代理服务来绑定域名和前后台服务的ip,这样就能通过域名友好的访问了。

注:当然上述几个问题单独拎出来每个都能写一篇大长文,这里作为引入就点到为止,后续可以慢慢铺开写。

浏览 51
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报