最新 | 最热门 | 最高评价

+0  多重继承的演变

Tag: Programming Paradigm | Recommended | C++ | Go | Java | JavaScript | Ruby | Scala | 多重继承 | 接口 | 继承
四火 发于 2014年03月19日 14:45 | 点击: 2224 | 展开摘要
本来想告一段落别写编程范型的东西,但是这个话题最近发现很有意思,就拣出来唠一唠。从中除了能看出很多有趣的语言特性,观察不同语言的设计,还可以发现程序语言的发展过程。这里谈到的语言特性,都是从C++的多重继承演变而来的,都没法完整地实现和代替多重继承本身,但是有了改进和变通,大部分功能保留了下来,又避免了多重继承本身的问题。

C++的多重继承

这个问题我觉得需要从老祖宗C++谈起,我记得刚开始学C++的时候老师就反复教育我们,多重继承的问题。比如说二义性问题,也就是说,两个

查看全文: http://www.udpwork.com/item/11974.html

+0  如何捕获和分析 JavaScript Error

Tag: error | javascript | logging
Cat Chen 发于 2014年03月18日 10:38 | 点击: 2170 | 展开摘要
前端工程师都知道 JavaScript 有基本的异常处理能力。我们可以 throw new Error(),浏览器也会在我们调用 API 出错时抛出异常。但估计绝大多数前端工程师都没考虑过收集这些异常信息。反正只要 JavaScript 出错后刷新不复现,那用户就可以通过刷新解决问题,浏览器不会崩溃,当没有发生过好了。这种假设在 Single Page App 流行之前还是成立的。现在的 Single Page App 运行一段时间后状态复杂无比,用户可能进行了若干输入操作才

查看全文: http://www.udpwork.com/item/11955.html

+0  编程范型:工具的选择

Tag: Programming Paradigm | Recommended | AOP | Groovy | JavaScript | 元编程 | 动态语言 | 编程范型
四火 发于 2014年03月10日 19:19 | 点击: 2008 | 展开摘要
这是我写的关于编程范型的文章中最后一篇。

在《编程的未来》里面提到过,很多时候脑子里的算法还是不容易转变成代码,大部分情况下这不是你编码技巧的问题,而是编程语言的问题,或者更严格地说,是编程语言选择的问题。除了复杂性这个软件唯一的敌人,其它真正的困难,早就被数学家们解决了,如果问题和它的解决能够用数学轻松地表述出来,那计算机只是工具而已。极端地说,如果有合适的工具,那么就选择一个;如果没有,那么可以创造一个。仅此而已。

工程师的乐趣,大抵在解决实际问题上,既有解决问题的成

查看全文: http://www.udpwork.com/item/11923.html

+0  借助AngularJS写优雅的代码

Tag: JavaScript | Recommended | AngularJS | 事件 | 依赖注入 | 数据绑定 | 编程范型
四火 发于 2014年02月27日 11:06 | 点击: 2209 | 展开摘要
接触AngularJS还真有点碰巧,在用JQuery写数据绑定的时候,我被数据对象和DOM之间的同步整烦了,要写一大堆方法绑定和取值/设值的代码逻辑,丑得要死。简单说来,就是:

数据对象发生变更以后,要及时更新DOM树;

用户操作改变DOM树以后,要回头更新数据对象。

这个问题还是举例来说清楚一些,比如我定义了这样一个queryObj:

{name: "sally", price: 30}

现在有这样的DOM对象:

<input type

查看全文: http://www.udpwork.com/item/11778.html

+0  跨域方法汇总

Tag: JavaScript | Recommended | Cookie | flash | iFrame | script | window | 跨域
四火 发于 2014年02月13日 11:12 | 点击: 2956 | 展开摘要
做Web开发经常需要面对跨域问题,跨域问题的根源是浏览器安全中的同源策略,比如说,对于http://www.a.com/1.html来说:

http://www.a.com/2.html是同源的;

https://www.a.com/2.html是不同源的,原因是协议不同;

http://www.a.com:8080/2.html是不同源的,原因是端口不同;

http://sub.a.com/2.html是不同源的,原因是主机不同。

在浏览器中,<script

查看全文: http://www.udpwork.com/item/11695.html

+0  从JavaScript的单线程执行说起

Tag: JavaScript | sleep | Web Worker | 单线程
四火 发于 2014年01月21日 14:46 | 点击: 2762 | 展开摘要
先看一段代码:

setTimeout(function(){
alert("a");
}, 0);
while(1);
alert("b");

