无笔试。

口试:(前半部分平淡无奇,没什么太难的问题,都是求职岗位基本要会的东西,局限于php。下面是真正进入状态的题。)

谈谈观察者模式是什么?主要应用。

答:类似会有一些server对象时刻侦听某个对象的一些动作。被监听的对象也会有这个server列表,或者提供添加列表的接口。促发条件根据需 求。触发的时候这个object对象会发送本身给这些server列表中的一个方法里,这样server也就会取得传过来的对象实现侦听。主要应用在插件 上的。

什么是索引?建立索引有什么规则?注意点?

答:类似一种目录表吧,dbms会实现读写,mysql在查询的时候,可以直接去查找这个目录表,就不会去扫描整个表了。有什么注意点嘛?首先我会 看这个表,如果他生来就注定写多读少,尽量避免建立很多索引,因为他也会占用时间,对吧!另外在建立的时候我也会尽量建立在数字字段上,或者类似用户名 上,这样做可能,在需求上作select时候不会有like或者其他计算在里面。也不要有!有的话,不要放在左值上。。。被打断!

其实我想问是放在查询语句,select什么什么where什么什么的什么地方?

答:哦,放在where后字段上。

Mysql有几种引擎?或者你经常使用哪几个?

答:innodB,myisam,temporary(当时愣是没读上来这个单词,就拼写了)

innodB和myisam有什么区别?temporary你经常用在什么地方。

答:一个是行锁,一个是表锁,这样并发程度也就不一样了。innodB有日志,然后就能现实事务保证,他也能实现外键功能。Myisam在查询上快 点。文件方面。Myisam放有三个文件,在同一的目录中,数据也会放在其中一个上。而innodB的数据是放在目录外的idata文件中。innodB 也能实现这个idata文件大小的配置,比如可以配置最大为1G,到了这个大小,mysql会自动生成另一个idata文件。Temporary我会用在 类似用户登录的session表上。

你有没有想过为什么innodB要把数据提到一个文件中了?而不是想myisam放在自己的文件中?

答:这个嘛。。。可能是为了什么查询方便吧?或者好做日志,事务吧?瞎扯中。。。

HTTP报文格式是什么样的?能大概叙述下么?

答:源地址ip与端口号,目标ip与端口号,协议类型。(只记得这三个。然后开始瞎扯!)额。。。还有什么了?请求数据,请求页面。。。。(面试官愕然!)被打断!

Tcp三次握手大概是怎么样的?

答:先Client发送连接请求报文给Server。Server收到后发送ack确认报文给Client。Client收到确认报文后再发送确认报文给Server。完成三次握手。

这三次握手报文大概是什么样的?

答:额。这个嘛。。。client自己生成一个请求序列号吧,然后在随机绑定一个端口号,发送。对方加一后ack过来。。。。此处省略n字!其实不太懂!扯着玩。被打断!

HTTP协议中传输报文可能被hacker窃取了,并且解密了。你该怎么做?

答:(日!二进制都给解密了!地球已经不能阻止他了!反正我个小菜是没办法了!)额,这个嘛,,,,没太考虑!我想在传输的时候就该把主要的数据加密了再传输吧,比如用户密码,用户名什么的,这样解密了也不要紧吧!至于怎么加密,用MD5就好了。

了解https协议么?说说看。

答:怎么说了,停留在书本知识,从来没实践过。是443对吧?额,,,是http的加密连接协议。安全,可靠。然后开始瞎扯。其实不太懂!被打断!

session和cookie有什么不同?

答:一个是client-server保持机制,一个是client保持机制。存放的地方也不同。。。被打断!

恩,好。这些基本的我想你都知道。说说看你对cookie安全方面有什么考虑?比如他在client端会被篡改,你怎么做?

答:这个嘛。。。首先密码和一些重要数据一定不能存。还有就是,把要存放的数据都加密了。比如用户id,用户名,角色什么的。。。被打断!

MD5是不可逆的,你把用户id加密了,怎么比配啊?

答:(其实我还真没吧id加密过!没办法硬着头皮往下说!)额,就匹配吧,在比对的时候,server也进行一次MD5加密,看是否相等就行了!

你对加密有什么心得?我们都知道MD5解密网站很多了?

答:额,重要数据,不要用简单的一次MD5加密就行了。比如说,用户密码,我们可以给每个用户一个随即6位的加密因子。做位处理后再做MD5运算,比如说相与相或什么的。

你说的密码因子就是类似密钥么?放在什么地方?

答:恩,差不多吧。放在用户表里,随机的6为字符,用户每次登陆完后系统会更新这个字段与实际的密码字段。我现在做系统就是这么做的。你想啊,在这中间,别人最可能拿到的就是我们加密后的密码字符。这时候其实很可能已经失效了!

