20161110面试

面向对象的三大特性是什么?

封装、继承、多态。

说说你对三大特性的理解?

先说封装,对业务进行抽象,主要是以类为单元组织代码,类中的成员可以有不同的访问级别,控制信息的访问和操作,保护数据信息;

继承:子类继承父类,使用父类的成员,保持架构的统一性;

多态:如一个接口多种实现,这个在webform和mvc的处理类中有很好的体现;

设计模式你了解吗?

说说你常用的设计模式?

你们项目中都有什么框架?

懂linq吗?

会用entityFramework吗?

存储过程用的多吗?

数据库函数用过吗?

说说数据库优化?

说书聚集索引与非聚集索引的区别?

你的技术追求是什么?

你知道掌握好理论的好处是什么吗?

说说你们项目的,优化访问速度总体方案是什么?

理解:排查访问慢的页面,检查慢的原因。

如果是页面大,怎么处理?

如果是查询数据量大怎么办?

如果是并发高怎么办?

如果是加载的资源多怎么办?

你会搭建框架吗?

理解:搭建框架是个好问题,一般的框架有什么组成呢?

1)

通用工具类类库

本项目工具类库;

model类库;

DAL类库;

BLL类库

Web项目(可以有通用类文件夹、资源引用文件夹、ViewModel文件夹等)

2)使用以服务为核心的架构

wcf服务项目 以xxx.svc文件和配置文件为主;

分模块的业务实现类,继承实现定义好的接口;

分模块的业务接口定义(定义各种业务操作抽象方法),供业务实现类实现;(需要加上各种特性)

分模块的DAL类库;

model类库(类上加特性[DataContract],属性上加[DataMember]特性;

3)可以根据需要调整架构。

最简单的可以将各种类都写在一个项目中;

也可以将文件上传单独一个项目;

日志处理也可以单独一个项目;

memcached你使用过吗?

redis用过吗?memcached和redis的区别是什么?

nosql用过吗?

数据库优化你有什么经验吗?

优化过一些查询语句,将in操作修改为,join操作;

将在数据库中合并数据,修改为在代码中拼接数据;

给某些where常用字段、order常用字段建索引;

你们项目中错误排查你们是怎么做的?

查看全局日志记录,大部分错误都可以通过日志查看出来;

询问提交错误报告的人员,得到更详细的错误信息,看是否能确定错误源;

询问上线人员,最近业务修改部分,查看代码的提交日志;

通过测试环境模拟操作,找到错误原因;

查看服务器的事件日志,看看错误原因;

本地连线正式环境,进行错误调试;

根据log4的日志做错误排查。

你在公司的主要工作是什么?

修改项目bug;

配合业务查数据、处理数据;

对新增业务进行实现;

优化代码;

原文地址:https://www.cnblogs.com/Tpf386/p/6051702.html