最近看了知乎上的一个话题
「在工作中,为什么 Java 程序员常常瞧不起 PHP 程序员?」

个人从业多年,用过的后端语言 ASP、ASP.NET、Java、PHP、Node.js、Python,如果你非要让我说哪种语言好,我会说「凡是宏哥说的都是对的,凡是宏哥提倡的都要坚持。只有真正的理解了宏哥思想才可以洞穿一切,走出空谷。」话不闲谈,咱们先说说我对 Java 的看法。

Java 在我看来好比重型武器,而且武器种类如王牌特工里,那位老特工给新特工展示的武器库一样丰富,就 Github 上的开源项目来说,远不止这些。

那么背后说明了什么?让我们引申出几个问题。

为什么 Java 这么重型?为什么 Java 思想开阔?

其实一开始 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 就可以快速解决开发中的问题了吗?当然不能。

虽然 ThinkPHP 中提供了很强的 DEBUG 输出,更有 G 方法计算输出运算时间以性能调试,但这依然不够,试想一下我们每天要调用多少外部接口(短信发送,微信集成,地图类等 API 输出),用户数量剧增时,又要接入多个 MySQL来负载(ThinkPHP 有软负载支持),如何一键输出所有的错误和性能问题呢?你没听错,就是一键,而且不管是测试还是生产环境,不管是出游还是办公室内,你随时可以拿起手机诊断这一切(我是在百度中真正搜索到这种平台才敢这么说)。

如果你总是关注开源中国等 IT 社区你一定知道有很多这样的平台了,但很多产品,安装上以后遇到了的第一个问题就是,不能免费,连最基本的测试都不能免费,只有最基本的功能。那有没有免费的可以用呢?不用去申请了,因为你可以选择使用OneAPM提供的SaaS 产品,目前,使用 Java 做业务处理后端语言的项目,已经可以和 PHP等展示端语言一起进行性能诊断了。

我们也可以对比分析国外的产品,首先在安装过程 OneAPM 已经非常自动化了,而且接入过程中,技术支持还会对所在的环境进行了一键远端排查,很快就可以诊断了环境中的问题。

下面为大家介绍如何使用 OneAPM 在线诊断代码中的各种问题

  • 1.性能全揽
  • 2.慢日志
  • 3.代码级定位
  • 4.数据库事务多天对比
  • 5.还送免费的报警(可以支持微信哦)
  • 6.迁移到阿里云同样支持

更多内容见官方的 DEMO:
https://user.oneapm.com/account/demo.do

好吧,这一切都是免费的,如果你的团队已经在产品稳定期,也可以使用收费版本。

既然解决了快速性能分析,是不是就可以高枕无忧了呢?对了,问题刚刚开始,解铃还得系铃人,让我们看看如何面对自己挖的坑,当然我要先介绍几款好的武器。

为什么使用 Eclipse?对了,说好了不想被鄙视,你就必须是全栈,你还要编写 Java 呢不是吗?

打开浏览器把那只虫子点绿吧,开始捉虫之旅。

此时你还在乎被其他语言鄙视吗?如果是的话,你一定没有仔细看本文的开篇。另外很期待下一次可以与大家一同参加极客社区,分享更多极客编程体验!!!

OneAPM 是应用性能管理领域的新兴领军企业,能帮助企业用户和开发者轻松实现:缓慢的程序代码和 SQL 语句的实时抓取。想阅读更多技术文章,请访问 OneAPM 官方博客

