作为新人,如何快速融入新团队?用好这8个点

news2024/11/15 13:34:29

大家好,之前在公司调岗,转到了新团队。

从一开始的不适应、不习惯,到现在的逐步习惯,真的就是和那句老话说的一样「有压力才会有成长」,下面晨光会结合在新团队学到的内容进行分享。

文章分为以下几个部分:

在这里插入图片描述

一、代码风格

一)模块划分

一个项目,可按如下步骤进行拆分:

1、从项目中划分页面

2、从页面中划分模块

3、从模块中拆分组件

4、模块需分离视图和逻辑

按照这样的步骤,代码目录也更为清晰。

二)注意事项

1、以代码可读性为第一优先级

2、代码书写规范需尽量保持一致

3、视图和逻辑分离,提高代码整洁性和复用率

这里的分离主要是把数据处理等逻辑性的内容都放在 model 层,而 view 层大都为纯展示的数据,只有少量的数据处理。

4、文件和文件夹的命名也需尽量语义化

二、开发流程

一)分支

每位开发在开发前,需从主仓库 fock 一个自己的仓库,需在自己仓库的 dev 分支开发

二)提交

提交时需要先提交到自己的仓库中,再提一个 merge request 合到主仓库。

每次提交到主仓库都需要同事来 review 并 merge

三)Bug 修复

好多时候需要 mock 数据来复现测试同学提的 bug,不需要 fiddler 等其他代理工具,有专门的 mock 数据平台,更加方便快捷,开发效率也大大提升。

三、发布流程

以前 B 端项目发布,基本都是静态资源发布的方式,现在发布需要打包到 app 中,或通过增量的方式下发新功能,或 bug 修复

一)代码发布

等 merge 通过,就可发布到测试环境,然后可在手机上根据增量 id 下载增量,测试同学就可以测试对应到功能。直到测试通过,产品验收后,可灰度发布,也可直接发布到生产。

二)开关发布

开关可做流量控制,比如某些功能灰度,也可用来控制各种实验版本。

配置好开关后,在代码中写入开关控制逻辑,发布开关和代码,开关可只开 5% 或 10% 等直到流量全部放开,就可把开关和代码下线。

四、事件排查

一)排查工具

另外由于是 C 端开发,用户量大,且所有数据都需加密,查日志时,也需要通过专门的工具才能解密数据。

二)响应速度

生产出故障后,需快速响应,周末也需要有一个人随时响应,做排查或修复,比如周六上午发现的问题,不可拖到周一再响应。

开发原则「事件是第一优先级」

还有一句「敬畏生产」

三)和 B 端的区别

B 端,大多数是以「能用」为主。能用,就是只要功能实现即可,美观,性能等,多数时候都不是第一优先级,不过现在 web 端有各种组件库,好多基础样式都可直接复用,因而美观性也得到了很大的提升。

而 C 端以用户为主,各种新功能的推出,主要是以用户留存,用户体验为主,在功能实现的前提下,质量和性能也是很重要的部分。

五、文档梳理

一)大纲

现在团队,会有专门的文档梳理任务,文档的目录结构也都基本统一,一般按页面维度梳理为一个文档。

文档包含以下模块

  • URL参数,以及各参数说明
  • 代码目录结构说明
  • 页面PageID,用于查看埋点数据统计
  • 模块对应页面截图,防止找不到对应的页面模块,有截图更直观一些
  • 流程图,页面相关流程
  • 外部服务调用,页面上的请求以及对应的负责人
  • 跳转页面,某些按钮点击会跳转到一些对应的页面

二)流程图

流程图主要是页面流程相关,一些比较宏观的东西。而晨光以前整理的文档,都包含较为细节的内容,但实际上根据代码模块,就可以找到对应的字段和逻辑。

以前用各种文字描述半天都理不顺的逻辑,现在用流程图就变得更加清晰。

  • 页面路由图
  • 页面加载流程图
  • 页面各模块流程图

模块对应页面截图,也会贴在文档中。项目迭代快,没有专人专事这一说,因而文档需要更清晰,流程图+页面截图,就会更为直观了。

