前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实习期间的一些idea

实习期间的一些idea

作者头像
公众号guangcity
发布2020-06-24 10:16:18
3300
发布2020-06-24 10:16:18
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

实习期间的一些idea

不知不觉,来实习已经3月有余,成长了很多,今天来分享一下自己的学习感悟吧。

1.三句话

大厂的实习,环境确实太多,很多系统,一开始接触是一头雾水的,面试造飞机,进来造轮子,就这么真实,但是造轮子也能学习一些东西吧。自己在造轮子中碰到的一些问题经常是通过向导师,同事,自己排查。记得当时他们给我说了三句话,现在记忆深刻,也时刻铭记于心!

  • 小步快跑,逐步迭代
  • 先0再完善
  • 自己的问题自己排查,现在不练就排查内功,真正生产环境如何自救

针对以上三句进行详细展开。

1) 小步快跑,逐步迭代

这句话是我当时git提交,每次写完代码,写的太多,导致CR文件太多,于是就引出了:小步快跑,逐步迭代 这句话。是想给我传达多人开发,应该不图快,而是每个功能完成了,就提一次Reviewer并合入master,而非一个大功能完毕后,才合入master。正确的多人开发流程是:

A同学在master开了个dev-A,B同学开了个dev-B,A完成一小段功能就MR一次,B完成了一小段功能也MR一次,不断维护master的功能,直到完全开发完毕。不应该A同学完成了全部功能,然后让B同学一下子Reviewer全部代码,这样一次Reviewer太多,工作量太大,效果不好,也容易出问题,记得Leader一次组会提到CR头痛问题的解决办法。

  • 代码控制100行-200行
  • 文件少
  • 没人每天记得CR一次

但是,现在我个人觉得,还是得催促对方CR(Code Reviewer),不然就会忘,CR类似于Github的PR里面的代码Reviewer,MR相当于PR的合并,这是一个看别人的代码并学习别人代码的好方式,同时能发现代码规范,以及操作不当等问题的好手段,例如:C++写脚本,禁止使用裸指针,一看到指针存在,CR就可以拒绝掉,代码不规范,变量未被初始化,通常可以拒绝合入master。

一个团队的开发,应该小步快跑,逐步迭代,注释详细,分工明确,规范统一,这样对于每一个人开发效率将是非常的高。

2)先0再完善

在实习一开始的时候,给你个项目做,通常在个人想法中只是个概念,基本不太懂这个项目,所以需要跟着带自己项目的同事请教,当时在做某项目的时候,我一开始做是有点疑惑的,需要自己去设计通信协议,调用别人接口,以及呈现内容设计等,就拿呈现内容与协议设计来说吧,当时带我的同事送了我一句话,先0再完善,是想给我说先开始做,再不断的去完善它,在这个过程中,确实针对协议设计以及内容呈现设计等都会不断的清晰,一开始接触某项目或者某事情的时候,或迷茫,或无知,或未知,应多请教,多交流,有一点思路就先去实现它,不断完善。

3)自己的问题自己排查,现在不练就排查内功,真正生产环境如何自救

在写代码过程中,自己碰到了一个前所未有的死循环,我想去读配置,测试读不了,其实很简单,例如:自己实现读配置就好了,这个还简单,那如何解决初始化雪崩问题呢。问题是:xx进程初始化直接失败,在容器中,一初始化就失败了,后来问了框架大佬是因为初始化时在A类进程中进行初始化操作,该操作如果涉及RPC调用,就会崩溃,因为A类并不支持协程操作,这一点坑死我了。一开始肯定对框架不熟,像这种东西,文档也不会写,只有非常了解源码或设计的才会知道。当时问同事,他给我说要自救,不然如何解决以后的生产环境问题呢,自己bug还是自己解决。随后,就自己去一步步排查了,当时排查工作主要如下:

  • 控制变量,去掉核心操作,注释开关
  • 容器上查看进程,查看不同类的log
  • 定位日志及打印位置

最后发现,一开始没发现的问题是由于自己Log看错了,看成了B的log,不然这种小问题,就不是问题了。。。

2.一点思考

来到这边实习已经3个多月,做了几个项目了,自己在团队协作开发上能够解决一些冲突问题,并提出项目的一些建设性意见,涉及了Lua+C++脚本开发,C++性能分析及优化、C++工厂设计模式、Git版本控制等等,其中大多时间是在拧螺丝,但是却觉得有那么一点意思,例如:

  • 如何设计当前协议
  • 如何以更少的代码重构当前代码
  • 当然代码设计的合理性
  • 当前代码的性能瓶颈
  • 当前代码的业务逻辑

以上只是我个人在学习过程中,扪心自问的点,如果以上至少有一个没解决,那么拧螺丝还是非常有意义的,写代码的过程,需要独立思考,独立设计,培养思维,而不是单纯为了实现而实现,这种就没啥意义。

1)开发过程中,切记团队开发准则及代码规范,培养自己的代码优雅能力与规范能力。

2)开发过程中,多看看需求,多沟通。

3)开发过程中,多对一下接口设计的合理性及泛化性。

4)主干代码功能完整性及可测性。

5)问题积累及业务积累

以上是我实习阶段学到的几点建议及想法吧,欢迎大家转发,共勉!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实习期间的一些idea
    • 1.三句话
      • 2.一点思考
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档