本文重点解决如下问题:开发一个软件的主要流程是什么?了解开发一个软件的主要流程对于编程者而言非常重要,它能够让编程者对如何开发一个软件有个整体的认知。开发一个软件的主要流程包括:1)软件前端界面设计;2)后台功能实现;3)前端和后台联合测试;4)软件的打包发布等步骤。

学习一门编程语言,怎么样才算是基本合格了?那就是你能够利用该编程语言编写并发布自己的软件,上传到Github这样的开源平台,如果你的软件受到下载者的好评,那么你对这门编程语言的掌握才算基本合格。遵循上面的软件开发的基本流程,在学习一门编程语言时,就应当思考:1)该编程语言在开发一个软件时,是怎么实现界面的设计的?针对此问题,在后面讨论具体的编程语言该如何学习的小节当中都会述及一下该语言的界面编程方式。2)界面中的每个功能,在后台是怎么实现的?是通过一个函数还是通过一个类?怎样将界面中的一个功能与后台的代码建立连接?3)怎样对开发出的软件的前端与后台进行联合测试,怎样找出软件中的bug?4)测试完成后,怎样发布自己的软件?是通过发布exe桌面端安装程序,还是通过发布网页,还是通过发布APP应用程序?学习一门编程语言,如果能够想明白上面四个问题并实现和发布一个具体软件,那么你对该编程语言的掌握也就过关了。

编程类似于学开车,开车只有上路开才能学会,编程就是要面向实战,通过写软件和做项目才能够学会。例如,如果需要开发一个“加法器”软件来实现任意两个实数的相加,那么该软件的开发流程如图 4-5所示。该图形象地展示了开发一个软件的主要流程。首先需要设计一个“加法器”的界面;然后通过后台编写代码实现单击“等号按钮”自动求和的功能,即鼠标单击等号后将用户输入到界面中的两个实数自动求和,再把结果显示在等号右边的文本框中;接下来将前端界面和后台代码进行联合测试;最后,经过测试确定程序没有问题后将程序打包生成后缀名为exe的软件供用户下载安装。读者在学习某一门编程语言时,建议仿照上面的流程自己编写并发布一个软件,如果能够达到这样的水平,则算是初步掌握了该编程语言。

图 4-5 开发一个软件的主要流程(以开发一个加法器软件为例)

怎么样编写软件的界面,编写软件的界面有哪几种方式?如果想搞清楚上述问题,敬请关注本公众号的下一篇文章《编写软件界面的方式》。

关于人工智能中编程能力和技能训练的更多介绍,可以购买《人工智能怎么学》进一步阅读。

图书购买方式

京东:https://item.jd.com/13395339.html

当当:http://product.dangdang.com/29469230.html

天猫:https://detail.tmall.com/item_o.htm?id=687374654836

为了让图书惠及更多的读者,为更多想学习人工智能的人提供帮助,经过向出版社申请,对图书《人工智能怎么学》的部分内容进行改编和连载。图书《人工智能怎么学》的全部内容包含了初级入门、中阶提高以及高级进阶三个级别的内容。连载的内容主要是初级入门级别,适合想对人工智能进行快速和高效入门的读者,对于已有一定的人工智能学习基础,希望进一步进阶或提高的读者,则需要购买图书《人工智能怎么学》,学习中阶提高以及高级进阶的内容。此外,对于学习人工智能感兴趣的读者,也可以加入知识星球《人工智能怎么学》,知识星球是一个构建学习社群的平台,通过加入《人工智能怎么学》的社群,你将获得更多的学习资料和课程信息。

与作者互动和了解更多信息

想跟作者一起学习人工智能和互动,你可以加入如下社群:

知识星球:https://t.zsxq.com/0aLkVg0os

QQ群:600587177

想了解更多关于人工智能学习及实践的内容,请关注如下媒体:

官方网站:https://bigdatamininglab.github.io

官方微信公众号:人工智能怎么学(可扫描下方二维码或者微信搜索“人工智能怎么学”添加关注)

CSDN:https://blog.csdn.net/audyxiao001