六、技术氛围

整个大组内,每周都有分享会,一周技术分享,一周 CodeReview,每两周一个循环。

每周分享会结束后,会定下次分享的主题,然后再从某个组抽某个人作为下次的分享嘉宾。

一)技术分享

分享的主题,可以是公司内部的一些工具,也可以是一些常用的主流框架,例如 react,react18

分享嘉宾会提前制作 ppt,分享结束会有一些交流,从这些分享中,可以学到一些晨光以前没听过、没用过的工具和技术。

因为一个人的精力总是有限的,但通过这种分享会,可以从他人那里学习一些技术经验,感觉技术氛围还蛮不错的。

二)codeReview

可以是 review 自己的代码,也可 review 他人的代码。

1、 review 自己的代码

可能会存在扬长避短的情况,只体现自己牛逼的地方,差的地方一概不谈,长期这样,无法发现自己的缺点,存在一些弊端。

2、 review 他人代码

需要提前和被 review 的人沟通,找一两个 commit,了解需求背景,然后分析 commit,可以写成文档,也可以做成 ppt 。

虽然个人认为写文档就可以了,但不得不说,ppt 的效果更佳,你也可以理解为是卷的一种。

七、初次分享

第二周的分享会结束后,通过摇骰子的方式抽下一次 codeReview 的人,很幸运又很不幸,晨光被抽到了。

一)第一个「吃螃蟹」的人

review 他人代码是在某次分享会上刚拍板的,晨光作为第一个「小白鼠」去 review 别的组的代码,不太知道其中的注意事项。

因而只能在对方提供的 commit 中认真的找了很多书写不规范的点,在 review 时,一本正经的说出了自己所列的点,当时晨光觉得自己可神气了。review 的过程中并没有意识到有什么问题。

直到结束时,领导问,代码里有没有什么好的点是值得学习的,晨光说「通过本次 review 学习了以前没有了解过的浏览器 API。」结果就感觉整场尬住了,晨光突然就想找个地缝钻进去。

后来,领导帮我圆了场,说到,「其实他们组的代码质量挺高的。」,气氛才稍微不那么尴尬,但等 review 结束,整个人感觉都不太好了。

二)怎么正确的「吃螃蟹」

后来给小伙伴们大致讲述了晨光 review 整个过程,问小伙伴们怎样才是正确的 review 的方式。

闫小林说:下次先说优点,不好的留在后面说。

飞巴说:记得优缺点都要有,不可只看半边。

晨光才恍然大悟,并记录了下来,与人沟通的这些软技能,还需要继续学习。

八、单元测试

一)如何写单元测试

组里面采用的 jest 写测试用例,配置简单,上手容易。

但一开始,晨光不太熟悉怎么写,就根据已有的 test 进行模仿,感觉摸着门路后,写了几个文件的用例,但是覆盖率却一直上不去。

后来发现,需要每一行都执行到才行,而晨光写的 test 只覆盖到很少的一部分。

比如

回调函数没有执行

if else 只执行的了 if

try catch 只执行了 try

switch case 只执行了其中一种 case

后来经过摸索,对于这些覆盖不全的测试用例,晨光找到了解决办法

1、回调函数

mock 那个需要传入 callback 的函数,内部执行 callback 即可

2、if else

通过不断 mock 传入的值,函数执行多次,把 if else 都走一遍。

3、try catch

可以多次执行此方法,mock try 内部的某个方法 Reject error,外部就可以 catch 到

4、switch case

和 if else 一样,多次 mock ,多次执行即可。

二)写单元测试的好处

好的单元测试是为了检查代码的问题,而不是为了覆盖率而写单元测试,但现在做需求的时候,可能会出现时间紧,来不及写,到后面再补测试用例的人和开发的人不是同一个,所以就有了为了覆盖率而写的情况。

写单元测试的好处:

1、可覆盖多种场景

2、检测代码中存在的问题,保证代码质量

