开发者效率的几个瓶颈点

简介: 开发者效率的几个瓶颈点

我认为开发者效率的模型是这样的:

image.png


我认为目前存在这么几个瓶颈点:

  • 对于 logic programming 而言:从运行时没有提供足够的feedback来更新开发者的认知
  • 对于 machine learning 而言:从运行时没有提供足够的feedback来更新开发者的认知。模型几乎是黑盒,人类难以获得直觉。
  • 难以维护文档:维护测试和文档是两倍工作量,文档总是滞后
  • 开发者从文档和运行时获取信息太慢,而且零散的知识容易遗忘
  • 开发者心中所想和源代码的承载形式有很大Gap,无法直白地表达意图


问题一:logic programming 的 feedback



image.png

这个问题的主要的症状就是出了问题,经常要靠猜。没有人知道在运行时实际的执行情况。


造成问题的主要原因是打日志仍然是一门艺术,而不是科学。对于 observability 的投入不足。什么叫 observability?



monitoring tells you it is not working

observability tells you why it is not working



日志,metrics,错误处理,distributed tracing。这些东西应该有一个更可视化,更少人工干预,代码写起来更漂亮的解决方案。


问题二:machine learning 的 feedback


image.png

machine learning 和 logic programming 是两种完全不同的驱动机器的方式。machine learning 本质上是用数据反向生成可执行的程序。深度神经网络可以理解为基于动态规划的模式匹配程序,只是这个程序不是人手写源代码得来的。


在人类灭亡之前的很长一段时间,machine learning 仍然需要人类的干预。如果我们无法从模型的实际行为获得直觉,这些干预都是盲目的猜测,而不是educated guess。对机器学习的模型进行可视化分析,增强人对其的认知和理解会是一个非常重要的方向。


问题三:文档维护


image.png


我们有大量的单元测试,但是仅仅看测试很难知道测的是什么东西,体现了什么意图。


我们有大量的文档,但是文档的更新总是滞后的。和实际行为不相符的文档更是具有误导性。


测试和文档应该是一个东西。在这个领域应该来一场类似前后端分离那样的革命。


问题四:知识管理


image.png

人类的生理缺陷是固有的,它限制了获取信息的带宽,以及能够存储和检索的知识规模。


如何提高开发者的知识管理能力是一个很大的问题。这不仅仅是提供更多的运行时反馈,提供更多的文档能够解决的。就算提供的再多,再快,开发者消化不了也是信息过载,无济于事。


面向StackOverflow编程,不是一句笑谈,而是科技带来的进步。本质上是用脑内关键字索引,把知识外溢到StackOverflow上做冷加载。


当我们面对一个命令行工具有100多个参数,一个gradle有几十个配置选项的时候,你是感觉非常无力的。很多时候我们宁愿重写,也不去复用。本质上是因为复用的前提是你先去理解复用的东西自身,然后才能游刃有余的调整那么参数。这个理解一个“可复用”的东西的成本的最大障碍,在人类自身。


问题五:所书非所想


image.png

核心的问题在目前主流编程语言的两个缺陷上:

  • 无法直白地表达超过500ms的因果关系。表现形式就是有状态的业务逻辑总是最终变得支离破碎。
  • Nominal Typing 鼓励了面向实现编程,而不是面向接口编程。而且单变量单一分类系统不足以处理真实业务中的“个性化”需求,从而无法“平台化”复用。表现形式就是 if/else 堆砌,咋写咋别扭。


开发者工具


所有编程工具的最大公约数是最终都要被“开发者”所用。所有工具解决的问题,本质上还是人类在环导致的问题。当哪天人类不在环中了,机器能够自举了,也就不再需要开发者工具了。在那天到来之前,如何用工具来武装开发者的大脑、双手和双眼,仍然是一个非常重要的课题。

相关文章
|
监控 物联网 云计算
优化服务配置:提升效率与用户体验的关键
随着科技的迅猛发展,服务配置已经成为企业和个人生活中不可或缺的一部分。无论是云计算、移动应用、还是物联网设备,都需要良好的服务配置来确保顺畅的运行和卓越的用户体验。本文将探讨服务配置的重要性,以及如何优化配置以提高效率和用户满意度。
|
28天前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
54 8
|
9天前
|
缓存 负载均衡 算法
性能优化:提升系统效率的关键
性能优化:提升系统效率的关键
22 1
|
24天前
|
存储 缓存 监控
性能优化技术:提升系统效率的关键策略
【10月更文挑战第19天】性能优化技术:提升系统效率的关键策略
|
22天前
|
SQL 监控 Java
Java性能优化:提升应用效率与响应速度的全面指南
【10月更文挑战第21】Java性能优化:提升应用效率与响应速度的全面指南
|
3月前
|
存储 缓存 运维
优化高并发环境下的数据库查询性能:实战经验与技巧
在高并发环境下,数据库性能往往成为系统瓶颈。本文将深入探讨在高并发场景下优化数据库查询性能的策略与实践,包括索引优化、查询优化、数据库架构设计以及缓存机制的应用。通过对具体案例的分析,读者将能够掌握提升数据库性能的关键技术,从而在面对大规模用户请求时提高系统的响应速度和稳定性。
|
3月前
|
消息中间件 缓存 Java
如何优化大型Java后端系统的性能:从代码到架构
当面对大型Java后端系统时,性能优化不仅仅是简单地提高代码效率或硬件资源的投入,而是涉及到多层次的技术策略。本篇文章将从代码层面的优化到系统架构的调整,详细探讨如何通过多种方式来提升Java后端系统的性能。通过对常见问题的深入分析和实际案例的分享,我们将探索有效的性能优化策略,帮助开发者构建更高效、更可靠的后端系统。
|
4月前
|
监控 网络协议 Linux
Linux系统管理与优化技巧:提升性能与效率的深度探索
【7月更文挑战第24天】Linux系统管理与优化是一个持续的过程,需要管理员和开发者不断地学习和实践。通过合理的系统监控、内存管理、文件系统优化、进程与任务管理、网络优化以及软件与包管理,可以显著提升Linux系统的性能和效率,确保业务的稳定运行。希望本文的技巧能为广大Linux用户带来帮助,共同推动Linux生态的繁荣发展。
|
4月前
|
人工智能
你在找提升效率的解决方案还是追求效果的解决方案
企业在选择解决方案时需区分提升**效率**与改善**效果**的目标。**效率**着重于加快工作流程,如政务移动化提升了审批速度;而**效果**则聚焦于成果质量,即使过程中也包含效率改进。例如,生成式AI虽能加速内容创作,但内容营销的成功还需确保内容的准确触达。**客户在哪儿AI**通过分析目标客户的媒体偏好,实现了内容的精准投放,这是追求效果而非单纯效率的体现。两者间并无优劣之分,实践中常相互交织。
|
5月前
|
运维 监控 安全
自动化运维:提升效率与减少错误的利器
【6月更文挑战第17天】在数字化时代,运维团队面临着不断增长的服务需求和系统复杂性。自动化运维作为一种解决方案,通过减少人为干预、提高操作准确性和效率,已经成为现代IT管理的核心组成部分。本文将深入探讨自动化运维的概念、实施步骤、面临的挑战以及如何克服这些挑战,最终实现运维工作的高效和稳定。