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

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

记者 / 付江

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

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



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

相关文章

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

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