【闲聊PHP】编程界的萝莉小美女--PHP
01 前言--上了贼船
不知道何时就上了PHP的贼船了,开始了web的开发,记得差不多两年前我还是做传统电子行业的人,就是嵌入式的方向,那时在天津或摆弄手机,或下煤窑摆弄电话,抑或就是在医疗电子摆弄血压计,终于熬不住了,钱太少了!
我的一个基友,告诉我,孩子,别哭,咱学PHP吧,可以站起来撸。。。

我眼里放光,就屁颠屁颠地跟来了。问我为啥不选择如日中天的王道Java,基友的话,比PHP难太多,咱专注的是互联网领域。来到了宇宙中心五道口,开始了PHP的实践之路,这是家做互联网教育的机构,我在这里学习工作的很开心,做了不少的项目,结交了不少的朋友,帝都的美丽画卷犹如一个美丽的女子一般在我眼前徐徐展开。我很开心。
后来来到现在的这家医疗互联网的公司,PHP使用的是自己的框架,有很深的Java的痕迹,用到了很多web的组件。学习了很多。像底层的ORM, 领域驱动模式,业务数据的拆分,异步MQ, 缓存Memcache, redis等等。
从2014年8月份到现在 2017年的2月份,正好2年半的时间里,我觉得是时候自己好好聊一聊PHP了。说的好的地方,希望您不吝掌声和赞美,说的不好的地方,你就拍砖,指出来,以供我改正,良辰在此谢过了。
02 web开发语言--PHP
PHP是一门专注于web开发的脚本语言,语法简单,非常容易上手,但是要做的很深很好就不容易了。就像大家都会写字,但是写出非常漂亮的文章,就不是一般人能做到了。PHP开发的领域也比较广阔,设计web开发的方方面面,技术黄金组合LAMP/LNMP,也指的是Linux操作系统, Apache/Nginx web服务器, mysql数据库,和PHP这个编程语言。

03 面向对象和数据结构--PHP
前几年PHP还是面向过程的编程,近来变成了面向对象了,一句话,还是简单,可定制,程序相当自由灵活,任何的变量,你都可以 var_dump打印出来看看到底是什么,比Java什么的好多了,Java打印不同的变量,都要不同的类的不同方法来实现,比较的繁琐。还有PHP的主要的数据结构主要是字符串和数组,这里边基本上包含了PHP %80的编程量,PHP的数组尤其强大,几乎实现了Java中的集合,哈希等多种结构,就是这么简单快捷,一气呵成。

04 MVC,框架和设计模式
PHP的开发,也是遵循MVC模式的,数据层Model,视图层View,控制层Controller。这种低耦合高内聚的设计方法也成了行业的圭臬。很多的PHP的优秀的框架像CI,ThinkPHP都是遵循MVC的,当然你自己高兴,也可以在PHP中实现你自己所谓的常见的设计模式,像单例模式,观察者模式等等。
05 LAMP/LNMP--开源免费的黄金组合
Linux系统确实挺牛的,那命令下的简洁高效,那黑底白字的优雅,那稳定强悍的性能,都使人深深着迷!PHP的服务端代码就运行在Linux这个免费高效的系统上面,很多运维人员也用shell或者Python等其他语言和Linux不断聊着人生。VIM更是Linux下的神之编辑器,每天都会有新的学习和成长,惊喜每一天啊。

Apache和Nginx都是PHP常用的web服务器,主要解决路由和请求转发的问题,还有负载均衡,反向代理等。做成集群,以构建高可用的web应用,这都是企业级的应用。这一部分也是我要精进的部分,有时间还得是拿来源码等好好研读一番,设计的精妙,尽在其中。
MySQL数据库,也是小巧而可爱,与PHP是天造地设的一对,增删改查,无一不能,支持事务的Innodb引擎,优化查询语句的路上,你我都需要费点思量。
PHP本身是这里边的核心,毕竟她是编程语言。这是世界上最好的编程语言,在Linux系统上运行,接受Apache或Nginx转发过来的请求,去Mysql数据库中拿处理展示的数据。这就是PHP的魅力,在前端和JavaScript一起渲染html的页面,华丽丽,牛逼逼,就是这么屌,哈哈~
06 高性能web应用--PHP的架构方向
保证网站性能的高性能,高可用的状态,等设计到架构的方面,从用户从浏览器中输入网址,到一个华丽的页面展示在用户的面前,虽然只有短短的几秒时间,中间却经历了太多太多的东西,现在咱们就解开这里的神秘面纱。
输入网址,浏览器客户端就发起了http的请求,到DNS解析网址对应的IP,到CDN数据中心,一路路由凯歌猛进,速度当然是光速了。在光纤或者电缆中信号电光石火。到网址的web服务器层面,被负载均衡路由到某个服务器集群下的服务器,有可能从缓存服务器直接拿数据走了,也可能请求到PHP的代码,继续到MySql数据库,业务处理完之后,输出给web服务器,沿原路返回,到客户端的浏览器,和JS一起进行渲染页面。完成全部的工作。是不是很神奇啊。

