文档章节

自动编程体系设想(一)

jxt1234
 jxt1234
发布于 2015/10/15 18:06
字数 807
阅读 8
收藏 0

自动编程体系设想(一)

编程的演化

编程语言的发展

编程语言发展
随着语言的发展,编写的代码将越来越精简,而且领域化(不同领域用不同的编程语言,以达到开发效率和程序性能的最优化)。

自动编程的需求

在各种设计框架、基础库日益完善的情况下,上层应用中的编程基本上就是找API,构建一个调用逻辑,然后反复的开发自测试。下层框架/函数库开发一般都基于开源代码不断优化,同样反复地自测试。
应用构成要素

在软件开发中,编程这一环节事实上越来越成为简单重复的劳动。有重复就有自动化的欲望,也因此有了自动编程的思想。
当前软件开发流程

自动编程思想

自动编程,指的是根据测试用例自动生成符合测试用例的程序。简而言之,将数据变成程序。
与代码生成器(模板驱动开发)相比,自动编程强调由预期结果生成程序逻辑,而不仅仅是由逻辑生成程序代码。
自动编程下的开发流程
如此框架下,在一般的软件开发中,不需要资深程序员/架构师的参与,他们从事平台性的工作,开发与测试不分,有测试用例就会生成代码。

开发就是测试

有了测试用例自动转化成程序的机制,开发人员的主要工作就是搭建自动编程环境,基于对需求的理解编写测试用例,并且对自动生成的代码进行测试。这个工作事实上就是现在测试人员的工作。原来软件开发流程中的测试环节已经没有存在价值。
没有测试环节并不意味着产品质量得不到保障,事实上,测试环节是完全被开发覆盖了,由于程序自动化生成,避免了人写代码出低级错误的可能,产品质量更有保障。

数据就是程序

在能够根据用例表生成代码的情况下,完善的测试用例数据即等同于程序。所有的需求变更反映到用例数据的更新。
一个程序好不好用,一方面在于其需求设计是否合理,测试用例是否设计完备;另一方面,在于构建程序的环境是否有足够丰富的代码源(早期来源于程序员的编写,后期主要是自动生成的有效代码段),是否有足够的计算能力。
总而言之,程序来源于数据,好坏取决于数据量和数据处理能力。

用户也是开发

程序开发者可以把测试用例数据的编写规范开放,使用户在使用的过程中自行输入新的测试用例数据,传到开发者的服务端或直接本地生成更加优秀的程序。

版权声明:本文为博主原创文章,未经博主允许不得转载。

© 著作权归作者所有

共有 人打赏支持
jxt1234
粉丝 5
博文 36
码字总数 41634
作品 0
杭州
月薪5千加班到凌晨,月薪5万5点下班,高级程序员到底强在哪里?

说起程序员人们的第一印象就是工资高、加班凶、话少钱多头发少。再加上现在科技互联网公司太吃香,bat、华为小米等公司程序员加班情况被广泛传播,程序员用生命在敲代码的印象刻在了很多人的...

Java填坑之路
08/13
0
0
【MyBiatis框架】Jdbc的弊端探讨和MyBiatis框架的简介

我们使用JSP+Servlet做Web应用的时候经常使用JDBC作为数据库的连接,那么,直接使用JDBC操作数据库进行增删改查是有一定弊端的,正因为如此才衍生出了Hibernate、MyBatis等一系列优秀的ORM框...

Mysoft
2015/09/09
93
0
谷歌人工智能专家:机器学习存在全新挑战

谷歌研究主管、知名人工智能专家Peter Norvig在MIT的EmTech Digital,探讨机器学习的挑战。 谷歌研究(Google Research)主管、知名人工智能专家Peter Norvig最近在出席MIT的EmTech Digital大...

行者武松
03/02
0
0
IBM团队研发新编程语言 梦想克隆人类大脑

再创造人类智慧是不可能的,而且我们甚至无法理解大脑如何工作。但是Dharmendra Modha正在与技术巨头IBM以及各个大学和政府实验室的团队合作,尝试建造一个大脑。这位印度出生的计算机科学家...

oschina
2013/08/15
5.4K
56
EZ430 Chronos 开发设想 :广义手势语言

EZ430 Chronos 开发设想 :广义手势语言 终于收到了代购的开发套件,这几天都在思考究竟用它来开发一款什么样的有趣应用呢? 终于在昨天确定了开发设想:手势语言,充分利用套件的3轴加速度感...

FreeBlues
2012/07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
49
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
43
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
48
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
45
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
47
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部