HTML5技术

面试干货——年底干货大放送,你准备好了吗? - 懒得安分(3)

字号+ 作者:H5之家 来源:博客园 2015-12-30 17:07 我要评论( )

2、对于陈旧代码,可能很多地方有调用,并且开发和维护人员很有可能不是同一个人,所以重构时要格外小心,如果没有十足的把握,不要轻易重构。如果必须要重构,必须做好充分的单元测试和全局测试。 十、谈谈你的优

2、对于陈旧代码,可能很多地方有调用,并且开发和维护人员很有可能不是同一个人,所以重构时要格外小心,如果没有十足的把握,不要轻易重构。如果必须要重构,必须做好充分的单元测试和全局测试。

十、谈谈你的优点和缺点?

出现指数:四颗星

主要考点:这道题让人有一种骂人的冲动,但是没办法,偏偏很多所谓的大公司会问这个。比如华为。这个问题见仁见智,答案可以自己组织。

参考答案:

优点:对于新的技术学习能力强,能很快适应新环境等等

缺点:对技术太过于执着等等

十一、关于服务器端 MVC 架构的技术实现,您是怎样理解的?这种架构方式有什么好处?您在项目中是如何应用这一架构的?

出现指数:三颗星

主要考点:此题主要考的对于MVC这种框架的理解。

参考答案:MVC,顾名思义,Model、View、Controller。所有的界面代码放在View里面,所有涉及和界面交互以及URL路由相关的逻辑都在Controller里面,Model提供数据模型。MVC的架构方式会让系统的可维护性更高,使得每一部分更加专注自己的职责,并且MVC提供了强大的路由机制,方便了页面切换和界面交互。然后可以结合和WebForm的比较,谈谈MVC如何解决复杂的控件树生成、如何避免了复杂的页面生命周期。

十二、网站优化:网站运行慢,如何定位问题?发现问题如何解决?

出现指数:三颗星

主要考点:此题和问题一类似,考察Web的问题定位能力和优化方案。

参考答案:

浏览器F12→网络→查看http请求数以及每个请求的耗时,找到问题的根源,然后依次解决,解决方案可以参考问题一里面的Web优化方案。

十三、说说你最擅长的技术?并说说你是如何使用的?

出现指数:三颗星

主要考点:这是一道非常开放的面试题。最初遇到这种问题,博主很想来一句:你妹,这叫什么问题!但确实有面试官问到。回头想想,其实此题考查你擅长的技术的涉及深度。其实博主觉得对于这个问题,可以结合你项目中用到的某一个技术来说就好了。

参考答案:

 简单谈谈MEF在我们项目里面的使用吧。

在谈MEF之前,我们必须要先谈谈DIP、IOC、DI

依赖倒置原则(DIP):一种软件架构设计的原则(抽象概念)

控制反转(IoC):一种反转流、依赖和接口的方式(DIP的具体实现方式)。

依赖注入(DI):IoC的一种实现方式,用来反转依赖(IoC的具体实现方式)。

什么意思呢?也就是说,我们在软件架构的过程中,层和层之间通过接口依赖,下层不是直接给上层提供实现,而是提供接口,具体的实现以依赖注入的方式在运行的时候动态注入进去。MEF就是实现依赖注入的一种组件。它的使用使得UI层不直接依赖于BLL层,而是依赖于中间的一个IBLL层,在程序运行的时候,通过MEF动态将BLL里面的实现注入到UI层里面去,这样做的好处是减少了层与层之间的耦合。这也正是面向接口编程方式的体现。

十四、自己写过JS组件吗?举例说明。

出现指数:三颗星

主要考点:此题考的js组件封装和js闭包的一些用法。一般来说,还是笔试出现的几率较大。

参考答案:自定义html的select组件

 

//combobox (function ($) { $.fn.combobox = function (options, param) { if (typeof options == 'string') { return $.fn.combobox.methods[options](this, param); } options = $.extend({}, $.fn.combobox.defaults, options || {}); var target = $(this); target.attr('valuefield', options.valueField); target.attr('textfield', options.textField); target.empty(); var option = $('<option></option>'); option.attr('value', ''); option.text(options.placeholder); target.append(option); if (options.data) { init(target, options.data); } else { //var param = {}; options.onBeforeLoad.call(target, option.param); if (!options.url) return; $.getJSON(options.url, option.param, function (data) { init(target, data); }); } function init(target, data) { $.each(data, function (i, item) { var option = $('<option></option>'); option.attr('value', item[options.valueField]); option.text(item[options.textField]); target.append(option); }); options.onLoadSuccess.call(target); } target.unbind("change"); target.on("change", function (e) { if (options.onChange) return options.onChange(target.val()); }); } $.fn.combobox.methods = { getValue: function (jq) { return jq.val(); }, setValue: function (jq, param) { jq.val(param); }, load: function (jq, url) { $.getJSON(url, function (data) { jq.empty(); var option = $('<option></option>'); option.attr('value', ''); option.text('请选择'); jq.append(option); $.each(data, function (i, item) { var option = $('<option></option>'); option.attr('value', item[jq.attr('valuefield')]); option.text(item[jq.attr('textfield')]); jq.append(option); }); }); } }; $.fn.combobox.defaults = { url: null, param: null, data: null, valueField: 'value', textField: 'text', placeholder: '请选择', onBeforeLoad: function (param) { }, onLoadSuccess: function () { }, onChange: function (value) { } }; })(jQuery);

调用的时候

$("#sel_search_orderstatus").combobox({ url: '/apiaction/Order/OrderApi/GetOrderStatu', valueField: 'VALUE', textField: 'NAME' });

就能自动从后台取数据,注意valueField和textField对应要显示和实际值。

十五、自己写过多线程组件吗?简要说明!

出现指数:三颗星

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 从国企到阿里的面试经历(一) - 劼哥stone

    从国企到阿里的面试经历(一) - 劼哥stone

    2017-05-02 16:00

  • 聊聊这几个星期的面试感受吧,内容太长。。慢慢更新吧 - 秦随境迁

    聊聊这几个星期的面试感受吧,内容太长。。慢慢更新吧 - 秦随境迁

    2017-04-13 13:03

  • 也谈谈我面试的经历 - 朝向远方

    也谈谈我面试的经历 - 朝向远方

    2017-04-06 15:00

  • 记一次前端面试经历 - 渔歌

    记一次前端面试经历 - 渔歌

    2017-03-10 15:00

网友点评