大神进 详细的讲一下软件的开发步骤 谢谢

我想知道一个软件是怎么从设想到代码到UI最后发布的? 比如adobe系列
UI又是怎么和枯燥的代码结合的 也就是说鼠标点的按钮背后的意义是什么?
网页软件是怎么实现的? 比如google drive
我需要知道重点的节骨眼 也就是不为人知的瓶颈
不要说什么1.分析 2.设计 3.编码 4.测试 5.维护
问答网站就那么几个 这些套话谁都搜得到 复制党不要找骂 好伐?
我敬候大神!

2 个回答

我尝试用你能理解的话来简单描述下你常见的两种程序的开发过程。

首先说下本地运行的软件,Adobe Photoshop 和 iPhone 上的 Angry Birds 都属于此类。现代的程序语言或框架都是将界面和代码分离开写的,比如说我要写一个计算器程序,那么我先要设计计算器程序的界面,设计草图如下:

image

设计软件界面通常都是拖拖拽拽,也有是直接用代码写的。你需要用代码写明我要放的是什么对象,是一个按钮还是一个文本框,再指定显示的位置,显示的样式等等。不管你是拖拽的,还是代码写的,最终都是要变成代码的。

画完界面以后,你就可以处理一些界面上的事件了。对于上面的计算器程序来说,我们要处理各个数字被按下去的事件,加减乘除被按下去的事件,清屏按钮被按下去的事件,等于按钮被按下去的事件等等。这些事情是我们要在代码里写清楚的,这就是程序的逻辑和算法。程序接收界面上发过来的输入,经过各种或繁或简的逻辑判断处理之后,再把运算结果输出到程序界面上去,即那个结果框。这样就完成了一个初步的程序开发。

当然了,事后你还是需要做非常多的工作的,比如测试程序可能存在的漏洞(附言:新闻上说的xx软件存在某些漏洞不是指程序代码写漏了。。。而是程序的逻辑或者算法存在问题)

Web程序虽然也和本地程序一样代码分离,但实际上却大有不同。网页的界面通常都是用代码写成,很少是直接拖拽,然后再用CSS来控制样式。比如我们写个略晓的提问页面,设计草稿如下:

image

我们首先用html写好页面上的元素,一个问题标题框,一个问题补充框,一个提交按钮,再用CSS把页面美化一下。这个页面是在用户的浏览器里呈现的,而用户在这个页面填写的数据要提交到我们的服务器上处理,所以你会发现网站的url总是变啊变啊变啊的。
(未完待续,等新版上线了我再回来补充哈)