参考文献

  1. Robert C. Martin. 代码整洁之道(第2版)[M]. 韩磊, 译. 北京: 中国工信出版集团, 人民邮电出版社, 2020.

  1. Herb Sutter, Andrei Alexandrescu. C++编程规范:101条规则、准则与最佳实践[M]. 刘基诚, 译. 北京: 人民邮电出版社, 2016.

  1. 杨冠宝. 阿里巴巴Java开发手册[M]. 北京: 电子工业出版社, 2020.

  1. James Gosling et al. The Java Language Specification:Java SE 8 Edition[M]. Upper Saddle River: Addison-Wesley, 2014.

  1. 老九君. C++的发展简史[EB/OL]. https://www.cnblogs.com/ljxt/p/11636342.html, 2019-10-08.

  1. 翁惠玉. C++程序设计:思想与方法(第2版)[M]. 北京: 人民邮电出版社, 2012.

  1. 谭浩强. C++程序设计(第3版)[M]. 北京: 清华大学出版社, 2015.

  1. Siddhartha Rao. Sams Teach Yourself C++ in One Hour a Day(Eighth Edition) [M]. Boston: Pearson, 2017.

  1. Bjarne Stroustrup. Programming:Principles andPractice Using C++ (Second Edition) [M]. Crawfordsville: Pearson, 2014.

  1. Bjarne Stroustrup. C++语言设计和演化[M]. 裘宗燕, 译. 北京: 人民邮电出版社, 2020.

  1. Stephen Prata. C++ Primer Plus(中文第6版)[M]. 张海龙 等, 译. 北京: 人民邮电出版社, 2020.

  1. Stanley B. Lippman, Josée Lajoie,Barbara E. Moo. C++ Primer(中文第5版)[M]. 王刚 等, 译. 北京: 电子工业出版社, 2013.

  1. Stanley B. Lippman. Essential C++(中文版)[M]. 侯捷, 译. 北京: 电子工业出版社, 2013.

  1. 侯捷. STL源码解析 [M]. 武汉: 华中科技大学出版社, 2015.

  1. Ivor Horton. C++标准模板库编程实战 [M]. 郭小虎 等, 译. 北京: 清华大学出版社, 2017.

  1. Brian W. Kernighan, Rob Pike. 程序设计实践 [M]. 裘宗燕, 译. 北京: 机械工业出版社, 2003.

  1. Bruce Eckel. C++编程思想(两卷合订本)[M]. 刘宗田 等, 译. 北京: 机械工业出版社, 2011.

  1. Scott Meyers. Effective C++:改善程序与设计的55个具体做法(第3版)[M]. 侯捷, 译. 北京: 电子工业出版社, 2011.

  1. Scott Meyers. More EffectiveC++:35个改善编程与设计的有效方法[M]. 侯捷, 译. 北京: 电子工业出版社, 2020.

  1. Scott Meyers. Effective STL:50条有效使用STL的经验[M]. 潘爱民 等, 译. 北京: 电子工业出版社, 2013.

  1. 陆文周. Qt 5开发及实例(第4版)[M]. 北京: 电子工业出版社, 2019.

  1. 王维波. Qt 5.9 C++开发指南 [M]. 北京: 人民邮电出版社, 2018.

  1. 冯振, 郭延宁, 吕跃勇. OpenCV 4快速入门 [M]. 北京: 电子工业出版社, 2020.

  1. ghscarecrow.Java的发展历程[EB/OL]. https://blog.csdn.net/ghscarecrow/article/details/82318636, 2018-09-02.

  1. JMCui.Java的发展历程[EB/OL]. https://www.cnblogs.com/jmcui/p/11796303.html, 2019-11-07.

  1. 明日科技. Java从入门到精通(第5版)[M]. 北京: 清华大学出版社, 2019.

  1. Kathy Sierra, Bert Bates. Head First Java (Second Edition) [M].Sebastopol: O’Reilly, 2005.

  1. Bruce Eckel. Java编程思想(第4版)[M]. 陈昊鹏, 译. 北京: 机械工业出版社, 2007.

  1. Cay S. Horstmann. Java核心技术 卷I:基础知识(第11版)[M]. 林琪 等, 译. 北京: 机械工业出版社, 2019.

  1. Cay S. Horstmann. Java核心技术卷Ⅱ:高级特性(第11版)[M]. 陈昊鹏, 译. 北京: 机械工业出版社, 2020.

  1. Joshua Bloch. Effective Java(中文第3版)[M]. 俞黎敏, 译. 北京: 机械工业出版社, 2019.

  1. 周志明. 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)[M]. 北京: 机械工业出版社, 2019.

  1. Brian Goetz. Java并发编程实战 [M]. 童云兰 译. 北京: 机械工业出版社, 2012.

  1. Kamalmeet Singh. Java设计模式及实践 [M]. 张小坤 等, 译. 北京: 机械工业出版社, 2013.

  1. 明日科技. Java Web从入门到精通(第3版)[M]. 北京: 清华大学出版社, 2019.

  1. 未来科技.HTML5+CSS3+JavaScript从入门到精通[M]. 北京: 中国水利水电出版社, 2017.

  1. Elisabeth Robson, Eric Freeman. Head First HTML与CSS(第2版)[M]. 徐阳 等, 译. 北京: 中国电力出版社, 2013.

  1. Adam Freeman. HTML5权威指南 [M]. 谢廷晟 等, 译. 北京: 人民邮电出版社, 2014.

  1. Eric A. Meyer, Estelle Weyl .CSS权威指南(第4版)[M]. 安道, 译. 北京: 中国电力出版社, 2019.

  1. David Flanagan. JavaScript权威指南(第7版)[M]. 李松峰, 译. 北京: 机械工业出版社, 2021.

  1. 许令波. 深入分析Java Web技术内幕(修订版)[M]. 北京: 电子工业出版社, 2014.

  1. Nicholas S. Williams. Java Web高级编程 [M]. 王肖峰, 译. 北京: 清华大学出版社, 2015.

  1. 孙卫琴. Tomcat与Java Web开发技术详解(第3版)[M]. 北京: 电子工业出版社, 2019.

  1. 郭霖. 第一行代码Android(第3版)[M]. 北京: 人民邮电出版社, 2020.

  1. 欧阳燊. Android Studio开发实战:从零基础到App上线(第2版)[M]. 北京: 清华大学出版社, 2018.

  1. Dmitry Jemerov, Svetlana Isakova. Kotlin实战 [M]. 覃宇 等, 译. 北京: 电子工业出版社, 2017.

  1. Kristin Marsicano, Brian Gardner, Bill Phillips, Chris Stewart. Android编程权威指南(第4版)[M]. 王明发, 译. 北京: 中国工信出版集团, 人民邮电出版社, 2021.

  1. 刘望舒. Android进阶之光(第2版)[M]. 北京: 电子工业出版社, 2021.

  1. 邓凡平. 深入理解Android: Java虚拟机ART [M]. 北京: 机械工业出版社, 2019.

  1. 任玉刚. Android开发艺术探索[M]. 北京: 电子工业出版社, 2015.

  1. 林学森. 深入理解Android内核设计思想(上、下册)(第2版)[M]. 北京: 人民邮电出版社, 2017.

  1. 何红辉, 关爱民. Android 源码设计模式解析与实战(第2版)[M]. 北京: 人民邮电出版社, 2017.

  1. Christian Keur, Aaron Hillegass. iOS编程(第6版)[M]. 王风全, 译. 武汉: 华中科技大学出版社, 2019.

  1. 张益珲. Swift 4从零到精通iOS开发[M]. 北京: 清华大学出版社, 2019.

  1. Aaron Hillegass, Mikey Ward. Objective-C编程(第2版)[M]. 王蕾 等, 译. 武汉: 华中科技大学出版社, 2015.

  1. Matthew Mathias, John Gallagher. Swift编程权威指南(第2版)[M]. 陈晓亮, 译. 北京: 人民邮电出版社, 2017.

  1. Kazuki Sakamoto, Tomohiko Furumoto. Objective-C高级编程:iOS与OS X多线程和内存管理[M]. 黎华, 译. 北京: 人民邮电出版社, 2013.

  1. Erica Sadun. iOS Auto Layout开发秘籍(第2版)[M]. 孟立标, 译. 北京: 清华大学出版社, 2015.

  1. 珲少. iOS性能优化实战[M]. 北京: 电子工业出版社, 2019.

  1. 罗巍. iOS应用逆向与安全之道[M]. 北京: 机械工业出版社, 2020.

  1. Gaurav Vaish. 高性能iOS应用开发[M]. 梁士兴 等, 译. 北京: 人民邮电出版社, 2017.

  1. 刘浩. MATLAB R2020a完全自学一本通 [M]. 北京: 电子工业出版社, 2020.

  1. 天工在线. MATLAB 2020从入门到精通 [M]. 北京: 中国水利水电出版社, 2020.

  1. 苗志宏, 马金强. MATLAB面向对象程序设计[M]. 北京: 电子工业出版社, 2014.

  1. 徐潇, 李远 . MATLAB面向对象编程——从入门到设计模式(第2版)[M]. 北京: 北京航空航天大学出版社, 2017.

  1. 王文峰 等. MATLAB计算机视觉与机器认知[M]. 北京: 北京航空航天大学, 2017.

  1. 杨淑莹, 郑清春. 模式识别与智能计算——MATLAB技术实现(第4版)[M]. 北京: 电子工业版社, 2019.

  1. Eric Matthes. Python编程:从入门到实践(第2版)[M]. 袁国忠, 译. 北京: 人民邮电出版社, 2020.

  1. Magnus Lie Hetland. Python基础教程(第3版)[M]. 袁国忠, 译. 北京: 人民邮电出版社, 2018.

  1. Luciano Ramalho. 流畅的Python [M]. 安道 等, 译. 北京: 人民邮电出版社, 2017.

  1. Brett Slatkin. Effective Python:编写高质量Python代码的90个有效方法(第2版)[M]. 爱飞翔, 译. 北京: 机械工业出版社, 2021.

  1. Jan Erik Solem. Python计算机视觉编程[M]. 朱文涛 等, 译. 北京: 人民邮电出版社, 2014.

  1. Andreas C. Müller. Python机器学习基础教程[M]. 张亮, 译. 北京: 人民邮电出版社, 2018.

  1. 魏坤. Julia语言程序设计[M]. 北京: 机械工业出版社, 2018.

  1. 郝林. Julia编程基础(第2版)[M]. 北京: 人民邮电出版社, 2020.

  1. Ben Lauwens, Allen B. Downey. Think Julia [M]. Sebastopol: O’Reilly,2019.

  1. Jalem Raj Rohit. Julia Cookbook [M]. Birmingham: PacktPublishing, 2018.

  1. Zacharias Voulgaris. Julia数据科学应用 [M]. 陈光欣, 译. 北京: 人民邮电出版社, 2018.

  1. 朱红庆. Julia机器学习核心编程:人人可用的高性能科学计算[M]. 北京: 电子工业出版社, 2019.

  1. Norman Matloff. R语言编程艺术[M]. 陈堰平, 译. 北京: 机械工业出版社, 2013.

  1. Andy Nicholls, Richard Pugh, Aimee Gott. R语言入门经典[M]. 姜佑 等, 译. 北京: 人民邮电出版社, 2018.

  1. Robert I. Kabacoff. R语言实战(第2版)[M]. 王小宁 等, 译. 北京: 人民邮电出版社, 2016.

  1. Hadley Wickham. 高级R语言编程指南[M]. 潘文捷 等, 译. 北京: 机械工业出版社, 2020.

  1. Brett Lantz. 机器学习与R语言(第2版)[M]. 李洪成 等, 译. 北京: 机械工业出版社, 2017.

  1. 程乾, 刘永, 高博. R语言数据分析与可视化从入门到精通[M]. 北京: 北京大学出版社, 2020.

  1. 周伟明.程序员的十层楼(一、二、三)[J]. 程序员, 2009(6):134-136;2009(7):118-120; 2009(8):134-136.

