程序员眼中的Program层次模型

程序员眼中的Program层次模型

Program是给用户使用并且需要满足用户需求的载体,而程序员作为用户与计算机之间交互的协调者,需要用一定的方法与工具来编写程序。Program本身天然是分层次的。

  1. 1. 首先位于最低层的是计算机能明白的0101,由于我们的人脑不是计算机的这个脑袋,这么的多的0101 人脑可不知道Program在干什么,或许人脑接上电流还能工作就能明白0101到底在干什么:)
  2. 2. 在这之上于是有了底层编程语言(包括低级语言与高级语言),比如汇编,C,C#,JAVA等,这个层次的语言适合与开发与计算机交互控制相关的工具。
  3. 3. 然后是数据+逻辑层,理解这个层对于Program才有了本质的理解,不管是什么样的Program都逃不出这些。所以对Program本质的回答是数据与逻辑,当然Program的原子可能是有对象来表示。数据是一种状态的代名词,而逻辑可能用从语言层面的If Else和While等来组合成复杂的业务逻辑。
  4. 4. 至于数据放在什么变量里面,逻辑在什么地方便是另外一个分析开发方法层次于是有面向对象与面向过程之分,面向过程认为数据应该与行为逻辑分离,而面向对象的观点认为数据和行为逻辑统一存在与对象中。
  5. 5. 然后是为了更加方便搭建大型的应用程序需要一定的辅助支撑,于是框架便承担了Program辅助作用,起到加速开发的作用,比如Net Framework,J2EE等。现在大型程序基本上不会自己从底层编程编程语言做起,也就是你不可能用C与C++去编写大型的程序,因为程序库的编写以及库集成的难度以及稳定性都不允许企业从最基础的做起,而是应该选择现成的编程框架来扩展实现自己的需求。当然有点人抱怨这些库不好用,老是想着自己去一点一滴开发,实际上不是不好用而是不懂得怎么用。另外也有人抱怨这些库性能太低,可事实上这些库的性能以及质量都不低,否则这些框架的开发公司没饭吃了。
  6. 6. 然后是为了满足Program的功能与质量要求是设计层。架构就是使得Program有合理的体系结构并适合企业开发资源的需求,架构就是在需求和资源之间找到合理的结合点。架构本身就是Program组件以及组件如何通信与关系问题的解决方法。在设计层内部有详细设计,比如对象职责定义,行为划分以及具体的接口定义等。
  7. 7. 最后是具体的业务应用层,Program最终的目的就是业务应用。Program应该尽量满足业务的需求,而不是业务需求来满足Program。同时Program要能根据业务流程的变化快速响应需求,也就是IBM的Ondemand。通过组装架构层次的组件来达到完成业务应用的目的。
  8. 不知不觉刚好是7层,颇有和ISO的网络模型7层的意味,不过是个人对Program认识的总结。

 

上面的Program层次模型图。

转载于:https://www.cnblogs.com/zengyongjoy/archive/2010/07/22/1783241.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110751.html原文链接:https://javaforall.net

(0)
上一篇 2021年8月7日 上午8:00
下一篇 2021年8月7日 上午9:00


相关推荐

  • 解决 Pycharm 运行 ipynb 时显示 Jupyter package is not installed 问题

    解决 Pycharm 运行 ipynb 时显示 Jupyter package is not installed 问题原因之一在安装 Jupyternoteb 时 加入了 userpython mpipinstallj 解决方案卸载 Jupyternoteb mpipuninstal 安装 Jupyternoteb mpipinstallj 参考 jetbrains Jupyterpacka if

    2025年12月3日
    10
  • php 正则获取邮箱,PHP 邮箱正则表达式[通俗易懂]

    php 正则获取邮箱,PHP 邮箱正则表达式[通俗易懂]PHP邮箱正则表达式作者:PHPYuan时间:2018-07-0900:01:10PHP邮箱正则表达式代码如下:/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,})$/实例$mail=’runoob@runoob.com’;//邮箱地址$pattern=”/^[_a-z0-9-]+(.[_a-z0-9-…

    2022年6月17日
    30
  • 百度地图API开发

    百度地图API开发1,申请密钥:自己的秘钥2,初始化头文件3,创建一个盛放地图的div:4,初始化地图:5,丰富地图功能:*添加地图控件:map2.addControl(newBMap.Navigatio

    2022年7月1日
    33
  • 公钥和私钥原理

    公钥和私钥原理以下为转载 公钥和私钥原理 2005 年 03 月 01 日 17 06 00 阅读数 22313 nbsp nbsp nbsp nbsp nbsp 一直以来对公钥和私钥都理解得不是很透彻 感觉到模棱两可 心里直打鼓呢 公钥怎么会事 私钥怎么会事 工作原理是怎么的 今天在网上找了半天 通过查看大家对这个密钥对的理解 总算弄清楚了 咱就把我的心得写出来给大家对密钥对有疑问的同志们看看 nbsp nbsp nbsp nbsp nbsp 公钥和私钥就是俗称的不对称加密方式 是从以前的对称加密

    2026年3月19日
    2
  • linux wine qq2017,20170506-linux下最新WineQQ8.9.1安装教程

    linux wine qq2017,20170506-linux下最新WineQQ8.9.1安装教程本次教程是我根据很多前辈的文章整理出来的。linux下安装QQ的方法有很多,比如用genymotion安装安卓版qq,或者购买crossover后安装deepinQQ,不过,最常用的还是使用wine安装QQ,不过如果用WineWindowsProgramLoader执行QQ安装程序的话会遇到很多BUG,比如无法输入用户名或者无法输入中文等。谈到wine不得不说一下winetricks和win…

    2025年9月1日
    44
  • 拉链表的实现过程[通俗易懂]

    拉链表的实现过程[通俗易懂]拉链表的优势我就不说了,具体请参考百度百科:拉链表-百度百科推荐一个比较详细的参考文章:拉链表示例主要总结一下实现过程:分析:拉链表就是用来存储变化的数据的,每一份数据都有对应的有效期,我们需要进行的操作就是将变动的数据进行新增,同时将变动对应的前一条数据的有效期进行变更。说明:一般都是今天处理昨天的数据,本文所说的当天为所处理的数据的产生的当天。在这之前需要熟悉一下需要用到的表:表1:订单表(记录原始的数据)表2:增量数据表(记录每日变更的数据)表3:历史拉链表(我们要得到的就是这张表

    2022年10月9日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号