网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月08日漏签0天
php吧 关注:280,610贴子:1,321,077
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回php吧
>0< 加载中...

phper谈谈最近写java的郁闷之处

  • 只看楼主
  • 收藏

  • 回复
  • 琅琊竞猜
  • 我是变量
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最近由于公司要做一套OA系统,搜索引擎上找了很久PHP相关的工作流引擎,说句实在的,全是垃圾。然后发现java的Activiti挺不错的。可能有人要问我为什么不自己开发一套工作流引擎呢?我相信开发一套也没问题,不过,还是那个老问题,没时间做。所以,研究了10来天的java,然后用java开始写项目,用的springboot + hibernate。还有,我也有私心,毕竟java的工作那么多。好了,话不多说直接说我的感悟吧。
首先谈谈php的优势,就一句话,开发效率极高。然后说别的,没一样能和JAVA相比。
java的优势:
1,完全的面向对象
2,运行效率吊打php
3,因为是强类型语言,所以,你可以在代码和框架随处可以高大上的设计模式
4,对象常驻内存,数据库连接池和redis连接池是真正的连接池,php默认的长连接还是太*丝,为什么*丝大家可以去网上搜一下。
5,做大数据开发,java有天生的优势,php做hadoop不行。
6,非常完善的社区支持,丰富多彩的开源组件,让你很爽
所以,怀着无限的憧憬,我开启了我的java项目。但是结果你发现,其实php一点都不low,反而越开发越痛恨java。
首先,完全的面向对象,你发现,这就是一个垃圾,我要定义一些公共的方法,比如,加密密码,比如字符串常用的一些验证,定义一堆函数不就OK了吗?还得先创建一个包,然后定义一堆类,然后实现各种方法。
然后运行效率真的是吊打php吗?你发现,实际项目中完全不是那么一回事,php自带有很多很好用的函数,直接调用底层的c语言扩展,效率极高,而java,你要么自己实现,要么去maven上搞一个包下来玩,运行效率还不如php,并且大大的影响开发效率。
然后,调试代码极度的不方便,很多JAVA项目都喜欢面向接口编程,设计者的目的是好的,就是做到代码封闭,使用者不必过于关心实现,只需要了解对一个接口,了解能干什么就OK。不过无论是在开发项目中,还是我们提高自身水平的层面去看,阅读源代码都是很必要的。面向接口编程,我跟踪了好几个对象,最后跟踪到的居然是一个接口,实现代码一行都没有,要去看实现类,还得花时间去找到对应的实现类,太麻烦。不过php的,直接上来就是实现类那么直观。
然后强类型的语言,这就不多说了,很多人说这个是有点,不过,我却在无休止的类型转换中感觉到崩溃。
最后说说常驻内存,这也是java程序员用来鄙视php程序员的最致命的一点。是的,php项目我建议无论数据库还是redis都不要使用长连接,因为,每一个php-fpm进程都会持有一个连接,不会关闭,不管这个php-fpm到底有没有用到这个连接,不管有没有业务在这个进程内跑。造成了大量连接的浪费。并且php的短连接,我试验过jdbc短连接和pdo对比,pdo效率首次连接比jdbc快30倍,第二次也比jdbc快20倍左右,所以,短连接已经足够快,在项目不大的时候用短连接还是很好的。如果项目大了怎么办呢?php-cp扩展非常优秀,是php真正的连接池,不过,效率还是不如java。因为,php-cp也是一个进程,php-fpm进程和其交互需要调用操作系统的进程通信的Api来实现。而java的多线程之间可以共享内存,人家就是直接拿到内存中的一个变量,直接使用,效率还是要高很多。不过要记住,无论是mysql还是redis,程序要和它交互,都需要走网络,并且mysql还要实例化数据到硬盘,像刚刚说的进程通信上慢于java的时间,可以忽略不计了。实在不能解决,就加服务器呗,毕竟买点服务器不贵,毕竟用php的话,你可以少招很多人。
最后说说我的看法。我觉得,在服务器端开发中。php用来写业务还是非常不错的,用来直接和数据库以及redis交互也是杠杠的(用php-cp扩展已经够了)。然后,开发效率php毕竟高太多。对于连接池上这个问题,php效率低于java的问题,我们应该去思考,这一点点的效率真的有那么重要吗?我的观点是不重要。所以,除非非得用java才搞得定,否则我建议大家多用php。当然,现在很多公司都有大数据相关的业务,这个就用java来做,没错,用php你遇到问题,网上都搜不到答案的。
时间不早了,该睡了,最后说一句,为什么同样的业务逻辑,php实现在压测的时候比java实现对cpu的负载高很多呢?两个原因,java一般都会直接使用连接池,而php很多人用的短接,这样的话,压根就没有可比性。第二,php半编译成opcode的时候不会做代码优化,java的编译会做,所以,如果这个php程序员和java程序员都是low逼,写的代码都很二,java编译之后的代码会比php好太多。所以大家写代码还是要注意一些。然后在这里顺便说一句,我面试很多人,发现有相当大的人是属于学不懂java才来学php的,因为这些人本来学习水平就不咋地,所以,学php能学得成高手吗?所以希望大家在工作中努力做好,当上领导,然后你坐在高层位置的时候,你才有权力在公司内部大力推广我们世界上最好的语言--PHP.


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回php吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示