Ruby语言特性(上)

Ruby是一种解释型、面向对象、动态类型的语言。Ruby采取的策略是在灵活性和运行时安全之间寻找平衡点。随着Rails框架的出现,Ruby也在2006年前后一鸣惊人,同时也指引人们重新找回编程乐趣。尽管从执行速度上说,Ruby谈不上有多高效,但它却能让程序员的编程效率大幅提高。本文将讲述Ruby语言的基础语言特性,包括基本的语法及代码块和类的定义。

HTML5高性能基础

当谈到Web的“高性能”时,很多人想到的是页面加载时间,但其实性能不仅仅是指加载时间,还包括浏览器性能网络性能开发效率。在Web前端开发中,性能是一个非常重要的需要考虑的点。本文将介绍一些开发原则和性能准则,这些都是提高Web前端性能的基础。

Node.js学习笔记:进程与集群

Node中的Javascript运行在单进程单线程上带来了很多好处:程序状态单一,没有多线程的锁、线程同步问题,操作系统调度因为较少的上下文切换开销,可以很好地提高CPU的使用率。但是这种模型并非是完美的,尤其是如今CPU基本都是多核的,一个Node进程只能利用一个核。此外,一旦单线程上抛出的异常没有被捕获,将会引起整个进程的崩溃。

本文将叙述Node如何应对“如何充分利用多核CPU服务器”及“如何保证进程的健壮性和稳定性”这两个问题。

Node.js学习笔记:内存控制

在过去很长一段时间内,Javascript开发者很少会在开发过程中遇到需要对内存精确控制的场景,也缺乏控制的手段。那些短时间执行的场景,如网页应用、命令行工具等,运行时间短内存很快地释放,即使内存使用过多或内存泄漏也只会影响到终端用户。但随着Node在服务器端的广泛应用,内存控制问题就暴露出来了。

基于无阻塞、事件驱动的Node服务,具有内存消耗低,适合处理海量网络请求的优点。服务器端的资源向来是寸土寸金,要为海量用户服务,就得使一切资源都要高效利用。本文将介绍Node如何合理高效地使用内存。

Node.js学习笔记:异步I/O

“异步”这个名词的大规模流行是在Web 2.0浪潮中,它伴随着Javascript和AJAX席卷了Web。但在绝大多数高级编程语言中,异步并不多见。PHP最能体现这个特点:它不仅屏蔽了异步,甚至连多线程也不提供,PHP都是以同步阻塞的方式来执行。这样的优点利于程序猿顺序编写业务逻辑,但在复杂的网络应用中,阻塞导致它无法更好地并发。

在服务器端,I/O非常昂贵,分布式I/O更加昂贵,只有后端能快速响应资源,前端的体验才能变得更好。Node.js是首个将异步作为主要编程方式和设计理念的平台,伴随着异步I/O的还有事件驱动和单线程,它们构成Node的基调。本文将介绍Node是如何实现异步I/O的。

Node.js学习笔记:模块机制

Javascript自诞生以来,曾经没有人拿它当做一门编程语言。在Web 1.0时代,这种脚本语言主要被用来做表单验证和网页特效。直到Web 2.0时代,前端工程师利用它大大提升了网页上的用户体验,JS才被广泛重视起来。在JS逐渐流行的过程中,它大致经历了工具类库、组件库、前端框架、前端应用的变迁。Javascript先天就缺乏一项功能:模块,而CommonJS规范的出现则弥补了这一缺陷。本文将介绍CommonJS规范及Node的模块机制。

CSS学习笔记:可视化格式模型

浮动、定位和盒模型是CSS三个最重要的基础概念,也是非常容易混淆和难掌握的概念。这些概念用于控制在页面上摆放和显示元素的方式,形成CSS基本布局。本文将介绍盒模型概念,外边距叠加,绝对定位和相对定位的差异,以及浮动和清理如何工作等。

CSS学习笔记:选择器

要将CSS样式应用于特定的HTML元素,需要想办法找到这个元素。在CSS中,执行这一任务的样式规则成为样式选择器(selector)。本文将介绍CSS常用选择器、高级选择器,层叠与特殊性计算,以及如何组织和维护样式表等内容。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器