代码改变世界

随笔分类 - Javascript

kmdjs集成uglifyjs2打造极致的编程体验

2016-06-14 19:13 by 【当耐特】, 951 阅读, 收藏, 编辑
摘要:回顾 "上篇" 文章大概展示了kmdjs0.1.x时期的编程范式: 如下面所示,可以直接依赖注入到function里, 也可以直接在代码里把full namespace加上来调用,如: 而且,在循环依赖的场景,因为执行顺序的问题,会导致第一种方式注入undefined,所以循环依赖的情况下只能用fu 阅读全文

kmdjs和循环依赖

2016-06-13 18:26 by 【当耐特】, 879 阅读, 收藏, 编辑
摘要:循环依赖 循环依赖是非常必要的,有的程序写着写着就循环依赖了,可以提取出一个对象来共同依赖解决循环依赖,但是有时会破坏程序的逻辑自封闭和高内聚。所以没解决好循环依赖的模块化库、框架、编译器都不是一个好库、框架、编译器。 kmdjs的本质就是{},从{}扩展出的tree。从很早的版本就开始,是支持循环 阅读全文

observejs改善组件编程体验

2015-05-18 08:49 by 【当耐特】, 1725 阅读, 收藏, 编辑
摘要:传送门 observejs:https://github.com/kmdjs/observejs 本文演示:http://kmdjs.github.io/observejs/list/ 本文代码:https://github.com/kmdjs/observejs/tree/master/examp 阅读全文

transformjs:让天下没有难做的生意!不对,是特效!

2014-09-24 10:51 by 【当耐特】, 7282 阅读, 收藏, 编辑
摘要: 写在前面 transform是css3新增的一个属性,可是令开发者费解的是,其内部又有大量的属性如旋转、缩放、扭曲、平移,这也就导致了获取或者是设置transform中一个或者多个属性变得异常麻烦。 transform.js意义 让前端没有难做的特效 告别style.xxxTransform= 阅读全文

kmdjs指令大全

2014-09-22 10:31 by 【当耐特】, 1233 阅读, 收藏, 编辑
摘要:### 调试通过下面方式,可以输出kmdjs声称的类: 在kmd.js后面加上?debug可以在console面板查看到依赖关系和输出的class。### 依赖可视化通过下面方式,可以输出使用canvas绘制的项目依赖关系图: 依赖关系,甚至是循环依赖在图中都能体现出来。### 合并js... 阅读全文

kmdjs api reference

2014-09-21 09:23 by 【当耐特】, 1192 阅读, 收藏, 编辑
摘要:## 总览kmdjs的主要就两个API:kmdjs.config和define## kmdjs.configkmdjs.config是用于项目整体配置,一般的配置如下所示:```javascriptkmdjs.config({ name:"HelloKMD", baseUrl: "js"... 阅读全文

AMD and CMD are dead之KMDjs内核之分号

2014-07-16 17:28 by 【当耐特】, 1054 阅读, 收藏, 编辑
摘要:在老版本的kmdjs中,强制了分号的要求。但是总感觉不爽,因为在开发Ket - Kmdjs Extension Tools的时候,总需要导入一些开源的库,然后痛苦就来了,总是报错,一查,就是缺少分号!!后来一想,既能jslint可以检测哪里缺少分号,那么是不是可以在使用jslint在缺少的地方加分号?把jslint当作库来用,而不是工具,所以立刻看了看jslint源码,然后码了一段: 上面... 阅读全文

AMD and CMD are dead之KMDjs内核之依赖分析

2014-07-13 21:10 by 【当耐特】, 1524 阅读, 收藏, 编辑
摘要:有人说js中有三座大三:this、原型链和scope tree,搞懂了他们就算是js成人礼。当然还有其他不同看法的js成人礼,如熟悉js的:OOP、AP、FP、DOP、AOP。当然还听说一种最牛B的js成人礼:熟悉jQuery……= =!因为$里面可以放下全世界,比如$(“全世界”)…这篇文章主要讲... 阅读全文

AMD and CMD are dead之KMDjs集成Blob一键下载全部build包

2014-07-06 14:58 by 【当耐特】, 1132 阅读, 收藏, 编辑
摘要:更新 不zuo,[A/C]MD就不会死,所以kmdjs赢来来其伟大的版本0.0.6,该版本主要的更新有: 移除去了kmdjs.get(..).then的支持,只支持kmdjs.get(…,function(){ }) 作此更改有三点目的: 1.让build之后js文件尽量小,因为可以省去promise库 2.让require.async的用户平滑过渡到kmdjs.get 3.k... 阅读全文

AMD and CMD are dead之KMDjs在JS工程化的努力

2014-07-03 12:20 by 【当耐特】, 1277 阅读, 收藏, 编辑
摘要:总览 kmdjs发布了最接近最终版本的0.0.4版本https://github.com/kmdjs/kmdjs,你已经完全可以在项目中使用。我已经无法用语言形容其完美程度。借用我发的微博: 模块管理 kmdjs仅仅需要一处配置,即main.js上部的kmdjs.config,用于配置项目名称、baseUrl,并且列出所有Class和其于路径的mapping。在开发桌面程序的时候,这个... 阅读全文

AMD and CMD are dead之Why Namespace?

