前言:

当你创建或者参加了一个项目的时候,如果组里面没有大佬进行带队,那么多半会走很多弯路进行摸索,导致效率十分低下,矛盾爆发等问题的出现。这篇文章我是写给我们大创团队的。至于我为什么有资格带队同级专业的同学?不多逼逼。如果能从下面写的内容有所收获,那么我的目的就已经达到了。我自己简单总结出了究竟可以怎么做让整个项目有序高效的走下去。读者可以将收获到的内容直接套在自己的项目中。本篇文章不管你是程序员还是非程序员都可以食用。直接开始吧~

前提条件

当你满足了下面的条件才有继续读下去的必要,不满足的话意义就不大了

  • 项目是以互联网作为载体:

我是以一位程序员的视角来写的,所以如果不涉及开发,那么下面的条条框框都没啥作用了。为什么一个项目很容易死亡,因为即使队长有天马行空很好的想法,但是没有技术将其实现,终究是一张废纸。

  • 本篇文章适合的团队人数是在:1-5人左右

拒绝大量人员参与,导致分工不明确,相互推卸责任等问题出现。

  • 最完美的团队分工是:A + B + C

A:负责写文稿以及根据项目需求分析然后设计页面:具有好文笔;会画设计。

B:负责前端页面的开发:把设计的页面用代码实现,尽可能展现出来。

C:负责后端逻辑的开发:其实后端不止要会业务逻辑开发,服务器的布置运维等问题都要会。

从上面可以看出C的职责其实是最重的;可以找2位同学。当然在保证人数尽量少以及水平尽量接近的情况下囊括上面3种职位

举个栗子

下面我将会以我们大创团队一共6人的角色进行分配然后讲一讲大家具体应该怎么做。读者可以自行带入进行合理分配。

  • 队长A 隶属于信科院:负责后端以及前期报告书的书写

  • 需求设计B 隶属于暨伯经院:负责资料分析以及需求设计以及前期报告书的书写

  • 技术组长C(也就是本篇文章作者):负责整个项目的开发走向

  • 前端开发 D、E 隶属于信科院:负责根据设计图进行前端开发

  • 后端开发F 隶属于信科院:负责根据接口设计进行后端开发

接下来我将以字母来代替角色开始对整个项目进行可持续分配,将会以一周为单位进行任务分发

起步

这个时候是队长组队,然后根据一个想法进行书写汇报书,如果你们的项目不存在这一步直接跳到下一步。这个项目主要是A+B在负责,因为相当于是在画大饼争取更好的资源,文笔好的同学一定要上!因为一个项目的展示给评委是不可缺的。当然这个部分我就不详细说了,因为让一个项目真正跑起来并不是在这个阶段。其余人尽可能花时间充电就好了

进入开发阶段

  • 首先在代码托管平台进行创建组织:分出前后端仓库分开管理,同时分配好每个角色的权限问题

  • 然后进入开发循环过程:

  1. 第一步:根据上一周划定的这一周的任务,B同学就要根据任务获取到相关参考内容进行设计图的设计;这里面就包括了页面的样式设计,内容设计(即需要用户填写什么等),UI图片等设计。所以B始终要快半个拍子,完成之后就需要交给C进行接口的设计。
  2. 第二步:我(C)根据已经存在的设计图进行接口设计,这里的接口设计就是一种规范,前后端都必须遵守这个规范。我会设计这个接口需要接收什么参数,输出什么参数。这样前端就可以根据输出直接Mock参数进行本地开发,后端就可以知道需要接收什么参数,然后进行逻辑处理返回出输出的参数就好了。
  3. 第三步:前后端分开进行开发。D,E前端拿到mock数据直接进行页面的渲染以及JS逻辑的处理;A,F后端的同学就在本地搭建环境,然后自己要测试接口是否正确然后返回出规定的数据。每天记录进度以及日志,及时提交到代码托管平台,C再次对代码进行审核并成为主分支的最新版
  4. 第四步:C及时更新线上环境,如果检查代码等没有问题了就可以将代码更新到服务器,线上环境跟着开发进度走。
  • 一个周期就这么过去了,在一周的末尾进行汇报然后设计下一周的任务。

进入测试阶段

经过了N个开发阶段后,项目已经成为了几个集成模块的合集,这时候就要对各个集成模块进行测试。可以自己写脚本或者使用工具进行"一条龙服务式"测试。至于为什么不进行频繁的集成测试,因为没有专门的测试人员,所以只有模块开发的差不多了,才模拟业务进行测试。

这个时候就会发现合并起来才有的BUG,就需要打回给前后端进行二次修改(注意这里的问题是大BUG,也就是只有联合调试的时候才发现的,而不是本身接口的逻辑就设计的有问题)

不断轮回

可能 N + 1吧,即N个开发阶段 + 1个测试阶段。然后继续开发下一个大的模块,最后就像搭建房子一样,项目就起来了。并且整个项目是同时进行的,不会出现谁等谁的问题,大家都在做自己的事情,并且在最开始就遵守了规范,那么服务合并的时候基本也不会出现大的问题,整个项目就是在丝滑的进行着。

重构/更新

如果项目存在使用第三方等新技术,这个时候就可以直接在后端卸下来原来笨拙的方法,换上第三方的SDK。

如果觉得原来的一些模块在后面的学习中发现了更好的实现方法,完全可以重构实现相同的逻辑。

在换上新技术后别忘了跑一遍测试环境,通过就没问题,这样项目就可以说不是个纯纯的curd了。

项目上线

  • 模块测试全部通过没有大的BUG
  • 服务器集群环境部署好了,数据库,中间件都搞定
  • 简单运维的数据库备份,日志的处理,监控容灾等问题都能及时发现处理
  • 静态资源全部上CDN加速,服务器的防御DDOS等攻击服务全部买好
  • 域名等问题,上线资质等问题全部搞定

那么项目就上线了,剩下的就交给宣传,运营,将产品卖出去就算成功了。