一次Code Review

起因

最近后端的事情比较多,所以微信个人版这个项目就丢给了前端小王子做了。
首先,说一下前端的技术选型,我既没有用React也没有用Vue更不会用Angular。我选择了Mithril。这个是一个很酷的前端框架,因为它只有8kb,自带了Router, Ajax库,而且使用起来非常大的顺手。
下班之前和一个老前辈聊了一下Mithril,当我说我打包出来有700多kb的时候,他很费解,于是我也很费解。

优化

遇到问题的时候,首先需要分析问题,知乎名言,先问是不是,再问为什么。在这里我还是要把这篇文章贴出来提问的智慧,我觉得作为一个程序员,首先要会问问题!!!

首先我检查了一下源代码,我问小王子,为什么代码这么大,他回答我说他把Privacy和Service的内容都写在了页面里面。所以我不检查代码之后,代码就是瞎写。晚饭前,把文档都转换成HTML格式之后都丢到了七牛上面,这样我就只需要载入一个链接,就可以请求到我需要的内容。

const m = require('mithril')
const cm = require('./cm')

var service = {
    html: "",
    loadData: function() {
        return m.request({
            method: "GET",
            url: 'http://xxxxxxxx.bkt.clouddn.com/service.html',
            deserialize: function(value) {return value}
        }).then(function(data) {
            service.html = `${data}`
        })
    }
}
module.exports = {
    oninit: function() {
        service.loadData()
    },
    view: function() {
        return m('#page-content-wrapper.p-15', [
            m(cm.Hamburger),
            m("div", m.trust(service.html))
        ])
    }
}

把Privacy和Service两个页面都改成用网络请求的方式加载时候打包出来的size是500多kb,还不够小。我又检查了一遍代码,手机绑定的时候Modal里面的Privacy和Service也是写页面上了,WTF。
好,这次我只要稍微改一下这个方法,就可以放在这个Modal里面请求了。Piece of cake。
这样完了,我记得打包下来的大小是458kb。

接下来我以为是Webpack的optimisze level的问题,于是我读了一遍文档,发现webpack -p本身就会默认的执行一系列的优化。于是这个就不是Webpack的问题。

在Gitter上面我问了一下

对话

以上便是对话,所以我发现moment js这个package占了200kb的时候就惊呆了,而且它在iPhone微信的浏览器里面并不能正常使用,会显示invalid date。而且目前项目中并没有用到momentjs的地方,这个是我之前留下的坑,不过已经关小黑屋了。

结语

早上在知乎上看到一个问题,成为一个优秀的程序员很难吗。
这个其实并不是只是程序员的问题,每个人感觉每天都在机械的重复的时候,上班,下班,睡觉。你肯定也曾反思,人生要怎么活的精彩活得开心。当然你会意识到这个问题,但是你还是会继续骗自己。
所以一个优秀的程序员和一个普通的程序员之前的差别就是行动。优秀的程序员是懒惰的,懒惰并不是意味着他们什么都不做,而是他们憎恨重复做一件事情,这个很Stupid。但是普通的程序员依旧只是一把梭,复制,粘贴,拿起键盘就是干。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容

  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,445评论 1 32
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 5,292评论 4 31
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 1,737评论 0 1
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 2,587评论 0 7
  • 通过这个简单的文章方便大家转发给有需要的人。以便节省时间。
    aventin阅读 305评论 0 1