vim插件推荐:Syntastic

早上看到主席大人@TualatriX老师推荐了Syntastic这个vim插件。

Syntastic这个Vim插件真是好东西阿:https://github.com/scrooloose/syntastic 可以每次在保存文件时检查语法和代码。比如Python中定义了一个变量但没有用,就会高亮警告。

@TualatriX via Twitter

于是用Vandle装上。开始无法正常工作,不管是python还是PHP。仔细看了一下doc。

不同的语言需要单独配置,需要看看syntax_checkers目录下面相应的语言的配置。python需要安装["flake8", "pyflakes", "pylint"]其中一个。

在iOS单元测试中使用NSBundle

最近开始整理项目的代码。找了一本《重构-改善既有代码的设计》来看。

一边整理一边写单元测试来确定新添加的方法是执行正确的。其中有一个方法死活通不过。这个方法中我使用了NSBundle来获取app中打包进去的资源。但是调试发现根本无法定位资源。

用同一套代码写不同版本的客户端

最近公司的项目,需要对不同的攻略做定制版本。功能和主客户端差不多。开始想到的做法是人肉复制工程文件夹。然后把原来的项目改成需要的方式。但是这样很难做到多个客户端一起维护。要实现一个新功能需要在不同的项目中重复编码。非常之乏味。

这种场景最常见的是pro版和lite版。还有iPhone/iPod Touch版和iPad版。

这种情况下可以用xcode的target来解决。

在不同的target中设置不同的预处理宏,然后在代码中根据宏来编码。

Best Practices for Objective-C Coding

v2ex有朋友推荐了这篇文章。做了翻译。欢迎纠错和讨论


我通常不会在我的blog中写和技术非常相关的东西,但是我希望对Mac和iOS(iPhone & iPad)的开发社区做点贡献。所以,如果你不是apple开发者,自行绕道。

这篇文章积累了一些多年使用objc这门语言的一些程序员公认为有效的最佳实践。我之所以把它们称作为“戒律”,是因为有很多理由可以证明它们。但是当我把这些实践拿给别的开发者看,他们往往会非常反对。。。

xcode在编译时带上git版本信息

上图的这个版本信息不是我手工加的,而是xcode编译的时候自动生成的。上图中我吧git最近得tag作为CFBundleVersion(Bulid),把最近得一个commit得SAH1作为CFBundleShortVersionString(Version)。

Caffeinated

昨天闲逛Mac App Store的时候发现了Caffeinated。这个软件之前还在Beta的时候在Lucifr那里看到过。

界面很漂亮细节很好。作为一个UI控就下手了。8.99刀60软美币。这类看Google reader的软件之前Reeder口碑很好。

相较之下caffeinated的界面更加小清新一点。目前功能很全。快捷键也很全,自定义也很方便。Reeder最近加入的功能,收藏到Safari的Reader List也有。和instapaper,read later,Readablity也整合了。