工具篇

工和匠的区别之一,在于挑选和投资工具。

1. Mac Mini

img

年初的时候在一个创业团队的blog上瞄到其各种招聘,"使用mac者优先",顿时就好奇了,只知道黑客们都用linux,设计师喜欢mac,那对于普通开发者而言,个mac有啥好优越感的?

于是各种看帖,其中印象最深的是[为什么国外程序员爱用 Mac]及其评论。然后按耐不住开始折腾黑苹果。在虚拟机上安装成功没两天,就果断败了mac mini。倒不是用了两天就被打动了,而是在虚拟机上总觉着缺点儿什么。

然后这就用了一整年的mac了,现在每天背着上班,感受如下:

  1. 不用安装360,不用安装杀软,再也不关心开机时间,每天省出3分钟好心情。右下丑陋的弹窗再也没出现过,每天省出半个小时好心情。
  2. mac默认没有分区,开始有点儿不习惯,但是,慢慢发现,没什么东西找不到的。一顿双击深入文件夹找东西的情况再也没有发生过,同时也再也不关心磁盘用了多少,要不要磁盘整理,回收站该清空等杂务。
  3. 最初上手的两个月,最直观的感受就是,mac开机就能应付各种事务,win开机就是个裸奔的啥都干不了。而随着开始使用mac作为开发环境,发现其自带的各种环境真是非常方便,经常要玩儿一个新工具的时候会发现:诶~mac自带了这个、mac自带了那个……
  4. 软件更新方便。我现在只有一两个软件需要自己下载更新包。
  5. mac用久了也会慢。不过不太会出现需要强制重启的这种事情。
  6. 多程序运行超方便,特别是和触摸板的多点触控手势结合,太便利了,开上一堆程序,程序开上一堆窗口,都能轻松切换。现在想想在win下只会用alt+tab切换,真是可怕的效率啊。
  7. mac的程序大多都会自动保存状态,编辑器啥的不用特意保存,重新开机后东西都在。
  8. 苹果的生态系统真的蛮能培养付费习惯。用新软件前我第一反应不是找有没有盗版,而是看看正版多少钱……之前看有人吐槽mac市场占有率只有8%,给它开发软件不见得能赚钱,但,如果乘以用户的付费意愿呢?

2. CodeKit

img

号称"为Web前端打造的全能型神器"

名不虚传。

这一年里帮助最大的就这 神器 了。除了使用方便,通过它,我还接触到了不少好东西。

最棒的特性莫过于对脚本和样式表的Frameworks管理,再也不用把复用的文件粘来粘去了。

$25的价格,相对于回报来说,简直是白菜价。

3. Fiddler

img

没有mac版,只好运行在虚拟机中。

这也是枚 神器

它从根本上改变了我的开发模式。以前,视乎后端使用的语言,我得在自己机器上部署相应的运行环境来进行开发和调试。有了fiddler以后,js和css全部映射到本地的目录,既可利用远程的数据,又不用在本地部署运行环境,还可以随便调试,十分爽快。

特别是在开发代购插件的项目中,原本插件是面向ie的,利用fiddler向指定站点的html代码中直接注入本地的脚本,可以与win端程序并行开发互不影响,又能在自己mac下的chorme里直接调试。

如果没有fiddler,可能得先开发个chrome插件版,然后剥离出核心代码供ie插件使用,随后的调试修改还得保持两个版本的同步,再加上win端插件代码经常出bug……想想就欲死欲仙……

4. Sublime Text 2

img

用了两年的gvim,终于转到st了,当然,仍然使用vi的输入模式。

主要还是有点儿懒得折腾vi的配置,虽然配置后vi可以满足任何需求,但总是太繁琐了点儿。

st上手即用,界面蛮漂亮,速度也快。感觉跟MacVim差不多。当然,后来一直保持了8~9个项目的窗口,启动就有点儿慢了,不过还能接受。

最喜欢的两个功能,一个是插件包管理很方便,这是相对于vim而言。

另一个是查找文件很方便,因为最近几个项目的文件很无语地乱七八糟地嵌在7~8层目录下,往往文件名跟url还不直接对应……st在很大程度上救了我一命……

5. Github

img

从svn转到了github,虽然还没认真地读过指南神马的,但用着sourcetree的图形界面,也还算顺手。

最大的好处是可以各种本地分支,当做着A修改时突然插入一个急需的B修改这种情况再也不挠头了。

对于我来说,和CodeKit☝类似,它起到了一个知识节点的作用,通过它接触了JekyllLiquid,并使用jekyll-bootstrap☟搭建了自己的博客。

6. Jekyll-Bootstrap

img

对于使用mac的前端来说,这大概是最好用的博客系统了。