PHPer 为什么会被 Javaer 鄙视?的更多相关文章

  1. 依赖注入(DI)和控制反转(IOC)【回顾】

    在java开发中广泛的使用了IOC的思想,在PHP中同样也在广泛使用. interface Coder { public function coding(); } 实现类Javaer class Ja ...

  2. 一个PHPer如何深入学习ES搜索引擎?

    公司早在一年前就上ES作为后端搜索服务的项目 ,我们PHPer只是负责实现业务接口,es的一些查询,优化技巧由另一组同事(JAVAer)负责,有时,一个需求过来,改动较大时,需要更改查询json语句, ...

  3. 不同的phper该如何区别使用swoole和workerman?

       那么我们该怎样去区别应用swoole和workerman?                workerman workerman纯php写的,swoole是php的c扩展,性能肯定更高,百度.腾 ...

  4. 为.NET搭建Linux的开发环境,鄙视那些将简单事情复杂化的人

    写在前面的吐槽 原本跨平台开发很容易的事情, 很多人把它弄得很麻烦,给外人的感觉:你们.NET跨平台开发好不成熟,好麻烦哦. ..................................... ...

  5. 一个ubuntu phper的自我修养(ubuntu安装)

    ubuntu安装篇 一.ubuntu下载 到ubuntu官网下载适合自己电脑配置的系统版本,此处不做展开. 二.制作USB启动盘 在windows下制作USB启动盘,工具是universal usb ...

  6. A Year Of Books - 2016 Javaer书单

    A Year Of Books - 2016 Javaer书单 (PS:欢迎留言推荐,很多来自白衣大哥的推荐) 1. OS & Networking <编码 : 隐匿在计算机软硬件背后的 ...

  7. 3-5年的PHPer常见的面试题

    看到有很多,的总结一下,比较适合有一定经验的PHPer 1.平时喜欢哪些php书籍及博客?CSDN.虎嗅.猎云 2.js闭包是什么? 3.for与foreach哪个更快? 4.php鸟哥是谁?能不能讲 ...

  8. phper 要求

    做了这么多年php,今天看到一个07年的老文,才发现自己的水平太菜.转过来激励下自己 说句实话,写这个真够无聊的.本来看了某位大虾的类似文章,腹诽了几句也就算了.但是昨天晚上有个客户拿着这篇文章问我: ...

  9. 问自己----也是自己该怎么走的路(phper)

    1.首先看了PHP的源码API函数,对于许多口水仗的争论一笑而过,只是停留在脚本级别上的什么效率,安全...之争完全就是无稽之谈,没有深入理解API,所有的争论都是臆测和不科学的态度.你做了吗? 2. ...

随机推荐

  1. 9款经典华丽的CSS3分享按钮

    如果你经常活跃在一些社交网站上,那么你肯定会看到过很多形式各异的分享按钮,目前由于HTML5和CSS3的普及,很多分享按钮也都应用了CSS3样式,甚至会有很多带有动画的CSS3分享按钮.本文就向大家介 ...

  2. cpoint

    #include<iostream> #include<math.h> using namespace std; class CPoint { public: int cpoi ...

  3. Java开发者常犯的十个错误

    翻译自:Top 10 Mistakes Java Developers Make 文章列出了Java开发者最常犯的是个错误. 1.将数组转换为ArrayList 为了将数组转换为ArrayList,开 ...

  4. 【风马一族_Android】让app上传到Android市场的网站介绍

    豌豆荚  开发者中心 http://open.wandoujia.com/account/info China app http://www.chinaapp.org

  5. 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因

    1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...

  6. Ubuntu下设置Tomcat成为服务(开机启动)

    1.将tomcat安装目录下bin文件夹中的catalina.sh拷贝到/etc/init.d下并修改名称为tomcat cp  /path/to/tomcat/bin/catalina.sh /et ...

  7. Noppoo choc mini 84 @XUbuntu13.10 compatibility setting

    Months ago, I bought the keyboard Noppoo Choc Mini 84keys for using under XUbuntu12.10, and I have f ...

  8. Python 的列表解析和生成表达式的异同

      Python中的列表解析和生成表达式是非常好的特性,他们的形式相似,但是应用场景不太一样. 相似点 列表解析和生成表达式最大的相似点是使用形式: [expr for iter_var in ite ...

  9. Oracle 中的replace函数的应用

    replace 函数用法如下: replace('将要更改的字符串','被替换掉的字符串','替换字符串') oracle 中chr()函数 CHR() --将ASCII码转换为字符 语法CHR(nu ...

  10. CP="CAO PSA OUR" 用P3P header解决iframe跨域访问cookie

    1.IE浏览器iframe跨域丢失Session问题 在开发中,我们经常会遇到使用Frame来工作,而且有时是为了跟其他网站集成,应用到多域的情况下,而Iframe是不能保存Session的因此,网上 ...