尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

技术选择有门道:拥抱“无聊”、全局优化,适时引入新技术!

技术选择有门道:拥抱“无聊”、全局优化,适时引入新技术! 丹·麦金利数学、编程与少数派报告在职业生涯中丹·麦金利最幸运的是由凯兰管理他。他在那里待了很久见证凯兰的技术决策结出硕果自己也收获颇丰。若没有凯兰出色的技术选择决策他无法成为写出《即刻打造数据驱动型产品》的工程师。离开 Etsy 后的一年他重新燃起对技术的热情想法逐渐清晰并写了下来以下是对凯兰理念的提炼。拥抱“无聊”假设每家公司约有三张“创新令牌”数量在很长时间内固定达到一定稳定性和成熟度后可能再获得一些但人们常高估其数量。选择 NodeJS、MongoDB、问世不到一年的服务发现技术等会用掉创新令牌若选择自己开发数据库就麻烦了。如果你不是 JavaScript 咨询公司或数据库公司在追求宏伟目标的公司工作把精力放在对 SSH 进行创新上可能导致失败或延迟成功。“无聊”技术难界定不应与“糟糕”混为一谈。有既无聊又糟糕的技术千万别用但也有很多“无聊”却性能良好或足够好用的技术如 MySQL、Postgres、PHP、Python、Memcached、Squid、Cron 等。“无聊”技术功能众所周知人们也了解其可能的故障模式。选择技术时会遇到已知的未知和未知的未知即使是存在几十年的技术也有这两类未知情况新兴技术的未知的未知情况更多。全局优化倾向于选择“无聊”技术是好事但不是唯一考量因素。技术选择影响整个团队、组织和系统。在公司引入新技术有成本如已用 Ruby 再引入 Python 不明智增加的复杂性会超过 Python 带来的边际效益。但讨论 Python 和 Scala、MySQL 和 Redis 时人们会失去理智鼓吹为每个任务选最合适的工具。职责是将业务问题映射到软件选择的解决方案空间若软件选择无附加条件可挑局部最优工具。但实际有“运维”和“认知负担”等附加条件这些成本会迅速累积。“为工作选择最合适的工具”的想法短视工作是让公司持续运营“最合适”的工具是能在多问题上“相对不那么差”的工具确保系统长期可靠运行的成本远超开发不便成熟高效的开发者明白这点。适时选择新技术只选 Java 搭建网站很疯狂需往工具包添加新东西。重要的是认识到引入新技术是个需沟通的过程这是全公司知晓的决策公司情况会促使讨论或允许开发者自行引入。要在公司文化中树立大家参与讨论的期望。推荐先思考不引入新技术如何解决问题这能发现是否有人借“问题”用技术若是应放弃。有时有限技术选择也能发挥大作用若认为现有技术无法实现目标可能是不够有创意。详细记录当前技术栈中让解决问题成本高且困难的因素有帮助。选择新技术可能是补充也可能与现有技术重叠或替代若是后一种情况应明确设定将旧功能迁移到新系统的预期通常策略是“承诺迁移”并提出时间表目的是控制遗留问题避免局部最优解决方案泛滥。这个过程不复杂完成几个“作业”并开会讨论若新技术能通过考验引入没问题。直接发布多语言编程宣传让开发者自由选工具能更有效解决问题这要么是对问题的天真定义要么是主观动机的推理其带来的日常运维琐事会压垮人。审慎选择技术能让工程师获得思考更重大问题的自由为技术而用技术是饮鸩止渴。2015 年 7 月 27 日更新丹·麦金利根据文章做了演讲可观看。例如Etsy 早期因技术选择问题聘请 Python 程序员后创建无意义中间层移除花了好几年90% 的搜索延迟约两分钟虽没失败但几年没发布产品成功之路更长。还有Etsy 活动动态功能在 PHP、MySQL、Memcached 和 Gearman 技术栈上实现比用 Redis 复杂但可行且功能规模增长 20 倍也无需专门更改这体现了技术选择克制的长期好处。不过用纯 PHP 实现带分面搜索的全文搜索不可行所以 Etsy 使用了 Solr。
返回列表