程序设计七大原则

Author image vincentgemini on Web
在程序开发过程中,为了让代码更加健壮,更具有复习用性和可维护性,在设计的过程中一般会遵循以下六个原则:开闭原则单一原则代替原则依赖原则接口隔离原则最少原则合成/聚合复用原则开闭原则:程序的设计应该是不约束扩展,即扩展开放,但又不能修改已有功能,即修改关闭。因为在软件生命周期内,经常会出在原有功能基础上扩展新功能。这时,不能因为软件已经上线,不扩展新功能,但也不能直接修改旧的功能。正确的做法是,在原有功能上,扩展一个新的功能,新的需求依赖新的功能去实现。这样就既保证了老功能不受影响,有扩展了新功能。开闭原则一条非常重要的原则,可以说其它原则的基石。单一原则

Sails 不怎么维护了?

Author image Cloud on 前端 , Web
Sails近期好久没有更新了,听说维护的人员有几个离开了,准备另起炉灶。。。我了去个去。。。一直觉着Sails整体还是不错的,有些小地方比如ORM对url的映射有些安全性问题、blueprint过于随意、前端构建不够好等地方需要提高外,基本的功能感觉是NodeJS里面比较靠谱的、全面的,但是现在。。。首先Sails在Node 0.12.x版本上,会有内存泄露的问题(并非是github上issue提到的关闭.saisrc中grunt:false就可以解决的),默认的home页 ,多次刷新后,也会看到内存占用持续涨。github上有提到这是nodejs 0.

关于Angular、Vue、React的一些见解

Author image Cloud on 前端 , Web
Angular 1.x 看着可能更像是 java 系的框架爱。在带来了数据绑定这个先进生产力代表的同时,又带入了一大堆前端本来就不需要的包袱。指令、服务、scope等使用略微繁琐。Vue 只专注于View-Model,其他的控制权、策略制定都交给开发者,思路很清晰个人觉着,Angular最大的贡献就是推广了双向绑定,极大提高了富数据业务的生产力,这是核心,其他附带的特性和功能,各有评判吧~React,则是很好的提供了一个组件化、状态维护的技术思路~Virtual-Dom的概念,可以有很多探索和前端之外的应用Avalon的话,自己没有实际用过,他的数据绑定

网页性能管理详解

Author image 阮一峰 on 前端 , Web
转自:http://www.ruanyifeng.com/blog/2015/09/web-page-performance-in-depth.html作者: 阮一峰 你遇到过性能很差的网页吗?这种网页响应非常缓慢,占用大量的CPU和内存,浏览起来常常有卡顿,页面的动画效果也不流畅。你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站。作为一个开发者,肯定不愿意看到这种情况,那么怎样才能提高性能呢?本文将详细介绍性能问题的出现原因,以及解决方法。一、网页生成的过程要理解网页性能为什么不好,就要了解网页是怎么生成的。网页的生成过程,大致可以分

JS做简单地资源预加载

Author image Cloud on 前端 , Web
做h5/web app经常需要做资源预加载,一种是利用H5的manifest的离线存储实现缓存功能,是非定向的,一种是利用js/css来做定向的资源预加载~JS的话,经常会用img的src来做文章,写一个简单地图片资源预加载:首先定义一个资源组件的格式,这样有N多组件的时候,方便统一维护: component1 = {    'source': {        'type': 'img',        'url': ['/static/img/common/loader.gif']    }}现在我们简单设置type为img来做为资源类型,然后url

Pjax 无刷新开发web,更好用户体验

Author image Cloud on 前端 , Web , html5
什么Ajax、Pjax、Njax。。。神马玩意? 有Njax吗? 木有。。。不过真有Pjax!!其实pjax就是用到了html5的新history api: pushState和replaceState。如果浏览器不支持,会自动降级为普通http访问,跟正常a链接一样具体啥区别?先视觉通感感受下!!上图:1、普通的http切换页面的请求方式,闪烁、白屏、卡顿、加载等,就是完整加载一坨页面嘛,又慢又挫的,就像如花姑娘:2、通过Ajax来开发页面,只加在部分数据,没有切换和闪烁,清新宜人哦,就像街上MM、邻家小妹如果只是ajax的话,不能保存页面状态!一刷新

JavaScript ES7 中使用 async/await 解决回调函数嵌套问题

Author image Cloud on 前端 , Web , ES7
JavaScript 中最蛋疼的事情莫过于回调函数嵌套问题。以往在浏览器中,因为与服务器通讯是一种比较昂贵的操作,因此比较复杂的业务逻辑往往都放在服务器端,前端 JavaScript 只需要少数几次 AJAX 请求就可拿到全部数据。但是到了 webapp 风行的时代,前端业务逻辑越来越复杂,往往几个 AJAX 请求之间互有依赖,有些请求依赖前面请求的数据,有些请求需要并行进行。还有在类似 node.js 的后端 JavaScript 环境中,因为需要进行大量 IO 操作,问题更加明显。这个时候使用回调函数来组织代码往往会导致代码难以阅读。现在比较流行的解