关于写代码,你都会什么技术?

一个软件从0到1的过程

2021-10-19  本文已影响0人  令狐小冲

创建一个系统有多么复杂,对于用户(使用的人)来说可能觉得很简单,就是一个左移,右移,按钮操作,删除,查询,放大,分享等等。

非软件研发行业,不会知道这个过程原来是这样的,一个原件和系统是这么诞生的。

但对于研发过程是一个很复杂的过程。

大概分这么几步:

0、立项

      也就是这个事情可以开始干了,配备什么人员,从业务,项目经理,产品经理,设计,研发,测试,运营等,还有一大堆领导,好几十人。有的比较复杂的,还会涉及到招标,就是  我们公司想做一个app,但我们自己没有技术人员,老板说找一找,于是几个技术型的公司专门搞这个,大家竟标一下。看看哪个 性价比 高 ,用哪个。还有的是直接找一个小公司给外包做了。但现在很多的互联网公司都有自己庞大的技术团队。全部自己搞。

1、需求分析与整理

先要获取需求,也就是这个功能的初始状态,这个功能是怎么来的,就是跟客户跟用户,市场调查,然后一大堆人挤在一个会议室里你一句我一句的,商量出来的,这个过程是始费瓜子,又费茶水,还费唾沫星子,费时间。然后快要下班前的一刻,可能会有一个结果,但是相像的是很好,通常领导说大家休息一会,15分钟后,再进行一次最终的确认,就下班。这时什么星星啊,月亮啊,路灯啊,都都亮起来了。开会的小伙子,小姑娘们脸上油光满面了,从打鸡血到睁不开眼,从滔滔不绝,到 是,没错,挺好,可以。直到听到就这样了的话时,才会打起精神头来,收拾收拾下班。产品经理会把这个会议的记录进行整理出来,发出邮件,每个参会的小伙伴都会收到。

2、原型设计

这个阶段就是产品经理发挥的时候了,产品经理这个职位是从前没有的,是互联网公司硬生生的创造出来的一个职位,就是把app或系统做成什么样子,就设计 出来,这里就用到了Axure或 墨刀 软件,或其它的软件。产品经理开始加班加点的,几天之内就把原型设计出来。估计 是较劲脑汁了。

3、原型评审

产品经理设计,熬夜设计完了,就会组织一次会议,对原型进行评审,把研发人员,领导,业务方。这些人都横七竖八的提出一堆的问题,产品经理会是一种舌战群儒的情况,跟大家解释 为什么要这样设计 ,最后领导会说你这必须改(你跟其它app比较了么,你体验了其它的app了么,你这么设计就是反人类等等),产品经理 弱弱的回答,好,我记下了。

4、原型优化

产品经理只好,默默的回到工位,加班继续改改改,一个产品经理,会同时做一堆的原型。

5、原型终审

做好之后,再进行一次第三步,哈哈。这个过程,不好受。但为了做好,只能加油了。

6、与技术人员讨论

原型设计期间会与技术人员讨论其中的功能这样设计,是否可以实现,实现的过程 是否复杂。

7、技术画架构图

研发人员会出一个技术架构图,绞尽脑汁的那种图。

8、研发计划排期

功能开发的时候要有一个计划排期表,从什么时候开始做,到什么时候做完。要把功能排的尽量详情些,多加几天时间,通常按计划都不能按时完成任务,这期间会加杂其他的任务,工作。总会打断你现在的任务。比如说要你导一个今年的销售数据,要某某些字段,然后按什么分组,什么排序,什么条件。然后你写了一大堆sql(查询数据库数据的语句),费了大半天时间。然后还不体现工作量。

如果是app或网站,就要涉及到前端(做那些华丽效果的),也要排期。约时间,因为不是每个小技术团队都有前端开发人员。

8、数据库表设计

技术人员要设计 数据库的表结构(就是存储你下从网站上买东西的订单、支付记录的数据),可能会有几十张数据表。关系错综复杂的,你关联我,我关联他的。

