最近看了知乎上的一个话题
「在工作中,为什么 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. 关于js unshift() 与pop() 功能

    最近在研究如何精简贪吃蛇代码,网上许多大神已经将其精简到30行之内就可以搞定. 我尝试着学习并且研究是否能进一步精简的方式. 偶然间又重新温习了一遍pop()和unshift() 的功能.(之前有学过 ...

  2. javaScript中的数组迭代方法

    ECMAScript5为数组定义了5个迭代方法. 每个方法都接收两个参数:要在每一项上运行的函数  和  (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组 ...

  3. 9 款赏心悦目的 HTML5/CSS3 特效

    1.HTML5 WebGL实验,超酷的HTML5 Canvas波浪墙 这是一款HTML5 Canvas实验项目,也是波浪特效,只是这不是真正的水波,而是利用柱体高度的变化实现的波浪墙效果. 在线演示 ...

  4. Codevs 1097 校门外的树

    时间限制: 1 s   空间限制: 128000 KB   题目等级 : 白银 Silver   题目描述 Description 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米 ...

  5. 《如何将windows上的软件包或文件上传到linux服务上》

    昨天晚上朋友让我帮他简单的搭建个环境,他公司让他做款软件测试温度的,他自己搞的是嵌入式,在公司担任的是软件工程师,应届毕业生.也可能他们搞嵌入式的对这个linux系统不太熟,不会把windows上的软 ...

  6. zedboard 构建嵌入式linux

    本文通过五部完成zedboard的嵌入式LINUX搭建,所谓磨刀不五砍材工嘛 1:系统环境搭建 要准备好交叉编译环境 见http://blog.csdn.net/xiabodan/article/de ...

  7. nginx 日志管理

    日志管理 我们观察nginx的server段,可以看到如下类似信息 #access_log  logs/host.access.log  main; 这说明 该server, 它的访问日志的文件是  ...

  8. arcobject 相关

    要素添加: http://resources.esri.com/help/9.3/arcgisengine/arcobjects/esriGeoDatabase/IFeatureClass.Inser ...

  9. snmptrap使用

    SNMP简单网络管理协议,其中其支持的一个命令snmptrap命令,用于模拟向管理机发送trap消息.   启动陷阱方法: snmptrapd -C -c /etc/snmp/snmptrapd.co ...

  10. Asp.Net MVC使用ViewData导致双引号被转义的解决方法

    使用以下方法进行输出 @Html.Raw(ViewData["jsonString"].ToString())