一位资深php程序员在北京的面试30个题目

1、SESSION 保存在服务器的哪里?
2、服务端是如何获取客户端的cookie?
3、如何实现SESSION共享,共享的原理是什么?
4、请大致说出LVS搭建的过程,文件共享原理是什么?
5、网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?
6、说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)
7、如果你是项目经理,你如何管理你的项目团队的日常事宜?
8、主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?
9、说出你常用的版本控制器,SVN中需要配置哪几个配置文件
10、LVS 在项目运行之前需要注意哪些事项,或者说会出现什么问题?
11、ecshop为何出现字段冗余违犯设计模式,请说出为何这么做?
12、常用mysql优化方式,尽可能多的说?
13、memcache原理是什么?是否能存入2M的value?
14、什么是队列?排它锁,Myisam 死锁如何解决?
15、请说出mysql常用存储引擎?memory存储引擎的特点?
16、如何最快速的插入5000条以上的数据?
17、你用过多少开源框架?
18、ecshop 购物车信息存放在哪里?
19、PHP生成页面缓存的原理

20、你所知道的缓存技术有哪些,分别做下简单介绍

------------------------------------------------------------------------------------------------

1、SESSION 保存在服务器的哪里?
答:通过php.ini指定,可存在指定目录的文件中或内存中,或数据库中!

2、服务端是如何获取客户端的cookie?
答:服务器每次处理请求的进候都可以抓取头信息的cookie并设置返回,

3、如何实现SESSION共享,共享的原理是什么?
答:配置主从数据库,将SESSION存入主数据库中,常见的做法还有在各服务器端安装MEMCAHCE,将SESSION存入各MEMCACHE中,

4、请大致说出LVS搭建的过程,文件共享原理是什么?
5、网络共享服务器上传数据是向一台服务器上传?还是多台?如何实现同步?

6、说出你所知道的数据库设计范式?常用的建模工具是什么?(mysql建模工具)
答:1NF:每一条满足原子性,不可以分割;2NF:每一条记录要满足唯一性,3NF:字段不冗余,有时我们还需要反三范式,常用的建模工具:phpMyAdmin,navicat for mysql,DOS命令行;

7、如果你是项目经理,你如何管理你的项目团队的日常事宜?

8、主从数据库的配置,都需要哪些基本的条件,需要配置什么内容?
答:基本条件:二台以上数据库服务器,
配置流程:1.分别打开主从服务器的bin-log;从服务器+relaylog
2.在主服务器根据需求建立相应的帐号并授权;
3.从服务器使用己创建好的帐号连接主服务器读取二进制文件并分析后同步
配置项:主:log-bin=mysql-bin;server-id=num(int);binlog-format=mixd/statement/row/
从:log_bin=mysql-bin;server-id=num(int)//唯一;relay_log=mysql-relay-bin;log_slave_updates=1;relay_only=1;

9、说出你常用的版本控制器,SVN中需要配置哪几个配置文件
答:SVN,GIT,CVS;配置文件:mod_authz_svn.so mod_dav_svn.so移至服务器模块中并加载,配置权限,分配用户;

10、LVS 在项目运行之前需要注意哪些事项,或者说会出现什么问题?

11、ecshop为何出现字段冗余违犯设计模式,请说出为何这么做?
答:在某些环境下反三范式反而增加了效率,因此这么做!

12、常用mysql优化方式,尽可能多的说?
答:SQL语句优化;存储优化;数据库配置;服务器配置

13、memcache原理是什么?是否能存入2M的value?
答:采用C/S模式,协义是普通文本,基于libevent机制处理数据放在内存中;memcache最大只能存入1MB数据,memcache并非为存储大数据而生,但可以考虑在存储前将值先压缩或拆分成多值分配到多个key中!

14、什么是队列?排它锁,Myisam 死锁如何解决?
答:在默认情况下MYisam是表级锁,所以同时操作单张表的多个动作只能以队列的方式进行;
排它锁又名写锁,在SQL执行过程中为排除其它请求而写锁,在执行完毕后会自动释放;
死锁解决:先找到死锁的线程号,然后杀掉线程ID
       
