最近看了知乎上的一个话题 「在工作中,为什么 Java 程序员常常瞧不起 PHP 程序员?」
个人从业多年,用过的后端语言 ASP、ASP.NET、Java、PHP、Node.js、Python,如果你非要让我说哪种语言好,我会说「凡是宏哥说的都是对的,凡是宏哥提倡的都要坚持。只有真正的理解了宏哥思想才可以洞穿一切,走出空谷。」话不闲谈,咱们先说说我对 Java 的看法。
Java 在我看来好比重型武器,而且武器种类如王牌特工里,那位老特工给新特工展示的武器库一样丰富,就 Github 上的开源项目来说,远不止这些。
那么背后说明了什么?让我们引申出几个问题。
其实一开始 Java 就是以大型的服务器得解决方案而存在的,所以面对的都是企业级比较重型的需求(典型的银行项目、房产项目),对比一下淘宝和 ECShop,虽然最底层需求都是商城类整站,但是后者明显需求要单薄很多。那么也可以说 Java 是变相解决了更多的问题,自然可以说Java 思想就开阔了。
Java 在团队协作中我的直观感觉就是库和标准。Java 有着数不完的现实标准库和标准。而且一个很多人不认为是要害的问题就是 Java 有好的 IDE,在如 Eclipse 上写出程序,错误会及时爆出,运行不了基本编译时就会报告出绝大多数错误。而 PHP 早年的学习基本只是记事本,DW 等工具,而且早年的PHP 同样也不支持复杂的 OO 特性,从而在工程质量上 Java 就略胜一筹。
此时你要说那是早年了,现在 PHP 很多 OO 特性都支持,PHP 是世界上最好的语言并且没有之一,但是从人的角度上讲,从业时间长的大多数老兵还停留在早年 PHP 的状态,所以团队和新人的水平也大多得不到整体得提升(大牛和天才毕竟是少数)。到目前为止我也没有见过谁非要在 PHP 圈推行什么标准,推行什么框架(Java 圈基本天天都在喊,如果你赶上 JavaEye 崛起的时刻你能更明显得感觉到),大家都是拿全能「脚手架」在用,大家都是找快速实现需求得 CMS 类程序在用。
那么 PHP 就一无是处吗?自然不是,如果你使用过 SSH 开发过,看看 ThinkPHP 的实现机制你会觉得只要都是 WEB 框架,要解决得问题总是有限。早年 ThinkPHP 的控制器为 Action 后缀命名,连作者都直言是借鉴 Struts,模板中的变量属性输出可以用 .
来表示,PHP中 .
字符其实是字符串连接符,表示属性的话是 ->
(PHP 很多原语都是类 C 的)。
虽然 ThinkPHP 中提供了很强的 DEBUG 输出,更有 G 方法计算输出运算时间以性能调试,但这依然不够,试想一下我们每天要调用多少外部接口(短信发送,微信集成,地图类等 API 输出),用户数量剧增时,又要接入多个 MySQL 来负载(ThinkPHP 有软负载支持),如何一键输出所有的错误和性能问题呢?你没听错,就是一键,而且不管是测试还是生产环境,不管是出游还是办公室内,你随时可以拿起手机诊断这一切(我是在百度中真正搜索到这种平台才敢这么说)。
如果你总是关注开源中国等 IT 社区你一定知道有很多这样的平台了,但很多产品,安装上以后遇到了的第一个问题就是,不能免费,连最基本的测试都不能免费,只有最基本的功能。那有没有免费的可以用呢?不用去申请了,因为你可以选择使用OneAPM提供的 SaaS 产品,目前,使用 Java 做业务处理后端语言的项目,已经可以和 PHP 等展示端语言一起进行性能诊断了。
我们也可以对比分析国外的产品,首先在安装过程 OneAPM 已经非常自动化了,而且接入过程中,技术支持还会对所在的环境进行了一键远端排查,很快就可以诊断了环境中的问题。
下面为大家介绍如何使用 OneAPM 在线诊断代码中的各种问题
更多内容见官方的 DEMO: https://user.oneapm.com/account/demo.do
好吧,这一切都是免费的,如果你的团队已经在产品稳定期,也可以使用收费版本。
既然解决了快速性能分析,是不是就可以高枕无忧了呢?对了,问题刚刚开始,解铃还得系铃人,让我们看看如何面对自己挖的坑,当然我要先介绍几款好的武器。
为什么使用 Eclipse?对了,说好了不想被鄙视,你就必须是全栈,你还要编写 Java 呢不是吗?
打开浏览器把那只虫子点绿吧,开始捉虫之旅。
此时你还在乎被其他语言鄙视吗?如果是的话,你一定没有仔细看本文的开篇。另外很期待下一次可以与大家一同参加极客社区,分享更多极客编程体验!!!
OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问OneAPM 官方博客。