我一共投递了菜鸟网络,天猫超市,有赞,大搜车和涂鸦智能等公司,都收到了面试邀请。菜鸟网络和涂鸦智能投递的职位方向都是我比较感兴趣的IOT,有赞投递的是风控和大搜车的新零售职位,后两个都是我之前的没有接触过的领域。最后由于各方面的考虑(没面试成功和对工作以及生活的平衡),我选择了之前没有接触过的大搜车新零售领域的职位。
但是今天我想说的并不是面试经历,而是我标题所描述的工作中发生的有趣的事。因为新入职一个公司,需要对工作流程和项目代码进行熟悉,同时还需要对新零售这个领域和行业需要进行了解和认识。所以拿到产品分配给我的需求,我大部分的时间都是花在了需求整理和询问同事上了,真正花在写业务需求上的时间是很少的。
下图是我每天记录的?,其他的分类由于设计到公司业务所以没有展开,在工作和生活上都与涉及。
一般我们的产品需求周期是这样的: 产品整理需求池 -> 交互评审 -> 技术评审 -> 联调 -> 提测 -> 预发 -> 发布。
当然我作为一个开发来说,更多关注的是需求的业务逻辑和优化、实现上。每个团队都有自己的git分支规范,我们也不例外。
本来我作为一个有三年开发经验的工程师,我本不应该犯以下的错误。但Jira(bug管理工具)不断弹出被测试提出来的bug和当时远没有现在写这篇博客时, 对公司的规范十分熟悉的情况下,我做出了十分愚蠢的举动。
为了尽快的看到自己写的代码是否修复bug,我不仅仅在自己的分支上修改了需求实现,而且也在deploy-test上做了改动但是没有同步到自己的分支上。当我解决完Jira上所有bug时,满心欢喜的想要把分支合并到develop上时。我一看代码,回想到了整个过程,此时,我是绝望而又懵逼的。此时电脑的时间已经走到了16:30,我抓耳挠腮,不知道怎么办了。
此时,大家可能会注意到deploy-test上有完整的我修复的程序,因为deploy-test是联调和测试过的代码。此时很多小伙伴在我当时的情况下,会把deploy-test合并到develop上。但是deploy-test分支太过脏乱,有很多其他开发人员写的测试代码和打印日志代码。永远不要把deploy-test分支合并到自己的分支,也不要合并到develop和master分支上。
以前我认为钉钉是一个提高工作效率的IM软件,但是此时的它如悬在我头顶上的倒计时的?。未读->已读,短时间没有读,就会DING。未读->5-10分钟没有解决,钉钉电话☎️就会打过来。
此时我还是沉下心来,把之前在deploy-test上修改的部分而未同步到自己的分支上的代码移过来。以下是我的IDEA操作步骤,当然大家也可以用其他可视化工具或者命令行。
做了上面紧急的处理后,我又在本地运行了程序,做了简单的自测并在最后的关头给测试写了提测单。经测试无误后,发不到了线上,此时,我的心在落到了肚子里。
开发是个技术性工作,而团队开发是一个纪律性、团队合作性和有一定哲学性的学问。虽然上面?的条条框框让我的开发效率变得很不好,当然这个效率是相对个人而言。因为每开发一个新需求就需要建立分支,合并代码到各种环境,对于一个不细心和急躁的工程师,光这个工作都令人烦恼了。但是对于一个团队来说,以上的条条框框对于整个团队是高效而又不会出错的。在这里,笔者有个小问题,你们团队的git工作流程又是怎么样的呢?麻烦告知一下。
git commit -m first commit with userInfo service
,编写Commit Message需要遵循一定的范式,内容应该清晰明了,指明本次提交的目的,便于日后追踪问题。 commitizen 就是这么样一款工具,他用来规范化我们的commit消息。实际效果如下图所示
cd ~ npm install -g commitizen commitizen init cz-conventional-changelog --save --save-exact