5

这是我的新项目:一个开放的画布,就在我面前。几天后,我将开始编写一个大型 Web 应用程序。它将从很小的模块开始,只有我自己作为开发人员和工程师,但希望它会不断发展壮大。

尽管我是一名活跃的 Java 开发人员,但距离我上次从头开始创建 Web 应用程序已经有一段时间了。当时,Struts 和 J2EE 是要走的路,但我看到每天都有很多新框架、新库出现。

我在这里问的是您的建议:您目前在 Web 开发中使用什么,为什么您认为它是相关的,以及如果您开始一个新项目时是否会选择相同的工具。一切都很重要:从 UI 上的提示到后端。常见的陷阱、模式,所有你能想到的都可能是相关的。

我是一名 Java 开发人员,我自然倾向于使用与 Java 相关的技术(J2SE、J2EE、Groovy、Grails、JRuby、Jython、JWhatever 等)来做任何事情,但欢迎发表任何你喜欢的东西使用,是否与 Java 相关。

我在这里的目标是建立一个关于人们在做什么以及他们为什么这样做的桶,以帮助我评估我应该走哪条路,我不应该走哪条路——以及为什么。毕竟,您并非每天都有如此自由的决定权。

提前致谢!

4

14 回答 14

7

我使用 Django。对我来说,主要原因是自动管理生成。这意味着我创建了模型对象,而 Django 工具为我生成了 SQL DDL——我将它应用到我的数据库中,并且 Django 有一个完全生成的管理网站供我对这些数据执行 CRUD 操作。它会根据类型、搜索等选择好的控件。如果我想调整管理员,我可以创建一些类来做到这一点。

Django 还有很多其他的好处(简单的模板语言、使用 python、易于托管等),但管理员是我选择它而不是 RoR 的原因。

于 2008-10-17T23:44:21.240 回答
3

我最近一直在使用 TurboGears,非常喜欢它。它与 Django 和 Ruby On Rails 竞争快速开发,但具有更灵活的后端。也就是说,它更像是一组可以很好地协同工作的同类最佳组件,而不是一个单一的整体框架。如果需要,您可以轻松地更换对象关系映射器,或者用其他东西替换页面模板语言,而无需重写整个应用程序。

真正的“你这辈子都去哪儿了?” 我花了大约两分钟的时间在表单中添加了一个AJAX 自动完成字段。我必须编写一个函数来回答 AJAX 请求并添加一个调用该函数的新字段,并且它第一次完美运行。我一直想玩 AJAX,但有点害怕,我第一次体验它再简单不过了。

它有一个20 分钟的教程来制作一个功能性的 wiki。即使您认为自己不会使用它,也请阅读或观看它,看看这样的事情是多么容易。

于 2008-10-17T22:48:56.687 回答
3

我目前使用 ASP.NET MVC,我将在接下来的几个月中将我的专业开发工作转向它。在过去的十年中,我接触了许多语言和 Web 框架。C# 是一门非常成熟和强大的语言,asp.net mvc 框架似乎和我一起点击。我将继续使用 jquery 作为我的主要 javascript 库。业余时间我也会继续玩python/django等解决方案。

我只是喜欢 c#,所以这可能是我选择 asp.net mvc 而不是其他解决方案的原因。

似乎 MS 终于想出了一些不错的东西(考虑到 asp.net 网络表单的混乱......相当了不起)

于 2008-10-19T20:48:14.090 回答
2

我发现Google App Engine真的很舒服(Python 作为服务器语言,Google Datastore 作为数据库,许多现成的对象,例如内存缓存、用户 API 等)。

于 2008-10-17T22:36:05.670 回答
2

我是 ColdFusion 的粉丝,它建立在 Java 之上,但更关注 RAD/Agile。有来自 Adob​​e 的参考实现,但也有可用的 CFML 语言的三个开源实现。

ColdFusion 特别擅长作为“胶水”技术,提供对 Flash/ActionScript 服务、Java 集成、.Net 集成、Web 服务和使用任何 JDBC 数据源的 SQL 数据库集成的访问。

于 2008-10-17T22:45:41.360 回答
2

我使用Ramaze,一个漂亮的 Ruby Web 框架。将它与M4DBI相结合,这是一个构建在Ruby DBI之上的 Ruby ORM 。对于 JS 工作,尽可能使用 jQuery (我避免像瘟疫一样使用普通的 JS!)。PostgreSQL是我选择的数据库。

我有使用 Rails、mod_ruby、JDBC、ODBC、PHP 和“普通”网站(HTML、CSS、JS)的经验,但我对上面列出的用于我的 Web 应用程序堆栈的软件非常满意。

我相信 Ramaze 可以在 JRuby 下运行。

于 2008-10-18T05:29:42.353 回答
2

您是在谈论“网站”还是更丰富的东西,例如后台应用程序(大量控件和字段以及复杂的工作流程)?