2014-07-01 08:56 by 【当耐特】, 1391 阅读, 收藏, 编辑
摘要:缘由 当我看到_Franky兄的微博的时候: 我觉得我有必要出来详细说说KMDjs到底有什么本质上的优势了,连教主_Franky、貘吃馍香都不能理解他的好处,那么可想而知,在前端圈、或是全端圈、或是IT圈,能够理解KMDjs优势的码夫更加是屈指可数。 Why Namespace? KMDjs是能方便组织Namespace,并且Class Base。针对namespace,... 阅读全文

AMD and CMD are dead之KMD.js之懒

2014-06-30 10:05 by 【当耐特】, 1819 阅读, 收藏, 编辑
摘要:缘由 “懒”在软件设计中,有着重大的意义。最常见的两种“懒”,便是: 懒得计算 懒得加载 “懒得计算”常见于服务器端: 比如Multiplayer Online Role-PlayingGame,客户端主动计算,游戏服务器平滑过渡,在性能、游戏同步性找一个合适恰当的点。其目的是节约服务器端CPU、内存等的消耗,把许多消耗性能的计算分布在玩家电脑上; 比如cache,任何ca... 阅读全文

AMD and CMD are dead之KMD.js版本0.0.2发布

2014-06-28 18:55 by 【当耐特】, 1306 阅读, 收藏, 编辑
摘要:更新 正式从UglifyJS切换至UglifyJS2 增加依赖可视化功能 压缩代码更加方便 统一风格:如main的class名也不能省略 优化了kmdjs管道 修复了无数bug 通过src开启debug模式 代码格式强制分号结束,不然报错 问题 1.从UglifyJS切换至UglifyJS2,主要是Ug... 阅读全文

AMD and CMD are dead之JS工程化终极解决方案KMD.js版本0.0.1发布

2014-06-24 10:56 by 【当耐特】, 1382 阅读, 收藏, 编辑
摘要:回顾 经过两天晚上疯狂的开发调试,伴随着大量掉落的头发和酸痛的颈椎,KMD.js赢来了第一个稳定版本。在此期间KMD规范也有所修改和完善。 这两天主要完成的功能有: 按需加载 版本控制 模块管理 便捷调试 依赖打包 性能优化 依赖可视 在此,要感谢那些伟大的项目(虽然部分将要死去),但依然感谢: windjshttp://windjs.org/... 阅读全文

AMD and CMD are dead之KMD.js依赖可视化工具发布

2014-06-20 11:34 by 【当耐特】, 1234 阅读, 收藏, 编辑
摘要:使用 require("MyAapp.DepTree", function (DepTree) { DepTree(({ renderTo: "holder", width: "820", height: "580", data: [ { "name": "System" }, { "nam... 阅读全文

AMD and CMD are dead之KMD规范

2014-06-20 09:26 by 【当耐特】, 2528 阅读, 收藏, 编辑
摘要:What’s KMD? 乱世出英雄,KMD名字的由来充满了杀气。 Kill AMD and CMD KMD为替代混乱的AMD和CMD世界而生,一统天下。或者让这个混乱的世界更加混乱,导致: KMD AMD CMD三分天下 KMD的目标从来都是远大的: JS工程化终极解决方案 使用KMDjs的工程师从来都是: 尼玛,什么东西,这么NB? KMD规范 0.KMD只暴露两个关键字,一个是def... 阅读全文

AMD and CMD are dead之js模块化黑魔法

2014-06-16 09:28 by 【当耐特】, 6246 阅读, 收藏, 编辑
摘要:缘由 在2013-03-06 13:58的时候,曾甩下一片文章叫:《为什么不使用requirejs和seajs》,并放下豪言说发布一款完美的模块化库,再后来就把那篇文章删了,再然后就没有然后。该用seajs还用seajs,甚至我码的SCJ都是用requirejs组织起来的。 时光飞逝,岁月流... 阅读全文

码农干货系列【19】--Promise.js with AJAX

2013-05-05 10:12 by 【当耐特】, 3329 阅读, 收藏, 编辑
摘要:更新 新增Promise.timeout方法,检测task执行超时并且自动reject使用 Promise.timeout(f1(), 2000).then(f2, function () { alert("timeout"); }).wait(5000).then(f3); function f1() { var promise = Promise(); setTimeout(function () { console.... 阅读全文

码农干货系列【18】--getting started with Promise.js(总)

2013-05-03 15:30 by 【当耐特】, 4097 阅读, 收藏, 编辑
摘要:引用Promise.js 你可以点击这里下载。ps:如果使用了SCJ Framework,请使用SCJ.createPromise代替下面的Promisedone/resolvepromise.js提供了done和resolve方法,done负责注册成功的回调函数,resolve负责触发。 function cb() { alert('success') } var prms = Promise() prms.done(cb) setTimeout(function() { ... 阅读全文

码农干货系列【10】--光线追踪进阶:javascript玩转3D纹理映射

2013-03-18 07:59 by 【当耐特】, 6778 阅读, 收藏, 编辑
摘要:简介 本文在光线追踪的基础之上,为了追求渲染速度和效率,去除了光线的反射、去除了透视投影(如我前面两篇干货8和干货9,所以渲染虽然是3D场景,其实不是真实看到的,但不影响实验),进行了一些有趣的尝试。此文将分享这两天尝试的成果:3D雕刻。 3D雕刻,顾名思义--在... 阅读全文