未来十年的软件研发:潘加宇谈领域建模变得尤为重要 抽象级别不断提升

本文主要是介绍未来十年的软件研发:潘加宇谈领域建模变得尤为重要 抽象级别不断提升,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记者 / 付江

潘加宇
领域建模变得尤为重要 未来,软件公司将越来越专注于一个领域,甚至逐渐成为行业组织里的一个部门。这就要求软件要在深度上进一步挖掘,如果不能够高效地整理核心域的知识(也就是核心竞争力),只会象狗熊掰棒子,掰一个丢一个。一款软件的内部涉及到多个 领域的知识,对某个特定组织来说,这些知识的稳定性是不一样的,见下图:
知识各自能活几年
越来越多的平台也对领域建模提出了更高的要求。如果要做一个像《植物大战僵尸》那样的游戏,开发团队可能需要用C#/WinForm做一个 Windows的, Objective-C做一个iPhone/iPad的,JavaScript做一个网页的,Python/GTK做一个 Linux的……如果领域逻辑不能清晰整理,而是散落在各个地方,开发和维护就相当艰难。 抽象级别的提升 市场竞争使得软件的复杂度不断增加,而我们用来开发软件的最终依靠的是人脑,容量和处理速度是有限的,无法换CPU,加内存。只能把人脑需要直接编辑的介质(即所谓源代码)的抽象程度再提升,使人脑越来越集中于只有人脑才能做的事情,计算机能做的事情尽量交给计算机去做。这几十年“源代码”的变化就体现了这个趋势,最开始,“源代码”是机器语言,后来变成汇编语言、高级语言、面向对象语言……下一步的抽象是什么?目前的编码过程中,有些代码成分并不需要人脑的思考,如果这一部分能用机器取代,软件公司可以省下很多人力物力,这也是模型驱动开发的吸引力所在。核心域和非核心域之间的映射规律即使不能完全通过器来封装,也可以通过编写适合项目特点的映射案例,由开发人员举一反三,按照既定套路来映射,也减少了在不必要的细节上浪费的时间。 不管如何,软件复杂度(或者说,参加市场竞争所需要的复杂度)还是会走在开发工具和方法的前面,“没有银弹”依然成立。所幸的是,我们也不需要银弹,因为敌人不是人狼,而是对面街上的竞争对手。 《程序员》12期精彩内容:十年 《程序员》杂志订阅

这篇关于未来十年的软件研发:潘加宇谈领域建模变得尤为重要 抽象级别不断提升的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/477714

相关文章

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

MySQL中的事务隔离级别详解

《MySQL中的事务隔离级别详解》在MySQL中,事务(Transaction)是一个执行单元,它要么完全执行,要么完全回滚,以保证数据的完整性和一致性,下面给大家介绍MySQL中的事务隔离级别详解,... 目录一、事务并发问题二、mysql 事务隔离级别1. READ UNCOMMITTED(读未提交)2

MySQL中隔离级别的使用详解

《MySQL中隔离级别的使用详解》:本文主要介绍MySQL中隔离级别的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录引言undo log的作用MVCC的实现有以下几个重要因素如何根据这些因素判断数据值?可重复读和已提交读区别?串行化隔离级别的实现幻读和可

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Ubuntu 怎么启用 Universe 和 Multiverse 软件源?

《Ubuntu怎么启用Universe和Multiverse软件源?》在Ubuntu中,软件源是用于获取和安装软件的服务器,通过设置和管理软件源,您可以确保系统能够从可靠的来源获取最新的软件... Ubuntu 是一款广受认可且声誉良好的开源操作系统,允许用户通过其庞大的软件包来定制和增强计算体验。这些软件

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行