对话资深开发者:Michael Sync的编程旅程

Michael Sync,一位在新加坡与他的妻子和女儿生活的资深开发者,目前担任Simulation Technology的架构师/高级顾问。他不仅是Silverlight领域的MVP,还与两位杰出的作者共同撰写了一本名为《Windows Phone 7实战》的书籍。

Michael目前参与的项目是一个使用WPF技术的Simulation项目,该项目采用了MVVM、依赖注入(DI)和测试驱动开发(TDD)等常见技术。特别值得一提的是,他们首次在项目中使用了Entity Framework 4.1及其迁移特性,这是Michael期待已久的功能。

在加入Simulation之前,Michael曾使用Silverlight和WP7为Memolife开发脑力训练游戏,并在微软市场发布了一款免费游戏。

他的开发环境基于微软技术,主要使用C#语言。几个月前,他开始学习Go语言,并尝试用这种语言编写小型项目。如果有更多的时间,他希望学习一些函数式编程语言,如Haskell。

硬件方面,Michael在办公室使用Acer Windows 7 64位Intel i7工作站,在家用Dell工作站。工具和服务器方面,他使用Visual Studio 2010、SQL Server 2008 R2、Windows Server 2008 R2、Windows 7和VMware Player。

在软件开发方法论上,Michael喜欢使用Scrum和XP。他对Go语言、Node.js和NuGet等新工具、语言或框架非常感兴趣。他正在花时间学习Go,并计划熟悉Go后尝试Node.js。

对于微软技术,Michael希望为NuGet做出贡献。他认为所有.NET开发者至少应该为NuGet做出一次贡献,哪怕是修复一个小bug,因为这个项目可以成为微软认识到开源代码和接受社区贡献好处的完美示例。

Michael不喜欢使用神类/方法、奇怪的命名等。他理解有时为了满足截止日期,可能无法编写出想要的优美代码。对于那些在紧张时间表下工作的人,他的建议是,仍然可以关注一些小事情,比如给事物有意义的命名,遵循单一职责原则。但总是尽量在忘记自己的技巧之前,找时间进行重构。

Michael喜欢K&R命名约定。他使用不带下划线前缀的camelCase为私有字段命名,使用PascalCase为所有公共事物、方法等命名。他喜欢使用"var",但在无法从表达式的右侧判断类型的情况下,他不会使用它:

var products = GetProducts(); // No

Michael从小就喜欢玩视频游戏。有一天,他问父亲如何创建这些游戏。他的父亲告诉他,他需要知道编程才能创建它们。这就是他对编程产生兴趣的原因。

由于很多原因,Michael很晚才得到他的第一台电脑。他记得是在大学二年级时得到的。他不记得规格了。他的第一门编程语言是C,因为这是他们在第一年教的。然后他学习了C++和Pascal。

Michael热爱开发者社区。他尊重每一个参与社区并互相帮助的人,即使他们可能没有为开源项目做出贡献。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485