15、请说出mysql常用存储引擎?memory存储引擎的特点?
答:Myisam、InnoDB、memory,memory的特点是将表存到内存中,数度快,重启后数据丢失!

16、如何最快速的插入5000条以上的数据?

答:先生成数据文件,在用sql语句导入

17、你用过多少开源框架?
答:TP/CI/ZF/YII

18、ecshop 购物车信息存放在哪里?
答:order_info;order_goods;order_action;

19、PHP生成页面缓存的原理
答:将缓存内容放入OB缓存中,在OB缓存结束或脚本执行完毕后放入到程序缓存未尾并返回!

20、你所知道的缓存技术有哪些,分别做下简单介绍
答:ob缓存,通过模板技术写入文件类缓存;memcache;redis;redis和memcache最显著的区别在于数据不仅并于内存中,同时还会在磁盘中生成文件,即使重启,数据亦可被加载;

21、HTTP 协议的原理,什么是全双工,什么是半双工?
答:HTTP协议是一种无状态的协义,直白的讲就是请求和响应,全双工是指请求和响应同时进行,半双工指单个执行;

22、ucenter通信原理?

答:就是某个应用登陆后,然后后台轮询发送给同步登陆的应用的回调文件 ,回调文件接收到用户ID之后,生成cookie或者session然后进入登陆模式。

23、Memcached的原理

答:memcached 是以守护程序方式运行于一个或多个服务器中,等待接收客户端的连接操作,客户端可以由各种语言编写(例如PHP)。PHP 等客户端在与 memcached 服务建立连接之后,接下来的事情就是存取对象了,每个被存取的对象都有一个唯一的标识符 key,存取操作均通过这个 key 进行,保存到 memcached 中的对象实际上是放置内存中的,并不是保存在 cache 文件中的,这也是为什么 memcached 能够如此高效快速的原因。

24、你用过多少种JS框架?举例说明优缺点
答:jQuery、prototype、dojo、ext、YUI;
jQuery:强大的DOM节点查询无人能出其左右,动画操方便; DOM封装的很好!高低版本兼容非常好
prototype:较早的jS库,对ajax支持较好,基于原型链面向对象很强大
dojo:更容易俣WEB页面具有动态能力;
ext:强大的UI操作高居榜首;
YUI:强大的类库,提供很多方法;

25、如何衡量AJAX的使用(何时使用AJAX)
答:AJAX既称无刷新技术,常用见的使用场景:表单验证,用户评分、点击;只要需要实时的与服务器交互时即可使用;
26、什么是推技术,实现原理是什么?
答:推技术又称COMET,即在客户请求时在服务器挂起长连接,一旦服务器有了新数据,它降立即反回给客户端,实时性好;

27、什么是垂直搜索,斯芬克斯中分词原理?
答:垂直搜索是指在特定的范围内搜索的上下文,搜索面只会越来越精细,而非越来越广泛;sphinx分词的原理:将文本拆分为多个单词从数据源的各个文档对像创建索引并将索引表存储于内存中!

28、sphinx中无法ha_sphinx.so是用来做什么的?
答:一个sphinx的存储模块;

29、PHP常用的合并数组的方式?
答:array_mergn;array_mergn_recursive;

30、回答PHP读取文件速度快,还是读取mysql的数据快?为何?
答:一般情况下读文件》读数据库;不同情况速度也会反向,如:数据库数据量很小,而同目录文件又非常多的情况下,读数据库大于读文件;

时间: 2024-12-05 22:31:43

一位资深php程序员在北京的面试30个题目的相关文章

什么原因成就了一位优秀的程序员?(转)

这些年我曾和很多程序员一起工作,他们之中的一些人非常厉害,而另一些人显得平庸.不久前因为和一些技术非常熟练的程序员工作感觉很愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序员那么优秀,糟糕的程序员那么糟糕?简而言之,什么原因成就了一位优秀的程序员呢? 根据我的经验,成为一个优秀程序员同年龄,教育程度,还有和你赚多少钱没有任何关系.关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序员都有一些相似习惯.不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是

