关于大学狗们的技术方面

最近要面试了,我觉得做的最牛逼的前端就是大学狗们了。少不了要问。自己先总结下。

目的

这个项目起源于和学弟的聊天。他在学生会工作,学校活动又多,大部分时候要用到报名,挺麻烦的,所以我们就决定做这个项目了。

BE

先说说后端吧。刚起项目那会儿是把自己当作PHP开发来用的。

jeffway安利了laravel,之前也有纠结Rails的。后来觉得自己对PHP更熟悉一些就决定laravel了。

后端就那样写啊。连MySQL做数据库。算是个传统的LNMP了。其实刚开始写的时候是非常的爽而且写的很快。大部分功能基本上在第一周就写完了。

然后问题就来了。学弟因为长期在学生会工作,充当了个PM的工作。

我们在teambition上有好多的任务条。

具体实现没什么太大的问题,我基本上第一版原型写出来了嘛,那个时候又学了Redis,感觉棒棒的,拿来用!毕竟内存读取比数据库读取快多了。

然后PM让加个Excel生成的功能,加!

然后是团队报名的功能真的头大。由于一开始根本没有考虑到还有团队报名这个事情。所以数据库设计的时候压根没考虑这功能。数据库设计真是特别的难办,想了一整个考试月,最后决定给原表上加上一个role字段,然后再开一张sub表作为队员信息。其实纠结的主要内容是不是新开一张表。

寒假把团队报名功能做完了,我看自己之前的代码就一感觉

谁这么傻逼写这种代码

命名一团糟,各个接口没有规范,Modal层功能集中在Controller中。寒假重构得想死 T_T

FE

前端可有得写了。毕竟现在主要写前端嘛。

一开始因为定位是PHP开发,所以纯服务端渲染。

引入Bootstrap就开干了。那个时候其实js写得渣得很,就会点儿jQuery。在报名页面内联着写几十行js验证。然后提交!然后在每个页面给nav对应的链接加个active的class

然后不知道什么时候特别喜欢js了。毕竟颜值比PHP高到不知道哪里去了。虽然laravel确实很优雅…

一开始其实对前端无感的,做页面纯手写,一点儿也不高端。然后用laravel的时候接触gulp。仿佛看到了新世界的大门。

imooc.com上也特别多的前端课程,那个阶段前端学得很多吧。

因为在项目中总是更改页面效果,到后面几十张页面,那么多class,搞得头都大了。这边改一下,那边还有问题,还得改。就是拆了东墙补西墙的感觉。终于受不了要重构,然后开了个react branch开干

要说对React感觉其实是很好的,因为React学了ES2015,知道了还能这么写页面(jsx),还学了Webpack。关于webpack一开始是拒绝的,我觉得gulp够用。后来用上了发现上瘾了。可是啊。

React是个大坑!!!

我写起来以后才发现,这货API怎么老在变,不仅仅是react API变, react-router也是啊。Redux文档写的那么难过!一点儿也不给力!

以为学会了react就完了吗,天真!还得写ES2015呢,还有react-router等着学呢,还有Flux, Redux等着学呢,还有react-native等着用呢!还有RxJS等着学呢!

忘记有多长时间在这中间追赶,确实是学到了很多,然而追起来太累了,我记得那个时候大V都在为前端要不要追新而撕逼。

我觉得我还是找个正常点儿的吧,生态太繁荣也是一种问题。

在知乎上看到好多人在安利Vue,而且Taylor Otwell在twitter上也说决定用Vue,而且,laracasts也出了Vue视频。

基于上面三个原因就去试了试Vue,已上瘾。API简洁,写起来也很舒服。还都有成套的工具。学了一段时间就拿来做前端重构了。是一整套的Vue技术栈: Vue + Vue-router + Vuex + Vue-resource

构建工具是上面说过的的webpack。

CSS

CSS,一直忘记说这个。

CSS很糟糕,工程化难度太大,没有函数,变量,模块,继承等等很棒的东西。

不说历史了,直接说项目。

一开始因为laravel自带了sass编译,所以一直用sass。由于被Ubuntu送了个U盘,一直感激,用Ubuntu做开发。后来由于一些原因要在Windows下开发。问题来了。

因为sass依赖node-sass,而node-sass是c++写的,得编译。Windows平台又不知道出什么鬼问题。反正就是一直出错。惨了两天。只能不写。

在前端重构的时候换到了stylus了。语法优美,好看。各种功能也都很棒。

只是有一个引入node_modules下stylus的问题一直得不到解决。比如安装了bootstrap的stylus版本,如何引入,一直没能找到答案。希望知晓的同学告知一下,谢谢~

好了,说说布局。因为一直不喜欢IE,而float布局其实有很多问题,比如clear fix的问题。所以粗暴的用flex写布局了。

真舒服!居中这么简单就完成了!wrap也会自动折行!

反正整个项目完全无痛。

Server

服务器买的Digital Ocean的VPS。因为不用备案,而且口碑不错。只是有些慢。

在用的时候PM学弟老是说会有广告,我就纳闷,我们没有广告啊!

他把截图发来才知道是运营商广告。当时是日了整个动物园的感觉

过了半个月开了https。顺便整了http2。心情大好,狗日的运营商终于不能找我麻烦了

End

好了,暂时就酱了。

最后求实习啊!