学习现代模式和实践的一个好项目是什么?
我正在尝试教自己如何使用现代持久性模式(OR / M,存储库等)和开发实践(TDD等)。
因为(对我而言)最好的学习方法就是边做边做,所以我想为自己构建某种演示应用程序。问题是,我不知道要构建哪种类型的应用程序。我想写博客介绍自己的经历,所以我想为社区建立一些有价值的东西,但同时我想避免别人在积极做的事情(网络商务,论坛)或者已经做过的事情死亡(博客引擎)。
是否有人对我可以从事的良好宠物项目有任何建议,也许还提供了有关我的经历的博客?
解决方案
当然,我们可以花6个月的时间来选择一个开源项目,然后一点一点地开始接受并理解贡献系统的工作原理。
但是最好的方法仍然是按照自己的标准开始自己的项目,这可能是失败的诱因。我们需要尝试,失败并从错误中学习,以使用要练习的东西来进行改进。
就像法国作家所说:
"一个坐着的天才总是比走一个笨蛋走得更远。"
我想说,一种极好的方法是从我们要学习或者构建应用程序的核心框架的示例项目开始。以Spring为例,他们有一个很棒的"宠物商店" Web应用程序,我们可以下载该应用程序,该程序显示了如何以推荐的方式使用框架的许多不同部分。从那里,我们可以对其进行扩展:将其检入源代码管理,进行自动化构建,添加我们自己的单元测试或者测试优先添加项,交换我们自己的ORM层,尝试使用其他视图层,等等。
一旦一切工作都按需完成,我们就可以更轻松地进行分支,甚至可以使用所学的知识重新创建自己的应用程序。
我发现从一个良好的基础开始("良好"很重要,因为我们想学习最佳实践,而不仅仅是将工作建立在随机互联网用户窃取的东西上),并且建立一个真正的帮助,而不是仅仅从一个空白项目,可能会令人不知所措,特别是如果尝试一次学习一堆新东西。
一个网站,人们可以在网站上提出技术导向的问题,并在互联网上获得集体专家社区的回应吗?
我认为宠物项目最重要的方面是,它必须成为我们关心和使用的东西。如果我们使用它,并且对我们有帮助,那么其他人也会发现它。如果我们因为某人的建议而从事某项工作,那么它将变得像工作。
为了使用TDD,我最终创建了一个命令行参数解析器。我写了很多控制台应用程序,这对我来说可以从中受益,感兴趣并且很有趣。那里已经有其他人了,但这对我而言并不是真正的重点。我也打算写博客,但是我的另一个玩弄模式和建筑的宠物项目是一个"死了"的博客平台……以及写关于使用正在创建的博客平台编写博客平台的博客……很难。
最后,到目前为止,我的两个项目都没有为社区带来很多好处,但是我注意到了解决问题的方式所带来的好处。找到我们可以从中受益的东西,然后再担心给他人带来的好处。有点自私。
有无数的社区服务组织很少或者根本没有网络。
选择一个服务组织-任何一个-扫盲志愿者,食品配菜,家居装饰捐赠,无烟酒精者-任何。基层社区组织从参与中受益最大。他们通常需要更动态的Web展示,但负担不起。
查看他们当前的网站。建立更好的东西。捐赠给他们。
这个问题问得好。我觉得这一定是许多开发人员的感觉。很多时候,我们受到工作中正在开发的应用程序的限制。可能没有机会实施每一个最伟大和最新的事情。
我有类似的感觉。我要做的是,说服我的团队学习新事物并分享有关新技术的知识。我已经开始构建自己的某种项目。它具有很少的实时使用,但我可以使用它。
例如,我在DAL使用EntLib,但是明天当我设法学习LINQ时,我将用LINQ代替EntLib。可能是LINQ to Entities。然后,我使用普通WCF公开了这些DAL方法。然后,我学习了如何实现WebHttpBinding,并使用JSON公开了我的WCF服务。我计划现在学习MS MVC和jQuery,并在那里做一些ASP.Net/AJAX的工作。
基本上,我们应该一次一小部分地解决问题。如果我们有时间和热情,那么这里建议的第一个解决方案似乎是最好的。
祝你好运!!!