这两天呢去一个小公司面试,创业公司做daily deals的要求见最下,公司有大概三十人左右,开发的有一小半,分两个开发组,每组一个QA。剩下的人都是市场或者销售。
面试的时候简单问了问经历,然后,要求pair programming,题目是实现一个BDD流程的ruby游戏。大概就是设计一个游戏,游戏比较简单,就是玩家输入颜色,形状,大小,如果依此输入符合规则那么游戏进行,如果不符合规则,就终止。
因为是ruby项目所以从RSPEC开始,我跟面试官讨论,看看能怎么测试,同时看怎么设计架构,应该有一个game类,可能还要分出来一个ruler类专门存储游戏规则,以便添加和修改规则。
所以,rspec可能会有
game = Game.new(Ruler.new(1))
然后,按照规则用户要输入一个个颜色和大小和形状的参数
那么,我可能写测试
game.first_move = Move.new( 'blue', 'big', 'circle')
再就是验证规则
game.next_move.should_be = Move.new(Ruler.change)
当时,现场没有考虑Rspec的loop输入和规则的遍历问题
然后,我就建议先实现这个初步的测试,于是开始运行rspec,先是抱路径错误,看了看好像是helper没有include进来,然后,正常出现测试不通过错误,开始代码实现,代码实现部分反而比RSPEC设计部分要容易。面试时间有一个半小时吧,大体情况就这样。
引用
Qualifications:
Apache, Git, Memcached, MySQL
Object-Oriented JavaScript, preferably with jQuery
Experience in a fast-paced, Agile environment
Bachelor's Degree or advanced degree in Computer Science, Engineering or related field or equivalent work experience
Experience designing production-level applications
Strong command of web standards and best practices
Self-motivated individual willing to take ownership of key projects
Excellent communication skills and leadership potential
A passion for entrepreneurial endeavors
The ability innovate when necessary to meet business requirements on a short timetable
Desired Skills:
NoSQL and MapReduce (e.g. MongoDb, Riak, HBase
Continuous Integration, BDD, TDD
HAML/SASS
CoffeeScript
分享到:
相关推荐
在Ruby编程语言中,设计和实现一个P2P(peer-to-peer)交易系统是一项具有挑战性的任务,尤其在面试环境中。P2P交易系统的核心在于它允许...这个面试题旨在考察候选人在设计和实现复杂系统时的思路和对Ruby框架的理解。
比较齐全的面试的ruby面试题,经过本人精心收集,此类题可以帮助你快速找到好的工作。
Ruby专业面试试题Ruby专业面试试题Ruby专业面试试题
接下来,`sort_display_test.rb`和`sort_display.rb`这两个文件很可能代表了一个测试用例和对应的实现。在Rails中,我们遵循TDD(Test-Driven Development)原则,即先编写测试,再编写满足测试的代码。`sort_...
### Ruby常见面试题详解 #### 1. 什么是Ruby?简要介绍Ruby的特点和主要用途。 **Ruby**是一种面向对象的、动态类型的解释性脚本语言。它由日本程序员松本行弘(Matz)于1995年设计并发布。Ruby的设计理念在于简洁...
程序员时,一开始要知道面试中要问的正确问题对我来说是一个真正的挑战。 在 30 分钟或更短的时间内,如果不查看候选人之前编写的代码,很难全面了解候选人的技能组合。 在公司/企业世界中,我经常无法访问他们以前...
`nil`通常表示没有任何值或结果,而`false`则是布尔类型的一个值。 - **数据类型**: Ruby支持多种数据类型,包括数字、字符串、符号、哈希、数组和布尔值等。 综上所述,Ruby是一种功能强大、灵活且易学易用的编程...
根据给定文件的信息,我们可以总结出一系列关于MySQL的知识点,特别是针对面试中可能出现的问题及其解答。下面是详细解析: ### 1. ID 自增主键的行为 - **问题**:一张表中有 ID 自增主键,当插入了 17 条记录之后...
- 候选键是能唯一标识一行的非空键,一个表可以有多个候选键,但通常选择一个作为主键。 18. 使用Unix shell登录MySQL: - 输入`[mysql dir]/bin/mysql -h hostname -u <UserName> -p <password>`。 19. ...
2. Ruby-Watir:另一个基于Ruby的自动化测试工具,用于测试Web应用。 3. QTP:一种自动化测试工具,支持功能测试和回归测试。 4. LoadRunner:性能测试工具,用于测试软件在高负载下的性能。 以上知识点梳理涵盖了...
### Unity面试题加强版知识点详解 #### 一、Unity3D中的协程(coroutine)与C#线程的区别 1. **并发性**: - 多线程:能够同时运行多个线程,实现真正的并行计算。 - 协程:在任何指定时刻只能运行一个协程。...
MySQL 面试题及答案 MySQL 是一种关系型数据库管理系统,以下是对 MySQL 面试题及答案的知识点总结: 1. 自增主键的行为 在 MySQL 中,自增主键的行为取决于表类型。如果表类型是 MyISAM,那么自增主键的最大 ID ...
标题"Selenium面试笔试题"指向了一个与自动化测试工具Selenium相关的话题,这个工具广泛应用于Web应用程序的测试工作。Selenium允许测试者编写测试用例,执行自动化测试脚本,从而在多种浏览器环境下验证Web应用的...
程序员时,一开始要知道面试中要问的正确问题对我来说是一个真正的挑战。 在 30 分钟或更短的时间内,如果不查看候选人之前编写的代码,很难全面了解候选人的技能组合。 在公司/企业世界中,我经常无法访问他们以前...
【大数据面试题解析】 1. **HDFS 数据存储**:HDFS(Hadoop Distributed File System)的数据存储由DataNode负责。DataNode是HDFS的分布式数据存储节点,它们实际存储数据块并处理来自NameNode和客户端的读写请求。...
### MySQL面试题解析 #### 1. ID自增主键问题 **题目**: 当一张表里有ID自增主键,插入了17条记录之后,删除了第15,16,17条记录,重启MySQL后再插入一条记录,这条记录的ID是18还是15? **解答**: 在MySQL中,自增...
14. **主键与候选键**:主键是表中唯一标识一行的列,一个表只有一个主键,而候选键是潜在的主键,可以有多个,主键是被选中的候选键,用于外键引用。 15. **Unix shell登录MySQL**:使用命令`[mysql dir]/bin/...
这解释了为什么在第一个示例中,`this.x`打印出`undefined`,因为`setTimeout`内的`this`不再指向`obj`对象。而使用箭头函数时,`this`的绑定遵循词法作用域,即箭头函数内的`this`保持了定义时的作用域,所以第二个...
RabbitMQ 面试题及答案 RabbitMQ 是一种实现了高级消息队列协议(AMQP)的开源消息代理软件,也被称为面向消息的中间件。RabbitMQ 服务器是用 Erlang 语言编写的,而群集和故障转移是构建在开放电信平台框架上的。...