如果你谈论的是一个网站,更面向内容的东西,并且你想坚持使用 Java,我投票给 Stripes——它在所有(至少大部分)荣耀中都包含 HTTP,它不会妨碍你,并且非常灵活。我们利用 JSP 和 JSP 标记文件在 Stripes 之上编写了一个非常好的框架。我们可以很快淘汰屏幕。

如果您有一个更复杂的应用程序,请考虑其中一个组件框架。Wicket 非常流行,但是 JSF 有很多工具和小部件,并且可以与 Seam 一起使用,获得了好评如潮。

于 2008-10-18T05:54:39.480 回答
2

如果我从头开始,我仍然会环顾与我一起工作的团队,看看他们知道什么。团队中没有人知道的平台是错误的平台。对于生产工作,坚持你所知道的,除非有迫切的原因你必须改变。

如果您决心学习新东西,我建议您使用 Ruby on Rails。在短短几年内,它已成为将其他系统与其他系统进行比较的主要里程碑之一:“我使用 xyz,它就像 rails,除了......” 仅此一项就说明了它对 Web 开发社区的影响。Ruby 为您提供了一种非常强大的服务器端脚本语言,而 Rail 允许快速开发高质量的应用程序。

于 2008-10-18T06:02:18.997 回答
1

如果你想要干净简单的东西,不要使用 Rails,使用Ramaze

于 2008-10-18T09:25:53.250 回答
1

Stripes是一个很棒的框架,因为它可以让您快速轻松地构建应用程序,而无需维护配置文件。通常,您创建一个操作 bean(一个简单的 Java 类)来完成工作,并创建一个 JSP 来显示结果。您使用注释添加验证。您可以获得大多数常见类型的内置类型转换,并且可以轻松编写自己的类型转换器。拦截器为您提供了一种解决横切关注点的简单方法。简而言之,我发现它是目前最简单、直观、一致、强大和灵活的框架之一。

对于其余的堆栈,这完全取决于您。很容易将 Spring、Hibernate、JPA、AJAX、安全、单元测试等与 Stripes 集成。如果您想查看演示所有这些的示例代码,请获取 Stripes 书籍的代码打开 index.html 文件以获取所有示例的列表。这样,您就可以了解 Stripes 应用程序的外观。

祝你项目好运!

于 2008-10-19T20:19:05.147 回答
1

Grails ( http://grails.org ) 可能是当今最有趣的新 Web 开发环境。它建立在以下基础之上:

Spring
Groovy
Sitemesh
Hibernate
Quartz

它也可以通过插件进行扩展

http://grails.org/Plugins

您可以观看一些截屏视频以了解该功能。

http://grails.org/Grails+Screencasts

一件非常吸引我的事情是 Grails 可以很容易地集成到现有的 Java/JSP 项目中。无需从头开始重写项目。

如果您没有任何遗留代码或者 Java 不是您的日常工作,我认为 Ruby on Rails 将是一个不错的选择。

最后,我喜欢能够将 Grails 项目部署到应用程序服务器(如 Tomcat、WebSphere、Glassfish 等)的想法。这些系统非常可靠并且可扩展性很好。

于 2008-10-20T04:32:23.123 回答
1

我考虑了每个人在这里提出的大多数选择:Ruby on Rails、Groovy on Grails、Python/Django,然后是 Java 中的 Spring MVC 框架。我最终选择了 Ruby on Rails。

为什么?首先,我需要能够快速灵活地开发功能。这对 Java 不利。其次,我需要开发一个网站而不是后台应用程序。所以 UI 不需要非常复杂。一个简单的 CRUD 应用程序包装数据库并将其绘制在浏览器上就足够了。这决定性地排除了 Java。

所以我留下了一个动态语言框架。我试用了 Groovy。由于我不需要与 Java 的互操作性,这排除了它的优势(是的,我知道 JRuby 是可互操作的,但 Groovy 仍然有'{}')。在 Groovy 中对某些东西进行原型设计后,我注意到堆栈跟踪并不总是对调试有启发性,而且与我的 Rails 原型相比,性能很慢。这消除了 Groovy。

考虑过使用 Python/Django,但我注意到让其他人加入会更加困难,因为 RoR >> Python/Django 中的书籍数量庞大。或许我本可以进一步考虑 Python/Django,但现在是做决定的时候了,我选择了 RoR。

于 2008-10-20T04:53:16.717 回答
0

用于 java 开发,Eclipse 或 Net beans;对于 html/css/js netbeans 和有时 Dreamweaver 检查浏览器对属性的支持;对于 xml/xslt/xsi Altova xml spy;对于 PNG 文件 Adob​​e 烟花;适用于所有通用文本编辑 GVIM。不要忘记“Firebug”和“IE 开发者工具栏”。

他们为什么摇滚?Java 的代码完成、可追溯性和所见即所得的体验是让它们为我打勾的原因。明天如果有新工具出现并且学习曲线更短,我不会害羞!

于 2008-10-17T22:37:36.103 回答
0

提升,因为这是在Scala中编写代码的机会

于 2008-10-17T23:57:18.390 回答