什么原因成就了一位优秀的程序员?

这些年我曾和很多程序员一起工作,他们之中的一些人非常厉害,而另一些人显得平庸.不久前因为和一些技术非常熟练的程序员工作感觉很愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序员那么优秀,糟糕的程序员那么糟糕?简而言之,什么原因成就了一位优秀的程序员呢? 根据我的经验,成为一个优秀程序员同年龄,教育程度,还有和你赚多少钱没有任何关系.关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序员都有一些相似习惯.不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是

资深Python程序员教你统计,三国中人物名字出现的频率,很简单

资深Python程序员教你简单.有趣的程序:使用第三方库jieba切分,统计统计名著三国演义中人物名字出现次数. 资深Python程序员教你统计,三国中人物名字出现的频率,很简单其中一个jieba库是一个对中文文本依照汉字间关联概率进行词组划分的第三方库,使用简单,且非常好用 import jieba def getWords(): txt = open('novels/threekingdoms.txt', 'r', encoding = 'utf-8').read() words = jie

怎样成为一位合格的程序员

互联网的时代成就了我们猿类,同时也淘汰了一批又一批猿类,三百六十行,行行出状元 程序员也不例外,但是我们的路是漫长的 互联网时代就是与时俱进的时代,她会让你永远无法停下学习的脚步,这就是我们猿类的悲哀,同时也给予那些不断追求进步和永不停滞不前的人一次又一次的机会,你永远不知道明天的什么技术会被淘汰,什么技术兴起,但是我们要有一颗永远向前的心,和对新兴技术的追求,很多程序员工作了四五年甚至十多年都不会明白 我的工资怎么还不如比我年轻的同行呢,因为我们当中很多人不去接触新技术 新鲜的事物 最终我们将

一位39岁程序员的困惑:知道得越多编程越慢怎么办?

Zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔. 但是后来他发现一个问题,自己的经验越丰富,完成项目或任务的时间反而越长.因为他见过了太多可能会出问题的情况而对选择踌躇.比方说,假设他刚想 到要写一段写入文件的代码时,电光火石之间他就已经开始担心起下面的一系列的问题:权限.锁定.并发.原子操作.迂回 / 框架,不同的文件系统.目录中的文件数.可预测的临时文件名.PRNG(伪随机数生成

.net快速开发框架的使用感受,来自一位勤奋的程序员

你们好呀,先自我介绍一下吧,小弟是一家公司开发部.net程序员.外号人送武松,因为本人姓武名宋,所以喊着喊着就喊成了武松了.公司在上海,主要是做电子产品还有汽车配件制造这一块的.我们开发部负责的就是公司官网的维护,公司系统的维护调整,以及公司新系统以及新项目的开发了. 不知道大家有没有听说过力软敏捷开发框架这个快速开发平台,还记得我还没有来这个公司的时候就听说了这个框架供应商好像有一个叫做快速信息化的框架,那个时候也没怎么了解过.因为好多人都问我这个框架怎么样,那么我就写一篇关于我们公司使用框架

StackOverflow程序员推荐:每个程序员都应读的30本书

“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个问答贴,同时摘译部分推荐人的评语.下面就按照各本书的推荐数排列. 1. <代码大全>史蒂夫·迈克康奈尔 推荐数:1684 “优秀的编程实践的百科全书,&l

程序员最该看的30本书---------------------------国外编辑推荐

http://blog.csdn.net/yanzi1225627/article/details/7853859 “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典 ,下面就按照各本书的推荐数排列. 1. <代码大全> 史蒂

【Mood-10】每个程序员都应该读的30本书

“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语.以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书.其实除了前10本之外,推荐数前30左右的书籍都算经典,伯乐在线整理编译这个问答贴,同时摘译部分推荐人的评语.下面就按照各本书的推荐数排列. 1. <代码大全>史蒂夫·迈克康奈尔 推荐数:1684 “优秀的编程实践的百科全书,&l