文档章节

转PHP了,记下一点感悟

jim19770812
 jim19770812
发布于 2014/09/30 01:06
字数 814
阅读 25
收藏 1

投身互联网行业了,开发语言从java换成了php,从道理上来说,java要比php难很多,话虽如此,但上手的过程还是痛苦无比

吐槽一下吧

  1. php的弱类型虽然带来了足以让java都比不了的灵活性,但也失去了对其进行精准词法错误分析和检查的功能,基本上没有哪款php开发工具的错误检查机制能做的和java一样好。

  2. 基本上php就是个CGI程序,php脚本就是CGI程序的定制化执行脚本,理解了这个原理,就清楚PHP和java的差异为啥这么大了

  3. PHP基本上是直接有php解析器直接分析源代码并运行,没有和java的字节码这样的东西,更不能把代码装载到内存运行。所以理论上来说PHP做的东西要比java的项目IO要高,服务器负载也受限。当然facebook出了自己的php虚拟机可以把脚本编译成字节码,还有resin公司的quercus也可以把php直接编译成jvm的字节码,然后跑在jvm上面,但这俩方案会不会有啥潜在风险和问题?php又没有一个类似JCP这样的机构可以把PHP技术标准化,用起来有些不放心。

  4. 和phper沟通起来略感吃力,在java领域的一些术语和名词对于phper来说差不多是陌生的,而phper所了解的术语和习惯,对我来说又搞不清楚说的是啥,经常出现一些理解上的偏差,有点头疼。

  5. 目前流行的PHP框架(ThinkPHP和YII)怎么看怎么像是抄袭的Ruby on Rails和Struts,理解起来到不是很吃力。

  6. php的那一堆函数,连个标准库都没有,想找个啥功能得现去网上搜,唉。

  7. 最让人抓狂的是php的的语法,搞不明白为啥变量前一定要有个$,为啥调用方法要用=>,为啥连接字符串要用.,怎么php这么标新立异呢,满篇的$=>.看着眼晕

说了半天了,php也是有优点的

  1. php代码变了不需要重启服务器,这点很棒

  2. php的类名字符串可以直接实例化成类,一行代码就办了,java里却要写一堆代码。

  3. php开发效率挺高,具体原因可能是开发思想上存在差异,php的定位就是网页开发的后台脚本语言,java的定位是企业级平台,分了5层,每层可替换,然后所有java开发者张嘴闭嘴的表现层,逻辑层,php里一共就三层(客户端层+表现层+持久层),这样划分倒也简单。

  4. 看得出php的侧重点就是网站开发了,对于互联网有关的URL重写,搜索优化,反向代理什么的,这些东西在java做企业开发时不太常见,也不经常用到,java的侧重点并不是互联网应用,从名字上就看出来了,java ee本身就带着企业的印记。

© 著作权归作者所有

共有 人打赏支持
jim19770812
粉丝 21
博文 46
码字总数 27704
作品 0
济南
私信 提问
PHP---XAMPP 环境安装扩展redis

最近做项目,需要用到redis相关知识。在Linux下,redis扩展安装起来很容易,但windows下还是会出问题的。因此,特此记下自己实践安装的整个过程,以方便后来人。 一,php中redis扩展安装配置...

君满楼001
2017/11/17
0
0
dist打包流程

打包dist : 运行dist : 浏览器打开地址 : 如果错乱则需要手动修改gulp插件: 原始代码 打开node_modulesgulp-revindex.js 第144行: 10行: 打开node_modulesgulp-rev-collectorindex.js 40行:...

webmirror
2017/12/29
0
0
Common Lisp 的一点学习心得==选择一种实现,然后好好看它的描述文档,多练习,多提问

Common Lisp 的一点学习心得==选择一种实现,然后好好看它的描述文档,多练习,多提问 真正接触 Common Lisp 也有一段时间了,对 Common Lisp 的一点心得就是:明确地确定一种实现,然后以这...

FreeBlues
2013/04/07
0
0
关于前端的思考与感悟

万事开头难。 当我想要认真写一篇文章向大家分享我对前端的认识与感悟的时候,突然就深刻的体会到了这句话确实太有道理了。 最近几年对于web前端的传闻很多,比如人才稀缺,简单易学,待遇丰...

oschina
2016/05/01
3.4K
20
求php汉字转拼音获取首字母函数,且没有bug,网上找的bug多少有一点

求php汉字转拼音获取首字母函数,且没有bug,网上找的bug多少有一点 如 中华人民共和国---->zhrmghg

bug哥
2012/06/15
818
8

没有更多内容

加载失败,请刷新页面

加载更多

四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0
浅谈mybatis的日志适配模式

Java开发中经常用到的日志框架有很多,Log4j、Log4j2、slf4j等等,Mybatis定义了一套统一的日志接口供上层使用,并为上述常用的日志框架提供了相应的适配器。有关适配器模式例子可以参考 设计...

算法之名
昨天
13
0
大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
昨天
3
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部