脑洞大开,他将1行代码写成了上千行,怎么做到的?

程序员在接收到这样一个编程题目,请通过代码实现,打印出一个 “hello world”!

当听到这个问题时,这个多年的程序员迟疑了一下,难道就这么简单的一道题目么?不过还是按照做了,他打开一个编辑工具,以熟练的动作创建了一个php文件,然后迅雷不及掩耳之势写了一行代码 echo “hello world!”; 好的完美,没有任何bug!

正要对出题者说,搞定!但是话又咽了回去,心想,我作为一个多年的程序员,他应该不会出这么简单的题,于是乎他又想了想,我怎么能用php呢,php这么没品位的语言。

脑洞大开,他将1行代码写成了上千行,怎么做到的?

图片来之互联网

于是乎这个程序员又以熟练的动作创建了一个java文件,简单创建一个类,写了一个main方法,然后在main方法里写了一句System.out.println("hello world"); 编译,运行,控制台出现了一个hello world. 好了,他一拍手,准备告诉出题者说大功告成了,可是他又迟疑了,不应该,还是挺简单的,他不应该只考察我这些东西,应该考察我更复杂的,我再想想吧!

于是这个程序员又想了5分钟,突然一拍手,我说嘛,不应该这么简单,出题者应该是看我代码规范吧,先把代码缩进给调整一下吧,然后通过快捷键把代码格式化了一下,显的非常工整。接下来程序员又加了一个方法注释与类注释,对,还有一个非常重要的一点,作为一个多年的程序员,我怎么能将变量从代码写死呢,这次让我打印hello word,说不定下次让我打印其它的,于是这个程序员又创建了一个xml配置文件,将hello world配置进文件。 然后在main方法里读取xml,取到hello word,并打印了出来。这时他准备告诉出题者完成了,瞬间一个灵感来了,不对,这个东西还不完美,程序的执行怎么能没运行日志呢。

于是乎这个程序员马上在代码里迅速吧记日志的代码给加上,再次,编译,运行,后台成功的打印出了hello word,并且成功的生成了一个日志文件,打开日志文件看了一下,日志文件准确描述了日志产生的时间及程序所做的事情,OK,这下总算是大功告成了吧,完美!准备告诉出题者了!

就在刚想说的时候,程序员似乎又想到了什么,对了,这些代码我怎么能混在一块写呢,显然是分工不明确呀,比如说专门解析XML那块我是不是要创建一个类呀,记录日志那块我是不是也要创建一个类,将他们的职能分离出来才行啊,于是乎这个程序员迅速创建了两个文件,XmlReader.java,LogManager.java,并将解析xml的代码与生成日志的代码从main方法里提取出来放到了这2个文件里去,并写好了注释,代码做好了格式化的处理。编译,运行,没问题,然后准备说搞定了,突然这个程序员好像是又想到了什么事情。

他觉得既然是一个项目怎么能没有数据库呢,这不科学,也许出题人是想考察他怎么从数据库里取到数据并打印出来呢,于是乎这个程序员想了想,马上写了一个数据库连接的工具类,创建了一个数据库表,并设计了相应的字段,对原来的xml配置文件进行了改造,里面有一个配置,是从数据库读取还是从xml文件读取。然后对java文件也进行了一次调整,编译运行, 并且修改xml文件分别改配置项从xml取数据与数据库取数据,都能成功打印出hello word!这时程序员有点满意了,觉得自己做的相当不错了,出题者也应该会非常满意,于是乎准备去告诉出题者,可是这时他突然又想到了些什么。。。。

这个程序员突然想到,假如我的这个程序同时有很多个进程同时访问,并且达到一定的量级,数据库也支撑不了该怎么办呀,他想了想,对了,应该在读取数据库时从中间做一层缓存,这样比较靠谱点,于是这个程序员又创建了一个java文件 CacheManage.java对redis进行了一个封装,在电脑上装了一个redis服务,通过调试成功连接到redis服务,把原来连接数据库的逻辑改成先从redis读,如果读取不到再从数据库读,并且这个程序员还用了一张纸画了一个草图,整个过程显得老用心了,做了一个项目,感觉很有成就感!

脑洞大开,他将1行代码写成了上千行,怎么做到的?

这出题者过来了,我出的这个题不难吧,这么长时间了,请问有什么需要帮助吗?程序员说,好了,搞定了,并且运行给出题者看,并把画的草图给出题者看。

脑洞大开,他将1行代码写成了上千行,怎么做到的?

你觉得这个程序员怎么样哈,我有一个问题,这中间一直是这个程序员自己的内心世界自己与自己交流,他为什么不与出题者多沟通一下呀,这样岂不是更能明白出题者的意图,何必这么费事呀,大家怎么看呢?

大家好,我是“上世是朵花”。如果你有什么好的看法或者观点可以在评论区展现你的才华,互动交流,如果想进一步了解我,那就关注我吧!

相关推荐