注:本文版权归作者个人所有,如需转载请联系作者,未经授权不得转载。

开发一个软件的主要流程相关推荐

  1. vc6开发一个抓包软件_开发一个软件多少钱?传统app开发与0代码app制作方法对比...

    开发一个软件多少钱?app开发难吗?app制作需要哪些流程? app开发很难:按照传统的开发方式需要最少5名以上的技术人员,团队配合花费3个月左右的时间才能搞定,成本20万以上. app开发也很简单: ...

  2. 一个软件公司需要多少前端_内幕!软件外包公司开发一个软件需要多少钱?

    软件外包公司坑?开发一个软件要多少钱? 当你已经了解到软件能给你带来的好处之后,是不是有些动心了? 想要开发一款属于自己的APP小程序,可是却不知道该如何开始? 万事开头难,想着去软件外包公司问一下价 ...

  3. 自己怎么开发一个软件app、如何开发一个app系统软件?

    自己怎么开发一个软件app.如何开发一个app系统软件? ​华盛恒辉开发app软件的办法如下: 1.华盛恒辉首先本人明白需求,懂代码,熟习开发流程. 2.华盛恒辉APP开发后期需求理解产品定位. 3. ...

  4. 开发一个app应用的流程有哪些

    想要知道开发一款app的难度,可以从app开发的流程来进行了解,这样就对于app开发有一个大款的认知,今天小编总结了一个app的开发到上线的过程,希望可以帮助到大家.要开发一个app,首先要做的就是需 ...

  5. vc6开发一个抓包软件_开发一个软件多少钱?3种软件开发公司报价

    开发一个软件多少钱?现在随着智能手机的发展,各种各样的app大受市场欢迎,同时也方便了大家日常生活,开发一个自己的app软件成为不少传统企业及创业者的首选.但是如何选择靠谱的开发公司呢?同样的app开 ...

  6. vc6开发一个抓包软件_开发一个软件要多少钱?app软件开发的费用

    很多人咨询app开发相关的问题,大多数人最关心的就是:开发一个软件要多少钱?在本文中,我们将为大家分析这个经典问题:app软件开发的费用是多少? 对于行业中的任何人来说,这都是一个棘手的问题,即使你已 ...

  7. 开发一个软件,到底需要花多少钱?

    开发一个软件,到底需要花多少钱?下面给大家讲讲 对于很多互联网的创业者来说,评估前期的创业成本是很重要的.在这几年的创业大潮中,伴随着"互联网+"和"互联网思维" ...

  8. 手把手教学:如何用低代码平台开发一个软件?

    编者按:作为近年来在IT界掀起一轮热议的快速开发工具,低代码一直为大家所好奇,本文以低代码平台为主题,谈一谈为什么要用低代码.怎么用低代码. 为什么要选择低代码开发 低代码快速开发这个概念火爆,大概要 ...

  9. [win32]c++使用win32开发一个窗口的完整流程【转】

    本文为博主学习过程中整理发布,如有侵权请告知 原文链接: http://blog.csdn.net/tcjiaan/article/details/8497535 一.WinMain入口点 我们在学习 ...

