软件工程师到运维的 Docker 初体验

2017-05-01
阅读 5 分钟
5.6k
对于各种凌乱的电脑问题,其它行业的人以为程序员们什么都会;程序员中,女程序以为男程序员什么都会;男程序员中,一般程序员以为技术好的程序员什么都会;技术好的程序员,每次都在网上苦苦搜寻答案……

从 JavaScript 到 TypeScript - 模块化和构建

2017-04-09
阅读 5 分钟
14.1k
TypeScript 带来的最大好处就是静态类型检查,所以在从 JavaScript 转向 TypeScript 之前,一定要认识到添加类型定义会带来额外的工作量,这是必要的代价。不过,相对于静态类型检查带来的好处,这些代价是值得的。当然,TypeScript 允许不定义类型或者将所有类型定义为 any,但如果这样做,TypeScript 带来的大部分静态...

C# 7.0 的新特性(速览版)

2017-03-11
阅读 5 分钟
5.3k
《〔译〕 C# 7 的新特性》花了很大的篇幅来介绍 C# 7.0 的 9 个新特性,这里我根据项目经验,通过实例对它们进行一个快速的介绍,让大家能在短时间内了解它们。

〔译〕C# 7 的新特性

2017-03-11
阅读 15 分钟
4k
原文:What's new in C# 7 2016-12-21 译者注:原文于 2016 年 12 月发表,当时 Visual Studio 2017 还是 15 Preview 5,不过直到 VS2017 它们仍然没什么变化。

使用 yarn global 代替 npm -g

2017-02-26
阅读 2 分钟
52.1k
首先,yarn 的全局安装并不是加 -g 或者 --global 这样的参数,它使用 yarn global 命令。用 yarn global --help 可以看到子命令列表

用 TypeScript 写 gulp 构建

2017-02-26
阅读 2 分钟
7.9k
我在项目中经常使用前端构建技术来生成网页需要脚本和样式表。多数时候是采用 gulp + webpack (babel-loader | ts-loader) 的方案,在 Node7 下运行甚至可以使用 async 语法——当然大部分都是配置,只在 gulpfile.js 里会有少量的脚本代码。

JavaScript 的 this 指向问题深度解析

2017-02-19
阅读 6 分钟
22.4k
JavaScript 中的 this 指向问题有很多博客在解释,仍然有很多人问。上周我们的开发团队连续两个人遇到相关问题,所以我不得不将关于前端构建技术的交流会延长了半个时候讨论 this 的问题。

为什么要用原生 JavaScript 代替 jQuery?!

2017-02-01
阅读 6 分钟
24.7k
随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音。这并不是什么坏事,但也不见得就是好事。如果你真的想把 jQuery 从前端依赖库中移除掉,我建议你慎重考虑。

从地狱到天堂,Node 回调向 async/await 转变

2017-01-02
阅读 7 分钟
15k
Node7 通过 --harmony_async_await 参数开始支持 async/await,而 async/await 由于其可以以同步形式的代码书写异步程序,被喻为异步调用的天堂。然而 Node 的回调模式在已经根深蒂固,这个被喻为“回调地狱”的结构形式推动了 Promise 和 ES6 的迅速成型。然而,从地狱到天堂,并非一步之遥!

2016,驻足、思考、寻找方向

2016-12-31
阅读 2 分钟
3.8k
回想 2016 干了啥的时候,竟然什么也想不起来!工作一定是干了的,不温不火,没什么特别的成绩,等下个月写述职报告的时候再来好好回忆具体的事项;学习也没落下,全勤,而且各科成绩优秀,倒是接下的一年要好好地写毕业论文。技术和社区活动方面,主要还是在 SegmentFault 和 OSChina 上活动,所以不妨从社区的记录找找...

从 Asp.Net MVC 到 Web Form

2016-12-02
阅读 11 分钟
4.8k
从 Asp.Net MVC 到 Web Form 这看起来有点奇怪,大家都研究如何从 Web Form 到 MVC 的时候,为什么会出现一个相反的声音?从研究的角度来说,对反向过程进行研究有助于理解正向过程。通过对 MVC 转 Web Form 的研究,可以推导出:如果想把一个 Web Form 应用转换为 MVC 应用,可能需要进行怎么样的准备,应该从哪些方面...
封面图

理解 JavaScript 的 async/await

2016-11-19
阅读 7 分钟
664.2k
最近在 2021-11-13 更新记录(主要更新内容):[2021-11-13] 补充返回 Promise 对象的情况下,加或不加 async 是有区别的[2021-09-28] await 等待的不是 Promise Like 对象时 ...[2020-06-04] 解释 Promise.resolve()

JavaScript 数组分组的实现

