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

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

文章分为以下几个部分:

一、代码风格

一)模块划分

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

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%免费】

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

  1. 【第1155期】如何快速融入新团队?

    前言 2017年,最后一天,你晚上准备跟谁一起跨年呢?鉴于近一段时间观察到的现象,或者 你刚进入一家公司,可能这个问题你可以多注意了.今日早读文章由美的@姬小光授权分享. 正文从这开始~ 话说人际交往 ...

  2. 快速融入新团队的一点个人体会

    开始一份新的工作本身就是一个不大不小的挑战,而目前自己也整处在这么一个过程之中,其他的琐事先不讲,这里记录一下自己在进入一个新的工作组后,熟悉已有产品的一些想法: 首先,我们可能会收到来自PM的一系列 ...

  3. 如何快速融入一个团队?

    作者:邹溪源,长沙资深互联网从业者,架构师社区特邀嘉宾! 一 我们难免需要离开一个圈子,加入一个陌生的集体.毋庸置疑,离开熟知的圈子,走向未知的圈子难免会产生许多畏惧甚至情怯,这都是人之常情,但不同的 ...

  4. 【产品经理】产品经理如何快速融入新公司开展工作

    产品经理进入新公司应该如何快速开展工作呢?本篇文章作者为你解答,作者以产品规划为基础,分别从六个方面分享了快速开展工作的具体方法,一起来看一下吧,希望对你有帮助. 一.了解公司 我把了解公司放在了第一 ...

  5. 新员工如何快速融入新的工作环境

    1.放正心态,积极主动,虚心请教,多学多问 无论你是否有工作经验,你进入一个新公司和新的工作环境,都有很多需要你去学习的东西.每个企业都有自己的企业文化和工作模式,不要去生搬硬套原来的工作方法,而应该 ...

  6. 研发新人如何快速熟悉新项目和业务

    进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构. 如果碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好.但很可惜,我没有碰到这样的人,在加入新公司后,带我的 ...

  7. 新人如何快速上手新项目?

    按楼主的经验和知识,本文总结了应用开发中的各种存储架构,从易到难,从起步到起飞.如有不对之处,欢迎留言. 1.单库 最简单的初始架构,适用于千万级以下的数据,并发量低的场景. 单库.单表 或单库.多个 ...

  8. 如何帮助新员工快速融入团队?先搞清楚“融入”背后的难点,再对症下药

    当一名新员工加入企业时,面对着陌生的环境.陌生的同事,除了新奇感,也必会心存疑虑:自己能否受到同事与领导的欢迎?能否胜任新工作?未来能否得到不错的发展?- 其实,融入新团队从来不是一件简单的事,而且在 ...

  9. 程序员加入新团队必问的 20 道问题

    ‍‍ 作者 | Thomas Stringer 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 不同的软件开发团队做事的风格也完全不同.即使在同一家公司内,许多可变因素也会导致团队之间出 ...

最新文章

  1. 1354. 等差数列【一般 / 暴力枚举】
  2. 233 Matrix HDU - 5015
  3. c#字符型转化为asc_C#字符串和ASCII码的转换
  4. c4d流体插件_(图文+视频)C4D野教程:TFD、XP和RF三大流体插件协作案例
  5. python迭代器和生成器_Python迭代器与生成器
  6. JavaScript实现消消乐-源代码
  7. 通用Excel库存管理系统 最好用的Excel出入库管理表格 带VBA源代码,代码公开【亲测非常好用】
  8. html 百度地图坐标拾取,百度拾取坐标系统坐标反查是什么意思
  9. TM1622的程序设计实现
  10. 申请企业邮箱的好处,哪个企业邮箱好用?企业邮箱功能对比排行榜
  11. 实例介绍fullpage.js常用的配置和方法
  12. MATLAB绘制B样条曲线
  13. 复杂网络的任意子节点的网络最短距离
  14. 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等
  15. [置顶] 程序员面试之道(《程序员面试笔试宝典》)之程序员如何保持身心健康?
  16. is与==的恩怨、编码的详解
  17. 计算机五个盘,我的电脑分区分了5个盘。怎么办?
  18. 绝地求生服务器维护需要多久,绝地求生8月4日更新到几点?绝地求生维护一次需要多长时间?...
  19. Vue 利用后端的数据字典和Map对象实现表格列字段动态转义的处理方案
  20. 【应用随机过程】07. 平稳过程

热门文章

  1. 区块链课堂|从0开始了解区块链,通过代币学智能合约开发(线上课程)
  2. 用flask做microblog遇到的一些问题
  3. 汽车材料的UV老化测试,材料的抗UV老化测试
  4. IConfiguration Interface
  5. 怎么把实际路径是英文的文件夹显示中文名?
  6. 海康web3.0控件实现在摄像头窗口多边形绘图
  7. 现实的残酷,把我从穷人“逼”成了富人,分享十年创业经历与感悟。
  8. Video.js调整视频封面大小的问题
  9. pytorch apex 混合精度训练和horovod分布式训练
  10. 三年前的一个小项目经验,分享给菜鸟兄弟们