如何快速构建Web应用程序?

5
构建Web应用程序,目前有哪些开源Web应用程序框架/技术是:
  • 更易学习。
  • 易于使用。
  • 具有GUI快速开发的小部件。
  • 数据库集成。

我希望这个Web应用程序能够与Java客户端通信。在服务器端,我不局限于Java,可以尝试任何好的快速应用程序框架。
总之,我对服务器端的工具和技术没有做过太多的工作,因此并不熟悉。
您会有什么建议吗?
欢迎任何和所有的意见!...

8个回答

8

对于这个问题,没有一个“正确”的答案。作为一名有十多年经验的Java程序员,当被问及这个问题时,我的通常答案是......PHP。这是由于以下几个原因:

  • 资源使用低(Apache,nginx);
  • 更便宜的主机;
  • 入门门槛真的很低;
  • 它真正面向 Web 而不是像 Java 一样用于 Web 的通用目的;
  • PHP 脚本在请求之间不是持久的(像 Java servlet 那样),这使得它们更容易原谅,不太可能造成内存泄漏和其他问题;
  • 没有部署步骤(如 Python、Perl 等)。我认为这是动态脚本语言最好的事情。只需保存文件并单击浏览器上的重新加载;
  • PHP 可能在语法和其他几个方面存在不一致,但它也是成熟的,并被 Web 上一些非常大的站点使用(例如 Facebook、Yahoo、Flickr、Wikipedia);
  • PHP 是迄今为止最流行的 Web 开发语言。
  • 小部件可以使用任何形式的 Javascript 框架来完成,如YUIExtJSSmartClientjQuery UI等;
  • PHP 与 MySQL 配合得很好。

话虽如此,这些也适用于其他语言(例如Python/Django)。

我认为你不一定需要一个PHP框架,但如果你需要的话,可以考虑以下一个或多个:

  • Kohana:它类似于更流行的CodeIgniter的现代版本;
  • Zend Framework:它是模块化的,所以你可以根据需要使用它的任意部分;
  • Smarty:它是一个强大的模板系统。

5
PHP 可以快速开发 Web 应用程序,但这几乎从来不是一种好的方式。 - Daniel Pryden
@cletus:这些PHP框架中,哪一个有用于丰富UI开发的工具包? - Kevin Boyd
3
PHP像其他受欢迎的事物一样,有着不少批评者。如果你对PHP不熟悉,在编写代码时可能会出现一些可怕和/或不安全的问题,但同样地,任何一种语言都可以编写出这样的低质量和不安全的代码。 - cletus
2
@Kevin:如果你想要开发丰富的用户界面,那么关键在于你使用什么JavaScript框架。我个人推荐YUI。PHP没有像Java中的JSF那样具有相同的AJAX组件(我认为这实际上是一件好事)。 - cletus
@Scott:我不想把这个帖子变成PHP的争论。StackOverflow已经有了这个问题,链接在这里:http://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible - Daniel Pryden
1
这里有一些不错的答案,PHP也很好。我的首选顺序是PHP/CodeIgniter、Python/Django和Ruby/Rails。对于用户界面和小部件,我会选择YUI和Jquery。 - pbreitenbach

8

Django有几个值得注意的“快速”项目,包括自动生成的管理界面,捆绑的ORM(通过不编写SQL和其他代码来缩短开发时间),以及一个庞大的社区,其中包括多个可重用应用程序

然而,当你第一次开始开发时,Django(或Ruby on Rails或任何其他MVC框架)并不会很快,因为它们需要学习曲线。 Django(和RoR)有相当多的关注点分离,如果您不习惯这种环境,学习框架需要一段时间。 如果您使用的是ORM,那也需要适应,当然,对于任何您选择的框架,都需要学习API。

