📜  Java开发人员的沃尔玛面试经验

📅  最后修改于: 2022-05-13 01:58:31.618000             🧑  作者: Mango

Java开发人员的沃尔玛面试经验

第1轮:

要求我们在 90 分钟内用Java编写工作代码来解决这个问题。这一轮没搞清楚,但觉得这个问题很重要,所以分享一下。

事件:

  • 一个事件通常包含 {start, end, location, owner, user-list, title}
  • 活动可以像会议(有专门的地点和适当的客人名单),也可以像假期、生日、提醒等。
  • 一个事件一旦创建,就可以被组成用户接受或拒绝——如果两者都不应该处于中立状态

实现任意 2 个 API:

  1. 用于创建、更新或取消其事件的用户 API。只有在没有资源冲突的情况下,创建/更新操作才能成功
  2. 给定一个用户,提供一个 API 来获取给定日期范围内的事件/会议列表。
  3. 给定一个会议 ID,提供一个 API 以提供受邀者的详细信息及其响应,即。接受、拒绝等。
  4. API 在特定时间段查找特定建筑物中的可用房间

期望:

  1. 代码质量应该为生产准备好合并和部署
  2. 指南比完成更多 api 的权重最高
  3. 代码应该可以演示。在文件、测试用例或主驱动程序本身(无外部数据存储)中创建示例数据。不要花时间解析输入。
  4. 代码应该是可读的、模块化的(没有单体式的)、可测试的、可扩展的,并具有适当的命名约定
  5. 代码应该正确处理边缘情况并优雅地失败

指导方针:

  • 为系统所需的实体定义详细的对象模型
  • 正确使用继承、抽象、接口、异常处理
  • 在代码中有适当的注释,并应遵循最佳编码实践
  • 在适用的情况下使用 Builder、Factory、Visitor 等设计模式
  • 证明您的编码选择,即。你为什么选择为一个特性定义一个单独的函数,或者你为什么不定义一个构造函数来初始化类
  • 在适用的地方定义枚举、单例类
  • 关注点分离得到解决
  • 为他/她的代码的关键部分实施单元测试用例
  • 使用Java 8/7 特性,如功能接口、自动关闭资源等。