首先基于静态页面无需数据库,清爽简单。

其次LiquidMarkDown☟的语法都很简洁有效。

最重要的是,可以直接部署到Github☝上,安全又省心,还能把其他Github☝项目作为子模块引入来使用或展示。

7. Jira

img

广受好评的商用缺陷跟踪管理系统。价格不菲。

不过10用户的基础版本倒很便宜。脑子一抽自己买了一份。

最后的感受是……还是先把《写给大家看的项目管理书》通读一遍先吧……

8. Blender

img

研究canvas时觉着应该了解下3D图像的基础知识,稍作研究便忍不住败了《Blender权威指南》

免费,开源又功能强大的3D建模工具,还用Python作为脚本语言。还能更v5咩?

不过毕竟不是主业,没有太多时间花在上面。待processing的研究告一段落时再回头来把玩儿吧。

9. Leo

img

奇葩般的文学编程工具,用心学习了一个多月,实际项目中应用过两次,组织代码非常舒服,不过由于两个致命的缺陷而不能用:

  • 需要额外的标记来说明结构,当团队里的其他人不使用同样的工具时,就麻烦了。
  • vim的键位映射不怎么好。

语言篇

托CodeKit的福,今年把玩了不少有用的新东西。

1. CoffeeScript

img

这是本年度的重头戏,最初败CodeKit☝就是为了它。

大爱列表解析存在操作符字符串插值特性,感动得热泪盈眶啊。当初玩儿Python的时候羡慕死这些特性了。

2. Juicer

img

今年使用最多的模板解析引擎就是它了。胜在小巧且速度快。

3. Jade

img

目前最爱的模板解析引擎,通过CodeKit☝了解到的。

神器。

因为没有仔细考量过其前端表现,所以暂未作为前端引擎使用。

强大之一在于语法,采用缩进的方式,一方面简化了html代码的书写,使Zen Coding都有失宠之嫌。

另一方面它有php、scala、ruby、python、java的实现,意味着前后端可以使用一套模板来写。这应该可以大大降低不熟悉html结构的程序员弄丢标签的几率……(哪个前端不恨到页面上去找他们弄丢或搞残的标签?)

另一个强大之处在于它的Filter,可以在页面里直接使用其他需要解析的语言,现在支持的有Stylus、Less、Markdown、CData和CoffeeScript。

4. Less

img

今年主要使用的动态样式语言。

选择它一来是因为它有js的实现,虽然实际上并不会用于生产环境,不过聊胜于无,没准儿什么情况下用得到呢?

二来是因为它有比较好的中文文档,并且语法上和原生的css兼容性更好,当然,后一点现在scss也做到了。

不过,最近接触了下compass,其按包加载的方式颇有吸引力。

5. Markdown

img

通过Jekyll才喜欢上了Markdown,虽然有Pages可以做漂亮的文字处理和页面排版,但是Markdown可以让我专注于思考内容而非格式,也很容易转换到别的文件格式。用cat命令把多个章节合并输出真是爽呆了!更何况有Mou这样漂亮的工具可以用。

6. Processing

img

下一个项目可能需要在网页端进行一些图片处理,而canvas提供的接口比较底层的,显然需要一个库来处理,结果就找到了Processing,昵称P5

Processing本来是基于java的,不过jQuery它爹开发了一个js的实现:Processingjs。于是web端几乎可以直接通用代码。

不过有趣的不止于此,一方面,P5可以直接导出Android可用的格式。另一方面,P5又可直接用于Arduino,从而和现实的硬件进行交互,再加上Google 发布 Android Open Accessory 标准

嗯,所有东西都会凑到一起的奇妙感觉有木有?

框架篇

今年接触了不少框架,以下是准备进一步投入时间的。

1. Qunit

img

来自jQuery,基于浏览器,方便好用。

2. Bootstrap

img

火得一塌糊涂的前端框架。连奥巴马筹款网站都用它,无需多说。

现在不支持狗日的IE6。

据称2.0也不支持半斤八两的IE7。

不是不能,是不想。 V5

3. Emberjs

img

  • 构建“超级Web应用”所需的一切,MIT许可。
  • 功能最多,体积最大。
  • 融入了很多设计理念,涉及如何分解并对页面进行层次控制,以及如何利用一个状态机驱动的系统联结各个层次。
  • 正在开发一个功能非常完善的数据访问库(Ember.Data)。
  • 要在运行时控制整个页面,因此不适合开发大页面上的“富应用区”。
  • 对文件、URL等都有相当严格的一套约束,不过要是不喜欢,你可以重写,只要你知道怎么做就OK。
  • 设计灵感来自RailsCocoa
  • 工具:为Rails提供项目模板(但如果你手工编写代码,也可以使用其他服务器端平台)。
  • 常见的问题应该有通用的解决方案——Ember提供了所有通用解决方案。

