面向对象的三大特性是什么?
封装、继承、多态。
说说你对三大特性的理解?
先说封装,对业务进行抽象,主要是以类为单元组织代码,类中的成员可以有不同的访问级别,控制信息的访问和操作,保护数据信息;
继承:子类继承父类,使用父类的成员,保持架构的统一性;
多态:如一个接口多种实现,这个在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;
配合业务查数据、处理数据;
对新增业务进行实现;
优化代码;