admin 发布于 07月23, 2018

你一定是闲得蛋疼才重构的吧

你一定是闲得蛋疼才重构的吧

随着“发布”进度条走到100%,重构的代码终于上线了。我露出了老母亲般的围笑……

最近看了一篇文章,叫《史上最烂的开发项目长啥样:苦撑12年,600多万行代码》,讲的是法国的一个软件项目,因为各种奇葩的原因,导致代码质量惨不忍睹,项目多年无法交付,最终还有公司领导入狱。里面有一些细节让人哭笑不得:一个右键响应事件需要花45分钟;读取700MB的数据,需要花7天时间。足见这个软件的性能有多糟心。

如果让笔者来接手这“坨”代码,内心早就飘过无数个敏感词。其实,笔者自己也维护着一套陈酿了将近7年的代码,随着后辈的添油加醋……哦不,添砖加瓦,功能逻辑日益复杂,代码也变得臃肿,维护起来步履维艰,性能也不尽如人意。终于有一天,我听见了内心的魔鬼在呼唤:“重构吧~~”

重构是一件磨人的事情,轻易使不得。好在兄弟们齐心协力,各方资源也配合到位。我们小步迭代了大半年,最后一鼓作气,终于完成了。今天跟大家分享一下这次重构的经验和收益。

挑战

此次重构的对象是一个大型单页应用。它实现了云端文件管理功能,共有10个路由页面,涉及文件上传、音视频播放、图片预览、套餐购买等几十个功能。前端使用QWrap、jQuery、RequireJS搭建,HTML使用PHP模板引擎Smarty编写。

阅读全文 »

admin 发布于 01月06, 2018

我的2017,谢谢你啦

2017年刚刚离开了我。前段时间看到了这张漫画:

alt

(图片来源:微博 @登登登Dn)

我想我应该专门写一篇文章来感谢陪我走过一段人生旅程的2017。

阅读全文 »

admin 发布于 10月13, 2017

越南秋游记(一)

(记录于2017年9月27日)

今天是正式在越南度假的第一天。早上6点半我俩就起床酒店到花园中心的露天泳池游泳。到泳池的时候空无一人。这是一个双层泳池,造型精致,池水清澈(没有“消毒水”的味道)。

alt

游了半小时,到餐厅吃自助早饭。鸡汤米粉(越南粉写作 phở,发音:/fʌ/,跟中文的“粉”很像)是我俩都很喜爱的一道早点,汤看上去很清澈,味道却特别浓郁鲜美,放了柠檬草,能闻到很清香的味道。餐厅的小姐姐们很美,走路时纤细的腰肢轻微地摆动,可惜没偷拍,就不放图了。

吃完早饭就穿着比基尼来到沙滩上。这里给各位打算去海边的童鞋们提个醒:如果想穿比基尼拍美美的照片,那么请不要下水游泳;如果想游泳,那就老老实实地穿长袖长裤(别问我为什么……)

阅读全文 »

admin 发布于 09月06, 2017

欢迎使用 Firekylin

这是程序自动发布的文章。如果您看到这篇文章,表示您的 Blog 已经安装成功!

如果您对 Firekylin 不是很熟悉,可以先阅读以下常用操作了解一下。

阅读全文 »

admin 发布于 08月17, 2017

Promise读书笔记(一)

Promise是什么?

打个比方:在M记点一个汉堡,收银员给了一张带有订单号的收据,这个收据就是Promise,它向我保证我在未来能够用这个收据换一个汉堡。在这个过程中我可以做别的事情。在Promise世界里,等待一段时间后,会有三种结果:

  • 服务员叫号,我拿到了汉堡。这叫做“完成”(fulfilled)
  • 服务员叫号,告诉我汉堡卖完了。这叫做“拒绝”(rejected)
  • 还没有叫号,可能永远都不会被叫到。这叫做“未决议”(pending)

阅读全文 »

admin 发布于 06月05, 2017

eslint报错导致编译失败

在编译vue项目的时候,eslint报错导致访问页面出错

alt

观察error信息,发现有如下报错: quotes

no-new

可以看出由于在JS中使用了双引号字符串,以及new一个对象却不赋值给变量,导致了eslint报错。 但是必须保留这种写法。因此修改.eslintrc.js文件,在rules中添加以下规则:

'rules': {
    // …
    'no-new': 0,
    'quotes': ['warn']
  }

再次运行,即可正常加载页面。

结论:

  1. eslint的error会导致程序退出。进而影响编译。所以要尽可能将error改为warn。
  2. 修改.eslintrc.js文件中的rules能够添加规则。

参考:

  1. Configuring Rules

阅读全文 »