什么时候Java是Web开发的好选择?
请不要说“当您拥有仅了解Java的开发团队时”。
什么时候Java是Web开发的好选择?
请不要说“当您拥有仅了解Java的开发团队时”。
Answers:
鉴于有许多可用的框架,平台的成熟度等,我很想说“几乎总是”。因此,有一些您不应该使用Java的原因:
Java的是中小型网站使用。关键点是,与PHP相比,Java网站的免费网络托管要少得多,这意味着除非您有足够的资源来托管自己的Web服务器,否则您可能不会选择Java。
请注意,对于Java EE 6,尤其是Web概要文件,其中包含许多标准技术,它们可以创建功能非常强大的Web应用程序,而无需编写太多代码。不幸的是,它还不是主流。
请注意,最近Google应用程序引擎已对此进行了一些更改,该应用程序允许您在云中免费为中低流量站点免费部署标准Java Web应用程序(有一些限制)。
如果您的平台是UNIX / Linux,则需要丰富的工具集,例如对象/关系映射,安全性,Web服务的复杂编排等。
(我们不是在谈论简单的网站,对吗?)
每当另一个Java团队激怒我时,我都会通过查找类似这样的问题来发泄怒气。让我重申一下。我是一位客户端开发人员,至今已经有5年了。我曾经在许多网站上工作过,从一次性的大部分内容微型网站,到像Sears一样庞大的网站,再到需要真正的UI专业知识的更复杂的应用程序类型的网站。我已经处理过Rails,PHP,.net Web表单(ew)、. net MVC(更好),以及用于Web开发的Java解决方案的一揽子安排,这些开发人员和开发人员伴随着这一切,这些都是彻底的灾难。我也写了一些Python,开始研究Django。
我在Java团队中的经历普遍糟糕。这些工具始终是PITA。开发人员从不希望自己做错了什么,一旦排除了问题,就让他们重新调查自己的地盘,就像拔牙一样。根据我的经验,与Java团队打交道的第一个伤亡是将开发时间转换为电子邮件时间,并写了许多冗长的解释来说明问题的根源在他们的末端。除非您确实想要对其进行一些控制,否则HTML通常不是他们的问题。然后,所有事情可能都会陷入困境,因为您实际上想移动一些上层div。
我不喜欢这种语言,但我认为真正的问题是文化和事实,即接受程度如此之广,中间让人感到平庸。我怀疑这种文化源于Java的营销方式。编写一次,到处部署。翻译:“您只需要学习一件事!” 那些发现这种吸引力的人基本上希望对每个钉子都像一把巨大的锤子一样挥舞Java,同时在网络开发方面尽可能少地磨练自己的手艺。
因此,如果您的开发人员知道Java和其他语言,但实际上仍然偏爱Java,那么我想说,是的,如果这似乎是正确的解决方案,请继续。但是,如果您的Java开发人员知道Java,而其他一切都几乎不符合在简历中真正成为要点的标准,请让他们使用HTML端构建具有各种半复杂页面的简单应用程序,然后尝试一下简单的测试。破坏一些HTML。尝试让他们找出问题所在。如果他们开始解决的迫在眉睫的问题是指责自己,那就让他们远离Web开发。Web开发人员是多学科的,因此需要对该领域的积极关注才能取得成功。对于那些只想保持一种语言知识并且对问题感到恐惧而不是对解决问题感兴趣的人来说,这不是一个地方。
我并不是在断言Java本身就是无能的根源,而且我听说过Spring很好。我确定那里有称职的Java团队。我只是还没有碰上一个,我不认为这是一个巧合。我认为Sun与它有很多关系。我还认为,像IT部门或IT部门这样的网络团队与之有很大关系。
Java非常适合小型网站,例如,您可以使JSP页面与Java Web服务器(例如Tomcat)一起快速运行。
尽管以我的经验,Java在大型网站上更为常见,那里对复杂的服务器端处理有更大的需求-在这种情况下,您会发现使用了更复杂的Java框架,例如JavaServer Faces(JSF)。
需要注意的重要一点是,从历史上看,在许多廉价的Web托管设置中都无法进行完整的Java安装,因此可以解释这些环境中其他语言(如PHP)的普遍性。
在Web开发中使用Java的主要原因归结为以下几点:
从技术上讲:
如果要启动Web应用程序,则将使用Ruby on Rails进行设计,以使RoR达到其性能扩展极限时可以将热点交换出去。
Java具有一定的COBOL气味,“低端程序员使用Java”一词随处可见,而Oracle的壁画也无济于事。如果您有选择,请选择一种吸引顶尖开发人员的语言。
这不是唯一的原因,但是随着构建具有复杂的类似于应用程序的前端的网站的日益普及,同时仍然具有在服务器上执行“填充”的逻辑-无需解释Java为什么至少与其他Java等同的理由服务器端的选项。但是在客户端,如果有任何JavaScript将很快变成代码维护的噩梦,并且通过使用GWT使这些内容保持一定距离,以便可以使用Java进行编码,则可以在服务器上兼得两者进行繁重的工作,并由客户的处理程序为他们提供“体验”。学习将其与jQuery之类的东西集成在一起,您也可以拥有所有想要的东西。
没有其他选择方面的专家,但是如果其他人可以提出具有相同灵活性和广度的专家,则很高兴听到它。
我相信您的应用程序将变得非常复杂,需要许多人进行开发,具有许多复杂的模块,复杂的业务逻辑,并且必须与许多其他企业应用程序进行通信。
无论如何,您还可以在Grails中进行开发,该Grails提供了许多不错的功能,大大简化了开发,并且很快就成熟了。
Java是可以的,但是如果性能不是至关重要的话,那么使用其他语言即可轻松获得相同的结果。
Java是一种静态类型的语言,如果您的公司没有MSDN订阅,则Java比用于Web开发的其他静态类型的语言(即C#和VB.net)便宜。静态类型的语言非常适合大中型项目,复杂的域规则和大量的后端代码,因为您可以更好地组织类,而IDE将帮助您查找代码中的错误。
使用动态类型的语言,例如PHP,Python,Ruby,您的开发将更快,但是您将不得不更好地测试代码。如果您没有太多的时间和金钱,并且您的需求变化很快,并且您不必进行非常复杂的计算,那么动态语言会更好。
安全
大型公司选择Java而不是其他解决方案的主要原因是因为它被认为更加安全。
这主要是因为它得到了这么大公司(现在是oracle)的支持。
应该考虑到Java提供了很高的安全性以及出色的支持和分析(尽管确实要付出一定的代价)。