面试.NET资深程序员的前5分钟

本文探讨了面向对象编程(OOP)与面向类设计(COD)的区别,并提供了面试时如何评估应聘者的指南。针对不同需求,文章建议了评估的重点,如.NET泛型、协变和逆变,以及ASP.NET MVC的知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OOP & COD

面试前先想好你需要程序员做什么。你是需要一名OOP(Object-Oriented Programming,面向对象编程)程序员,还是需要一名COD(Class-Oriented Designing,面向类设计,此处有两个个双关语,designing狡猾的,缩写cod哄骗、愚弄)程序员?

确定目标:OOP or COD ?

大多数工作只需要OOP,只有少数工作才需要COD,为了cod又需要辅助的使用UML和设计模式。适当的人做适当的事情,要么招OOP,要么招COD+UML+设计模式

确定需要:OOP or COD?

不能直接达成目标时,需要会比目标复杂一些,比如说工具落后的时候,为了一个对象Object,也得写一个类Class,此时OOP是目标,而COD只是工具落后时的需要。自从.net 4.0提供动态类型之后,大多数不得不用COD实现OOP的场景都可以直接使用OOP实现了。

如果需要OOP程序员

所以第一个要排查的情况就是应聘者是否能正确区分OOP场景、COD场景。如果他把大量的使用动态类型即可实现的OOP场景选择COD场景实现。要么他的经验不足,要么是从其他编程语言转行.net的。

如果需要COD程序员

考察COD,实际上也包括UML和设计模式。此时只需要抓住一个核心点:泛型,因为.net的泛型是运行时环境(runtime,虚拟机)实现的,而某些语言的泛型是编译时使用type cast(类型强制转换)展开的,因此在.net中使用设计模式的泛型类和其他语言区别不大,但是按照设计模式编写一个泛型类就和其他语言区别很大。所以考察泛型即可,为了区别程序员能否正确区分.net泛型和其他编程语言泛型的区别,可以重点考察.net的运行时泛型实现所必要的相关语法——协变和逆变。某些语言的编译时泛型不会涉及这两个语法。

其他几个问题:WEB开发

如果是WEB开发,不妨考查一下asp.net MVC的熟知情况,虽然不一定用asp.net MVC但是作为官方框架,多多少少都会参考一下。考察的方式也很简单,就考察asp.net MVC在升级时的问题。凡是长篇大论的估计对asp.net MVC都不熟,因为asp.net MVC在升级的时候的最大问题是不兼容!

五分钟之后

上面几个问题足够在前5分钟快速判断程序员的基本情况。后面就按照项目的情况继续吧


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值