单机版够用适当了解些分布式。
别单纯看单机版的框架,适当了解些分布式,此外,在描述项目里框架技术时,最好你再带些分布式的技术,下面我列些大家可以准备的分布式技术。
1,反向代理方面,nginx的基本配置,比如如何通过lua语言设置规则,如何设置session粘滞,如果可以,再看些nginx的底层,比如协议,集群设置,失效转移等。
2,远程调用dubbo方面,可以看下dubbo和zookeeper整合的知识点,再深一步,了解下dubbo底层的传输协议和序列化方式。
3,消息队列方面,可以看下kafka或任意一种组件的使用方式,简单点可以看下配置,工作组的设置,再深入点,可以看下Kafka集群,持久化的方式,以及发送消息是用长连接还是短拦截。
以上仅仅是用3个组件举例,大家还可以看下Redis缓存,日志框架,MyCAT分库分表等,准备的方式有两大类,第一是要会说怎么用,这比较简单,能通过配置文件搭建成一个功能模块即可,第二是可以适当读些底层代码,以此了解下协议,集群和失效转移之类的高级知识点。
如果能在面试中侃侃而谈分布式组件的底层,那么得到的评价就会比较好了,比如“深入了解框架底层”,或“框架经验丰富”,这样就算去面试架构师也行了,更何况是高级开发。
别就知道增删改查,得了解性能优化。
数据库方面,别就知道增删改查,得了解性能优化,在实际项目里,大多数程序员用到的可能仅仅是增删改查,当我们用Mybatis时,这个情况更普遍,不过如果你面试时也这样表现,估计你的能力就和其它竞争者差不多了。
这方面,你可以准备如下的技能:。
1,SQL高级方面,比如groupby,having,左连接,子查询(带in),行转列等高级用法。
2,建表方面,你可以考虑下,你项目是用三范式还是反范式,理由是什么。
3,尤其是优化,你可以准备下如何通过执行计划查看SQL语句改进点的方式,或者其它能改善SQL性能的方式(比如建索引等)。
4,如果你感觉有能力,还可以准备些MySQL集群,MyCAT分库分表的技能,比如通过LVS+Keepalived实现MySQL负载均衡,MyCAT的配置方式,同样,如果可以,也看些相关的底层代码。
哪怕你在前三点表现一般,那么至少也能超越将近一般的候选人,尤其当你在SQL优化方面表现非常好,那么你在面试高级开发时,数据库层面一定是达标的,如果你连第四点也回答非常好,那么恭喜你,你在数据库方面的能力甚至达到了初级架构的级别。
get和post请求的区别。
1,get请求用来从服务器上获得资源,而post是用来向服务器提交数据。
2,get将表单中数据按照name=value的形式,添加到action所指向的URL后面,并且两者使用""连接,而各个变量之间使用"&"连接,post是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL。
3,get传输的数据要受到URL长度限制(1024字节即256个字符),而post可以传输大量的数据,上传文件通常要使用post方式。
4,使用get时参数会显示在地址栏上,如果这些数据不是敏感数据,那么可以使用get,对于敏感数据还是应用使用post。
5,get使用MIME类型application/x-www-form-urlencoded的URL编码(也叫百分号编码)文本的格式传递参数,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。
补充:GET方式提交表单的典型应用是搜索引擎,GET方式就是被设计为查询用的。
评论(0)