与 Martin Pilkington 的程序员访谈





5.00/5 (4投票s)
欢迎来到我们持续进行的 Code Project 访谈系列,在访谈中我们与开发者聊聊他们的背景、项目、兴趣和痛点。在本期中,我们采访了 Martin Pilkington。
欢迎来到我们持续进行的 Code Project 访谈系列,在访谈中我们与开发者聊聊他们的背景、项目、兴趣和痛点。在本期中,我们采访了 Martin Pilkington。
你是谁?
我是 Martin Pilkington。我住在英格兰的 Accrington,经营一家名为 M Cubed Software 的公司,目前公司只有我一个人。
您做什么?
目前我能谈论的大部分项目都是我自己的应用程序,可以在 mcubedsw.com 上找到。我大部分时间都在设计或编写 Mac 和 iOS 软件,包括我自己的应用程序和为客户开发的软件。
我还参与过其他一些事情。我会在我的博客上撰写关于新 Xcode 版本发布的评论,例如这篇关于 Xcode 4.0 的评论,并且我目前正在编写一本 关于 Xcode 的书。
我偶尔也会 在开发会议上发表演讲。
您的开发环境是什么?
我的主要开发机器是一台 27 英寸的 iMac,配备 2.93GHz Quad i7 处理器、16GB 内存和 1TB 硬盘。我还有一台 20 英寸的 Dell 显示器作为我的第二显示器。最近我购买了一台 Mac Mini 用作测试服务器。目前它运行着 Mac OS X Lion 和 Mountain Lion,但我希望将来也能安装 Windows 8 和 Ubuntu。
我一天的大部分时间都在 Xcode 中度过。我还花大量时间使用我自己的 Lighthouse Keeper 应用程序进行问题跟踪,使用 Tower 来方便地使用 git,使用 OmniOutliner 和 OmniGraffle 来构思想法,以及使用 Photoshop 进行 UI 设计。
对于任何 Web 开发或脚本编写,我使用 Textmate、Coda、RubyMine、MAMP 和 Querious 的组合。
我最喜欢的语言无疑是 Objective-C。很多人一开始不喜欢它,但当你真正学会它之后,你就会开始欣赏它的强大之处。
因此,我也相当喜欢 C。处理起来可能很痛苦,但我认为这很大程度上是因为 API。大多数 C API 的命名都不好,也不容易使用,但这取决于它们创建的时代。如果你使用更现代的 API,例如 Apple 出色的 Core Foundation,那么 C 的使用就可以和其他语言一样方便。
您对哪些新工具、语言或框架感兴趣?
我正在更多地了解 Ruby 和 Rails。我曾用 Ruby 进行脚本编写,但对于我必须做的少量 Web 开发,通常会坚持使用 PHP,因为它的部署方便且我比较熟悉(PHP 是我的第一门语言)。
我对 Windows 8 和 Windows Phone 非常感兴趣。Metro 是微软有史以来最令人兴奋的创新之一。我注意到许多 Mac 和 iOS 开发者曾长期不屑于为 Windows 开发,但现在却好奇地关注它。希望我能找到时间深入研究开发工具、语言和框架。
您最讨厌的编码习惯是什么?
糟糕的命名。我们已经不是 20 世纪 70 年代或 80 年代了,没有正当理由不给方法和变量起描述性的名字。许多语言和框架试图过于简洁而不是显而易见,以书写而非阅读为优化。不要缩写。也不要使用不明显的名称。当然,将一个方法命名为“squeeze”,就像 Ruby 的一个字符串方法那样,可能会让你感觉很聪明,但将其命名为“stringByRemovingDuplicateCharactersInSet
”会更清楚地表明返回的是什么(一个新字符串),它在做什么(删除重复项)以及传入的是什么(一个字符集)。
对于我自己的代码,我更喜欢使用 K&R 风格和制表符。命名约定取决于我使用的语言。总的来说,我偏好驼峰命名法,但我会使用特定语言的标准。
您是如何开始编程的?
我记得我拥有的第一台电脑是 90 年代中期的一台 Performa 5200(尽管据称在我还是个蹒跚学步的孩子时,我们家在 90 年代初就有一台 LC)。
我最初开始使用 ClarisWorks 和 Apple Media Tool 制作点击式冒险游戏。我逐渐开始制作越来越高级的游戏,直到我不得不学习编程。
我的第一门真正意义上的语言是 PHP,仅仅因为我当地的图书馆里有关于它的书,而且我开始对构建网站感兴趣了。我对 PHP 总是很矛盾。一方面,它是我的第一门语言,所以在我的心中占有特殊的位置;但另一方面,有时使用它会让我非常沮丧。
开发者社区是如何影响您的编码的?
开发者社区极大地影响了我的编码。其他开发者对我编码的最大影响是让我更多地考虑我所写代码的结构。
我最不喜欢开发者社区的一点可能是很多人思维有多么封闭。这种程度在不同的社区中可能会有所不同,但通常会有人仅仅因为想法不同就否定别人的观点。显然,并非每个想法都好,也不是每个想法在所有情况下都适用,但了解其他社区的做法并从中获益是很有价值的。
我最大的在线资源可能是用于代码共享的 GitHub,以及用于解决问题的 Twitter 和 StackOverflow。我如今不太使用论坛,但我偶尔会访问 Apple 的开发者论坛。与其他通信方式相比,我觉得它们太慢太笨拙了。
您会对一个新兴的程序员提供什么建议?
永不停止学习。你应该一直学习新的语言、工具、框架和技术。总的来说,如果你回头看 6 个月前写的代码,却发现没有可以改进的地方,说明你在这项技艺上花的时间还不够。和大多数事情一样,软件开发很容易入门,但精通却极其困难。