×
提示:
×
提示:
请:
谢谢!
Toggle navigation
技术头条
最新
读点非技术
我也分享
赞过
我的
IT技术博客大学习
微博登录
1
【译文】热闹驱动开发
(www.luanxiang.org)
【简介】
软件开发团队关于软件架构或技术栈的决策,很多并不是基于扎实的研究和对期望效果的认真思考,而是不准确的意见、社交媒体的信息,或者就些是“热门”玩意。这种做派的危害我见过不少,称它为“热闹驱动开发(Hype Driven Development,HDD)”。我赞成的是更专业的做法,称之为“脚踏实地的软件工程”。下面一起看看HDD的来龙去脉,想想我们能怎么改进。
新技术带来新希望
团队把最新最热的技术应用到项目里,这样的景象你见过吗?有人是因为读到了相关的博客,有人是看到Twitter上的潮流,还有人是刚刚在技术大会上听到了关于某门技术的精彩演讲。不久,团队就开始采用这种亮眼的新技术(或者软件架构设计范式),结果他们并不能更快(就像之前说的那样)开发出更优秀的产品,反而身陷囹圄。开发的速度降下来了,信心受挫了,后续版本的交付也出问题了。有些团队甚至干脆专心修bug,而不是开发新功能。他们“只需要多花几天”就能把事情搞定。
热闹驱动开发
热闹驱动开发有很多流派,也有很多渠道介入大家的项目:
Reddit驱动开发——在选择技术、架构、设计时,团队和个人的决策依据是知名博主的文章,或者reddit, hackernews, blogs, twitter, facebook, Github或者其它社交媒体上的热点。
技术会议驱动开发——仔细观察观察,参会回来的家伙们有什么表现。他们备受演讲的鼓舞。这是双刃剑。他们没有足够的研究,就开始使用最新最热的类库/框架/架构范式,而这可能是通往地狱的高速公路。
嗓门驱动开发——有人整天谈论新框架/类库/技术,他自己却没有经验,但是反复念经终于让团队决定采纳它。
Gem/类库/插件驱动开发——在RoR社区里特别流行这种情况,有时候我会发现一个gemfile太长,只有程序启动时的装载时间比它更长。这种流派源自下面的观念:Rails里的每个问题都应当有个gem来解决。有时候只要自己动手写几行代码就能解决,但是我们还是一个劲地添加类库/插件/gem/框架。
我还希望提到热闹驱动开发的一个常见流派,StackOverflow 驱动开发——开发人员从StackOverflow(总之就是互联网上)拷贝代码,而没有真正弄懂它们。
HDD就是开发团队自掘坟墓
凑热闹的问题是:它很容易导致错误决策。无论是糟糕的架构决策,还是糟糕的技术栈决策,给团队的影响都常常持续数月甚至数年。最糟的是它们会造成软件工程上千疮百孔的局面,只能推倒重来。但推倒重来几乎没有成功案例。
一切罪恶的根源似乎都是社交媒体——新观点传播得太快,还没来得及经过检验。大家还来不及细想有哪些利弊,就已经传播开去。
点击查看原文 >>
由
@技术头条
2017-02-05 14:15 / 0个评论
赞过的人:
@技术头条
要不要再学学下面的文章?
1
StarRocks 开发环境搭建踩坑指北
(crossoverjie.top)
本文详细介绍了在本地搭建 StarRocks 开发环境的步骤,包括启动前端(FE)和后端(BE)的配置及调试方法。通过本地启动 FE 并使用 Docker 运行 BE,实现了本地调试和测试。作者分享了常见问题解决方案,如端口冲突和网络配置问题,为 StarRocks 开发环境搭建提供了实用指南。
by
@技术头条
2024-11-02 16:42
查看详情
1
容器技术驱动下的代码沙箱实践与思考
(blog.yuanpei.me)
本文探讨了基于容器技术的代码沙箱应用,旨在隔离代码执行环境,提升安全性和稳定性。通过 Docker 容器创建语言镜像,支持多语言代码执行。文章介绍了使用 Jupyter 实现代码可视化,并借助 nbformat 和 nbconvert 管理和执行 Jupyter 笔记本,增强代码展示效果。此方案不仅提高了开发灵活性,还便于在 AI 编程中实时展示和分析结果。
by
@技术头条
2024-11-02 16:40
查看详情
1
基于 Docker 搭建开发环境(三):链路追踪
(www.diguage.com)
本文介绍了通过 Docker 配置 OpenTelemetry 和 Jaeger,实现分布式链路追踪。详细讲解了如何使用 OpenTelemetry Agent 和 Collector 配置尾部采样策略,识别慢请求和错误。结合 Prometheus 和 Grafana,构建全面的监控和追踪系统。提供了具体的 `docker-compose.yml` 配置文件示例,适合需要全链路可观测性的分布式应用开发环境。
by
@技术头条
2024-11-02 16:34
查看详情
1
基于 Docker 搭建开发环境(二):EFK 日志套件
(www.diguage.com)
本文介绍了如何使用 Docker 和 EFK(Elasticsearch、Fluentd、Kibana)套件构建日志管理系统,通过 Fluentd 将 NACOS 和业务日志集中发送至 Elasticsearch,方便数据分析和故障排查。文章提供了 `docker-compose.yml` 配置文件示例,解决了插件安装、权限设置和健康检查等常见问题,为构建灵活高效的日志管理系统提供了实用方法。
by
@技术头条
2024-11-02 16:33
查看详情
1
基于 Docker 搭建开发环境(一):数据库+监控
(www.diguage.com)
本文介绍了使用 Docker 构建开发环境的步骤,涵盖 MySQL 数据库配置、Nacos 服务发现与配置管理、Prometheus 监控及 Grafana 可视化。通过 Docker Compose 结构化配置,实现了多组件集成。文章提供了详细的 `docker-compose.yml` 文件示例,并探讨了自动接入监控、应用打包等优化方向,适用于需要集中管理多项开发工具的场景。
by
@技术头条
2024-11-02 16:33
查看详情
1
新一代实验分析引擎:驱动履约平台的数据决策
(tech.meituan.com)
本文介绍了美团履约技术平台的新一代实验分析引擎,该引擎对核心实验框架进行了标准化,并融合了众多先进解决方案,有效解决小样本挑战。同时,提供了多样化的溢出效应应对策略,并针对不同业务场景提供了精准的方差和P值计算方法,以规避统计误差。希望对大家有所帮助或启发。
by
@技术头条
2024-11-02 16:18
查看详情
1
领域驱动设计DDD在B端营销系统的实践
(tech.meituan.com)
领域驱动设计(DDD)在复杂业务系统中的应用非常有效,特别是在 B 端营销系统中。本文分享了美团如何通过 DDD 实践,优化营销系统的架构与设计,提升业务应对能力。想了解如何应对复杂业务需求的变化?千万别错过!
by
@技术头条
2024-09-09 23:41
查看详情
1
浅谈 GUI 应用开发
(zgq.me)
本文深入探讨了 GUI 应用开发中的关键问题,从状态管理、生命周期到交互模式等多个角度分享了开发经验。无论你是前端开发者还是产品设计师,这篇文章都能为你在 GUI 开发中提供实用的见解和技巧。赶紧阅读,提升你的应用开发水平吧!
by
@技术头条
2024-09-09 23:37
查看详情
1
USB 设备开发:从入门到实践指南(三)
(paper.seebug.org)
本文深入研究了Nintendo手柄驱动在Linux系统中的实现细节,并解决了一些关于USB HID和input驱动的疑问。
by
@技术头条
2024-08-06 08:27
查看详情
1
USB 设备开发:从入门到实践指南(二)
(paper.seebug.org)
本文介绍了如何利用树莓派设备模拟USB鼠标和游戏手柄。文章从修改HID描述符开始,详细说明了如何通过调整bash脚本中的协议配置模拟不同的USB设备。在模拟鼠标时,作者修改了协议为鼠标,调整了HID描述符以支持鼠标的左右键、中键、滚轮等功能。接着,在模拟游戏手柄部分,作者通过设定正确的供应商和产品ID,使设备被识别为XBox 360手柄。文章还探讨了如何动态修改Ubuntu驱动来支持Switch手柄。
在研究过程中,作者分析了USB HID协议,使用eBPF和调试输出方式研究Linux内核驱动代码,探索了手柄的各种功能键和坐标轴的实现。此外,作者对Switch Pro手柄的驱动支持问题进行了深入分析,发现需要特定协议的支持,并提供了解决方案。
by
@技术头条
2024-08-06 08:26
查看详情
使用微博登录,分享你的文章到本站
评论:
提交评论
近一周被赞排行
分享文章被赞得多,您就会出现在上面。还能给您微博带来新粉丝哦!