没想到还能这样
做为一个实习生,当然就是说干就干了,需要我做什么,竞品分析?项目需求?好,模块剖析、分解、消化。等等,这些我做真的合适么
项目leader负责技术方向的确认,还有对我们技术的指导,难点解答
当然遇到问题要先过脑子,搜索资料,有不懂,找度娘,大家都知道;但看到leader查问题,google?为什么我打不开梯子的重要性,最近梯子也不好使了,死了一片,正确的姿势和关键词,在解决问题上事半功倍
当时正在做一款Hybird App,我和另外一位同事一起负责前端模块开发,leader在技术选型上用Ionic,时间要回溯到16年8月份,在当时的我,对hybird app的了解只有在大学与老师一起做的项目,恰巧也是Hybird App,只不过用的是MUI。
Ionic是什么?
Build amazing apps in one codebase, for any platform,一款轻量级的手机UI框架,为了能快速出一个版本,最终选择了它,与之捆绑的还有AngularJS,Google的维护,强大的社区资源和组件,怎么都觉得很美,MVVM,数据的双向绑定,依赖注入,directive,在之前仅仅写过单纯的静态网页的小白来说哪里接触过这新奇的东西,每天沉浸在$scope和指令中。
Hybird App 原生 + WebView
在实际开发过程中,中间需要我们有IM即时通讯,但要短时间内建立起一个IM,困难可想而知,leader便想到结合当下IM即时通信的开源或免费应用进行套用,将我们原先的项目通过webview的方式打开,效果不太理想;为了更好的体验,我们做了以下几点
- 模块最小化,将原有的模块进行拆分
- 业务代码优化
- gulp对代码进行合并,压缩。
- 静态资源CDN加速
- 应用缓存
虽然在速度上有明显的提升,但在体验上还是相差太多。这边再吐槽一下,与硬件交互Cordova,虽然在应用上省去了很多时间,但在必要的业务场景,需要硬件支持的情况下,就需要对Cordva插件进行修改甚至自己写对应的插件才能满足,这也是混合应用开发的一个痛点。
BootStrap
除了项目的模块开发,还有另外一份工作,就是带着美工一同将项目官网推出,响应式布局,UI适配,真香,就是在满足一个动画效果的时候,原有模板的JS脚本无法满足,阅读源码并修改的滋味,简直不能再难了
前端还没深入,后端就又开始
项目第一阶段很快告一段落,但随即而来是项目成员的离去,后端的部分也来到了我们身上
Python Django Rest framework
Django 能够通过需求快速建立model,创建对应view和Serialization,CRUD基本完成,强大的ORM,Authentication policies,在可维护性和开发速度上十分可观,在3.0的版本发布中支持了异步
思维定势
在开篇有说到之前刚开始接到的代码,满满的全是SQL,在我们接手后台这部分也是一样,上一代人在开发过程中,虽然leader将python引入,将Django引入,但没能这之上很好的做延申,延续了之前的开发习惯,导致最后我们将所有的后台进行翻写,在使用ORM的过程中,我们应尽量避免再去原生SQL,一方面在维护上会很麻烦,另一方面如果我们进行数据库的更换,比如从MSSQL切换至MYSQL,由于语法差异,再进行修改也是不小的工作量
从SVN到Git,只要一个树冲突
对于版本控制管理工具,我也是第一次有了这个概念,从一开始U盘拷贝,到从服务器clone,提交代码,合并冲突,直到出现多次树冲突无法合并的情况,致使整个需要把整个项目提出来重新整理,最终迁移到git上,多了一步add到本地服务器的操作,虽然合并的问题仍在,但解决起来要方便很多
模块越来越多,项目却迟迟未动
后端admin也从一开始的django-admin在下一个项目中它很特别转移到ng-admin,不断的往项目中添加内容,对接现有产品,但项目在内部试运行,试推广,就像一粒石子投入无边的大海,没有了身影,至始至终没能推动起来。
从项目的需求到模型的设计,再到代码的实现都参与其中,甚至幻想产品上线后,能受到大家的喜爱,就觉得特别的满足,但还来不及幻想就戛然而止,项目没办法最终落地,胎死腹中。为了做一个产品熬夜加班,快两年时间加了一年半,没想到最后换来的是这样的结果,说实话心里很难接受,但没办法,依旧要向前看。
新的希望
分公司的经理他从我们上一个项目看到了能帮他实现多年想法的火苗,带着规划和需求来到我们团队…
总结
这是我的第一个项目经历,对于我来说高兴又失望,高兴的是能了解并学习到这么多东西,失望的是最终没能推出产品。
- 产品规划缺少专业人士指导
- 梯子似乎已经必不可少
- 学会如何搜索,
关键字的掌握 - 学习新技术的方式,
官方文档是最好的学习资料 - 拒绝惯性思维