Andreas Håkansson: 软件工程师的开源之旅

Andreas Håkansson是一位居住在瑞典的高级软件工程师,他在旅游行业工作,为雇主控制的广泛品牌开发电子商务解决方案。他不仅对技术充满热情,还对开发软件情有独钟,并且是开源软件的坚定支持者。在业余时间,他大部分时间都花在了个人编码项目上,尤其是他创建的两个开源项目:Nancy和MefContrib上。

项目经历

在职业生涯中,Andreas从事了广泛的网站开发工作,包括面向消费者和面向企业的业务,涵盖了旅游行业的各种品牌。这些工作从后端到前端开发,全部在Windows环境中使用.NET框架和Visual Studio进行。在个人时间里,他主要致力于他的开源项目,使用.NET框架和Mono。

MefContrib是一组社区开发的扩展,用于托管可扩展性框架(Managed Extensibility Framework)。Andreas在MEF还处于预览版第二版时就开始探索它,并花费大量时间深入代码,研究如何使其完成它原本不打算完成的任务,例如使用XML、流式接口等配置组合。他有幸与当时MEF团队的项目经理Glenn Block成为好朋友,这使他能够为团队提供大量反馈和各种用例的烦人问题。后来,Piotr Włodek作为核心团队成员加入,现在MefContrib包含了一些非常独特的MEF扩展,例如基于约定的配置、IoC容器桥接、可过滤目录以及一个非常有趣的拦截目录,它允许使用Castle DynamicProxy和LinFu DynamicProxy进行类似AOP的操作,并劫持部件的创建。

Nancy是Andreas近一年前开始的最新开源项目。Nancy是一个轻量级、低仪式感的框架,用于在.NET和Mono上构建基于HTTP的服务。该框架的目标是尽可能不碍事,并为所有交互提供超级愉快的路径。自从他在GitHub上发布了项目的第一个骨架并写了一篇博客文章后,这个项目就像火箭一样起飞了。很多人立即拿起它来玩,社区几乎是在第二天就诞生了。

开发环境

Andreas的工作站并不花哨。在办公室,他使用一台四核CPU、8GB内存的PC,在家用一台双核机器(即将升级)4GB内存和SSD。两台机器都运行Windows 7 x64,使用Visual Studio 2010和.NET Framework 4.0。他有幸在一个地方工作,那里不会坚持使用旧的框架版本或Visual Studio版本。一旦发布,他们就会尽快升级到最新版本。他猜测自己被宠坏了,因为他可以在生产代码中使用最新的东西,而不必使用.NET Framework 2.0,在Windows XP机器上运行Visual Studio 2005。

在专业上,他每天都在使用C#和VB.NET(遗留)编程,但在下班后,他更喜欢全程使用C#。他们在工作中也大量使用开源框架,如NHibernate、FakeItEasy(由他的朋友和同事Patrik Hägne开发)、Autofac等。

感兴趣的新工具、语言或框架

所有这些都是吗?Andreas喜欢尝试新事物,这既是诅咒也是祝福。他是TDD(测试驱动开发)的忠实粉丝,目前正在探索NCrunch和Mighty Moose,以减少仪式感,同时提高TDD的效率。他绝对想花更多时间学习Ruby,并深入研究JavaScript(JavaScript社区目前正在发生一些真正令人惊叹的事情!)。他还希望找到足够的时间来认真投资学习MonoDroid和MonoTouch。顺便说一句,他想花更多时间学习Objective-C。他知道基础知识,但主要是基于阅读,而不是实践经验。

编码宠物烦恼

Steven Robbins称他为人类StyleCop,因为他对代码结构和一致性的痴迷,所以他的头号编码宠物烦恼一定是这个!

如何开始编程

是他的父亲教他如何编写代码。当他七八岁的时候,他的父亲买了一台Amiga 500,几年后,他开始对父亲正在做的编程感兴趣。当时,主要是用一种叫做AMOS的基本语言完成的,后来他使用了其他语言,如Blitz Basic(他喜欢那种准基本语言!)、Amiga E、C/C++和一堆脚本语言,如ARexx。他是PC领域的后来者。他坚持使用Amiga社区很长时间,但当过渡过来时,他开始使用VB、Pascal和Delphi(后两者他只是玩了一下,从来没有做过任何严肃的事情)。他最终在.NET Framework首次公开发布时转向了.NET和C#。

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