那别人拿到了真正用户密码了?

答:这个问题我有想过,后来想想我感觉好像没办法了吧!(面试官和我一样犯过这样的傻啊,呵呵)

对nosql熟悉么?有用过么?

答:还行吧。大部分没太用过。不过memcache用过,很常见,也很容易使用。主要在DB类层做判断就行了,如果内存中已经有了这个键值对,直接 memcache_connect,然后get数据。不然就去查找mysql。你想啊,最终我们交互的数据肯定都要到这个DB类抽象层。其他的nosql 如果有需要,我会去看这方面的书!

你对memcache的命中率有跟踪过么?效率怎么样?

答:这个嘛。。。这个自己没有跟踪过哦,只看过一些大神的博客比较过他和redis。貌似redis效率更高些(答非所问!)

你接触过最大的数据量有多少?最多有服务器?

答:大几百万吧。是个社区。有11太服务器。

对于大数据访问效率你怎么处理?

答:首先看是否能搭建分布式环境,做主从数据库,读写分离。让replication进程实现master-slave同步。

然后再考虑分表。水平、垂直分表都行。用什么算法分表看具体业务。比如比较简单主键的奇偶性。还有分表上,我建议用mysql5.1版本以上的逻辑 分表功能模块,先安装partition,简单配置下,做不同磁盘的存储,减少I/O的读写(在一次日资企业面试中学到的,然后回来看看,果真牛逼)。

其实这个也没减少I/O读写的。(没敢反驳!以后要真成了同事,咱们在慢慢讨论也不迟。)一般我们做master与slave同步很好处理,假如你发现你的应用中master写压力很大,你需要做多个master来分解压力。你怎么实现他们之间的同步?

答:这个。。。我还真没做过多个master。没考虑过哦。。。

对于分表算法,你有什么心得?

答:最简单的主键奇偶性,主要还是看需求,甚至按年份,月份都可以。

这些算法你怎么实现查询定位到具体表?

答:恩,这个因为你所有的数据交互,都要交给类似DB类得抽象层,这里面我会写类似find,select的方法,对其传过来的表参数实现具体算法 规则上的变换。尽量不要让运行原生的sql语句。即使运行我也会提供类似可以完成替换数据表的特殊字符串,让DB类能够实现替换。比如很多框架会在sql 里面建议用户用类似大写的__TABLE__字符串。

接触过cdn么?

答:接触过,是买的人家cdn,前一家公司是个社区,pv很大。这个是必须要有。

你能大概画一个web架构图么?比如你们之前11太服务器怎么架构的。

答:(一边画一边讲)最前面的这个是cdn,接下来这个是负载均衡器。后面有多个web server,每个都用的是nginx接受请求,后端用代理apache做处理。其中有一个当掉,其他服务器也会正常服务。然后这几个是主mysql服务 器,后面这几个是slave。这个是图片服务器。

你web页面上怎么请求你的图片服务器资源。

答:我们这个是单独的图片服务器,用户上传图片的时候时候,数据表里的字段会放完整的路径名,这样就能请求这个图片服务器了。

你们怎么实现这个图片服务器的安全?比如这个服务器挂掉了。有备份服务器的话,你怎么实现同步?

答:凌晨2点。呵呵。

那只能实现时间段得备份吧!比如在某天凌晨2点之前服务器挂了,当天的图片除了cdn上会有临时存储,其他就没了?

答:这个嘛。。。恩,肯定的。那我也不能在每个请求做一次同步吧。这个嘛。。。省略n个字,又到扯着玩时候了。。。

对web server熟悉么?对linux熟悉么?对shell熟悉么?

答:(实践表明,对这个面试官,不懂不要瞎扯,会带你到沟里去!)apache还行吧,能配置。Nginx,弱一点,有需要我可以学习。Linux的话,不太在行,缺少实践经验,理论知识还行。shell命令都还记得。

然后这个面试官走了。又来了一个面试官!

你说你们现在的平台要做java到php转换。你们要接触java么?为什么要转换了?

答:不会接触java。两个系统是平行使用的,目前也不会取代这个系统。听说是ceo不满意目前的这个java外包系统。所以要改的。

CEO不满意?这个理由不充分哦?

答:这个嘛。。。这个我也不知道哦。就听说ceo不满意的。

你在这个系统中做什么?

答:省略n个字。

你对linux c熟悉么?linux shell脚本了?

答:linux c一点不会!linux shell脚本还行,不过缺少实践。

面试结束。2多个小时!!!!最后HR过来说,今天的面试就到这里了,这边请。尼玛,还有几轮了啊!!!果真巨头就要耍大牌吗!

摘自:http://www.lnmper.net/?p=25

