Daniel Godson,也被称为.dan.g.或AbstractSpoon,是一位居住在澳大利亚悉尼的软件开发者。他因在CodeProject上发表的ToDoList工具而广受欢迎。这篇文章将带深入了解Daniel的编程生活、他的项目、他的兴趣以及他在工作中的一些小烦恼。
Daniel Godson,自1997年从英国移民到澳大利亚后,一直在悉尼生活和工作。他目前的雇主是Maptek Pty Ltd,这是一家全球领先的软件开发公司,专注于为全球采矿业开发3D可视化和规划软件。在离开英国之前,Daniel是一名完全合格的结构工程师,生活和工作在伦敦。
Daniel热衷于编写简化自己生活的实用工具。他几乎所有的项目都是最初为自己编写的,后来发现对他人也有价值。当他自学C++时,他编写了一系列Windows共享软件,填补了他发现的市场空白。其中两个是:
尽管DeskMenu他每天都在使用,但遗憾的是,WorldTime和TimeOn由于现代互联网的发展而变得过时,他不再使用它们。
在工作中,Daniel使用Windows 7操作系统,配备4核超线程3.5 GHz处理器、32 GB内存、750 GB存储空间和双24英寸屏幕,分辨率为1920x1080。他们主要使用C/C++在VS2010上开发,偶尔回退到VS2005以支持旧版本的软件。软件的部分使用Perl编写,但Daniel尽量避免这些部分。
在家里,与工作形成鲜明对比的是,他主要在Windows XP上开发(同时启动Vista和Windows 8),使用单核2.3 GHz处理器、2 GB内存、300 GB存储空间,配备19英寸1600x900分辨率和17英寸1280x1024分辨率的屏幕。他完全使用C/C++在VC6上编写,严重依赖MFC和Win32。为了兼容性,他尽量确保他的代码也能在VS2008上编译。
Daniel承认自己在尝试新事物方面有些固执。他知道自己喜欢什么,也喜欢自己所知道的。尽管如此,他明白不落后于就业市场对他来说是有利的。因此,他的目标是在不久的将来学习如何将C#与C/C++接口。他知道Nish已经写了很多关于C++/CLI的文章,这是C++和C#之间的粘合剂,但他一直对如何处理一些更复杂的需求感到困惑,特别是编写C#插件以供C++应用程序使用。幸运的是,他有一位非常聪明的同事同意帮助他,有趣的是,这位同事也是唯一一位在办公室外作为爱好编写软件的同事。
Daniel喜欢使用空白,无论是垂直的还是水平的。他总是将大括号放在自己的行上,以简化代码块的扫描。他在家里使用标准的Microsoft命名约定,在工作时使用驼峰式命名。他尝试将不相关的条件作为单独的条件语句编写,以避免混淆。他总是尝试使用有意义的变量名,无论是作为类成员还是局部变量。他尽量避免大量缩进的逻辑,更喜欢有多个函数退出点。最后,为了刺激一场争论,他更喜欢有意义的返回代码而不是异常处理。
Daniel在1983年的大学时期首次接触到计算机:在大型机上使用Fortran。这是一次非常痛苦的经历,因为编写、编译和编码的过程非常脱节:他直到第二天才能知道自己犯了编码错误。然而,与此同时,他也被介绍到BBC Micro上的Basic,并且几乎立刻就爱上了它。语言的简单性,以及使用解释型语言开发的迭代特性,是非常愉快的。不久之后,他说服父母为他购买了一台BBC Micro,然后开始了深夜编程。
Daniel从开发者社区,特别是CP,获得了很多礼物,尽管他每天都在新闻中看到,但他知道大多数人是正派的、勤奋的和慷慨的,因为他每天在访问的许多网站上也看到了这一点。他唯一经历过的负面影响是沟通中的偶尔的粗鲁和/或防御性,当有人的想法受到质疑时。他知道这一点,因为他也是这些人中的一员。但令人惊讶的是,10年的软件发布和错误会削弱自尊!
在工作方面,Daniel希望在10年后仍在编程(他将是58岁),因为他喜欢编程,也是他最擅长的。他非常幸运地拥有一个优秀的雇主和伟大的同事,如果他继续尽自己最大的努力,他不认为自己会想改变。在家里,他希望ToDoList仍在积极开发中,主要是以扩展的形式。