里面用到的技术很多呢,DNS,CDN,负载均衡,反向代理,缓存服务器集群,应用服务器集群,路由算法,数据库集群等待,都足以让你学习一番的了。
07 写在最后
技术的精进,永无止境,学些吧,你可以做的更好。
PHP这样的语言漂亮妹子,你值得拥有~

【闲聊PHP】编程界的萝莉小美女--PHP的更多相关文章
- C++ 是 编程界 的 背锅侠
C++ 是 编程界 的 背锅侠, C++ 背的包袱 之 庞大复杂, 举世瞩目, 令人感动 . C++ 标准 委员会 俨然 已成了一个 职业 . C++ 把 静态编译 体系 发展到 庞大复杂, C ...
- 浅析C#组件编程中的一些小细节
控件与组件的区别(Control&Component的区别) 作者:作者不详 发布日期:2011-06-30 12:08:41 控件与组件的区别(Control&Component的 ...
- Scratch编程:快乐的小马(三)
“ 上节课的内容全部掌握了吗?反复练习了没有,编程最好的学习方法就是练习.练习.再练习.一定要记得多动手.多动脑筋哦~~” 01 — 游戏介绍 这是一款简单的小游戏,实现了一匹小马跑来跑去(小马有跑动 ...
- 结对编程——带UI的小初高数学学习软件
一.简介 本次项目要求: 1.所有功能通过图形化界面操作,可以是桌面应用,可以是网站(编程语言和技术不限): 2.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: ...
- Notepad++在编程使用时的小技巧
http://blog.csdn.net/freewaywalker/article/details/8010790 为了编程时更快捷和适应个人习惯,我们可以对Notepad++进行一系列的设置,这当 ...
- JSON带来编程界怎样的描述
JSON是一套数据对象组织格式,从程序员的角度观看,他是以种非常易读易写的形式来描述一种key-value的数据组织.全名称JavaScript Object Notation,从名称上可看已经说明他 ...
- 闲聊select和input常用的小插件
前言 在pc端的项目中,经常会用到表单标签,莫过于是select和input这两种,这两种相当常用.但往往原生的功能不尽人意,即使 input中type有n多属性,甚至连时间控件都有,但仍旧满足不了我 ...
- C语言地址对齐(转)--网络编程之结构体大小的计算
什么是地址对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数 ...
- 编程界失传秘术,SSO单点登录,什么是单点,如何实现登录?
单点登录 多系统,单一位置登录,实现多系统同时登录的一种技术. 常出现在互联网应用和企业级平台中. 如:京东. 单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效的. 三方登录:某系统,使 ...
随机推荐
- 现在开始使用 ES6
ECMAScript已经在2015年6月正式发布了,这门语言一直保持稳定快速的发展而且新功能也在慢慢被现在主流的 JavaScript 引擎所接受.不过要想在浏览器端或者 Node 端直接运行 ES6 ...
- IOS NSURLRequest 设置 Header
https://my.oschina.net/wolx/blog/406092 工程中的请求,需要设置Header,请求令牌才访问,NSURLRequest 请求没有直接设置header 的方法,需要 ...
- Backbone视图渲染React组件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- Object修改链表
以前学习过链表的时候由于类型的接收不同,每次要重写链表 下面修改可用链表 class Link{ private class Node{ private Object data ; private N ...
- asp.net 二级域名session共享
1.自定义类 namespace SessionShare{ public class CrossDomainCookie : IHttpModule { private string m_RootD ...
- UVa 10700 - Camel trading
题目大意:给一个不含括号.只有+和*运算的表达式,数字的范围在1到20之间,算出计算结果的可能最大值和最小值. 贪心,如果加法优先级比乘法高,那么得出的结果为最大值.(a+b)*c = a*c + b ...
- 使用PHP和HTML5 FormData实现无刷新文件上传教程
无刷新文件上传是一个常见而又有点复杂的问题,常见的解决方案是构造 iframe 方式实现. 在 HTML5 中提供了一个 FormData 对象 API,通过 FormData 可以方便地构造一个表单 ...
- windows批处理實例
實例: 假設我們有個資料夾為d:\tmp和e:\tmp ,而我們只要將d:\tmp中有異動的檔案複製到e:\tmp下的話,用法如下 xcopy d:\tmp\. e:\tmp\ /D /S /Y 實例 ...
- 二叉树最大路径和-Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence ...
- C++中lower_bound函数和upper_bound函数
STL中关于二分查找的函数有三个lower_bound .upper_bound .binary_search .这三个函数都运用于有序区间(当然这也是运用二分查找的前提),下面记录一下这两个函数. ...