一道面试试题

[本文(一道面试试题)原始地址]http://xcoder.me/2017-07/life/一道招聘试题/
1
2
3
4
5
6
7
将id,name,address,age(为了方便可以理解为一个User对象的属性)从设备中读出,编辑后写回到设备中。
要求1:你需要选择两种设备,分别是csv文件(也即逗号分隔的文本文件)和xml文件,将数据读出来并能写回去。
要求2:你的代码应能很容易的扩展为可以通过其他设备读写数据(比如各种数据库/内存/excel文件)。考虑套用一种设计模式,通过这种设计模式保证程序的灵活性。
此功能考察您的编程能力,所以请注意您的代码书写;此功能考察您的设计能力,所以您需要阐述您的设计思路和各种情景考虑。
如果您觉得一段时间内无法完全完成编程,您可以只实现一两种您认为好实现的,但是请您详细而有条理的阐述您的设计思路和场景考虑。

您应该有以下考虑:
1.应该有add接口,get接口.如果您能考虑会有batchAdd/findList接口就更好了(同时请考虑如果批量操作数据量很大怎么办[比如读取1000万条,写入10万条])
一眼能从代码中看出代码的含义和作用也是考察的知识点—写英文名称请一定要写对,如果不是很确定就查查词典,不要似是而非,否则会带来更大的麻烦
2.如果频繁操作该怎么办?(即可能每分钟调用了10000次)
3.因为我们写的是java代码,对于添加读写设备如何做到不需要程序启停即可完成?
4.如果字段扩展了你的程序还能正常处理吗?
5.是否有完整的异常处理机制,是否有良好的参数和数据校验机制(就是程序怎么蹂躏也不死)
6.是否考虑了写测试用例?

小英雄雨来 wechat
扫码二维码或搜索"架构演进之旅"订阅微信公众号