学习现代模式和实践的好项目是什么?

发布于 2024-07-06 06:02:19 字数 519 浏览 10 评论 0原文

我正在尝试自学如何使用现代持久性模式(OR/M、存储库等)和开发实践(TDD 等)。

因为(对我来说)最好的学习方法是实践,所以我想为自己构建某种演示应用程序。 问题是,我不知道要构建什么样的应用程序。 我想在博客中讲述我的经历,因此我想为社区构建一些有价值的东西,但同时我想避免其他人正在积极做的事情(网络商务论坛)或已经被搞死(博客引擎)。

有人对我可以从事的一个好的宠物项目有什么建议,也许可以在博客上分享我的经历吗?

I'm trying to teach myself how to use Modern Persistence Patterns (OR/M, Repository, etc) and development practices (TDD, etc).

Because the best way (for me) to learn is by doing, I'd like to build some sort of demo application for myself. The problem is, I've got no idea what sort of application to build. I'd like to blog about my experience, so I'd like to build something of some worth to the community, but at the same time I want to avoid things that others are actively doing (web commerce, forums) or have been done to death (blog engines).

Does anybody have any suggestions for a good pet project I could work on and maybe blog about my experiences with?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

吹泡泡o 2024-07-13 06:02:19

有无数的社区服务组织很少或根本没有网络存在。

选择一个服务组织——任何一个——扫盲志愿者、食品储藏室、家具捐赠、戒酒互助会——任何一个。 基层社区组织的参与受益最大; 他们常常需要更具活力的网络形象,但又无力承担。

看看他们当前的网站。 为他们打造更好的东西。 捐赠给他们。

There are innumerable community-service organizations with little or no web presence.

Pick a service organization -- any one -- Literacy Volunteers, Food Pantries, Home Furnishings Donations, Alcoholics Anonymous -- anything. The grass-roots community organizations benefit the most from involvement; they often need a more dynamic web presence but can't afford it.

Look at their current web site. Build them something better. Donate it to them.

甜扑 2024-07-13 06:02:19

我想说,一个很好的方法是从您想要学习或构建应用程序的核心框架的示例项目开始。 以 Spring 为例,他们有一个很棒的“宠物商店”Web 应用程序,您可以下载该应用程序,该应用程序展示了如何以推荐的方式使用框架的许多不同部分。 从那里,您可以对其进行扩展:将其签入源代码管理、进行自动化构建、添加您自己的单元测试或测试优先添加、交换您自己的 ORM 层、尝试不同的视图层等。

一旦一切正常根据您的需要,您可以更轻松地进行分支,甚至可以使用您所学到的知识从头开始创建自己的应用程序。

我发现从一个良好的基础开始(“好”很重要,因为你想学习最佳实践,而不仅仅是将你的工作建立在随机互联网用户破解的东西上),并且构建确实有帮助,而不是仅仅从一个空白的项目可能会让人不知所措,尤其是如果试图同时学习一堆新东西的话。

I would say an excellent way is to start with the sample project for a core framework you want to learn or build your application around. Using Spring as an example, they have a great 'pet store' web application that you can download that shows how to use many different parts of the framework in the recommended way. From there, you can expand on it: check it into source control, get automated builds going, add your own unit tests or test-first additions, swap in your own ORM layer, try different view layers, etc.

Once you have everything working as you want, then you can branch off more easily and even create your own app from the ground up using what you've learned.

I find starting with a good base ('good' being important, as you want to learn the best practices and not just base your work on something hacked together by a random internet user) and building out really helps, as opposed to just starting with a blank project which can be overwhelming especially if trying to learn a bunch of new things at once.

洛阳烟雨空心柳 2024-07-13 06:02:19

当然,你可以花6个月的时间来选择一个开源项目,并逐渐开始被接受并了解贡献系统是如何工作的。

但最好的方法仍然是开始自己的项目,用自己的标准,那很可能会失败。 你需要尝试、失败,并从错误中学习以提高,使用你想要练习的东西。

正如一位法国作家所说:

“坐着的天才永远比行走的笨蛋走得更远”。

