前言

已经将近两个月没有更新博客的内容了.前面一个月是因为接到学校的宣传部网站的更新的任务(巨坑,对于自己的学习没有什么帮助,领导要求还多变,吐槽的就不多说了!),之后的一个月就是我所在的协会一年中最最重要的事,纳新.然后准备阶段前端组当然是最忙的了.我负责了纳新报名通道前后端,H5宣传页面,机考系统后端的开发.

下面是我在纳新当中自己总结的一些收获吧.

技术方面

  • 数据库的一些列的设置上,比如说男女,或者方向,可以就用象征值比如1 2 3等来表示.这样既可以节省存储的空间,而且就算是象征的含义改变了,代码方面改动很小.
  • nodejs安装npm依赖,还是npm install靠谱.cnpm因为更新时间等一些问题可能丢失一些依赖,导致nodejs进程崩溃.这个情况就在报名通道上线的时候发生过.
  • nodejs的请求处理方式和php相比有明显差别,nodejs单线程,php多线程.Node.js的线程和进程这篇文章让我明白了很多.
  • 对于真实的场景,上线是一件很危险的事情,要做过完全的测试才能上线,就算你改了代码,用户浏览器端还是会有缓存.微信缓存强刷静态资源fingprint.
  • 上线之前gulp task代码写好一点,小水管能压一点是一点,还有就是我开启了gzip对于一些静态资源的压缩很明显,大贺说划分主域对于小网站来说并没有这么明显,还有不要gzip png等图片文件.
  • 使用mysql模块连接数据库的时候,要在每次操作完之后正确释放connection连接,不然就会产生很多sleep连接占用mysql,导致mysql不能正确对查询做出反应,使进程假死(就是进程没有崩,但是无法对请求做出响应)

服务器端渲染 VS 客户端渲染

完全使用浏览器端渲染。这样的缺点是:
网页加载速度慢,因为需要加载页面后再运行JavaScript,尤其是在移动设备上
无法做SEO,因为数据在JavaScript的数据结构中
使用服务器端渲染,可以避免上述的问题。

但是单纯的服务器端渲染也有问题,就是无法重新渲染。

解决的办法是,既使用服务器端渲染,也使用客户端渲染。让后端渲染一部分(比如首屏部分),后面的工作就交给前端异步去处理。两者结合起来效果才是最佳的。

响应式方面:

PC 端不做自适应了,都是 1060 吧
@content-width-small: 1060px;
@content-width-middle: 1060px;
@content-width-large: 1060px;

@phone: ~”only screen and (max-width: 767px)”;
@middle: ~”only screen and (min-width: 1140px) and (max-width: 1440px)”;
@large: ~”only screen and (min-width: 1440px)”;

非技术方面

  • 这次纳新准备阶段最失败的是任务的分配问题.按照大贺学长的话就是没有一个leader来指派任务,导致有些人的任务量很大完成情况不好,有些人手上没有分配到任务.
  • 纵然之前做了很多准备,在宣讲会现场还是状况百出,这时候临场的指挥能力就显得尤为重要!
  • 宣讲会现场,我的临场发挥还是紧张了!!尴尬..
  • 最近的一个月也发生了好多事,大学在实验室待了一年多了,感觉有时候自己的社交圈太小了.和人交流的有点少.但是想想有收获就会有所牺牲吧.纳新也结束了,我们这帮大三离开实验室也要提上日程了,实验室确实给了我很多,所以也是心存感激.

参考文章

Node.js的线程和进程
mysql出现大量sleep进程的原因与解决方案
记一次 MySQL 数据库问题排查
转 谈谈前端渲染 VS 后端渲染
node.js 和 nginx 配合实现 gzip 压缩,让网站浏览更顺畅
mysql插入数字都变成2147483647的解决方法