最近三年,我一直在用PHP进行Web应用程序开发。我现在快要尝试Java。我最近一次使用该语言是在8年前,而且大部分是学术性的。
我对PHP的对象模型(版本5)相当熟悉,并且我几乎完全是在OO中进行编码的。我现在想传达这种经验并将其用于Java开发。
我来自哪里:
到目前为止,我对Java的了解:
现在,我需要一些见识,可以帮助使过渡更加顺畅。但是从人们谈论它的方式来看,Java似乎是具有自己的生态系统的全新野兽。听起来好像实际上迁移到Ruby或Python会更容易,这很好奇,因为从我的角度来看,Java在概念上似乎最接近PHP,尽管更为严格和预先编译。
听起来可能很奇怪,但很少有人公开记录过自己的举动经历。我已经在google,amazon和stackoverflow上搜索了类似的问题,结果令人向往。我只是简直不敢相信,如果我想以Java的速度快速发展成为Web开发人员,我将需要像新手一样开始。
欢迎任何人回应,但我认为有些人在两种语言上都有宝贵经验将使这次讨论最丰富。
我不会在学习语言的同时尝试学习IDE。一个简单的过渡是坚持使用shell和惯用的文本编辑器,并使用以下shell友好的工具:
javap
php -r
Java的在线文档是精确,专业的,并且在色调和格式上保持一致。与PHP中的所有功能都位于一个统一的命名空间中不同,Java中的标准库是类层次结构。您必须了解围绕该标准库的方式,这意味着了解 层次结构和职责 :例如,您必须了解这java.util.List是java.util.Collection带有附加条目概念的子接口。有了这些信息,谷歌搜索java.util.List会将您带到该类的Javadoc,并且Javadoc将告诉您确切的方法签名并将您链接到一些具体的实现。
java.util.List
java.util.Collection
一些其他区别:
new DOMDocument()
org.w3c.dom.Document
java.sql.Connection
我实际上是朝相反的方向切换。我发现Java在一家大型公司中运作良好,您可能正在处理单个组件,然后将其交给其他人,后者将该组件集成到更大的系统中,然后将其打包并交给一个单独的运营团队- 所有这些间接性和可配置性(FactoryBuilderFactory类型抽象,web.xml文件等)都很有意义,并且可以做一些有用的事情。在一家小公司的程序员 _都_操作人员,Java还有很多工作要做。使用Java,您将必须习惯一些概念,例如启动Java进程,监视Java进程以确保其正常运行,监视Java进程以确保它不会处于存活状态,而不会引起昏迷。在更新代码等时,不进行响应,关闭和重新启动Java进程,而将中断降到最低。如果您有单独的运维人员,那很好,这是他们的工作,他们非常擅长。如果您是一名程序员,那么照顾Java流程可能会分散注意力,并且很难做好。
FactoryBuilderFactory