9、数据库表结构评审

要进行一个次技术人员评审

10、数据库表结构优化

评审过程中发现在问题,要进行一次优化改进。

11、数据库表结构终审

再重复一次评审。

12、技术选型讨论。

关于技术选型,层出不穷的,什么都有。传统上的 spring mvc。spring boot +vue等,各式各样的,因为每一个小团队中都会有一个柱子哥,也就是牛X的,也就是架构师,他会给你提供不少的建议,让你这么搞,那么搞。程序员都有一个通病,就是自己写的代码,是最好的代码。别人的东西,只是永远在借鉴。不要重复造轮子,但却从来没停止过造轮子。说了一大堆,最后发现,还是用上一个项目工程的架构吧,挺好的。写着挺顺手的,还稳定,大家用着都不错。

13、技术架构搭建

这一步就这样被略过了……

14、按计划进行代码研发。

就开始写代码了,写数据访问层,业务层,控制层,页面展示。通常是第一个功能比较费时间,再做下一个功能就是copy  第一个功能的部分代码了。

15、研发出小功能后,进行 功能测试。

功能写完后,自己先要进行测试,不能让别人找出任何毛病来。得把代码格式化一下子,看起来能舒心,注释也加一下吧。要不三天后也不知道这代码做什么的了,因为一个写个几十个方法是正常的,上千行代码,轻轻飘的。

熬夜加班,写bug ,是程序员的宿命,有的公司是因为996,有的是因为研发计划就在这里摆着,你不干,明儿,领导就找你。有的是一个bug,导致延误了时间。

有的时,加班跟绩效挂钩。

16、提交测试人员进行测试。

功能搞出来后, 就要给测试人员,测一测了,通常能测出bug,没有问题的少,我们自己测试是正向模式测,我们按常理点,不会出问题,他们是以用户模式去测试。然后踢出几个bug ,让你改。

17、碰到陌生技术,进行学习。

这是经常的事儿,比如之前要用html做页面,现要vue 做页面,你就得从0开始学,边学边写。时间就浪费了不少。

18、功能研发。

每天铛铛铛的敲着键盘, 中午睡上一觉,下午继续敲,吃饭,遛会弯儿,继续敲,直到两眼花了,干了。时间也就来到了9点10了。一天基本活动的时间就是接水,上厕所。其它时间都是在工位对着电脑。

19、研发完毕,这是一个连续的过程,也是最耗时的过程。

代码进行上传git ,svn。

20、测试人员测试,黑盒、白盒,压力一系列的测试。

测试人员进行整体测试。

21、写测试报告

要出一份测试报告,就是列出本系统测试过程中,碰到多少bug,包括bug的级别等。

22、研发人员写功能文档。

这时就要写一份说明文档,把功能进行介绍,贴一些系统的图片,代码等。

23、部署预发布环境进行测试。

工程打包,进行预发布环境测试。这一步,小公司就是把工程包  copy 到 linux 中的tomcat  中,手动操作。大公司就会有自己的上线系统,因为每天有几百上千个系统会上线, 手动操作效率太低了,出错率也高。发布系统比较安全可靠。

24、数据库数据添加测试数据。

添加测试数据。

25、测试人员与研发人员测试。

预发布环境进行功能测试。

26、进行正式环境发布。

预发布环境测试没有发现问题,就会在正式的环境进行发布系统。

27、进行测试。

线上进行测试。

28、线上清理测试数据。

清理线上数据库的测试数据

29、用户使用。

用户就可以正常使用了。

30、监控功能bug

随时修复,再进行下一个版本发布。

31、跟随几个版本后,问题逐渐减少,功能稳定。

喘口大气儿。

32、准备下一个系统功能研发

再重复上一个循环从第1个到30个。往复的循环,一天一天又一天,一月一月又一月,一年一年又一年。做不完的功能,写不完的文档,修不完的bug。这就是一个程序员的生活。

上一篇下一篇

猜你喜欢

热点阅读