向 .NET 开发人员或用户组解释的主题顺序是什么,以使他们开始并对 alt.net 工具和实践感兴趣。
- 甲骨文
- 国际奥委会
- TDD
- DDD
- DSL
- CI
- MVC-MVP
- 版本控制(我认为这是他们获得最快的版本)
- 敏捷
- 等等等等……
ALT.NET 与其说是一套工具和实践,不如说是一种态度。
我不知道您本身可以“让某人开始使用 ALT.NET”。
对我来说,这是一种经验产生的态度,而不是像外套一样可以穿上的东西。但这是我的看法,可能会发生变化。
开车回家的基本原则是:
然后,在版本控制(!)之后,我将从持续集成开始,并展示如何从一开始就获得关于构建质量的即时反馈有助于提高质量。先做 CI 不会改变代码库。
然后我会介绍使用 FitNesse、Watin 或类似的应用程序的自动化端到端测试。然后,这应该说明如果您拥有可以验证代码是否仍然有效的良好测试工具,那么重构代码是如何不可怕的。
然后我会进行温和的重构,从 UI 中分离出业务逻辑和域对象(如果它们不存在的话)并引入单元测试。这进一步表明重构是一件好事。
当我们的目标是实现某种关注点分离时,设计模式(例如 IoC)自然会开始变得明显。很明显,我们可以用 ORM 替换数据层。
在我们重构的过程中,我还将展示测试驱动开发如何真正加速创建更好的代码。这可能是新开发的第一次最简单的展示,否则它会引起文化冲击!
我认为这取决于个人或团体。几乎所有商店都接触过这些概念之一。从那里开始,我只会以您认为开发人员或团队可以吸收它们的速度来介绍新概念。看到团队开始拒绝一些重要的原则和概念,因为它们负担过重,这是非常令人沮丧的。并且尽量不要假设有人理解使用 CI、IoC 或模拟框架背后的原则。
我并不是说成为ALT.NETter只是为了让他们知道这些东西就在那里,而是以一种他们可以理解并觉得它可以帮助他们的方式。
我想很多人不知道泛型、委托、Linq 和 Lambda 表达式。
如果你会在同一时间告诉他们,那么他们就会放弃一切。
就像您不会教初学者程序员什么是 DSL,但您可以让他了解 SVN。
Alt.NET Podcast可能是获得一些想法的好地方。他们有关于持续改进、敏捷、DI/IoC、ORM、OOP w/Ruby 等的播客(按此顺序)。
对我来说,是一位支持 IoC/DI 和 TDD 的同事。他还让我加入了 .net 用户组,这样我就可以看出他不仅仅是一个为了使用新技术而喜欢使用新奇奇怪技术的一次性疯子。
我将使用 Nancy 和 C#(或 Boo、Iron* 等其他语言)使用 SharpDevelop(有这本书)或 Rider(JetBrains 的 C# IDE)构建一个 Web 应用程序。我将 Alt.NET 视为非 Microsoft .net 开发,特别专注于开源,有时还有开箱即用的思维。现在每年在俄勒冈州波特兰举行的 .NET Fringe 会议,迎合了这种对开发的态度。