php程序员应具有的7种能力小结


Posted in PHP onNovember 27, 2014

一,php能力
 
1,了解阶段,您能写一些代码,因为那是在手册和google的帮助下,您才完成的。变量乱定义,N多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦。
 
2,熟悉阶段,经常查函数,手册估计也看过一,二遍了,常用的函数基本上您都了解了。后 期维护给您带来了不少痛苦,您开始发现自己的代码有很多不足,开始思考如果改进自己的代码,如何站在项目的角度来规划自己的代码,而不是想到什么写什么, 知道如何来减少冗余代码,使您的代码清晰,知道什么样的代码写出来让人看着舒服,基本的代码规范,已经形成。为了提高自己,会特意的去一些技术性的论坛, 学习研究。
 
3,很熟悉阶段,本来我想写精通的,到现在我也不知道精通是到什么程度,也没有听到有人 说自己精通PHP的,所以就用很熟悉了。这个阶段,我想您已经从面向过程进入了面向对象。个人觉得面向对象的最大好处就是,能使整个项目功能化,模块化, 后期维护,改版,升级就很方便了。没有面向对象的时候,不也一样开发吗.这个时期,您已经研究过了一种或者几种框架,结合自己的实际项目经验,在脑子里已 经能形成自己的一个框架,这个框架是最适合你的。并且能够将这个框架运用到实际的开发中去,以提高自己的开发效率。
 
如果您刚写代码的时候,就有人能约束你按OOP的思想去写代码的话,那您就遇到贵人了。当不好的代码习惯养成时,在想改就不那么容易了。
 
二,数据库能力
 
用php来做项目的话,用mysql是最多的了,其次是pgsql。因为他们二个是免费的。哈哈,以mysql为例
 
1,了解阶段,知道mysql是什么,能写一些简单的sql语句,能设计简单的表,知道如何使用数据库管理工具(如:phpmyadmin)
 
2,熟悉阶段,知道如何才能写出高效率的sql语句,了解索引原理,知道如何创建索引, 会写一些储存过程,触发器等,能通过各种手段来分析,测试数据库,例如:利用mysqlslap来进行压力测试,通来explain来分析sql语句,通 过开启慢查询来分析哪些sql语句真正影响mysql的运行,能利用dbdesigner4,mysql workbench为设计数据库,能在命令状态下,查询,分析mysql环境变量,来分析mysql的运行状态等等
 
3,很熟悉阶段,对于各有种存储引擎的原理非常熟悉,知道通过修改配置文件来,使存储引 擎达到最优化,知道如何来优化数据库的最大连接数,知道怎么样来优化mysql的I/o瓶颈,为了项目的需要,向mysql数据库增加存储引擎或者插件, 知道如何搭建数据库集群,并监控数据库的运行状态等等
 
三,html,css能力

php是脚本语言,我们用php大多数情况下是用来做网站的,慨然是网站,那肯定是离不开html,css
 
1,了解阶段,知道html标签是干什么用的,通过网络和手册能自主的写一些html,知道css是怎么回事,能在html中写一些简单的style等
 
2,熟悉阶段,能利用css来能设计一些简单的布局,可以将css单独的写成文件,熟悉css的语法规则,以及继承性等
 
3,很熟悉阶段,能够设计出很好的CSS,并且管理好这些CSS文件,尽量减少冗余代码。知道如何写出有利于搜索引擎搜索的代码,例如:title,h1,h2权重比较高的。等
 
对于php程序员来说,并不一定要你去设计页面,但是给你一个页面,你要知道如何来修改CSS文件,html就不要说了肯定要掌握的。
 
四,js能力

如果提高用户体验,是一个网站能留住人的重要标志。这个就要用到JS了
 
1,了解阶段,了解JS的基本语法,知道如何去调试这些程序,能写一些简单function等
 
2,熟悉阶段,对JS的语法,函数,正则等已经熟悉了,能利用js来写一些特效,并且发 现用JS写特效,是比较累人的一件事,开始尝试jquery,prototype,并对jquery,prototype基本语法有所解,个人反对不学 JS,直接入手jquery,prototype这样的JS框架。
 
3,很熟悉阶段,在框架的帮助下,能熟练的用OOP的思想的来写代码,而不是一个个 function累加,熟练运用jquery,prototype的ajax,或者是网上一些ajax框架,如(ajaxrequest),不在直接写 active控件了。能够利用网络资源,来完成各种特效。
 