一开始晨光觉得单测就是纯粹的为了提升覆盖率而写,直到写某个 case 时,发现某个分支一直覆盖不到,回过头认真查看了代码后,发现是逻辑写的有问题。反馈给对应开发调整后,覆盖率上去了,代码看着也没什么问题了。

直到这时候,晨光才发现,写单元测试确实可以检测出代码的一些问题。「存在即合理」

九、思考感悟

曾经,在原来的团队,感觉自己文档写的还不错,基本没有一个人能把文档写的和晨光一样好, 但在现在的团队,晨光感觉完全发挥不出作用,因为随便拉出来一个人,都比晨光写的好。当然这也是一个不断学习的过程,在被打击的同时也在不断的学习。

以前,晨光以为自己什么都会了,在各种项目之间来回切换都游刃有余,而现在只有 2 个项目,晨光都觉得很头大。

一个月的时间,熟悉新团队的各种东西,让晨光意识到自己只能是个新人。

曾经引以为傲的一切,在这儿,都会受到些许打击。就连写文档,画流程图,都会被多次指出问题,很多时候晨光都有些自我怀疑。

但换个角度又觉得这样很好,毕竟存在反馈和压力,才会有进步,否则总以为自己很厉害,到头来却什么都不是。

要学的东西还有很多,不要自满,虚心学习,每个人都有自己的长处,写文档也有很大学问,不可只拘泥在自己的一方小世界里,而是需要有更多的大局观;多沟通,自己捣鼓很久都搞不定,可以和同事交流,寻找新思路。

祝晨光能在新团队学习更多,更快速成长,也祝大家的工作事业能够顺顺利利~


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过云速搭CADT实现云原生分布式数据库PolarDB-X 2.0的部署

云速搭 CADT 是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构…

人力资源数字化转型,是企业高质量发展的关键

情景一 中层管理者,每天不是在开会,就是在帮下属解决问题,时间被搞的一团乱麻; 为了顺利推进项目,总是把自己逼成卷王,即使如此也没能挽救业绩下滑的命运。 情景二 由于业务能力出色被提拔带团队的新晋…

计算机网络-传输层(UDP协议报文格式,伪首部,UDP校验过程)

文章目录1. UDP协议UDP报文格式UDP校验过程1. UDP协议 UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。 UDP的主要特点: UDP是无连接的,减少开销和发送数据之前的时延。 UDP使用最大努力交付,即不保证可靠交付。 UDP是…

webpack5 Preload / Prefetch解决按需求加载速度