读书篇

今年读的最好的几本书:

1. 用户体验要素

img

原以为是讲设计原理的书,结果完全超出期望值。

一个产品的用户体验,需要战略目标的设定,范围和功能的选择,信息架构的设计层面就下很多功夫,原型设计和美工设计反倒是水到渠成的事儿,凭空想象用户行为直接上原型和美工设计的,注定是拿沙子堆城堡。

2. 基于MVC的JavaScript Web富应用开发

img

从MVC的概念到实现到库和框架直至测试一一介绍,内容相当丰富。而且没有废话。

除了犀牛书之外,这本真是必看的。

3. 编写高质量代码

img

如果团队需要html,css和js的编码规范,就它了。

真是实践中总结的经验,无水分。

4. JavaScript模式

img

要说在犀牛书猫头鹰书之外还有什么js书是必备的话,就是它了。

发现好些模式自己在实践中都不知不觉地在应用。

5. 猎人们

img

应该与人类英雄的传记归于同一类文体。

工作篇

离开了原来的公司,一口气跳了两次槽。

1. 品果

因为觉着Camera360蛮不错的,各种高端感,再加上两年没研究过面试的事儿了,最初去面试的时候还有点儿小紧张。

总的说来很顺利,笔试题写了一个小时,手都软了。面试中一个jQuery函数的问题没答上来,回头研究了一下发现是个非常有用的特性,以前看文档的时候没太理解,也就一直没用上。

优点:

  • 设计师很专业,美观只是基本工,会做Sprites还能用MarkMan标注就意味着已经是达到标准化生产的层面了。从业这么多年来最喜欢的设计团队。
  • 正版操作系统。据说微软送的。
  • 员工生日送蛋糕。
  • 职业培训。支持员工学习进步。
  • 需要技术书籍申请即可。没听说有上限。
  • 每天提供饮料。
  • 风格:DIY装饰。喜欢弄些墙贴、挂饰来装饰办公室。
  • 风格:布置多媒体室提供xbox360。可以打游戏的公司哟!亲!

缺点:

  • 工作中发现Leader面试时考到我的技术点,居然从未分享给另外两个搭档过,虽然他时常还会检查代码来着。说明这个团队没有分享的氛围。
  • 下班前半个小时都不知道今儿是否要加班。
  • 让人感觉像是惩罚的加班(连坐)最终造成斯德哥尔摩综合征,遇上不加班的日子Leader告诫大家要"低调","别的小组不习惯"……尼玛……
  • Boss爱把无关紧要的事儿放到下班后。比如开会和上面的风格,如果实在没志愿者,就分配任务。
  • 无加班工资。
  • 其实没有明确的职业培训计划。入职前告诉我周六"其实一般是拿来培训",到实际操作时,定为周四晚上。
  • 办公室位于地下一层,通风不好,有三扇门,但只开一个,据说是怕"泄财气"。嗯,"棺气"都快捂出来了。
  • 你能想象那么漂亮的ios App是大油头程序员儿开发出来的吗?
  • 单休。每月一次双休,与法定节假日共用。

最后,鉴于拿我宝贵的私人时间来加班,一种情况像是在"弥补错误",越加越感觉自己无能;另一种情况是在做对Boss而言最没价值的杂事儿。

再加上所从事的项目不怎么有趣(入职前完全保密)。

在试用一个月期满证实我完全能胜任这份工作后,果断辞职了。

好吧,也许公司名字还真是蛮能反映公司文化的。

2. Zerdoor

随后应朋友之邀来一起创业的迷你公司。

优点:

  • 迷你型公司氛围宽松。
  • 主要项目听起来比较有趣。
  • 基本遵守《劳动法》,很多"大"公司都做不到。

缺点:

  • 犯过了创业公司经常会犯的大多数错误。
  • 程序员儿经验浅,bug多。
  • 把别人做完的事儿和自己准备做的事儿看得太简单。

生活篇

  • 试过了过了软陶。
  • 试过了玻璃瓶切割。
  • 试过了橡皮章雕刻。
  • 香皂雕刻未达成。
  • 蛙泳1km无压力。
  • 猫爬架完成。
  • 烤鸭未成功。
  • 试过了伏特加、朗姆酒、威士忌。偏好威士忌。
  • 陶瓷杯打孔盆栽完成。
  • 开始了胸腹肌的锻炼。
  • 开始学素描。
  • 晨跑没能很好坚持,3km成绩退化到18分钟左右。

计划篇

技术

生活

  • 继续练习素描。
  • 加强胸腹肌锻炼。
  • 全面恢复晨跑。


blog comments powered by Disqus

Published

28 December 2012