PHP的编程方式相对更加自由,你可以将代码放在任何地方,并且组合成网页应用。因此,在刚开始时,PHP可能会更快一些。但最终产品可能会更加松散,需要重新调整。
这涉及到框架的用途问题。如果只是用于个人站点,选择简单的PHP即可,否则,你可能需要考虑一个得到广泛支持的MVC框架。
正如其他人指出的那样,如果需要预先制作GUI小部件,jQuery可能是不错的选择。
另外,最近发布的Django 1.1版本具有非常棒的单元测试工具。其中包括一个专门为Django设计的扩展TestCase,一个测试客户端(无需实际客户端或服务器就可以进行测试页面请求),还有一个工具,可以给出项目测试覆盖率的百分比,以及一系列有趣的功能。

3
我觉得Jquery非常自然,而且在很多地方比原生的JavaScript更容易使用。《jQuery实战》这本书使我在大约一周左右开始写Jquery。 - T. Stone
1
是的,jQuery相当容易上手,特别是如果你对编程有一些熟悉的话。另外,可以查看jquery-ui获取一些快速且易于使用的小部件。 - Matt

4
你已经给你的问题打上了“java”,“php”,“python”和“ruby-on-rails”的标签,因此研究和学习这些工具可能有助于回答你的问题。
然而,我认为“快速构建”应用程序几乎从来不是正确的目标。通常,你想做的是构建一个可以“快速维护”的应用程序--也就是说,在时间上具有最低的总开发成本。

2
我不同意。如果是在商业基础上进行或项目足够大以需要投资,那么可维护性很重要,这是毫无争议的。但它并不是一个普遍的常数。如果你正在自己进行一个小的爱好项目,开发速度更加重要。 - cletus
1
@cletus:这就是为什么我说“几乎从不”和“通常”。显然,如果你只是为自己开发一个爱好项目,那么你应该做你自己感觉舒适的事情。但是根据我的经验,“爱好”项目往往比你想象的更容易变成“真正”的项目! - Daniel Pryden
1
@Daniel:我认为开发速度重要的另一个原因是,你会比想象中更频繁地丢弃代码,而且你应该比现在更频繁地这样做。因此,在一些你可能几个月后就要完全放弃的东西上,陷入追求完美和高可维护性的问题很容易。对于一次性的原型,速度仍然很重要。可维护性则不那么重要。 - cletus

2

我认为学习曲线的一部分将涉及理解概念。我已经学习了几个月关于Web应用程序的知识,现在对概念有了更好的理解,大多数框架都非常相似。以下是我的研究结果:

  • PHP:了解如何处理表单、HTTP POST请求、HTTP GET请求等概念非常棒。与数据库层进行简单的交互,并且可以在几个小时内获得基本的工作应用程序。几乎没有构建系统和Web服务器配置的麻烦。
  • Ruby-on-Rails:了解REST和更复杂的CRUD应用程序非常棒。通过使用ActiveRecord与数据库层进行简单而强大的交互非常适合了解MVC背后的复杂性。元编程(编写代码的代码,代码搭建)的引入非常好。有免费云部署的良好机会,例如heroku.com,并且有一个非常活跃的社区。
  • Java:可以与Web服务器进行强大的交互(Tomcat、JBoss等)。在这里MVC相当复杂,通常需要许多配置步骤(构建系统、ORM层等)。Grails是一个很好的简化版本,并为Java引入了元编程。Jboss Seam为Java引入了REST(但我还没有研究过这个)。

1

有很多编程框架,哪些是“好”的取决于你需要什么。

有Ruby on Rails,非常方便。

对于Python,有Django。

对于PHP(我花了很多时间处理PHP),你可以看看:

  • symfony
  • cakePHP
  • Solar
  • Zend Framework

这些都在某些情况下很好用,而在其他情况下可能会很烦人。


1

就开发速度而言,Ruby on Rails是当中最快的。


2
我并不是说RoR不快,但Django也很有竞争力。 - Imagist
然而,它仍然有一个学习曲线。特别是考虑到大多数人在开发Rails之前并不了解Ruby。 - Karl

1

0

您可以使用以下在线Java Web应用程序生成器,在5到10分钟内构建可运行的Java Web应用程序:

http://www.webappexpress.net


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接