编码标准与模式
关于结构、命名、错误处理和测试的约定,以书面形式记录下来,而不是靠开发人员之间口口相传。
纸面上的设计和开发人员真正交付的代码库是两回事,而这两者之间的落差,正是许多迪拜团队最初迪拜聘请技术架构师的原因。软件架构师或解决方案架构师可以交出一份推理严谨的方案,但仍然需要有人决定这份方案该如何转化为目录结构、编码规范、错误处理模式和审查流程,并在截止日期临近时持续核实团队是否真的在遵循它。
这正是技术架构师的工作。他们比典型的软件架构师更贴近代码本身,设定团队日常据以编码的模式,对照这些模式审查拉取请求,并在截止日期压力下的临时妥协悄悄偏离计划时及时发现。这个角色既关乎某一次聪明的决策,更关乎在团队不断壮大的过程中保持一致性。
在小团队中,这往往根本不是一个独立招聘的职位:一位实力较强的资深开发人员会在自己的编码工作之外兼任这个角色。当代码库足够庞大,或者参与其中的开发人员足够多,以至于没有文字记录的约定开始让同一产品内出现不一致的代码时,专职招聘一位技术架构师才变得值得。
技术架构师负责什么
阿联酋企业在决定迪拜聘请技术架构师之后应期待的成果,可以对照真实的拉取请求来核实。
关于结构、命名、错误处理和测试的约定,以书面形式记录下来,而不是靠开发人员之间口口相传。
一个小型、可运行的模式实例,往往比一整页文字说明对开发人员更有用。
持续参与拉取请求审查,让标准在当下就被落实,而不是几个月后在一次审计中才被发现没有遵守。
一份可见的清单,记录在截止日期压力下做出的各项妥协,并诚实标注每一项应在何时清偿。
选定 linter、格式化工具、CI 检查等工具,让遵循标准变得容易,而不是让偏离标准变得容易。
在审查过程中解释一个模式背后的原因,让初级开发人员理解的是思路,而不只是规则本身。
要检查的技能
来自代码本身而不是简历的信号,这也是大多数企业依据证据而不是头衔来迪拜聘请技术架构师的原因。
| 技能或习惯 | 好的表现是什么样 | 为何重要 |
|---|---|---|
| 跟上交付平台的最新情况 | 应用像 Azure Well-Architected 框架这样有文档记录的指导,而不是多年前养成、之后从未更新的习惯 | 平台及其推荐模式的更新速度,常常快于大多数人对它们的认知 |
| 近期真实的拉取请求 | 能讲清楚自己上周留下的审查意见,以及每一条背后的理由 | 如果一个人最近没有审查过真实代码,就只是在猜测团队真正需要什么 |
| 截止日期下的务实态度 | 能说出自己曾有意放宽的一项标准,以及原因,而不是声称每条规则都毫无例外地被遵守 | 一位从不通融的技术架构师,通常在第一次截止日期紧张时就会被绕过 |
| 工具素养 | 搭建能自动强制执行标准的 linter、格式化工具和 CI 检查 | 完全依赖记忆的标准,经不起团队规模扩大的考验 |
| 教学,而不是执法 | 在审查意见中解释理由,而不是没有任何背景地下达一条规则 | 理解一个模式为什么存在的开发人员,能在规则从未覆盖的新场景中正确应用它 |
合作方式
专职合作适合一个活跃的代码库,标准需要伴随真实的功能开发持续维护,按月与您的开发人员协同工作。基于项目的合作适合边界明确的任务,例如在主要开发团队扩张之前,为一个新代码库确立模式和工具。希望把这个角色纳入自己团队的企业可以使用我们的招聘支持服务,由我们负责寻源、筛选和组织技术评估,最终录用由您决定。较短期的咨询服务适合大部分工作已在内部完成、但希望在大规模推进之前获得一次外部核查的团队。无论迪拜企业选择哪种方式迪拜聘请技术架构师,范围都会在开工前书面确定。
评估候选人
看代码,而不是看会议演讲。
请他们提供链接,或讲解最近的审查意见。反馈的质量,比任何面试回答都更能说明一位技术架构师的真实水平。
真正有经验的候选人能说出自己在截止日期压力下明知故犯打破的一条规则,以及事后如何处理这个取舍。
给他们一段简短、刻意写得有些混乱、贴近您技术栈的代码,观察他们最先选择修复什么。
询问他们会在第一天就配置哪些 linter、格式化工具或 CI 检查,以及为什么是这些。
让他们当场向一位初级开发人员解释一个模式。一条没有理由支撑的规则,很少能在遇到新情况时依然有效。
认证
没有任何认证能证明”技术架构师”这个头衔本身,应该转而关注平台深度。
这个头衔不属于任何一家供应商,也没有相应认证,应把它当作一种工作描述,而不是仅凭一枚徽章就能核实的东西。在迪拜聘请技术架构师时,一份真实的代码样例,比任何证书都能更快说明问题。
与您实际运行平台相关、由该供应商颁发的资质,例如 Microsoft 或 AWS 的助理级或专业级认证,值得在真实代码之外一并询问,但不能替代它。
阿联酋相关考虑
在迪拜聘请技术架构师来撰写标准文档之前,值得写入其中的两点。
如果代码库处理个人数据,迪拜的技术架构师应把处理规则直接写入参考模式本身,让每一位开发人员默认就遵循它,而不需要另外记住一份独立政策。
如果产品需要阿拉伯语界面,从右到左的布局支持从一开始就应该属于基础组件模式的一部分。事后再逐个界面补做,速度更慢,结果也更不一致。
直接解答
软件架构师确定产品的整体形态:技术栈、边界、路线图。技术架构师则更贴近交付团队,把这个形态转化为开发人员每天都要应用的具体标准、模式和审查纪律。在较小的团队中,常常由同一个人兼任两者。
通常需要,而且比更上层的软件架构师更频繁。一位不再写代码的技术架构师,会逐渐失去对自己制定的标准是否真正可行的日常感知,而代码审查正是他们最主要的工具之一。
在很多情况下需要,因为工作内容不同。解决方案架构师设计系统之间如何衔接;技术架构师则把这份设计,或者软件架构师的产品设计,转化为编码模式和审查流程,让交付团队在搭建过程中保持一致。
在很多团队中,这两个角色是有重叠的。技术负责人通常每天负责一个团队的交付,而技术架构师则可能为不止一个团队或小组设定模式。在小团队中,一位实力较强的资深开发人员通常两者兼任。
取决于具体工作。一次短期合作可以在几周内为一个新代码库确定模式和标准;一次持续性合作则会伴随一个活跃项目,随着团队规模扩大,持续核实交付内容是否依然符合计划。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。