从java到php
从大一开始就开始接触java这门语言。但是在这之前也接触了vb,c,asp等等开发语言,唯独java让人感觉严谨,清爽,各种数据之间的不拖泥带水。这才花费更多时间去研究他。但是学着学着,发现他体系的庞大,分支很多。在开始的时候没有收住,结果学习周期过长,在生产环境中的实践却不多。
就拿SSH来说,花费了整整一年时间去研究,但是公司从始至终也没有去用这个,说是太臃肿,反应慢,难以部署和调试。至此,经过了5、6年也最终没有派上用场。生产环境下,也一直是使用jsp+jquery进行开发,核心框架却是公司自己开发的。
学习和使用java的过程,大家一定要有一种定力,不要随便被他新出的各种领域的技术吸引,最好是选择一个领域,深入研究,这样才能够有所收获,不然,每个东西都试一下,结果时间花了,最终长时间用不上,也是得不偿失。如果实在是想与研究,建议不要闭门造车,自己一个人去瞎琢磨,聚集一群志同道合的朋友,将一个大窝窝头分着啃,然后互相交流心得。比如,刚才提到的ssh,内含信息量太大,要研究源码的话一个人估计也至少得花上一两年去研究。虽然我们生产环境里面用不上,但是几个人分别对其中一部分进行研究,再探讨,效果会很不错的。
也是一个偶然的机会,从朋友那里得知他在使用php开发,一开始并不是很喜欢他的语法和开发模式。语法方面,每次都要在变量前面加上“$”符号,让人感觉很别扭。基本上很多内容都直接跟html混合到一起,一种特别混乱的感觉。
但是经历了一些项目后,发现java虽然是严谨,一丝不漏。但是每次开发都需要先将各种框架,各种类摆好,搭好架子再进行具体内容的开发,不然后面就是一团糟了。php就让人摆脱这点了,因为他同时兼备结构化语言和面向对象语言的特点。小web站点我们可以直接快速结构化开发,局部内容进行OO化就行了。所以让我们项目能够迅速实现。
另外,在学习周期方面也确实比较短,有点编程底子就可以在不到一周快速上手,而且可以进行生产开发了。
PHP里面也提供了很多灵活的语言结构,让代码看起来更加高效,紧凑。比如,可变变量和可变函数的使用。
<?php
function get_pen(){
echo "We get a pen.";
}
function get_pencil(){
echo "We get a pencil.";
}
?>
用户给我们一个参数$tool,代表钢笔或铅笔
第一种调用方法:
if($tool == "pen"){
get_pen();
}elseif($tool == "pencil"){
get_pencil();
}
第二种调用方法:
$getsth = "get_".$tool;
$getsth();
本来需要大段代码的编写,这里只需要简单的拼接就行了。这种用法在php中大量存在,极大简化我们的开发过程,提高开发效率。
正因为php诸多这样的优秀特性,加上他自身的不断发展,使得他越来越流行了。也让人爱不释手不是吗?
从java到php的更多相关文章
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
- Elasticsearch之java的基本操作一
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
- 论:开发者信仰之“天下IT是一家“(Java .NET篇)
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- Java多线程基础学习(二)
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
- Java多线程基础学习(一)
1. 创建线程 1.1 通过构造函数:public Thread(Runnable target, String name){} 或:public Thread(Runnable target ...
- c#与java的区别
经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...
随机推荐
- NSURLConnection 网络超时的那些事(转别人整理的)
NSURLConnection 网络超时的那些事(转别人整理的) 在ios平台上做网络开发最常用的两个类: NSMutableURLRequest *urlRequest = [[NSMutableU ...
- 【Android 界面效果43】Android LayoutInflater的inflate方法中attachToRoot的作用
我们在ListView的Adapter的getView方法里面经常会调用两个参数的inflate方法, mInflater.inflate(R.layout.adv_viewpager, null); ...
- iOS UILable的一些用法
1.按钮上的文字添加下划线 问题:实现下图中右侧的按钮文字效果 代码(绿色为按钮文字加下划线方法): [MyTools createMyImageview:topEditView frame:CGRe ...
- iOS之block块
Block块. 1.声明Block int (^myBlock)(int n) = ^(int num) 类型 (^名称)(需要传的参数)= ^(参数) 2 __block 变量 在block块中修改 ...
- React Native开发环境搭建
安装Xcode 安装Homebrew 安装Android SDK 安装flow和watchman 安装nodejs 安装react-native-cli 安装Genymotion 安装Webstorm ...
- 房间声学原理与Schroeder混响算法实现
一.混响时间的计算与预测 所谓混响就是声音的直达声与反射声很紧凑的重合在一起时人耳所听到的声音,这个效果在语音的后期处理时特别有用.能产生混响最常见的场景就是房间内,尤其是空旷的房间中. 混响有直达声 ...
- 转:android 录制视频的Demo
转:http://blog.csdn.net/peijiangping1989/article/details/7049991 在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. ...
- oc中的分类/协议/属性
1.分类:当我们想给某个类加一些方法时,如果不想通过继承这个类来实现,可以通过分类给这个类加一些行为,这个过程与继承相比更加轻量化. @interface NSString (SubClass) -( ...
- 跟我一起学习ASP.NET 4.5 MVC4.0(四)(转)
前几个文章中介绍了一些关于MVC4.0的东东,今天我们来看一下登陆验证,也可以说是权限验证,即AuthorizeAttribute.这个可以使用在控制器Controller上,也可以使用在Action ...
- AndroidTestCase简单使用
1.根据需求创建TestCase类,实现测试用例.此类需继承AndroidTestCase类 public class TestCase extends AndroidTestCase { @Over ...