自动化脚本
按计划或按需运行的脚本,用于在系统之间移动、清理或重新格式化数据,取代一项手动、重复的任务。
企业并不总是为了一个完整的 Web 应用而在迪拜聘请 Ruby 开发工程师。很多工作规模比这小得多:一个重新整理数据导出结果的脚本、一个团队每周运行的命令行工具、连接两个系统之间的胶水代码,又或者对一套早于现有团队、年代较久的 Ruby 应用进行维护。Ruby 的创造者们最初就是希望它能贴近一个人思考问题的方式来设计,这也是它在最初那波让它广为人知的 Rails 热潮渐渐退去之后,依然能在这类实用、中等规模的工作中持续保持受欢迎程度的原因之一,而不仅仅是历史惯性。
这种工作范围的差异,在您撰写招聘简报时很重要。一位擅长 Rails Web 应用的开发工程师,不一定是独立自动化脚本任务的最佳人选,而一位主要编写小型工具的开发工程师,也很可能已经多年没有真正碰过大型生产环境下的 Rails 代码库,这种技能上的分化在实际招聘中相当常见。这类差异看似细微,却往往决定了一次招聘的成败,也是我们在筛选简历时首先要确认的一点,值得提前想清楚。本页涵盖的是 Ruby 作为一门语言,在这更广泛工作范围内的实际应用,而我们另一个专门的 Ruby on Rails 页面则专门介绍这个框架本身,两者的侧重点并不相同,值得分开来看。这一点在制定招聘简报时尤其值得写清楚,能省去后续沟通中的不少来回。
Ruby 开发工程师能做什么
超出 Rails Web 应用范畴的具体交付成果。
按计划或按需运行的脚本,用于在系统之间移动、清理或重新格式化数据,取代一项手动、重复的任务。
团队直接运行的小型实用工具,基于 Ruby 标准库或一个轻量级的 gem 构建,而不是引入一整套完整的应用框架来实现。
通过已发布的官方 API,连接两个原本从未被设计为互相通信的系统的代码,常见于新旧系统并存的场景,这一点值得在早期就说清楚,避免后续返工。
面向员工而非公众开发的轻量级工具,在不需要完整 Rails 技术栈时,使用 Sinatra 之类的极简框架来快速构建。
让现有的 Ruby 类库或内部 gem 持续兼容当前的 Ruby 版本及其依赖,避免随着时间推移逐渐失修,值得纳入常规维护安排。
诊断并稳定一套较旧的 Ruby 代码库,通常是决定是否值得进行更大规模现代化改造之前必经的第一步。
值得关注的技能
对这门语言整体的当前实践能力,而不只是某一个框架。
| 技能或工具 | 合格的表现 | 为何重要 |
|---|---|---|
| 当前 Ruby 版本 | 能熟练使用一个仍处于常规维护或安全维护阶段的版本,符合 Ruby 官方发布的分支时间表 | 已过生命周期的版本将停止获得安全修复,长期运行会带来实际的合规和安全隐患 |
| 标准库熟练度 | 为一项小任务引入新依赖之前,会优先考虑 Ruby 自身的标准库 | 不必要的依赖越少,日后需要保障安全和持续维护的内容也就越少,升级时的风险也相应降低 |
| Gem 与依赖管理 | 正确使用 Bundler,依赖版本锁定且经过审查 | 未锁定版本的 gem 是部署时出现意外故障的常见来源,尤其是在多人协作的项目中 |
| 测试文化 | 将编写测试作为工作的常规部分,通常使用 RSpec 或 Minitest | 测试文化是 Ruby 社区长期以来的一大优势,跳过它的开发工程师等于跳过了这门语言的核心实践 |
| 可读、符合惯例的风格 | 编写清晰易读而非炫技式的代码,遵循 Ruby 社区通用的写作惯例 | 没有团队维护的脚本或工具,几个月甚至几年后,在原作者已经不在场的情况下也需要能被后来者顺利理解 |
Ruby 官方的 维护分支页面 值得在接手任何现有代码库之前查看一遍,它清楚显示了哪些版本仍在获得修复,哪些已经到达生命周期终止。这在招聘面试中是一个公道且快速能问出的问题。
与我们合作的方式
如果您有一批持续增长、不断累积的脚本、工具和系统集成需要长期维护和迭代,适合选择专属开发工程师。如果工作范围本身就很明确,例如一个数据迁移脚本或一次具体的系统集成,带有完整文档并可以清晰交付收尾,适合委托限定范围的项目。如果您希望直接建立自己团队内部的 Ruby 能力,而不是无限期地把工作委托给外部团队,适合选择招聘支持。如果您已经有 Ruby 代码在某处默默运行,只是想在决定下一步该怎么做之前,先获得一个客观的外部审查意见,适合选择咨询服务。无论最终适合哪种合作模式,具体条款都会在正式开始工作之前以书面形式确认清楚。
考察候选人
适用于脚本编写、工具开发和小型应用的考察方式。
他们真正编写出来并且日常在使用的东西,而不是一份课程练习作业,并询问他们如果现在重做一遍,会做出哪些改动。
一个接近您真实需求的小练习,例如解析一个格式混乱的文件,或搭建一个简单的系统集成,评审重点放在代码的清晰度和错误处理上,而不只是最终结果对不对。
测试是否会自动运行、具体覆盖了哪些内容,以及对于一个小脚本,他们会有意选择不测试哪些部分,以及为什么这样取舍。
询问他们接手别人写的、缺乏文档的 Ruby 代码时的具体经验,因为这种情况在维护工作中相当常见,几乎每个维护项目都会遇到。
优秀的候选人会明确说明一项任务更接近 Rails 专精领域,还是属于通用 Ruby 范畴,而不是笼统地声称自己什么都能覆盖、什么都会做。
这一整套考察方式并不需要一个 Rails 项目才能正常进行,这正是它的意义所在:完全可以为脚本和工具开发工作招聘合适的候选人,并在从不提及 Web 框架的情况下公平地评估他们。
认证
这里确实存在一项认证,由独立于任何单一雇主的机构运营。
根据其官方认证页面,Ruby Association 提供 Silver 和 Gold 两个级别的考试,其中 Gold 级要求候选人先通过 Silver 级考试。通过考试后,证书会由官方直接以邮件方式发送给持证人本人,因此建议直接向候选人索要证书原件,并确认具体的考试级别和通过日期。
当前的考试针对的是较旧的 Ruby 版本,而不是最新版本,因此它更能说明候选人的语言基础功底,而不是对当前工具链的掌握程度。真实可查的脚本代码、实际的测试覆盖率,以及对以往一次维护任务经过的清晰说明,同样重要,甚至更能反映真实水平。
阿联酋相关考量
只要 Ruby 脚本或工具会涉及客户或员工数据,以下内容就与您相关。
一个在系统之间复制客户或员工记录的自动化脚本,依然属于阿联酋联邦数据保护法所定义的个人数据处理行为,即便日常工作中几乎没有人会把一个安静运行的后台脚本这样看待。这一点最好在项目正式启动之前就与相关团队确认清楚,而不是等到脚本已经悄悄上线运行了一段时间之后才发现问题。
对于处理敏感内部数据的 Ruby 工具,决定它究竟运行在阿联酋境内还是境外的基础设施上,最好在项目简报阶段就明确下来,而不是留到部署前才临时决定。请在简报阶段就主动提出这一点,因为它既会影响具体的部署方式,也会直接影响与合规团队之间关于数据驻留位置的后续讨论。
这一职位归属于我们的 编程与软件开发 分类,属于 迪拜聘请开发工程师 的一部分。如果您的项目具体是一个 Rails Web 应用,而不是通用 Ruby 工作,我们的 Ruby on Rails 开发工程师 页面是更合适的起点。对于类似的脚本导向型语言,请参见我们的 Python 开发工程师 和 Perl 开发工程师 页面,而对于更大规模的网站建设需求,我们的 网站开发 服务可能比单一语言招聘更合适。
直接解答
不是。Ruby 是语言本身,Rails 是建立在它之上的一个框架,虽然是使用最广泛的一个。如果您的项目具体是一个 Rails Web 应用,我们的 Ruby on Rails 开发工程师页面专门针对这类需求。
是的,对于脚本编写、自动化、小型内部工具,以及开发速度比原始吞吐量更重要的应用,当前的 Ruby 版本仍是一个合理、文档完善的选择。
通常可以,不过第一步是确认它运行在哪个 Ruby 版本上。Ruby 自身的维护分支会按照公开的时间表,从常规维护进入仅安全维护,最终到达生命周期终止,因此一个老旧、无人维护的版本会改变工作的范围。
是的,本页涵盖 Ruby 作为一门语言,在脚本编写、工具开发和通用应用方面的应用。如果角色明确是一个 Rails Web 应用,请向我们说明,我们会改为推荐 Ruby on Rails 开发工程师。
询问他们日常使用哪种测试库,以及他们如何为一个脚本或小型应用组织测试,因为 Ruby 在自动化测试方面有着深厚的文化传统,一位合格的开发工程师应该已经在实践这一点。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。