Interview总结

My name is Zhang Ying. I graduacted from Ocean University of China, Computer department.
and I have engaged in software development and management for more than six years.
I love software development and management. so after graduation, I worked as SDE, senior SDE, dev lead, PM in more than ten projects. worked as different roles make me have good knowledge about the whole process of software project. I think I am qualified to the C# lead position as below three points:

first I'm good at communication,business analysis and feature design; I can quickly understand customers’ needs and put forward rational suggestions. In 2010, I was working with microsoft Sales team in seattle for six monthes and?Communicated with them for the new requirement, change and feedback. I successfully completed the work and launched two big versions.

second, I have good knowledge of project management, experience in Scrum model. Familiar with OOAD and common design patterns. In the past 3 years,  I lead dev team in scrum model. setup project architecture and completed core services. I training team and review code for team member. successfully Release one by one version. in my last company, ?    I Created two developer frameworks to reduce workload. one is an OA system which can add new modules without coding; the other is an ORM framework which based on Ibatis.net and Castle. Both of them are working with Code-Generation Tools and can greatly reduce workload for developer.


third, I have more than 6 years experience in software development, in microsoft technology. I am deep understanding dot Net Framework and SQLSERVER; good at C#, VB, JavaScript; Familiar to B/S C/S development and Office Add-in development; original research on SP optimizing and dealing with mass data, good at making setup package, multithread processing, socket, and so on.
I love to solve difficult problems because I think they are the chance to deeply understand one technique. recently, I payed more attention on optimizing SQL. I clear up what I got into a document and gave a presentation to team. Now sql performance in our project has greatly improved.



Vanceinfo is a great company. but what really attacts me is the interview questions and aditional required items. I feel the project is technical and high quality from the interview questions and aditional required items. I hope I can participate in this sort of project.

That's all!
Thanks


做过的项目:

It is a SEM reporting tool designed to be used by Microsoft CSO Display team (the team providers supports and service to Microsoft Display VIP customers and manage clients account for at least 90% of Microsoft Display sales revenue). This tool is an add-in of Excel 2007/2010 and the system’s data analysis is based on Microsoft BI solution. Through analysis billions of data in different dimensions, user can general various complex reports to help them making proper advertising plans and advertising methods.

最重要的不是知识点,而是如何恰当地使用这些知识来解决问题;
最难的也不是深入了解某种技术,而是如何运用了解的技术在现实中作出正确的选择;

最重要的是解决问题的思路,如何了解问题,如何获取需要的技术点,还有如何做最后的抉择。

成本,时间,质量

当我作为PM的时候,我会做好与用户的沟通,控制用户的期望,制定好计划,并push团队按计划完成;
当我作为开发组长的时候,我会做好风险评估,团队建设;
当我做为高级开发的时候,我致力于解决项目中棘手的问题,

我喜欢编程及相关的工作
SOA
初始化Service container和component container
初始化Service Manager,指定每个project对应的servicebroker(broker里关联对应的service container)

主键约束和唯一性约束的区别
一个表格仅含有一个主键约束列,但是,它有可能在其他列中含有许多的唯一约束。
唯一性约束所在的列允许空值,但是主键约束所在的列不允许空值。

某表主键是自增列,你写的插入存储过程执行的也正常,按道理我们取新插入数据行应该用@@identity
突然有一天别人调用你存储过程插入数据时返回来的@@identity不正确了

接口和抽象类的区别
abstract class代表继承,是is a的关系,interface是have a的关系。一个类只能有一个父类,但是可以实现多个接口。
在abstract class方式中,Demo可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的abstract class。


引用类型和值类型的区别

列举你用过的一些设计模式


职责链(chain of responsibility):
ReportingService的NextService:
if(nextService!=null) nextservice.doSomething();

命令模式(Command):
命令模式就是调用方和被调用方法的解耦;

Delegate就是命令模式;

状态模式(State):
switch语句或多If语句根据state模式变成多个类。

策略模式(Strategy):
它相对于类继承的优点在于它使用了对象组合。例如某个事物有多个特性,每个特性又有多个变种,如果使用类继承会使子类数量非常多(子类爆炸),很难维护。可以把每个特性单独作为一个类,在这个事物里包含这些特性。
桥接模式(Bridge)和它比较类似,我认为可以桥接把事物的一个特性作为它本身的特性用于继承,其他特性作为策略。例如大号红蜡笔的例子,最后颜色作为特性,大小作为本性了。
Bridge 模式强调桥的两边可以独立变化而不影响另外一边。Strategy模式更强调算法的可互换性,而不是桥的两边可以独立变化。所以我觉得Strategy就 象多用改锥,拥有可互换的改锥头。通常我们不强调改锥把如何变化,我们更关注改锥头的可互换性。从另一个角度,Bridge是结构型,强调结构上,而 Strategy强调行为。而模板方法更注重模板,State是带有不同档位的电风扇,它是属性变化引起行为变化。

解释器模式是 内容和展现的解耦;中介者是把多对多变成1对多,使各个对象不需要显示互相引用;迭代器模式是外部访问和内部结构的解耦;Composite模式使得用户 对单个对象和组合对象的使用具有一致性,例如tree中的节点和叶子节点对于AddNode方法来说都是一样的。

模板方法(Template)
TaskService基类中定义了Task执行
线程池是不是享元模式(Flyweight)

聚簇索引和非聚簇索引的区别
聚集索引和费聚集索引的不同之处在于叶子级别:
聚集索引的叶子级别是数据表中行,它在叶级表中维护所有数据。聚集索引不是该数据的副本,而是数据本身。
非聚集索引的叶级行仅包含索引键列和指向特定数据行的行定位符。行定位符的内容取决于该表是一个堆(没有聚集索引的表称为堆)还是一个聚集表。 堆上非聚集索引叶级行的行定位符是一个8字节的物理指针,指向数据行,叫做RID,它由数据库的文件号、文件中的目标页号、目标页的行号(从0开始)组成;聚集表上的非聚集索引叶级行的行定位符是一个聚集键,聚集键由目标行的聚集索引键值和唯一标识符组成。所以聚集索引的索引列可以默认看做是非聚集索引的包含列。

ASP.NET中web页面的生命周期

泛型的约束
基类和接口约束
值类型和引用类型约束
默认构造函数约束
协变和反变约束*
 class ConstraintDemo<T> where T : Base, new()

原文地址:https://www.cnblogs.com/end/p/1971036.html