2016-11-12
阅读 5 分钟
29.1k
今天回答了 @j_bleach 的问题:JS生产嵌套数组(也就是对数组分组)更好的写法。回答的过程中对 lodash _.chunk() 产生了好奇,所以分析了一下它的源码,再加上我自己的解决方案,收集了如下一些方案,分享给大家按惯例,我还是使用 es6 语法,在 Node7 中实验通过

JavaScript 中对大量数据的多重过滤

2016-11-03
阅读 3 分钟
7.1k
问题就在过滤上,这样固然可以实现多重过滤(先调用 filterA() 再调用 filterB() 就可以实现),但是这个过滤是不可逆的。假如过滤过程是这样:

miniui datagrid 的客户端分页解决方案 - CS结合

2016-10-25
阅读 6 分钟
4.4k
现在就来改造 ClientPagination,让它实现这个功能。不过在此之前需要先解决上个版本中存在的一个问题:destroy() 并没有完全恢复原有的 datagrid 对象,因为忘了在 destroy() 中恢复 this._datagrid 的 load 和 setData 函数。

miniui datagrid 的客户端分页解决方案

2016-10-24
阅读 4 分钟
7.3k
首先,是绑定一个 preload 事件,在这个事情中设置 event.cancel = true,阻止 datagrid 在翻页的时候向服务器请求加载数据。

TypeScript(JavaScript) 版俄罗斯方块——深入重构

2016-10-14
阅读 7 分钟
5.3k
你一定注意到博文的标题变了成了“TypeScript 版 ...”。在上一篇 JavaScript 版俄罗斯方块——转换为 TypeScript 中,它就变成了 TypeScript 实现。而在之前的 JavaScript 版俄罗斯方块——重构 中,只重构了数据结构部分,控制(业务逻辑)部分因为过于复杂,只是进行了表面的重构。所以现在来对控制部分进行更深入的重构。

JavaScript 版俄罗斯方块——转换为 TypeScript

2016-10-06
阅读 6 分钟
7.8k
写 JavaScript 版俄罗斯方块的目的是为试验了技术和框架。最初的版本 通过 Gulp + Webpack + Babel,搭建了一个 ES6 的前端构建环境;之后的一个版本 通过重构技术对模型部分进行较全面的重构,同时引入了 私有成员写法,也在重构的过程中发现,用 TypeScript 来写脚本是个比较好的选择。

JavaScript 版俄罗斯方块——重构

2016-10-02
阅读 6 分钟
5.8k
在 JavaScript 版俄罗斯方块 中曾提到,因为临时起意,所以项目结构和很多命名都比较混乱。另外,计分等功能也未实现。这次抽空实现计分和速度设置,并在此之前进行了简单的重构。

〔译〕TypeScript 2.0 的新特性

2016-09-25
阅读 15 分钟
9.8k
TypeScript 有两个特殊的类型,null 和 undefined,null 和 undefined 分别是它们的值。以前是不能显式使用这些类型的,但现在 null 和 undefined 不管在什么类型检查模式下都可以用作类型名称。

〔译〕TypeScript 2.0 正式发布

2016-09-23
阅读 4 分钟
7.5k
TypeScript 2.0 对于产品团队来说是个伟大的历程,这个历程少不了来自社区和合作伙伴的贡献。这个版本带来了一些新的特性,可以提高开发人员的开发效率。这个版本使 TypeScript 更加接近 ECMAScript 的发展,为 JavaScript 库和工具提供了更为广泛的支持。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。

JavaScript 版俄罗斯方块

2016-09-17
阅读 6 分钟
10.3k
十多年前曾经用 Turbo C++ 3.0 写过 DOS 下的俄罗斯方块,不久之后又用 VB 写了另一个版本。十多年后决心用 JavaScript 再写一个并非完全心血来潮。起因是儿子提到了手掌游戏机,而从技术上来说,主要是想尝试 使用 webpack + babel 构建的纯 es6 前端项目。

