混蛋的面试题——《大话设计模式》读后感
【公司面试题】
“请用C++、Java、C#或VB.NET 任意一种面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符号,得到结果。
【小菜的第二个答案】
class Program { static void Main(string[] args) { try { Console.Write("请输入数字A:"); string strNumberA = Console.ReadLine(); Console.Write("请选择运算符号(+、-、*、/):"); string strOperate = Console.ReadLine(); Console.Write("请输入数字B:"); string strNumberB = Console.ReadLine(); string strResult = ""; switch (strOperate) { case "+": strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB)); break; case "-": strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB)); break; case "*": strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB)); break; case "/": if (strNumberB != "0") strResult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB)); else strResult = "除数不能为0"; break; } Console.WriteLine("结果是:" + strResult); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("您的输入有错:" + ex.Message); } } }
【读后感】
昨天,群里有个程序员,与我彻底决裂了,因为,我又创造了一个新名词:程序结构...
我学汇编语言的时候,甚至在机器语言中也能看到,三个经典的程序结构:顺序结构、判断分支结构和循环结构。
N年过去了,再看现在的高级语言教程,讲的,还是这老三样...
编程,已经从以指令为单位、以中断服务程序为单位,发展到了以函数为单位,发展到了以类为单位,已经由只有一个段64K的.com程序,发展到了今天64M都不止的这么复杂的软件,程序结构,还是那老三样????
没有人追问控制台程序中那个main(){}是什么,没有人追问子程序是什么,没有人追问宏是什么,没有人追问多线程又是什么...
窃以为,这些,都是程序结构...
main(){}是一种程序结构;
子程序是一种程序结构;
宏是一种程序结构;
多线程是一种程序结构;
我们今天应用的数据访问层,也是一种程序结构;
我们将来应用的三层、工厂模式、策略模式...
也是一种程序结构!!
昨天,又看了一遍那个《大话设计模式》,看到开篇那个小菜,因为没有采用复杂的程序结构而提交的“不合格”的公司面试题目的答案,我为小菜感到悲哀,我为那个公司也感到悲哀...
你并没有要求我采用什么程序结构!!
当你没有明确要求人家用子程序、或者是宏、或者是复杂一点的三层、工厂、策略...,人家只要编写出来了,实现了你的要求,你就不能随便以你的意志,来彻底地否定人家(当然,基本的编程规范除外),你不能在没有明确你的思想的情况下,就要求人家遵循你的思想!!你这样做,不是在欺骗应试者,就是你公司的无知!!!!
如果把小菜换成是比尔,提交同样的答案(规范的那个),相信你一定会把这个答案,列为最标准的答案,给它一万分,并会振臂大吼一声,这就是你们公司倡导的最伟大的思想,这个思想,叫“够用刚刚好”!!
你们公司,一惯地倡导,以最少的代码,实现最伟大的功能,你们公司的软件产品由此而一惯是性能最好的,最优秀的!!!!
有兴趣的童鞋,可以找一找荣获 Mekka97 4K-Intro Compo奖项的程序作品(我群共享里也有),那么少的代码,实现那样的功能,我想,就是不能让你震惊,也应该让你有所触动吧...
当然,这里,我不得不特别声明,否则,我可能真的引初学者误入歧途的:
当你接到公司的面试程序,你看一下时间,以“够用刚刚好”(注意,这里的够用刚刚好,是时间够用)的思想,提交一个能最好地体现,也能最好的展现你所掌握的程序结构吧...
posted on 2012-06-11 08:16 WestGarden 阅读(440) 评论(0) 编辑 收藏 举报