项目0到1的一些感想

近期上线了一个新的项目,从前期的需求评审到项目整体设计,最后上线,历时了快一个月的时间。虽然是个小项目,但是由自己从头开始跟的项目。 这个项目让自己学到了很多,同时也发现了自己很多的不足,写篇文章总结下项目从的0到1的过程以及这段时间的一些感悟

技术选型

先说下项目的组成结构,web项目,由前端+后台+服务端组成,技术栈为:前端采用vue,后台使用react,服务端使用node,数据库使用mysql,缓存使用redis,这个技术栈整体看来,还是比较符合潮流的。

关于技术选型,若是小组没有技术栈的沉淀,都是新的起点,那么选型的时候就得考虑很多方面,如小组上手的速度、开发的成本、选型是否利于以后扩展、运维成本等

开发阶段

开发阶段细分为以下几个小阶段:业务逻辑梳理、模块设计、开发任务划分与分配

业务逻辑梳理

项目经过多轮的产品评审敲定后,就可以开始进入到设计阶段了,这里的设计不仅仅是简单的项目代码层面的设计,还包括用例图、时序图、表结构、与内部服务沟通配合等设计,这几部分的设计的好坏是决定了整个项目的业务合理性、可靠性、扩展性,这部分产出可以体现程序员是一个老司机,还是一个小白

数据库设计

数据库是系统的基石,数据库设计应建立在对业务的深度理解上,设计的时候对业务的理解不能仅限于产品或技术的思维,而是要两者兼备,这样设计的表结构才能更合理、更利于业务扩展

画图

用例图,顾名思义,体现系统功能的模型图,用例图是画图的第一步,只有知道系统需要实现哪些功能、系统的边界,才能往下进展;

时序图也叫泳道图,显示对象间的调用交互图,对象可以是模块、服务等,将各个模块的调用顺序和业务流转清晰的画出来,因为系统会随着业务的发展不断的迭代,若是没有个文档将业务流转给记录下来,对后续接手的开发,那就是个大坑,周而复始不断累积业务,这个项目离重构就不远了;

还有流程图等,就不一一说了

任务拆解

接下来到任务的拆解与分配,毕竟项目不一个人单打独斗就能完成的,得由团队的一起推动。这个项目前后端都是由前端小组来开发,js通吃前后端,所以任务的拆解按模块来拆解,比如登录模块,前端的交互和后端的服务均有一个人来负责,这样的分解,好处就是,免去了前后端联调的这一沟通流程,让大家的沟通成本大大降低,开发时效也提高了,但有个小前提,就是大家的编码水平都要能满足前后端的开发要求,毕竟大部分前端开发在服务端领域还是有所欠缺的。

制定好开发规范,优秀的项目,必然有一套完整成熟的规范,大部分公司内部都有自己的开发规范,同时借助主流的工具,可以为我们规范项目编码

还有就是代码review,我们使用git作为版本管理,团队的提交都会先经过review才能merge到主干,pull request(简称PR)是不必不可少的环节,因一些沟通理解、编码粗心等,导致提交的代码存在问题,所以在review的环节,就可以提交前发现,将其扼杀在摇篮中。

测试阶段

交叉测试

交叉测试,在正式提交测试前需要预留两天左右进行交叉测试,即A开发的功能,由B来测试,因为开发自测往往会陷入逻辑黑洞,考虑场景不全、异常处理不够等问,交叉测试,开发化身测试,提早将问题给发掘出来,同时也可以让大家对整个项目逻辑了解的更加清晰

测试组测试

测试阶段,因为采用的是瀑布流的开发方式,先开发,在计划期限完成后,在移交给测试,测试遇到的bug,反映了开发的水准,因为开发阶段有code review,所以测试的出来的项目质量,也体现了项目负责人的态度和水准。

项目往往会涉及到多个内部服务的调用,经常服务间出现些小问题,这次开发间就会拿出甩锅大法,互相推诿,都不愿意去找原因,若一直没人去跟进解决,轻会影响项目上线计划,严重会给生产留下隐患。这个问题,归结还是在与开发成员的工作态度,这个跟团队宣导和建设有关啦,就不展开了。若出现甩锅未能解决的问题,就需要项目负责人及时跟进处理。

上线前的准备

测试完成后,下一步就是按计划上线,此时,需要与运维小伙伴进行充分的沟通,申请线上资源、线上参数准备、性能监控、报警监控等

复盘

复盘的作用在于回归整个开发历程,遇到了哪些问题、如何解决、哪些未能解决等等看似零碎的部分,将这些部分汇总起来,汇总的过程看似对项目,但实际上是在对自己进行审视,哪些让自己成长了,哪些还有很大的不足、及自己没做好的原因等,开发路漫漫,抬头看看天才能知道自己的位置~

感悟

文章写得有点流水账了,在每个点上,自己懂得还很肤浅。 记录下自己最近的一些心得吧

  1. 市场上大部分的程序员职位都是开发工程师,开发工程师的定位应该是:以完成功能需求为主,基本上是围绕着产品经理提出的需求文档转,很多人就吐槽,一直在做功能,没有提升的空间,但我不这么认为,在我们不能改变自己开发工程师的职位时,要做的应当是少点抱怨,多自我挖掘,在完美实现功能的同时,深挖其中的技术点,况且能做到写出来的功能健壮,就足够考验人了,其理解能力、逻辑能力绝对不是一般的水准

  2. 切忌浮躁,敬畏技术,不要会用一个技术了,就认为自己能掌握了,多会几个技术点,便说自己遇到瓶颈了。沉淀下来,好好啃一啃,比跟风、自我焦虑强的多。知其然,而知其所以然

  3. 一家公司的开发任务,伴随着在职时间越长,便越会顺手,老油条和晋升达人也在悄悄的拉开差距,要及时走出自己的舒适区,多去承担难点,让自己在工作上难过,未来才能好过

  4. 那就先简单做 这句话在开发间经常听到,既然都确定去做了,那为什要简单做呢?;写业务时,遇到难点,哎,就就这么写吧,反正也没问题;以上现象,说到底,一句话:懒于思考,安于现状。多思考,注重细节、端正态度,做一个不将就的coder

  5. 持续学习,有句话说的好:淘汰你的不是你的同龄人,也不是这个社会,而是你自己在原地踏步。互联网的更新速度令人咂舌,令人焦虑啊,一群人整体喊着跟不上了啊,学不动了啊,可是马拉松是没有暂停的,咬紧牙,少去瞎比比,学习是枯燥的,但要知道它才是给你带来红利的基础,是你跑下去的资本

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值