集合数据处理(C#、JavaScript 和 Java)

2016-09-12
阅读 9 分钟
5.6k
Java 丢了好多年,最近在拣起来,首先当然是了解这么多年来它的变化,于是发现了 Java 8 的java.util.stream。在学习和试验的过程中,相比较于 C# 和 javascript,有那么些心得,作文以记之。 早些时间写过一篇《ES6 的 for..of 和 Generator,从伪数组 jQuery 对象说起》,和这个主题有点关系。其实我记得还有一篇讲 C#...

〔译〕TypeScript 2.0 候选版发布

2016-09-07
阅读 4 分钟
4.7k
TypeScript 2.0 候选发行版(RC)出来了,离 TypeScript 2.0 最终发布也就不远了,赞!如果你还没开始使用 TypeScript,可以先看看网站上的教程。

〔备忘〕Visual Studio 2015 常用扩展

2016-02-03
阅读 2 分钟
5.3k
Productivity Power Tools 2015 的详情说明在 Productivity Power Tools 2013 页面。最常用的功能是:Column Guides,我习惯在 80、100、120 这 3 个位置画参考线,当然线的颜色会设置得比较接近背景色,这样不会影响阅读代码。

〔备忘〕Windows下的控制台环境配置

2016-01-01
阅读 2 分钟
3.5k
最近重新装机,顺便打造了一下 Windows 的控制台 1. 使用 雅黑Consolas混合 字体 YaHei Consolas Hibrid 是雅黑和Consolas的混合字体,等宽,而且带中文,很适合用于控制台。 不过要修改字体先得修改注册表,具体怎么修改直接百度就行,为了方便,导了个 console_ttf.reg 出来 {代码...} 2. 让控制台记住历史命令 Window...

[学习笔记] Cordova+AmazeUI+React 做个通讯录 - 使用 SQLite

2015-10-07
阅读 8 分钟
8.1k
通讯录做到这个程度,应该考虑增删改功能了。但是,增删改功能的前提是能进行相应的数据持久化操作。因为需要先研究在 Cordova 中使用 SQLite。

[学习笔记] Cordova+AmazeUI+React 做个通讯录 - 单页应用 (With Router)

2015-10-06
阅读 6 分钟
7.7k
React 的出现不是为了单页应用,但在很多时候用于单页应用。由于其组件化的设计,React 也的确很容易写单页应用。然而说到单页应用,就不得不提到 router,这个曾经只是在服务端使用的名词被单页应用带到了前端。

[学习笔记] Cordova+AmazeUI+React 做个通讯录 - 联系人详情

2015-10-01
阅读 8 分钟
5.8k
前面已经完成了联系人列表,然而似乎与 Cordova 没啥关系,随便找个 Web 服务器就可以跑。那么标题上的 Cordova 就只是一个简单的 Web 窗口而已么?

[学习笔记] Cordova+AmazeUI+React 做个通讯录 - 联系人列表(2)

2015-09-28
阅读 8 分钟
5.5k
然而为了将列表项抽象出来,以及便于对列表项的细节调整和后期可能需要实现的操作,还是把它定义成一个组件的好,这个组件就叫 Pserson,只需要把原来 map() 中的代码拷贝到 render() 的 return 中,再把 map() 中的 return 稍稍改一下

[学习笔记] Cordova+AmazeUI+React 做个通讯录 - 联系人列表(1)

2015-09-26
阅读 7 分钟
10.1k
[学习笔记] Cordova+AmazeUI+React 做个通讯录 系列文章 目录 准备 联系人列表(1) 联系人列表(2) 联系人详情 单页应用 (With Router) 使用 SQLite 传送门:全部章节 示例代码 了解 React 的工作方式 在阅读了大量 React 的资料(主要是官网)之后,发现有两个概念非常重要 React 的基本元素是组件,所有内容都由各种组件...

[学习笔记] Cordova+AmazeUI+React 做个通讯录 - 准备

2015-09-24
阅读 3 分钟
12.6k
本来做通讯录不是目的,目的是为了学习。要说原生的 Android 程序也不是不会写,只是学习界面搭起来麻烦,现今有这么多基于前端的移动应用框架,干嘛不了解下呢?

闲谈异步调用“扁平”化

2015-09-13
阅读 2 分钟
18.3k
随着 CPU 从单核变多核,软件从注重功能到注重体验,Web 从页面跳转方式到 Web2.0 的无刷新加载(AJAX),程序员越来越多的接触多线程和异步。而 Android 的主线程中不允许操作网络,更是将程序员们推向了异步的深渊。异步深渊产生的主要原因是回调,这在 nodejs 里尤其严重。

ES6 的 for..of 和 Generator,从伪数组 jQuery 对象说起

2015-09-04
阅读 4 分钟
5.9k
2021-07-04 更新,详情请阅读文末「更新说明」引pseudo英 ['sju:dəʊ] 美 ['su:doʊ]adj.假的,虚伪的n.[口]假冒的人,伪君子pseudo-array英 [s'ju:dəʊər'eɪ] 美 [s'ju:dəʊər'eɪ][计] 伪数组jQuery 对象是伪数组两个事实不管以前知道不知道,至少马上会知道jQuery 对象是一个伪数组。 {代码...} jQuery.fn 是 jQuery.proto...

通过 ES6 Promise 和 jQuery Deferred 的异同学习 Promise

2015-08-31
阅读 6 分钟
15k
Deferred 和 Promise ES6 和 jQuery 都有 Deffered 和 Promise,但是略有不同。不过它们的作用可以简单的用两句话来描述 Deffered 触发 resolve 或 reject Promise 中申明 resolve 或 reject 后应该做什么(回调) 在 jQuery 中 {代码...} 在 ES6 中 {代码...} MDN 宣布 Deferred 在 Gecko 30 中被申明为过期,不应该再...