最新文章

  1. 不会一致性hash算法,劝你简历别写搞过负载均衡
  2. 普通管理类程序开发之难度系数、层次之说法,可以看看自己停留在哪个层次,不足之处,请大家一起补充...
  3. #舍得Share#Flash Media Server4.5迅雷高速下载地址by lwxshow
  4. 用lemon测交互题
  5. Apache Flink 零基础入门(一):基础概念解析
  6. Property or method xxxx is not defined on the instance but referenced during render.
  7. MySQL purge 线程
  8. varchar类型字段排序混乱问题
  9. javascript让firefox支持innerText
  10. 数据库分页技术的实现及高效率分页技术方案
  11. 任务之间的依赖(NSOperation)
  12. 【9.28作业】论XX信息系统建设项目的范围管理
  13. MySQL数据库通过data文件夹恢复数据库信息
  14. Lightroom:统一照片的曝光度
  15. 春天该吃的时令菜 春季时令菜谱_
  16. 云平台车载终端开发项目日志
  17. 在ubuntu中添加EPSON L485打印机
  18. 关于南蛮图腾递推的问题
  19. rk3399安装linux的USB没法用,[RK3399] Type-C改为普通USB
  20. ICS计算系统概论LC3汇编实验Lab5—中断、递归解决汉诺塔问题

热门文章

  1. 阿里云快速搭建dockercompose环境
  2. Ubuntu更换阿里源和清华源
  3. 【Matlab PolySpace 代码静态分析使用教程】
  4. 艾司博讯:拼多多新商家怎样有效选款
  5. Google Play Game Services LeaderBoard
  6. 音频转文字软件哪个好?建议收藏这些软件
  7. Ribbon学习笔记一
  8. 微软outlook服务器,Outlook 和 Outlook 服务器之间的Outlook Web App
  9. java实现五子棋_java实现五子棋
  10. [ILINK32 Warning] Warning: Unexpected error detected during link