在这篇文章中,将深入了解一位独立软件工程师的生活,探讨他的背景、项目、兴趣以及他对编程的独到见解。马丁·皮尔金顿,一位位于英格兰阿克灵顿的软件工程师,经营着一家名为M Cubed Software的公司,目前公司只有他一个人。
马丁·皮尔金顿是一位居住在英格兰阿克灵顿的独立软件工程师。他经营着自己的公司M Cubed Software,专注于为Mac和iOS平台设计和开发软件。马丁不仅为自己的应用程序编写代码,也为其他客户提供服务。
马丁目前可以公开讨论的项目主要是他自己的应用程序,这些程序可以在mcubedsw.com上找到。他大部分时间都在设计或编写Mac和iOS软件,既包括自己的应用程序,也包括为客户服务。此外,他还在自己的博客上撰写关于Xcode新版本的评测,例如Xcode 4.0的评测,并且正在撰写一本关于Xcode的书籍。偶尔,他也会在开发大会上发表演讲。
马丁的主要开发机器是一台27英寸的iMac,配备了四核2.93GHz 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。尽管许多人最初不喜欢它,但当真正学会它时,会开始欣赏它的强大。
马丁正在更多地关注Ruby和Rails。他曾使用Ruby进行脚本编写,但通常坚持使用PHP进行少量的Web开发,仅仅是因为PHP的部署容易,而且他对它很熟悉(PHP是他的第一种语言)。他对Windows 8和Windows Phone非常感兴趣。Metro是微软有史以来最令人兴奋的事情之一。他注意到许多长期忽视Windows、认为不值得为其开发Mac和iOS开发者现在开始好奇地看待它。他希望能找到时间深入了解开发工具、语言和框架。
马丁的编程小烦恼是糟糕的命名。不再是在1970年代或1980年代,没有理由不为方法和变量提供描述性的名称。许多语言和框架试图过于简洁而不是显而易见,优化写作而不是阅读。不要缩写事物。不要使用不明显的名称。当然,将一个方法命名为“squeeze”,就像Ruby的一个String方法一样,可能会让觉得很聪明,但将其命名为“stringByRemovingDuplicateCharactersInSet”要清楚得多,因为它说明了返回的内容(一个新的字符串)、它正在做什么(删除重复项)以及传入的内容(一个字符集)。
对于自己的代码,马丁更喜欢使用K&R和制表符。命名约定取决于他正在使用的语言。总的来说,他更喜欢驼峰命名法,但会使用特定语言的标准。
马丁记得他拥有的第一台计算机是90年代中期的Performa 5200(尽管据说家人在还在蹒跚学步的90年代初就有了LC)。他最初开始使用ClarisWorks和Apple Media Tool制作点击式冒险游戏。他逐渐开始制作越来越高级的游戏,直到他不得不学习如何编程。
他的第一个真正的语言最终是PHP,原因很简单,因为他在当地图书馆有一本关于它的书,他开始对构建网站感兴趣。他对PHP总是感到矛盾。一方面,它是他的第一种语言,所以它在他的心中占有特殊的位置;另一方面,当他使用它时,它有时会让他感到非常沮丧。
开发者社区极大地影响了马丁的编程。其他开发者对他编码的最大影响是让他更多地思考他编写的代码的结构。
他对开发者社区的总体看法可能是,许多人可能过于封闭。这种程度可能因社区而异,但通常有些人会因为不同而拒绝别人的想法。显然,并不是每个想法都是好的,也不是每个想法在所有情况下都能很好地工作,但看看其他社区在做什么,看看能否从中获益是很好的。