11月03, 2016

思考 CSS 架构

你有没有在一个逐渐膨胀的 CSS 项目中感到混乱呢?保持样式风格统一和 HTML 的影响是比较困难的:尽管修改一个较小的问题,都可能创建更多丑陋的 hack,也可能 CSS 的小改变会影响 JavaScript 的功能。但是这些问题能在我们的项目开始的时候静心规划,就能很大程度上避免这些问题。让我们开始说 CSS 架构吧。

阅读全文 »

10月25, 2016

退出

工作两年了,工作中犯了很多错,又将当初 LC 送的《重来》在闲时重新阅读一下,适当阅读非技术类书我相信以后会让自己的工作做的更好。LC 他们真的是很博学的朋友,当初他们也教会了我很多,不过离开团队太早了。下面的问题是工作一段时间经常会遇到的问题,能够帮助提升工作效率。

1. 为什么要这么做?

有助于理解工作本身的意义。

2. 你在解决什么问题?

每天开工前理清楚当天要做的事情,重新审视将要解决的问题。 早上开工前整理一天需要做的事情,然后再进行。

阅读全文 »

10月16, 2016

如何存储 React 组件的数据

主要讲解这几个部分:state、store、static、this、module-global data

前言

随着 React 和 Redux 的到来,一个共同的问题被问到:

我应该将数据保存在 Redux Store 中呢?还是应该保存成本地 state?

其实这个问题是说的不完整( 或者原文说的太简单 ),因为你能在组件中存储数据的方式还有两种:static 和 this.(其实就是静态数据,还是类的实例数据)

让我们来依次讨论一下,你应该在什么时候使用它们。

阅读全文 »

10月16, 2016

在你的项目中编写测试-TypeScript

前言

这篇文章的原作者感觉有一些不太适合或者过期的地方,已经修正,代码放入了我的 github 中,运行成功后的代码,大家如果能直接下载看懂,就不用看文章了~节约时间嘛,如果想看看文章的可以继续。

测试源码

这篇文章和之前写的 TypeScript + TDD 那篇不一样的是更加简单,直接测试,不需要其他什么多余配置。

开始

TypeScript 是让我着迷的,我最近需要开始准备使用 TypeScript 来编写项目,并且需要测试。在这篇文章中,我将解释如何开始一个简单的测试,在我们使用 TypeScript 来编写的时候,其中,我们能使用 TypeScript 的 import 语法,以及类型接口来帮助我们。

阅读全文 »

09月26, 2016

微信小程序开发入门篇

前言

直接开始,简单理解就是微信作为原生层,我们的应用作为网页,是一种 hybird 的开发方式,唯一不同的是,在这个平台上必须遵守微信的一些设计规范、运营规范等东西。

官方资料

https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1474644088899

开发工具

官方已出正版,可直接使用无 appid 进行体验

下载地址

使用的开发元素

  1. JavaScript (交互、数据等脚本)
  2. wxml (页面结构、组件)
  3. wxss(页面样式)

wxmlwxss 是新的文件格式,不用理解,就映射成 htmlcss 即可,但是不同的是,有一套自己的标签和支持的范围(比如 css 部分支持度有限),详情可以看上面的官方资料。

阅读全文 »

09月21, 2016

使用 TypeScript + TDD 快速开发的配置

1. 你需要一个好的工具来写测试

对于大多数开发者来说,都不太喜欢编写测试。当你在编写测试的周期的时候,能有一个快速的效应时间,那么这件事将变得更容易。结合一个好的测试框架你会有一个更好的开始。

测试驱动开发(TDD, Test-driven development)是一种你编写单元测试和应用程序代码的软件开发方法。典型的就是写一个空的根方法,创建一个失败的测试来验证不存在的程序逻辑,直到全部的程序逻辑测试都变成绿色。最后,在你 push 你的提交前重构你的代码。

让我们创建一个基于 TypeScript 的 TDD 配置。

阅读全文 »

09月19, 2016

JavaScript 的内部字符编码是 UCS-2 还是 UTF-16

对于 JavaScript 使用的是 UCS-2 还是 UTF-16 这个问题,我找了很久,没有发现一个权威的回答,我决定自己研究一下它。这个回答来自于你对 JavaScript 引擎或者对 JavaScript 语言的理解。

一、著名的 BMP (Basic Multilingual Plane)

Unicode 标识符通过一个明确的名字和一个整数来作为它的码位(code point).比如,“©️” 字符的码位可以用“版权标志”和U+00A9(0xA9,也可以写作十进制 169)来表示。

Unicode 字符分为 17 组平面,每个平面拥有 2^16 (65,536)个码位.有一些码位没有分配字符,也有一些码位被保留,成为私有的,也有一些码位是永远被保留的,作为无字符的标志。每一个码位都可以用 16 进制 xy0000xyFFFF 来表示,这里的 xy 是表示一个 16 进制的值,从 0010

这第一个位置(当 xy00 的时候)被称为 BMP (基本多文种平面, Basic Multilingual Plane)。它包含了最常用的码位从 U+0000 到 U+FFFF。

这里需要补充一点额外的平面知识,以及术语的表格。

阅读全文 »

08月22, 2016

Mac OS xDebug PhpStorm 快速配置

前言

在网上找了一些相关配置的例子,觉得很多比较复杂,并且配置项过于多了,有很多冗余并不是最开始就需要的配置,所以写一下记录,也方便以后自己查阅。

一、brew 安装 php

在 Mac OS 这边不需要手动去下载编译打包,直接使用 brew 进行快捷安装会比较方便管理,对于最原始的打包安装方式也可以,不过需要自己去创建一些 link 所以这里只记载 brew 的方式。

  1. 确定 brew 环境的干净。
  2. 确定 php 版本,这里是用 php54,如果有多版本切换的需求可以安装 php-versionbrew-php-select,前者是用 brew 可以安装,后者依赖 npm
  3. 安装 php54-xdebug,因为 xdebug 会有一个映射版本。

阅读全文 »

08月10, 2016

骑行-雁栖湖游记

路程:来回110公里

时间:2014年9月20日

我、智杰、成银、肆爷、文武、文成、孟孟(7人)


1. 景点简介

雁栖湖,是位于北京市怀柔区北部北台上村的水库,拦截雁栖河,北临雄伟的万里长城,南偎一望无际的华北平原。雁栖湖水面宽阔,湖水清澈,每年春秋两季常有成群的大雁来湖中栖息,故而得名。

2. 出发前的集合

跟之前约好的一样,早上9点到公司集合出发。大家像打了鸡血一样吃完了早餐,摆好了出发的架势准备出发,在出发前文成比较有经验,还教我们一些骑行中要用到的常用手势,感觉很专业的样子^0^

阅读全文 »