希望在马山可以弹出一个警告提示框“a”来,但是始终没有来;而且,在FireFox中跑还得到了这样的提示,并提示你是否要终止这段脚本的执行,遇事我选择终止以后,“a”倒是弹出来了,但是“b”却弹不出来了:

Warning: Unresponsive Script

A script on this page may be bus

查看全文: http://www.udpwork.com/item/11607.html

+0  函数式编程

Tag: Python | 程序设计 | 编程语言 | functional | Javascript | 函数式
陈皓 发于 2013年12月27日 08:11 | 点击: 3460 | 展开摘要
当我们说起函数式编程来说,我们会看到如下函数式编程的长相:

函数式编程的三大特性:

immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来,可以让你的程序少很多Bug。因为,程序中的状态不好维护,在并发的时候更不好维护。(你可以试想一下如果你的程序有个复杂的状态,当以后别人改你代码的时候,是很容易出bug的,在并行中这样的问题就更多了)

first class functions:这

查看全文: http://www.udpwork.com/item/11411.html

+0  Lua简明教程

Tag: 杂项资源 | 编程工具 | 编程语言 | C++ | Javascript | Lua
陈皓 发于 2013年12月03日 08:29 | 点击: 10349 | 展开摘要
这几天系统地学习了一下Lua这个脚本语言,Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,这是多么地变态啊(/bin/sh都要1M,MacOS平台),而且能和C语言非常好的互动。我很好奇得浏览了一下Lua解释器的源码,这可能是我看过最干净的C的源码了。

我不想写一篇大而全的语言手册,一方面是因为已经有了(见本文后面的链接),重要的

查看全文: http://www.udpwork.com/item/11273.html

+0  IE下JavaScript Date对象的不同之处

Tag: JavaScript | 笔记
youngsterxyf 发于 2013年12月03日 00:00 | 点击: 1657 | 展开摘要
之前在仓库作业机器监控系统项目中使用HighCharts的时间序列数据图来绘制机器CPU使用率、内存使用量、网络流量趋势变化图等,这些图在IE下却没有正常显示,IE也没有报错,按理说HighCharts的IE兼容性是较好的,不会出现这种问题,
最后查明原因---确实不是HighCharts的问题,而是由于IE下JavaScript的Date对象缺少一种构造函数导致的。

IE中JavaScript的Date对象有如下三种构造函数:

dateObj = new Date()

查看全文: http://www.udpwork.com/item/11820.html

+0  什么是 Event Loop?

Tag: JavaScript
阮一峰 发于 2013年10月21日 10:33 | 点击: 2130 | 展开摘要
Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。

JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。

本文参考C. Aaron Cois的《Understanding The Node.js Event Loop》,解释什么是Event Loop,以及它与JavaScript语言的单线程模型有何关系。

想要理解Event Loop,就要从程序的运行模式讲起。运行以后的程序叫做"进程"(process),一般情况下,一个进程

查看全文: http://www.udpwork.com/item/10982.html

+0  JavaScript与有限状态机

Tag: JavaScript
阮一峰 发于 2013年09月02日 12:14 | 点击: 1869 | 展开摘要
有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。

简单说,它有三个特征:

  * 状态总数(state)是有限的。

  * 任一时刻,只处在一种状态之中。

  * 某种条件下,会从一种状态转变(transition)到另一种状态。

它对JavaScript的意义在于,很多对象可以写成有限状态机。

举例来说,网页上有一个菜单元素。鼠标悬停的时候,菜单显示;鼠标移开的时候,菜单隐藏。如果使用有限状态机描述,就是这个

查看全文: http://www.udpwork.com/item/10574.html

+0  High Performance Canvas Game for Android

Tag: Android | Browser | Graphics | JavaScript | Canvas | Chrome | uc
Roger 发于 2013年09月02日 09:37 | 点击: 2425 | 展开摘要
UC在今年5月份发布了支持硬件加速的实验室版,开始实验性地支持对2D Canvas进行硬件加速。在9月份发布的9.3版本中开始分开两个版本 – 普通版和加速版,针对中高端手机的加速版开始正式支持硬件加速2D Canvas渲染。并且在未来将要发布的9.4加速版还会带来全新的Canvas渲染架构,进一步提升性能和减少对系统资源的占用。

这篇文章的主要目的是为移动Canvas游戏的开发者如何针对Android UC浏览器9.4加速版进行渲染性能优化提供指导,不过文中的

查看全文: http://www.udpwork.com/item/11620.html
|<<<45678910>>>| 一共22页, 254条记录