对于大型公司来说一般都是有js程序员的,小公司基本上没有,要么交给程序员来做,要么 交给美工来做。美工一般都不是程序员,也没有编程基础,所以学JS比较吃力,但是学jquery比较容易的,因为css对html进行控制的方法,和 jquery对html的控制方法基本上差不多(css,jquery的相同之处),所以有好多公司把特效交给美工来做。
 
五,apache等能力
 
个人觉得,到目录为止,跑php的话用apache的人还是最多,前段时间好多网站在吵NGINX有多么多么的好,能比apache好10倍,我觉得还是亲自尝试一下比较好。以apache为例
 
1,了解阶段,不管是linux下,还是windows下,能够安装配置apache,知道如何添加php添模,如果面试官问你,apache为什么能解释php代码,你怎么回答呢。对apache的基本配置有所了解,对于启动中遇到的问题能够解决等
 
2,熟悉阶段,知道如何向apache中添加新的模块,如果如何进行url重写,防盗链,进行IP限制等
 
3,很熟悉阶段,知道如何利用apache来缓存图片,能利用apache来做负载均衡,并且知道利用ab命令来进行压力,通过工具对日志分析,经过分析来对apache进行优化,知道如何搭建多个虚拟主机;对apahce的常用模块都有实际操作经验等
 
对apache进行监控和维护,一般是运维人员或者是项目经理来做的,个人觉得最好还是了解一点,因为这样您才不会那么容易被忽悠,对于自己将来的转型也是非常有必要的。
 
六,linux系统
 
为什么要掌握linux系统呢?用php写的网站大多数运行在linux或者 freebsd下的,掌握linux系统对自己将来的发展还是比较有好处的。借此感谢一下我的好友汪洋,是他将我带进linux世界的,进来后我才发现这 里的世界很精彩,现在我基本上不用windows了,偶尔打游戏的时候会进一下,在linux下,不用担心中毒的问题,linux下的病毒很少,也不用担 心,XX和XXX扫描你的硬盘了。哈哈
 
1,熟悉阶段,会装linux系统,对系统的常用命令能够熟练运用等
 
2,运用阶段,在linux系统下,能够安装配置apache,php,mysql,svn,memcache,squid,lvs等一些web项目必要的工具,能够通过日志分析其状态等。对shell要有所了解,并能够写一些简单的shell脚本等
 
七,勾通能力
 
这一点非常重要,并且被越来越多的人所忽视,其实做程序员挺杯具的,根电脑打交道的时间 是最多,也许是因为这样吧,勾通的时候,是比较费劲的,也有可能是被程序的严谨性束缚了大脑,说出来的话,太专业,可能其他人听不懂的。所以平时多和他人 交流,特别是根非技术人员多勾通,多站在对方的角度来思想问题,这样的话,我想勾通起来会容易很多。

PHP 相关文章推荐
php 设计模式之 工厂模式
Dec 19 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php中文字符串截取方法实例总结
Sep 30 PHP
PHP的反射机制实例详解
Mar 29 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
Django 中 cookie的使用
Aug 17 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 PHP
分享最受欢迎的5款PHP框架
Nov 27 #PHP
PHP比你想象的好得多
Nov 27 #PHP
简单说说PHP优化那些事(经验分享)
Nov 27 #PHP
几个实用的PHP内置函数使用指南
Nov 27 #PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 #PHP
浅谈php优化需要注意的地方
Nov 27 #PHP
PHP实现文件下载详解
Nov 27 #PHP
You might like
深入PHP empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
smarty缓存用法分析
2014/12/16 PHP
Joomla开启SEF的方法
2016/05/04 PHP
utf-8编码引起js输出中文乱码的解决办法
2010/06/23 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
读jQuery之五(取DOM元素)
2011/06/20 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
极简主义法编写JavaScript类
2017/11/02 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
python uuid模块使用实例
2015/04/08 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
matplotlib中legend位置调整解析
2017/12/19 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
浅谈Python中的继承
2020/06/19 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
医学生自荐信
2013/12/03 职场文书
大学生实习自我鉴定
2013/12/11 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
六一亲子活动总结
2014/07/01 职场文书
安全第一课观后感
2015/06/18 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server