Of course you could spend 6 monthes to choose an open source project and start little by little to be accepted and understands how the contribution system works.

But the best way is still to start your own project, with your own standards, that will probably be a faillure. You need to try, fail, and learn from mistakes to improve, using what you want to practice on.

Like a french writer said :

"A seated genious will always go less far away than a walking dumbass".

爱格式化 2024-07-13 06:02:19

一个人们可以提出技术问题并从互联网上的集体专家社区获得答复的网站怎么样?

我认为宠物项目最重要的一点是它必须是你关心并且会使用的东西。 如果你使用它,并且它对你有帮助,那么其他人也会有同样的发现。 如果你因为有人建议而从事某件事,那么它就变得像工作了。

为了使用 TDD,我最终创建了一个命令行参数解析器。 我编写了很多控制台应用程序,这是我可以从中受益、感兴趣并且有趣的东西。 已经有其他人了,但这对我来说并不是真正的重点。 我也打算写博客谈论它,但我的另一个玩弄模式和架构的宠物项目是一个“完蛋”博客平台......以及关于使用您正在创建的博客平台编写博客平台的博客......好吧,那很难。

最后,我的两个项目目前都没有给社区带来太多,但我注意到了我解决问题的方式所带来的回报。 找到一些能让你受益的事情,然后再担心会给别人带来好处。 自私一点吧。

How about a website where people can ask tech oriented questions, and get responses from the collective expert community on the internets?

I think the most important aspect of a pet project is the fact that it HAS to be something that you care about and will use yourself. If you use it, and it is helpful to you, then others will find the same. If you are working on something because someone suggested it, then it becomes like work.

To play with TDD, I ended up creating a command line argument parser. I write a lot of console apps, and it was something that could benefit from, was interested in, and was fun for me. There are already others out there, but that wasn't really the point for me. I too intended to blog about it, but my other pet project for playing with patterns and architecture was a "done to death" blog platform... and blogging about writing a blogging platform using a blogging platform you are creating... well, that's hard.

In the end, neither of my projects brought much to the community at this point, but I've noticed the rewards in how I attack problems. Find something that you can benefit from, and worry about the benefits to others later. Be a little selfish.

百合的盛世恋 2024-07-13 06:02:19

这个问题问得好。 我想这一定是很多开发者的感受。 很多时候我们受到工作中开发的应用程序的限制。 可能没有机会实施每一件最伟大和最新的事情。

我也有类似的感受。 我所做的是说服我的团队学习新事物并分享新技术知识。 我已经开始构建自己的某种项目。 它的实时使用率很低,但我可以玩它。

例如,我在 DAL 使用 EntLib,但是明天当我设法学习 LINQ 时,我将用 LINQ 替换 EntLib。 可能是 LINQ to Entities。 然后我使用普通 WCF 公开了这些 DAL 方法。 然后我学习了如何实现 WebHttpBinding 并使用 JSON 公开我的 WCF 服务。 我现在计划学习 MS MVC 和 jQuery,并在那里做一些 ASP.Net/AJAX 的东西。

基本上,您应该一次一小部分地解决一个问题。 如果您有时间和热情,那么这里建议的第一个解决方案似乎是最好的。

祝你好运!!!

This is a very good question. I feel that this must be the feeling of many developers. Many a times we are restricted by the applications that we are developing at work. There may not be the opportunity to implement every greatest and latest thing.

I have the similar feelings. What I do is, I persuade my team to learn new things and share knowledge about the new technologies. I have started building my own some kind of project. It has very less real time use, but I can play with it.

For instance I am using EntLib at DAL, but tomorrow when I manage to learn LINQ, I will replace EntLib with LINQ. Probably LINQ to Entities. Then I exposed these DAL method using plain WCF. Then I learnt how to implement WebHttpBinding and exposed my WCF service using JSON. I have plan to now learn MS MVC and jQuery and do some ASP.Net/AJAX stuff in there.

Basically you should target the problem one at a time in small chunks. If you have time and zeal then first solution suggested here seems to be the best.

Good luck!!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文