【面试题】新东方.NET工程师面试题总结
1、学校几本(是否统招)、英语等级、大学成绩排名Top%几、当前月薪(入职前是否能提供薪资证明材料)、期望月薪
二本,统招
英语四级
排名top10
2、做过的项目技术栈是什么?(例如 .NET、Sql Server、Dapper、EF、Redis……)
.NET、C#、EF、MVC、SQL Server、Oracle、WebService、API、SDK、Redis、JPush、Lucene.Net
Html、css、JavaScript、Ajax、Jquery、AngularJS、Bootstrap
iOS、Objective-C、Winforms、WPF
3、做过的项目中最大的表数据量大概多少?业务高峰期每分钟并发请求数量大概多少?遇到的最大技术难点与解决方案,研究过的.NET开源项目,举例说明3-5个
最大的表有200万条数据,数据查询出现慢的情况,优化方案:在条件语句的列上加索引;优化SQL避免like,in、not in等;使用分页临时表避免全表扫描;
高峰期每分钟并发请求2千左右;
技术难点:团队创立初期,APP刚刚上线,功能在逐步完善。当时为了推广拉新,想开发一个功能,实现APP的在微信里的传播分享。网站享用的是微信开放平台的网站应用号授权,还有另一块是微信公众平台公众号分享,分别是不同的两套APPID,授权之后会获取到两个不同的OpenID,希望用户信息打通,用户只要授权过一次之后就能在另一个模块实现免登陆。由于当时一心想通过业务存储两个不同的OpenID的关联关系,做到统一,结果走了不少弯路,仍然达不到想要的效果。
解决方案:UnionID,将两个账号在后台关联之后就能获取到统一的UnionID,业务记录此ID即可。
开源项目
Json.net Json序列化和反序列化,基本支持所有的json特性,性能也很好,MVC4的默认引用程序集中已包含.
Log4net 传统的日志框架,移植于log4jV1.2,高效,稳定
Html Agility Pack Html解析库
DotNetZip 创建,压缩,解压Zip文件
DotNetCodes 一些常用的功能性代码Utilities,可以减少许多开发时间,而且类与类之间没有什么依赖,每个类都可以单独拿出来使用,excel导出、二维码生成、网络请求等;
4、.NET系统如何实现水平扩展、如何解决高并发问题,解决方案思路
应用服务和数据服务分离:把网站分为应用服务器、文件服务器和数据库服务器,不同服务器承担不同角色,从而提成网站处理能力和文件存储能力;
数据库读写分离:通过配置主从服务器实现数据库读写分离,改善数据库负载压力;
业务拆分:根据产品线拆分,例如订单、商铺、买家等,分归不同业务团队管理,不同业务分不同物理服务器处理,可以通过消息队列进行数据分发;
使用NoSQL和搜索引擎:应用服务器通过统一模块访问各种数据,减轻应用程序管理数据源的麻烦;
应用服务器集群:通过负载均衡使一批设备共同对外提供服务,由统一调度服务器通过调度策略进行分发,当有服务器宕机时,调度服务器会将请求转移到其他服务器上,保证不影响用户使用;
分布式文件系统和分布式数据库系统:将业务拆分成不同模块,不同业务的数据库放在不同的物理服务器上;
缓存:包括本地缓存、分布式缓存、反向代理和CDN加速;
使用缓存改善网站性能:把业务经常访问的数据缓存到内存中,可以大大减少数据库的读取访问压力,从而改善写入性能,方式有本地缓存和分布式服务器缓存,部署大内存服务器;
反向代理和CDN加速:基本原理都是缓存,用户请求服务时,通过距离判断最近机房代理服务器中缓存这用户请求的资源,直接返回给用户,减轻后端服务器负载压力;
异步操作:典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不便,彼此功能实现可以随意变化而不互相影响;
固态硬盘代替机械硬盘:使用SSD,物理设备上加快文件访问速度;
5、国内外基于.NET技术的知名网站有哪些,.NET与Java相比有哪些优点、缺点,如何看待微软全新一代.NET Core开源、免费、跨平台的未来发展前景
.NET知名网站
国外:microsoft、stackoverflow、codeproject、myspace、Godaddy、msn、
国内:cnblogs、csdn、智联、携程、必应、起点、凡客
.NET和java对比
开源和跨平台,Java一直开源跨平台,有非常丰富的社区资源;微软14年也宣布开源跨平台,有.NET Core、xamarin,微软正在努力,但做到Java现在的程度个人觉得还有很长一段路要走。
编程工具,C#有好用的IDE Visual Studio;Java以前有eclipse,现在有Intellij。
语言特性,两者语法类似,C#feature更多(语言特性,泛型、委托、重载运算符、LINQ、lambda、delegate、扩展等),语法糖也更多,程序员基本可以专注逻辑而不用关注如何实现;而Java这块比较贫乏。
更新速度,C#由微软维护,版本更新快,支持更多新特性;java版本更新慢。
应用领域,C#目前主要应用在windows的PC应用,unitity3D,web。Java应用于web,Android,Hadoop等。
生态环境,个人认为最重要的一点。开源库和框架Java数不胜数,各种层面的解决方案眼花缭乱,C# web比较好用的框架只有asp .net、MVC。
.NET Core未来发展前景
个人看好 .Net Core 的未来发展前景。
.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。首先从Core的定位上来说,他摒弃了原有AspNet的那些臃肿组件,面向高性能服务器开发。虽然现在版本功能还比较弱,各类三方库支持也没有更新,但是这只是时间问题,以微软的更新速度和推广力度,几年后必将完善。
基于微软的 Azure 云的平台优势,后期势必会加入 .Net Core 的支持,加上微软的跨平台战略,对 Docker 的亲和性,对于开发人员也非常友好,所以整体环境来说是健康发展的,未来技术决策时 .Net Core 也有很大的优势。
因此未来其发展主要看的就是微软推广力度及社区开发者的支持度。
喜欢C#就会一直坚持下去,因为兴趣是最好的老师。
6、www.dot.net官网任选一篇英文技术文章,不用单词软件大概能看懂百分之多少?
看了一篇教学文章
https://www.microsoft.com/net/tutorials/csharp/getting-started/hello-world
全部英文文档大概能看懂百分之80
7、我们会根据以上信息进行岗位匹配度的评估(教育背景、技术能力、抽象总结能力……),节省应聘者的面试成本,提升招聘效率
8、为了方便及时沟通,请加技术经理微信 2531685528 注明:应聘.NET 姓名
-------------------------------------------------------
【.NET技术面试参考资料、图书】
1、《大型网站技术架构》
2、《Sql Server性能优化与管理的艺术》
3、《跟阿铭学Linux》
4、《深入浅出MySQL数据库开发优化与管理维护》
5、《微服务设计》
参考资料共享地址
http://pan.baidu.com/s/1nvUc1nz
http://www.apelearn.com/study_v2/
【面试题】新东方.NET工程师面试题总结的更多相关文章
- Web前端开发工程师面试题
Web前端开发工程师面试题1.说说css的优先级?2.在移动端中,常常使用tap作为点击事件,好处是?会带来什么问题?3.原生JS的window,onload与Jquery的$(document).r ...
- 转:一份基础的嵌入式Linux工程师笔试题
一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...
- iOS开发工程师笔试题
iOS开发工程师笔试题 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以 ...
- 北京南天软件java工程师面试题
此试题为北京南天软件java工程师面试题(部分) 一.单项选择 (1)下列关于构造方法的叙述中,错误的是(C) A.java语言规定构造方法名与类名必须相同 B.java语言规定构造方法没有返回值,但 ...
- PHP工程师笔试题
PHP工程师笔试题 提示:请将答案写在另外一张空白纸上,并在30分钟内完成. PHP 请写出include.require.include_once.require_noce的区别. include是 ...
- PCB设计工程师面试题
网上的一套PCB设计工程师面试题,测下你能不能拿90分? [复制链接] 一.填空 1.PCB上的互连线按类型可分为()和() . 2.引起串扰的两个因素是()和(). 3.EMI ...
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- 珍藏版 Python 开发工程师面试试题
珍藏版 Python 开发工程师面试试题 说明:不拿到几家公司的offer,那就是卑鄙的浪费 一.Python_基础语法 1.可变与不可变类型: 2.浅拷贝与深拷贝的实现方式.区别:deepcopy如 ...
- python后端开发工程师考证试题
python开发工程师考证试题 问答题链接 python开发工程师考证试题 选择题 题目 关于 Python 程序格式框架的描述,以下选项中错误的是 ( A ) A: Python 语言不采用严格的“ ...
随机推荐
- JDBC驱动程序类型
JDBC驱动程序是什么? JDBC驱动程序在JDBC API中实现定义的接口,用于与数据库服务器进行交互. 例如,使用JDBC驱动程序,可以通过发送SQL或数据库命令,然后使用Java接收结果来打开数 ...
- 纯CSS3实现牛奶般剔透的3D按钮特效
今天我们要来看一款非常特别的纯CSS3 3D按钮,它的外观酷似纯白剔透的牛奶,点击按钮的时候还会出现一种很柔和的弹力效果.按钮按下时,按钮会轻轻的弹动一下,非常逼真.本文我们在观赏演示的同时,也将源代 ...
- GCT之语文细节知识
以下是在微博中看到的,大部分人都会读错的汉字,这也是历届GCT考试的前几道选择题可能会出的题库资源吧,高考的时候也大都考的这些,拿来共享给大家.一定要看哦.
- C语言的基本数据类型长度
PS:以下内容是在Xcode的编辑器64位环境下的测试结果,网上有关于64位和32位各数据类型存在的差异,请自行online search. main.m #import <Foundation ...
- libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'
没有别的原因: 找正确的 libstdc++.so.5 包就成. 我这儿有,需要的可以下载奥!
- proto序列化
proto序列化和反序列化类 序列化是将我们的Protobuf类对象转换成字节数组的方法,网络底层我们从服务器获取到的是字节数组,反序列化是将字节转成proto类对象的方法 public class ...
- jenkins 升级jdk到1.8.0 报java.io.IOException:Unable to read /var/lib/jenkins/config.xml
今天手动下载安装了jdk1.8.0, 并修改了配置文件,当前默认使用该版本的jdk.但是报出一下错误: 问题查到: https://issues.jenkins-ci.org/browse/JENKI ...
- geoserver REST使用
1.部署一个简单的测试环境 测试geoserver REST接口,我们可使用python来测试,很方便.需要下载包: python,http://python.org/.我下载的是Python27版本 ...
- 安装Python模块:pygame
Pygame项目托管在代码分享网站Bitbucket中.要在Windows系统中安装Pygame,请访问https://bitbucket.org/pygame/pygame/downloads/ , ...
- CentOS “/lib64/libc.so.6: version `GLIBC_2.14′ not found”系统glibc版本太低
1.试图运行程序提示”libc.so.6: version `GLIBC_2.14′ not found”,原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的.2.查看系统gl ...