RSS 2.0 Feed
2004-12 Entries
摘要:性能的题目大多是涉及封底估算的。对于性能的风险,最初选择方案是就要做出一个评估,不然后期会带来很多麻烦,当然最初的估算不要求面面俱到,十分精确。但是需要有数字出来,而不是“我觉得应该不会有问题”之类的答案。估算主要集中在资源的占用,时间复杂度,数据增长对于性能的影响。估算不仅对于选择合适的算法和数据结构有帮助,而且对于选择硬件也会有影响,比如内存,网络带宽等等。 作性能调整时需要注意的一点时,要用数据为依据,分析哪一个环节最值得去突破,而不是仅仅靠猜想,所以profiler工具是需要的,如果程序中用到层超类型,gateway之类的,数据收集会方便一点。 对于第一题, 有些公交车的刷卡设备是会显示一天的刷卡总额的,可以作为验证估算结果的参考。几个算法题目在给出方案时应该也估算一下方案的时间复杂度和空间复杂度。电话号码的题目当然最好是线性扫描一次后就给出排序结果,可以利用电话号码本身的特性。变位词问题一个关键的地方是如如何判断两个词是变位词,对单词进行合适的编码有助于变位词的判断。求整数数组连续区间的和的最大值的题目最好是遍历一次就能把结果找出来,会用到性能优化的一个原则:利用已有计算结果。这几个问题在《编程珠玑》中有详细的讨论。 sql题目和性能没太大关系,主要是说明对索引列操作性能不一定就一定好。viewstate的问题需要注意两个方面:估算对存储空间的要求和viewstate信息丢失的处理。 编写正确的程序中的1,2题中涉及怎样处理错误,第3题中所列的都是可能发生的。一个月至少28天这一个有点抬杠的味道,这和现有历法施行的第一个月有关。第4提是讲要根据行为来确定继承关系,而不是属性。第6题只要去想就会想出很多简单方法,有一点要注意,不一定要procedure的文档,测试代码和procedure写在一起。 团队的问题仁者见仁,智者见智。发布的几个问题曾经是我们的面试题目,总之自动化是根本。还有一点,顺利的发布除了技术因素之外,还有一些非技术因素,比如备份,与用户的沟通等等。...[阅读全文]

posted @ | Feedback (3) | Filed Under [ 拥抱变化 ]

摘要:网上闲逛,发现一个新的IDE——x-develop,从他们主页上看,IDE支持VB.Net,C#,Java,兼容vs2005和vs2003,而且支持mono。单从介绍看功能不少,不管怎样,多个选择总是好事情。 引自x-develop主页, X-develop FeaturesPowerful coding productivity featuresFast and reliable code analysis engineOn-the-fly error checking of all files in the projectSuggestion of automatic fixes for errorsCode completionDocumentation popup displayFast navigation (Goto overriding/overridden method, goto symbol by name, find usages, ...)Refactoring (Rename, Change method signature, Extract method, ...)Coding tools (Create setter and getter methods, Create constructor, Override method, ...)Create stubs for not yet implemented interface methodsCustomizable code formattingSemantic code highlightingOrganize importsInspections (unused methods, fields, assigment with no effect, ...)LanguagesAlready supports Java, J#, C# and VisualBasic.NETOpen API for custom languagesCross-language refactoringJavaSupported on Windows and Linux (Mac OS X will be supported once JDK 5.0......[阅读全文]

posted @ | Feedback (4) | Filed Under [ Dot Net ]

摘要:性能 1:估算上班所乘公交车一天的客流量和营运收入,如果你上班乘公交车的 2:根据你的程序的应用状况,比如同时在线人数,平均停留时间等等估算对性能和配置的要求 3:性能调整的第一条原则,不要做性能调整,第二条要有一个分析评估工具,针对你的系统搭建一个profiler平台,找出系统化中对性能影响最严重的模块 4:文本文件存储一个地区的电话号码,8位整数,要求排序输出,怎么样是综合性能最优的方案。 5:给定一本英语单词字典,找出所有的变位词集。比如pots,stop,tops相互之间会都是由另一个单词的各个字母改变序列构成的,这些词相互之间就是变位词。 6:找出整数数组连续区间的和的最大值数组x[0]...x[n],y=x[j] + ... + x[k],0<=j<=k<=n,求y的最大值 7:asp.net中可以为了提高性能,可以把viewstate放到server端,有哪些方式,有哪些隐患。 8.SELECT MIN(column1), MAX(column1)  FROM Table1和SELECT MIN(column1) FROM Table1SELECT MAX(column1) FROM Table1 哪一个更快,假设column1有索引 编写正确的程序 1:防错性程序设计虽然常常被誉为有较好的编码风格,但它却隐瞒了错误。比如:if (y != 0){ z = x / y;}实际上,逻辑上讲y不应该为0,如果是0说明运算中间有错误 那么怎么样处理这两者之间的矛盾。 2:The pragmatic programmer讲到一条原则——死程序不说谎,如果程序有错误,就报错,中止运行。怎么理解和防错性程序设计之间关系 3.下面这些不可能的事件中,那些可能发生(The pragmatic programmer)一个月至少28天stat(".", &sb)==1在c++中,a=2; b=3; if(a+b != 5) exit(1);内角和不等于180的三角形没有60秒的一分钟java中,(a+1) <= a 4:企业不同类别/级别的员工要做不同的事情,建模时,可以采用manager从employee继承下来之类的结构,也可以employee类包含属性job之类的结构,他们应用起来有什么不同 5:重构中,有许多相对的重构方法,比如把函数拆开和合并,用表达式替代变量用变量替代表达式,将字段在类的继承结构中上移下移,那么这些相对的操作他们背后的相同点是什 6:表述一个针对存储过程的程序的思路,实现类似ndoc和nunit的功能 团队 1:在团队会议上,有的人常常不是积极地发言,怎么样来调动每个人的积极性,达到头脑风暴的效果 2:项目后期程序员会夸大做某个更改所需要的时间,来抵制更改。 3:一个小的团队,团队中成员之间的沟通常常会有些问题,需要你来做桥梁还是通过某些方式来增强他们的交流发布 发布 1:发布最重要的是,利用nant等工具,实现将程序source control中自动获取最新版本代码,备份,编译并且部署到几个服务器上去。 2:b/s结构的程序,不允许长时间停止运行,要升级程序,怎样将影响减到最小。 3:程序代码修改后,要部署到5台不同环境上,怎样自动化部署和测试的流程 ...[阅读全文]

posted @ | Feedback (14) | Filed Under [ 拥抱变化 ]