65.9K
CodeProject 正在变化。 阅读更多。
Home

与 Andrew Pepperrell 的程序员访谈

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (9投票s)

2012 年 9 月 5 日

CPOL

5分钟阅读

viewsIcon

17165

欢迎继续收看我们的 Code Project 开发者访谈系列,在这里我们与开发者们交流他们的背景、项目、兴趣以及让他们头疼的问题。本期我们采访了独立 Mac 应用开发者 Andrew Pepperrell。

欢迎继续收看我们的 Code Project 开发者访谈系列,在这里我们与开发者们交流他们的背景、项目、兴趣以及让他们头疼的问题。本期我们采访了独立 Mac 应用开发者 Andrew Pepperrell。

你是谁?

你好,我是 Andrew Pepperrell,我住在英国剑桥(Cambridge, UK)郊区。我并没有一个确切的职位头衔,但我为自己工作,我开发了 Alfred,一个基于键盘的 Mac OS X 生产力工具。

您做什么?

在开发 Alfred 之前,我涉猎广泛,从底层企业级 Java(Java)到前端网页开发。我在用户界面设计方面的经验,很大程度上来自于多年来与 Java/Swing(Swing (Java))工具包的斗争,试图在一个本质上极其复杂的数据处理和清理引擎上创造出高度响应、可用且具有原生感觉的设计。

现在我专注于 OS X 开发,我的日常工作中有 70% 是 Mac 开发,30% 是通过 Twitter(Twitter)、电子邮件等与 Alfred 的社区互动。

我的妻子 Vero(Vero)也是 Running with Crayons(Running with Crayons)的业务伙伴,在过去一年里,她承担了我们越来越多的用户支持工作,这让我能够将更多精力集中在开发上,减少在支持上的投入。

您的开发环境是什么?

我直到大约 7 年前才真正开始喜欢 Mac,那时我得到了一台 G4 Mac Mini 和一台 20 英寸的 Apple Cinema 显示器(至今我仍在使用这台显示器)。

从那时起,情况有所发展,我现在有两台机器用于开发。我的主要开发机器是一台较旧的 24 英寸 2.93 Core 2 Duo iMac,配备 8GB 内存。它现在运行 Xcode 已经有些吃力了,但我正在等待新的 iMac,这就像胡萝卜一样诱人,感觉已经吊在我们面前一年了!

我的第二台机器是 i7 13 英寸的 MacBook Air,它足够轻便,方便我携带出行,而且足够强大,能满足我所有的开发需求。我曾经考虑过购买一款视网膜 MacBook Pro,但在商店里拿起它时,尽管它很小巧,却让我意识到 MacBook Air 有多么棒!

我还有一台 Mac,是一台稍微老一些的 Intel Mac Mini,安装了完全干净且最新的 OS X 系统,我用它作为我的构建机。

我主要使用 Xcode 进行开发,自然是使用 Objective C / Cocoa。我不使用很多第三方框架,但我通过 FMDB(FMDB)直接与 sqlite3(sqlite3)交互,并且使用 Sparkle(Sparkle)为 Alfred 实现自动更新。

您对哪些新工具、语言或框架感兴趣?

这听起来可能很枯燥,但我没有太多时间去玩弄新工具、新语言或新框架,因为我大部分时间都在努力开发 Alfred。但我一直在关注 Obj-C 的最新变化,并且喜欢重构代码以使其更好地工作。

您最讨厌的编码习惯是什么?

我认为我最大的痛点是那些声称“好的代码能够自我解释,不需要注释”的人。

所有的代码都需要有良好的注释和排版。事实上,我非常注重代码的排版,使其极其易读且注释充分。语法高亮也有助于这一点,因为注释会以不同的颜色显示,从而实现代码的逻辑分离,提高可读性。

我使用制表符而不是空格——有很多关于哪个更好的争论;我只是偏爱制表符,因为它允许阅读代码的人根据自己的偏好更改缩进,而无需修改代码(对我而言,Tab 等同于 2 个空格)。

最后的代码风格提示是驼峰命名法(camelCase)和将开花括号放在同一行。

您是如何开始编程的?

我从小就有编程的记忆。我的第一台真正的电脑是 ZX Spectrum+(ZX Spectrum+)。我的父母会给我买编程杂志,我会一行一行地将代码抄写到 Basic 中,让电脑做一些非常简单的事情,但感觉就像我掌控了整个世界!

接下来值得一提的电脑是 Commodore Amiga(Commodore Amiga),我用它为自己做一些小型的游戏开发。当你在屏幕上看到一个弹跳的方块时,感觉就像在掌控世界一样奇妙!

开发者社区是如何影响您的编码的?

过去几年发生了一个有趣的转变。Java 社区曾经非常强大,你可以找到任何问题的答案。当我刚开始接触 Objective C 时,很难解决问题。随着 iOS 开发的兴起和普及,在 Obj-C/Cocoa 方面,有更多的资源可以帮助开发者,尤其是在 Stack Overflow 这样的网站上,在很多方面,它比苹果自己的文档和开发者论坛提供了更多的答案和讨论。

虽然互联网可以成为查找代码问题答案的有用资源,但我更喜欢自己剖析问题,并完全理解为什么某事不起作用,或者它如何能做得更好。在某种程度上,这也是为什么我不为 Alfred 使用太多第三方框架的原因,因为它允许我高度优化代码并保持 100% 的控制。

您会对一个新兴的程序员提供什么建议?

停止阅读去学习,而是直接动手实践。

另外,对于早期项目,尽早发布并迭代——我以 0.4 版本发布了 Alfred,然后在此基础上添加功能。这有助于你了解用户想要如何使用你的产品,并能让你在产品发展过程中更好地塑造它。

另一方面,不要实现用户提出的所有需求。你必须仔细管理功能的添加,以保持产品的简洁性,这能满足 99.9% 的用户。如果我实现了某个或某两个用户请求的所有功能,Alfred 就会变得一团糟。

选择一个简单的问题来解决,一旦开始,就要保持势头。晚上少看一小时电视,继续改进你的应用程序。一旦你开始围绕你的项目建立一个用户(和粉丝)社区,他们就会提供动力,但这一切都取决于你作为开发者能否坚持下去!

© . All rights reserved.