如果只给你几万元搞互联网创业,技术层面的事儿,你会怎么做?
最近突然又想起这个话题,校园里一些创业团队太注重公关,各种天方夜谭把业务单拿下来之后技术团队多是实现不了,也没有明确的需求文档和统一的开发方式和系统架构。每次想到这些问题我都在思考,如果是我搞初创企业的技术栈,我会怎么做?下面谈谈个人对比的一些看法。
首先web相关的项目,技术层面上我们主要讨论开发和部署,为了节约成本并且跟上时代潮流,我建议开发开发部署一体化方案DevOps。这种持续部署方案对开发人员技术要求加大,但是可以大大减少部署和运营时不同类型员工操作导致的错误。同时,借助现如今的Git和自动化方案,持续部署可以和开发,测试更完美的搭配。美中不足的一点是,持续集成方案中对于数据库结构的修改,暂时我没有找到较好的方案。
在这样的模式下,让能力出众的项目经理带领四位员工: 两位Vue开发,两位Laravel开发,前后端两位必须各有一名公司员工能力较好,另一名可选远程工作降低成本。在这样分工明显的前后端分离架构中,由项目经理给出系统相关架构图和开发说明文档,数据库ER图。使用一款团队合作工具和接口自动编写测试工具如Teambition,Swagger。
前后端Vue+Laravel这套架构中,前端使用vue-cli脚手架工具,配合axios,route,iview,vuex等全家桶套件开发。后端使用composer组件库JWT做授权认证,repo存储库分层模式,静态资源方第三方CDN服务器上,后端重视分层,依赖注入等思想和数据库操作时对业务的判断逻辑。在Laravel项目中,我建议编写phpunit自动化测试用例,方便后期迭代时候对所有接口进行可行性测试。
由于上面说过我们要使用DevOps方案的开发模式。也就是说在四位员工编码之前,项目经理至少需要将初始化项目代码部署到托管网站,并在服务器端写好相应的文件变更响应代码,方便即使pull最新代码库,此处我们应该引入Docker相关的容器技术了。并拉取四位员工的贡献者账户分配相应权限,同时渐进式地将后续使用的组件库引入进来,修改项目目录结构。
另外在后端开发中,本地开发环境下可能要时常dump一下composer相关的配置信息。同样的,后端的测试数据也可能需要重复测试,这时候我们可以利用流程控制语句配合Laravel的Migration,Seeder搞定。我提倡开源和技术自由,反对出于安全性而使用SQL文件导入数据库结构的做法。后端其实还有很多凌乱的东西,基于composer组件库可以方便的构建很多优秀项目,我也在学习的道路上。