【转】2012年6月26 – 盛大PHP工程师最新面试题相关推荐

  1. 浙江从小学生就上计算机课,浙江省2012年1月自学考试小学数学教学研究试题

    以下是无忧考网为大家整理的<浙江省2012年1月自学考试小学数学教学研究试题>的文章,供大家参考阅读! 浙江省2012年1月高等教育自学考试小学数学教学研究试题 课程代码:03330 一. ...

  2. 计算机四级嵌入式真题,2014年3月计算机四级嵌入式工程师真题试题及答案

    2014年3月计算机四级嵌入式工程师真题试题及答案 一.项选择题 1.在进行操作系统设计时,下列哪一个是构造操作系统的方法? A.网络式结构 B.并行式结构 C.微内核结构 D.主从式结构 2.在不同 ...

  3. 等值数目-------2012年12月26日

            问题描述:已知两个整数数组f[]与g[],它们的元素都已经从小到大排列好,而且两个数组中的元素都各不相同.例如,f[]中有1,3,4,7,9,而g[]中有3,5,7,8,10.试编写程 ...

  4. 【转】2012年6月26 – PPS网络电视PHP工程师最新面试题

    每一次面试都是一场较量,和面试官,更是和你自己! 前言:虽然面试职位是PHP工程师,但题目仅绝非限于PHP,甚至都没有多少PHP的题!inner peace!希望能给你带了一丝帮助. PPS网络电视面 ...

  5. 2010年3月再谈前端工程师的笔试题

    最近在收集前端开发工程师的笔试题,正好看到Adam Lu.的这篇博客,感觉挺不错的转载过来! HTML && CSS 1.Doctype? 严格模式与混杂模式-如何触发这两种模式,区分 ...

  6. 【历史上的今天】10 月 26 日:NetBSD 系统发布;Windows 8 诞生;微软推出 Surface 系列

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 26 日,历史上的今天,英国足协在伦敦成立,制定了第一个足球规则,宣告了现代足球运动的诞生 ...

  7. 敏捷日记(2012年3月到2012年5月)

    [2012年5月18日] 总结一下回顾会议怎么开 0.回顾上次会议中的问题top3有没有被解决 1.会议的目的是回顾过去的一个迭代,顺便发泄发泄. 2.会议内容包括但不限于表扬.批评(如case st ...

  8. 2012年1月java_全国2012年1月自考Java语言程序设计(一)试题及答案.doc

    全国2012年1月自考Java语言程序设计(一)试题及答案 全国2012年10月自考Java语言程序设计(一)试题 课程代码:04747 选择题部分 一.单项选择题 本大题共10小题,每小题1分,共1 ...

  9. JAVA月数输入24回车后变成12_Java语言程序设计(一)自考2012年10月真题

    Java语言程序设计(一)自考2012年10月真题及答案解析 本试卷为单选题型,填空题,程序填空题,程序分析题,程序设计等题型. 一.单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的,请将 ...

最新文章

  1. AI 算法给手画线稿自动上色指南来了
  2. [Share]2008年国外最佳Web设计/开发技巧、脚本及资源总结
  3. C语言函数strcmp()(比较两个字符串)
  4. 2021肿瘤学,所有SCI期刊都在这里
  5. hadoop常用命令总结
  6. 怎样将Embedding融入传统机器学习框架?
  7. 微软e5服务器,OFFICE365 E5调用api使E5开发者续订(不使用服务器)
  8. fastscript传递参数
  9. 输出排列 递归、回溯法
  10. 插桩 java_“插桩”式技术
  11. java 生成pdf文件_Java 生成PDF文档的示例代码
  12. js点击弹框优酷视频,并控制视频播放和暂停及重新载入的方法
  13. 同步调用、异步调用、回调的简单理解
  14. 【067】Color Hunter-用图片搜索配色方案
  15. web.py中通过POST接收Json数据解析的bug
  16. MongoDB数据库设计(一)
  17. ros学习记录:Gazebo加载速度慢,长时间停在“Preparing your world”
  18. 吐槽一下Win10的输入法管理器
  19. 睡眠经济崛起,智能床垫品牌们的可为和有为
  20. 终于读完了《Essential C++》

热门文章

  1. php培训视频 盘多多,SEO二十期培训视频教程
  2. NEXUS 7 刷机
  3. 2022制冷与空调设备运行操作考试题库模拟考试平台操作
  4. 3DMAX 8 角色建模2 身体
  5. cpu软改vista 驱动_在Windows 7、8或Vista中启动分配给特定CPU的应用程序
  6. python爬虫需要对象编程吗_Python爬虫基础知识及前期准备
  7. 3dmax如何删除单个着色器清空素材
  8. 【Docker篇】Docker的基本组成,底层原理分析
  9. Win10更新之后彻底卸载Windows Defender和图标的方法
  10. 华硕T100 安装linux,华硕t100ha安装win10win8双系统安装全图解