昨天.net面试题....
谈谈某个函数如何考虑健壮性,全面性等?谈谈数据库锁机制的应用?
谈谈如何做的系统异常处理?
产品交付客户后,客户要求增加一个字段,如何处理?
谈谈新技术 如wcf linq。。。
。。。。
我08年毕业的,感觉这些问题有点深,还好进入复试了,大家谈谈自己对问题的看法 --------------------编程问答-------------------- 顶 挺麻烦的 --------------------编程问答-------------------- 公司是招什么人?? --------------------编程问答-------------------- 好像很多公司都是喜欢出这样的题,而这类公司多半都是小的不能再小的那种 --------------------编程问答-------------------- 招.net程序员的,也不是小公司了,深圳前五.. --------------------编程问答--------------------
不知道
不知道
不知道
不知道
不知道. --------------------编程问答-------------------- 都不知道 --------------------编程问答-------------------- 一样 --------------------编程问答-------------------- 5.惨,设计模式不能乱用啊!
我用了单例模式,操作数据库用的是C#3.5的Linq,这样就会只存在一个操作数据库的实例,但是问题来了,当偶然抛出一个操作数据库的异常之后,其他的的除了查询正常之外,update,insert,delete 操作都会抛出同样的异常,我还以为是服务器的配置问题呢郁闷,测试后估计是Linq在抛出异常之后它的状态会一直保持异常。后来全部改成new出一个实例,问题没有了。 --------------------编程问答-------------------- ... ... --------------------编程问答-------------------- --------------------编程问答--------------------
对于第一个问题,我想到了高内聚
第二个问题,排他锁,共享锁等
第三个问题,系统异常也就知道try。。。catch。。。,提示出现系统异常,记录错误日志
第四个问题,看情况,能不加就不加。。或用其他方式处理。。
第五个问题,看过了解点概念,具体没用过
。。。
不知道lz面试的什么职位,我明年毕业,还真没被问过这样的问题,大部分是。net的基本常识,数据库的简单操作,以及数据结构上的一些知识
-------------------------------------
年后找工作 有谁哪里缺人么?我自我推荐下,呵呵
--------------------编程问答-------------------- 关注 --------------------编程问答-------------------- 4.增加字段可以,请付相应的费用。
从技术上来说并不复杂,先在文档中写好说明,然后在数据库中增加字段,然后用工具生成数据库映射的实体类,然后改页面代码操作该字段 --------------------编程问答-------------------- 3.抛出异常然后捕获,并在页面上显示友好的错误信息。同时把错误信息写入错误日志。 --------------------编程问答-------------------- 2.不懂 --------------------编程问答--------------------
我开始也这么说,不过那哥们说要避免再次重新生成代码....不知道有啥窍门..
数据库锁机制的应用?概念以及原理不算的...
系统异常处理?不是try catch这么简单的.. --------------------编程问答-------------------- 1.不知道
2.共享锁,排他锁等
3.try catch---程序里不要抛出未处理的异常,所有的异常信息统一管理,统一记录到一个文件里。
4.非常简单,加钱
5.不懂。不用过。 --------------------编程问答--------------------
我是这么回答的:可以在page_error或者application_error中捕获InnerExcention(没有则捕获一般异常),或者webconfig配置错误跳转页面。将所有异常信息以友好的文字展示,并将日志使用log4net记录,便于发现系统潜在错误,便于维护....
知道的就这么多了,结果发现貌似还被BS..... --------------------编程问答--------------------
避免重新生成代码的确很诱人,不过我没见过。
像Hibernate这种都是要重新生成代码的 --------------------编程问答-------------------- 1.健壮性是应该的,无非就是判断各种情况及捕捉异常。
全面性就违反了OO的单一职责原则了 --------------------编程问答-------------------- 我知道的上面已经说得差不多了 --------------------编程问答-------------------- 避免重新生成代码,
做一个适配接口,就为 专门提取存储过程相关信息,并且执行存储过程,
为相应的数据库实现接口。。。 --------------------编程问答--------------------
好,有什么例子给大家分享一下啊 --------------------编程问答-------------------- 首先从需求分析
在从技术回答
上面的思路 --------------------编程问答-------------------- 哈哈不错 --------------------编程问答-------------------- MSSQL
从sysobjects表读取相关信息
然后生成一个工厂类,存储这些信息
需要时,用这个类生产Command对象
对于频繁使用的方法 也可以适当的缓存Command对象吧。。。
其他工作就是把适当的表单数据转换为 正确的 数据,填入Command对象执行 --------------------编程问答-------------------- 发现完全不懂,还要继续学习啊。。。 --------------------编程问答-------------------- 现在楼主主要是要在复试上加油。 --------------------编程问答-------------------- 帮顶
等会再回来看帖 --------------------编程问答-------------------- 避免重新生成代码
1:采用传统的二层模式开发
2:有一种真正三层模式也是不需要生成表实体的,它的所有Sql语句操作都是写在配置文件中或写进数据库的表中,表现层只需标明需要执行的语句序号就可以了 --------------------编程问答-------------------- 哎。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- XUEXI --------------------编程问答-------------------- 学习了,看来要更努力啊! --------------------编程问答-------------------- D --------------------编程问答-------------------- 他们是招程序员 还是招啥 ..... 谈的有点深哦!!
给个MySql数据库锁机制原理参考:
谈谈数据库锁机制的应用?
http://edu.cnzz.cn/NewsInfo/25902.aspx --------------------编程问答-------------------- 言语太多 就给个链接拉!! --------------------编程问答-------------------- 惭愧 --------------------编程问答-------------------- 这些问题倒蛮实际的 --------------------编程问答-------------------- 其他不会 4 加钱是标答 --------------------编程问答-------------------- 都不会,看来我差的还很远。 --------------------编程问答-------------------- --------------------编程问答-------------------- 长知识了。。
--------------------编程问答-------------------- up and jf --------------------编程问答-------------------- 学习了。学会这些的话可以当项目经理了吧? --------------------编程问答-------------------- 要求太高了 --------------------编程问答-------------------- 越是成熟的大公司,考试内容就越基础。。。。
越是新出的小公司,考试就越前卫高深。。。。 --------------------编程问答-------------------- 是 --------------------编程问答-------------------- 基础的理论,还是知道些的比较的好
一般,结合项目随便谈谈即可
我想甲方的目的不是对你能否正确回答了答案,是考验的你的基础有多深,你的经验有多少,你对新技术的学习又是怎样的吧? --------------------编程问答-------------------- 哇。这题目这么难啊。我怎么都不会啊!,看了我也要好好学了,明年就要毕业 了 --------------------编程问答-------------------- 这题太宽泛了 --------------------编程问答-------------------- 个人感觉这题出的不错呀。
这些题都是问题,估计主要是考你的思维和想法,问答题目一般都是沾边就可以得分。
如果是我去面试的话,我就谈谈自己的想法和碰到过的情况。
如果LZ你思维比较开阔、比较健谈,就算回答的不完全正确,那别人也会觉得你不错。
--------------------编程问答-------------------- 说说我的想法. 如果不对, 还请大家指正~
1,健壮性,全面性不知道具体怎么说, 我觉得就是考虑全面多一点, 将一些可能出错的情况考虑到,如果可以封装方法的继续封装
2. 锁机制,一般来说共享锁多一点吧. 不如更新数据的时候... 我是没具体应用过,, 看过书.
3, 异常处理,首先要跳转到统一友好的报错页面, 自己要记录报错内容.
4. 数据库设计,一般我设计表都会有3个预留字段,作为扩充.交付的话, 如果考虑赚多一点钱的话,就要加钱,如果你老实一点, 就说好,这个我已经给你留了一个字段如此云云.
5. wcf也只是一种WebService的新的扩展吧, 支持了更多的协议, 让c++调用也不用写托管程序啥的... 多一些开发效率... 其次 linq没啥好说的,, linq的市场在萎缩 , 现在主要应用在linq to sql了.... --------------------编程问答-------------------- 谈谈某个函数如何考虑健壮性,全面性等? 无意义的问答,如果说某个模块,或某个类还有意义,有的函数可能就一行代码 。
谈谈数据库锁机制的应用?
谈谈如何做的系统异常处理?
产品交付客户后,客户要求增加一个字段,如何处理?
谈谈新技术 如wcf linq。。。
。。。。 --------------------编程问答--------------------
么子公司么... 我瞅瞅.. --------------------编程问答-------------------- 有没有经验,通过听回答这些题就可以知道了。 --------------------编程问答-------------------- 越是成熟的大公司,考试内容就越基础。。。。
越是新出的小公司,考试就越前卫高深。。。。
up --------------------编程问答--------------------
同意 --------------------编程问答-------------------- 好像第三题能答点,最好有日志记录,然后TRY catch,
数据库锁,了解不多,更不用提机制问题,只知道乐观锁,和悲观锁,
加字段的问题很好解决,一般做后台留一个执行SQL语句的地方,客户要加字段,
直接执行SQL语句就可以了,这样做不是很好,最好在设计数据库时候多预留几个字段 --------------------编程问答-------------------- 健壮性,第一次听说。 --------------------编程问答-------------------- 谈谈某个函数如何考虑健壮性,全面性等? 针对全局和局部,考察概念 ----合理
谈谈数据库锁机制的应用? 很基础--加锁和解锁--事务相关---很基础
谈谈如何做的系统异常处理? 不说了 很基础--现在help。dll
产品交付客户后,客户要求增加一个字段,如何处理? 尽量婉拒,他们想知道你怎样和客户交流
谈谈新技术 如wcf linq。。。 www.google.com
----
问题很好,估计招年轻的新人。
--------------------编程问答-------------------- 我开始也这么说,不过那哥们说要避免再次重新生成代码....不知道有啥窍门..
难道是配置文件?
利用反射吧 --------------------编程问答--------------------
避免重新生成代码, 就是我说的了, 在设计数据库的时候给表预留字段. --------------------编程问答--------------------
你说的是异常捕获只是异常处理的一部分
异常处理还包括让程序自动从不严重的异常中的恢复
异常分级,自动报告严重异常给相关责任人
出现异常的时候程序状态的收集,便于模拟出异常环境,重现和修复异常等等 --------------------编程问答--------------------
目前我们公司的产品数据库增加字段就能不需要重新生成代码,只需要修改配置文件
数据库嘛,不就是数据库名,表名,列名和数据关系么
往配置文件一写,读取配置生成sql语句就完了,数据库的改动配合配置文件改动,代码一句都不要动
--------------------编程问答-------------------- 这几个问题都挺基础啊,除了最后那个问题,是考察你对新技术的知识面。多看看书,都有介绍的,特别是第四个问题很实用的,我在做项目中就碰到过,项目的扩展性就看你的设计水平了。
--------------------编程问答--------------------
没有标准答案的题目
--------------------编程问答-------------------- 健壮性? 那就这个函数能通用,异常处理。 --------------------编程问答--------------------
你告诉我吧。
--------------------编程问答-------------------- o jhjjhhhhhhhhhhhhhhhhhhhhhhhhhhhhh --------------------编程问答-------------------- 人气~鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎鼎 --------------------编程问答--------------------
可能是我想多了,动态生成修改表格我以前也实践过,生成或修改字段容易,关键其他业务逻辑肯定需要这个字段,我觉得程序必改无疑(除非这个字段仅仅是用来展示的一个属性) --------------------编程问答--------------------
这个倒没实践过,还请多指点?3X --------------------编程问答-------------------- 学习。。。。。。。。。。。。 --------------------编程问答-------------------- 学习来了。。。。。。。。。。 --------------------编程问答--------------------
有点意思,难怪现在有的大牛们都不用过程了(要换数据库了,存储过程怎么处理?相信不少人头痛过) --------------------编程问答-------------------- 学习。。。易做图 内容太短了 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
我来回答第四个,说起这个问题,我想到了HP刀片服务器的CPU工作原理。HP在卖给客户的服务器,每个服务器的CPU数量都超过客户要求的数量,但他只激活客户所要求的量。我们在设计数据库的时候,也可以这样考虑,每个表设计几个预留字段。但客户需要时,激活预留字段就是了 --------------------编程问答--------------------
我也不知道…… --------------------编程问答--------------------
很多时候,我都保留了一个remark字段
--------------------编程问答-------------------- 不知道X5
字数。。。 --------------------编程问答--------------------
支持
--------------------编程问答-------------------- 认真思考一下就可以了,根据自己所学的技术和软件开发的流程,恭喜你已经进入复试,我想知道您是怎么回答的啊!嘿嘿 --------------------编程问答-------------------- 我明年毕业,对此一无所知…… --------------------编程问答-------------------- 表现的自信一点,即使不会的问题也要说它几句,但不能不靠谱的乱说! --------------------编程问答--------------------
系统的异常处理,那就是要建立个公司内部的库.虽然还是由try/catch来捕获,但处理就应该有一套统一的内部标准
客户要求加字段 在你设计数据库的时候 就应该考虑的 增加1-2个扩展字段来应付客户的这些要求
LINQ是好东西 对开发效率应该有很大的提高 WCF目前没怎么用过 --------------------编程问答-------------------- 学习了 ,非常好。。。。 --------------------编程问答-------------------- 其实考的是你临场发挥的一个问题,看你遇到问题的思路是怎么样的。
就算你答的不沾边 只要有一个处理问题的方法 知道从哪方面考虑问题就可以了 --------------------编程问答--------------------
不太理解您的说法 虽然我看公司也有人这么用 但是代码里没有看到对预留字段的处理 无非是数据表中多了几个预留字段 如果客户要增加字段 那么 使用预留字段 和 新建客户新需求字段 最终感觉都是一样的 还是要修改业务sql语句和其相关功能代码 如果我这样理解不到位 还请您指教 --------------------编程问答-------------------- 统一答案:不知道。 唉,又一杯具啊。。。
有没有高人给一个正确的答案 --------------------编程问答--------------------
最好找到实际的问题,不要满足于“估计”!那样会养成对开发不利的习惯。 --------------------编程问答--------------------
简单点评一下吧。呵呵,实际上这类问题针对不同人有不同回答,只是看出背景和思路,未必有什么“标准”答案。
1. 函数有什么健壮性?函数按照需要而设计,因此一个程序员只要完成pm或者架构师给它在“文字的”工单中描述的要求,就没有责任了。如果函数不够“健壮、全面”,我认为应该由pm负责。有些pm在写工单时没有掌握写清基本的功能说明书的技巧,它把设计责任推卸给低级的程序员来完成然后对其提交的“设计”说三道四地批评,这是不对的,我比较倾向于pm应该勇敢地给程序员免除责任。实际上,优先考虑开发时间。例如1天不能完成的事情,就不要再去纠缠什么“全面”。当你做完一天的事情,测试已经通过,那么你就可以补充新的测试来驱动进行重构,新的测试跟老的测试叠加在一起保证事情有进展——而不是在第一天就不切实际地要求什么“全面”。没有什么完美地开发,任何程序都难免要被重写的。有经验的pm应该让很低级的程序员也能大胆放手写程序,而“强壮、全面”这类东西则是对pm的要求,而不是对低级程序员的要求。
2. 关系数据库,通行的机制是高层次的事务,例如对于查询我们可以在事务的开始声明它采取READ UNCOMMITTED
或者读取快照的方式。只有一些很低级的数据库编程采取直接使用锁。
3. 除非必要(在业务逻辑设计时依据用户的逻辑而设计了),不要想当然地去捕获异常。因此捕获异常往往只是对应应用领域的设计。如果涉及纯粹计算机领域的概念而发生的异常,不应该捕获异常。系统表现层(肯定必须)会最终捕获异常。
4. 产品交付客户后,客户要求增加一个字段?换个产品经历吧!因为他误导了外部客户,也误导了团队。满脑子底层编程术语,必定很快搅乱产品设计。产品更新,只是修改产品的界面和交互行为设计,而不是什么字段。只有认识到这一层,才能避免从程序员那点小心眼(通常是自己图省事而去指责用户需求有问题)出发去跟客户扯皮。我们可以站在用户那个行业里边的大半个业务专家的角度去跟用户讨论业务设计如何更有效益的问题,而不是什么字段的问题。
5. 能问出什么水平的问题,才能得到什么水平的回答。 --------------------编程问答-------------------- 补充4. 当需求确定下来,那么你就增加字段就是了。软件的更新程序应该自动使用DDL语言功能为数据库增加新的字段,以及别的一切变化(例如键、关联等等)。或者做到应用程序里,每一次启动时都去检查数据库(例如一个地方写上对应软件版本号),然后从数据库结构的那个版本依次运行每一次的DDL升级过程。
例如在T-SQL的DDL中的一个灵活方法(随便google一个):http://blog.csdn.net/crazykiller/archive/2009/07/08/4331370.aspx --------------------编程问答-------------------- 好难啊!找份工作真不简单。 --------------------编程问答--------------------
看到这个顿时觉得自己没有必要生活在地球上了 --------------------编程问答-------------------- 顶 草 CSDN 回复内容 不能太段
补充:.NET技术 , ASP.NET