最近被组长分配了一个很小的项目,整体很简单,但确实是我毕业以来第一次从0到1完成一个会真的供客户使用的项目,一开始想着走一步算一步,什么都不想就开始建项目画页面了,但后来的事情让我意识到盲目开始一个新的项目有多愚蠢。
多加的班就当交学费了,我这样安慰自己~
背景
公司的项目有向多端发展的趋势,作为试水,首先就是移动端。作为这个多端项目的唯一前端,开发的责任就落到了我的身上。因为之前还没有独立从0到1完成过一个公司的项目,所以我自然很兴奋地开始了构建。
此时我没有意识到自己的天真
出现问题
这个项目要上架的是国内某视频平台旗下的一款电商app,有官方的框架和开发文档,这个框架是基于react封装的专门适用于他们应用的框架,非常非常非常冷门,以致于无论在掘金、CSDN或者chatGPT都找不到相关信息。一开始抱着官方文档解决一切的方式,着手进行创建,后来才发现官方文档写的特别"精炼",除了基本的页面配置以外其他全都没有,而且文档给出的部分配置还会出现原封不动放进去也报错的情况(我不知道是我自己的问题还是什么,但就是这么离谱)。配置基本页面、api、路由这些还没什么问题,问题出现在代理上,官方文档没有任何关于代理配置的说明,我只好以配置react代理的方式进行配置,但不起任何效果,上网查没有找到相关资料,于是让后端先解决跨域的问题,不至于一直卡进度。图片也一样,除了官方给的tab的icon可以使用,其他在浏览器中能够预览的图片到了app里就都打不开,推测是打包时的问题,但文档也没给打包的相关配置(笑哭),于是选择了上传转为在线图片解决了这个问题。在解决这些基本问题后,开始了愉快的画页面,哼哧哼哧用了几天画完所有基本页面和交互之后,真正崩溃的事情出现了。。。。。。
上面提到过,这是个多端项目,现在要做的是一个试水上架的软件,大体是给用户一个便捷查询个人信息和集成了主端部分功能的小程序。而这个主端核心功能是需要通过扫码来进行连接的,因为这个部分之前项目中有现成的连接方式,所以我理所应当的觉得只需要移植一下就可以了。但最大的问题也出现在此,之前的扫码功能是基于微信的API进行的,而现在要上架到另一个平台,怎么可能在另一个平台调用封装在微信的API呢?第一反应是去查找这个平台调用的扫码API,没找到,只好询问平台的客服有没有调用扫码的API,你猜平台怎么说?
发现问题之后我第一时间和产品和组长进行了沟通,因为这个项目没有那么重要,属于试水阶段,决定把这个功能砍掉。只提供最基本的功能,目的是不丧失移动端的流量,能够按时上线更重要。砍掉这个功能之后,项目剩余的部分就很快就完成了,提前交付了项目,只是之前花了大把时间做的交互和页面全都废掉了。
总结
这次从0到1实现一个完整项目需求的过程让我受益匪浅:
首先是对于项目整体的设计和把控方面,前期跟产品确认需求的时候,自己一定要评估需求的可行性,要先了解平台和所用技术栈,要不然就会出现我这种情况,只顾写,写到哪算哪,写一半才发现扫码用不了,整个需求全废掉,又重新协商重新再写;
再有就是沟通上面,一旦出现问题要及时和组长产品沟通,而不是盲目写自己的东西,虽然这个项目交由你独立完成,但遇到不确定的地方最好还是要与组长、产品多进行协商,及时发现问题,才能最快最好地解决问题;
最后是文档部分,独立开发时自己要写开发文档和注释,在README.md里对项目进行大致的阐述以及每个部分的简短解释,不仅是为了之后接手项目的人,也方便自己就算很久不打开,一打开之后很快就能熟悉,上手编写。
庆幸这是个小项目,要不然花了一个月、两个月写完发现核心功能没法实现,纸上谈兵,那就得不偿失了。