代码分离 | webpack 中文文档webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换(transform)、打包(bundle)或包裹(pa…

vue_mixin混入

目录官网基本概念什么是Mixin混入和组件的区别混入和vuex的区别mixin的优点mixin的缺点使用mixin语法mixin局部混入-mixins全局混入-Vue.mixin方法(不推荐)mixin与组件合并逻辑[1]data数据总结举例说明[2]methods方法总结举例说明[3]生命周期函数总结举例说明问题:一…

Linux 进程信号

目录 一.信号 1.介绍 2.信号概念 3.查看系统定义的信号列表 4.信号处理的方式 二.信号产生前 1.用户层产生信号的方式 三.产生信号 1.通过按键产生信号 2.调用系统函数向进程发信号 (1)kill (2)raise (…

大学生WEB前端静态网页——旅游介绍35页 响应式,

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游景点介绍 | 旅游风景区 | 家乡介绍 | 等网站的设计与制作| HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 CSS&…

Android 高通 Launcher3 添加桌面快捷方式

1、最近接到产测一个需求,需要在首页WorkSpace添加产测apk快捷方式,于是乎我去查看了一下Android12的源码,包名/build3/zm/Em_TK1080/EM_TK1080_prj/EM_TK1080_prj/qssi12/packages/apps/Launcher3/res/xml 主要修改文件 default_workspace…

TCP程序设计基础

TCP网络程序设计是指用Socket类编写通信程序。利用TCP协议进行通信的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序。两者的功能和编写方法不大一样。服务器端与客户端的交互过程如图所示: 1. InetAddress类 java.…

用 Kafka + DolphinDB 实时计算K线

Kafka 是一个高吞吐量的分布式消息中间件,可用于海量消息的发布和订阅。 当面对大量的数据写入时,以消息中间件接收数据,然后再批量写入到时序数据库中,这样可以将消息中间件的高并发能力和时序数据库的高吞吐量联合起来&#xf…

关于报表打印

1 分页策略 分页与打印时密切相关的,皕杰报表提供了四种分页策略,即按纸张大小分页、按数据行数分页、按数据列数分页、用户自定义分页和不分页。分页由2个因素来控制,一个每个页面的大小,另外一个是分页顺序(打印顺序…

如何将抓取下来的unicode字符串转换为中文

如果抓取的数据是json数据,那么直接将抓取的数据用json格式输出出来就行了。如下: response requests.get(url, headersheaders).json()那么大家遇到如下的unicode字符串的是如何解决的呢?如下图所示: 相信大家遇到这种一定会抓狂吧&#…

一种改进Harris算子的角点特征检测研究-含Matlab代码

⭕⭕⭕⭕ 目 录 ⭕⭕⭕⭕✅ 一、引言✅二、Harris角点检测算法✅三、角点检测实验验证✅四、参考文献✅五、Matlab代码获取✅ 一、引言 将图像中灰度变化剧烈或者在图像边界上曲率变化较大的点称为角点。角点检测对于工件图像的特征点定位有着重要作用,在进行工件的…

MySQL高级学习笔记(一)

文章目录MySQL高级学习笔记(一)1.索引1.1索引概述1.2索引优势劣势1.3索引结构1.3.1BTREE 结构1.3.2BTREE 结构1.3.3MySQL中的BTree1.4索引分类1.5索引语法1.5.1 创建索引1.5.2 查看索引1.5.3 删除索引1.5.4 ALTER命令1.6 索引设计原则2.视图概述2.1创建或者修改视图2.2查看视图…

【python3】5.正则表达式

本学习内容总结于莫烦python:5.正则表达式 https://mofanpy.com/tutorials/python-basic/interactive-python/regex5.正则表达式 本章较为重要,单独拿出来成章了 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。 …

【数据结构】栈和队列的实现(C语言)

前言 栈和队列都是重要的线性结构,即在使用层面上收到限制而发挥特殊作用的线性表。掌握这两种结构在不同情景下亦会发挥重要作用。 栈 定义 栈保持着后进先出的原则,正因如此在插入数据的时候要求只能从一段插入,称为栈顶;相反另…

Arduino与Proteus仿真实例-电子相册仿真

电子相册仿真 本次实例将仿真如何从SD卡读取BMP格式图像并在ILI9341驱动器的LCD显示屏上显示。 1、仿真电路原理图 在仿真电路原理图中,SD卡通过SPI方式连接,ILI9341 LCD显示屏也是通过SPI方式连接。SD卡的CS引脚连接Arduino Mega2560的SS引脚(Pin10),显示屏的CS引脚连接…

竞赛——【蓝桥杯】2022年11月第十四届蓝桥杯模拟赛第一期Java

1、二进制位数 问题描述 十进制整数 2 在十进制中是 1 位数,在二进制中对应 10 ,是 2 位数。 十进制整数 22 在十进制中是 2 位数,在二进制中对应 10110 ,是 5 位数。 请问十进制整数 2022 在二进制中是几位数? 答案…

数据管理技术的发展经历了哪三个阶段

数据管理技术是指对数据进行分类、组织、编码、查询和维护,它是数据处理的中心问题; 随着计算机技术的不断发展,在应用需求的推动下,在计算机硬件、软件发展的基础上数据管理技术经历了人工管理、文件管理、数据库管理3个阶段。每…

CircRNA+代谢组如何冲击22分高分文章?

发表期刊:Cell Metabolism 影响因子:22.415 发表时间:2019年5月30日 合作单位:中国科学技术大学 Biotree协助客户中国科学技术大学吴缅教授和安徽医科大学胡汪来教授及其研究团队在国际顶尖期刊《Cell Metabolism》上发表名为…