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