这里说的架构是只软件的架构。在谈及架构之前,需要想一下软件,什么是软件,软件的生存环境,以及软件的功能与实现目标。当初感觉:“多好笑啊,软件就是运行在计算机里边的啊,生存环境就是计算机嘛,功能目标就是帮助人们干活呗”,不错,确实这样,但是随着时间推移,觉得应该重新回到最初点来认识这个词,重新思考什么是软件,考虑软件的特性和软件的生态环境。

理解某个概念,或许首先应该从汉字本身理解,汉字表意文字,每个汉字都有含义(除了因意外来词),直观的字面意思或许就是我们区别某个概念的原始钥匙。从字面最原始的意思去理解某个概念本人觉得是非常重要的。

软件,我们大陆成为“软件”,台湾成为“软体”,叫法不同,但是对比,会发现有个共同的字,就是“软”字,这个软字充分体现了它的特点,软,意味这需要其他物体的支撑,不能独自存在,必须依赖“硬件”或者“硬体”来实现生存。从计算机的角度来说,工作的进行是依靠执令,执令需要按照特定的顺序来组织,按照特定的方式组织的执令流,就是程序,大陆叫做“程序”,台湾叫做“程式”,“程序”,字面理解,根据某个过程而组织起来的命令序列,“程式”,字面理解,根据某个过程组织命理的形式,其特点都是对命令的特定组织形式。而这个命令如何组织,就需要根据现实需要,模拟人的工作方式来指定这个组织形式,建构软件,本身就是对现实世界事物的模拟,是现实世界的模拟映像,而这个模拟,正常运行需要的一切资料(除了硬件支撑),就是软件。

计算机是为人服务的,是帮助人们生活工作的,那么计算机肯定就是帮助人们完成现实中的某些工作,所以计算机软件就是对现实事物的虚拟实现,发挥计算机计算速度快,存储容量大的优势,来延伸人脑的功能,提高生活工作的效率。计算机程序本身就是对人类的思维现实世界的模拟实现,是现实世界的事物的虚拟映像,它根源于现实世界。那么,只要现实世界的某个事物(对应某个软件)正常存在,可以正常运作,那么对应的软件就应该也可以正常存在,正常运行,二者是对应的。进一步说而多数计算机软件遇到的问题的解决方式就在现实世界中。建立虚拟世界和现实世界的对比思维,或许使得我们构建软件过程的某些困惑豁然开朗。一个自然界完整事物,正常的存在运行,那么对应的计算机软件就应该可以实现,并且正常运行。

“道法自然”,这句话不错,软件取法自然或许也是一种思维途径。

触及软件架构(个人随笔)相关推荐

  1. 读《周志明的软件架构课》--学习笔记和感想随笔

    主要记录对周老师的<周志明的软件架构课>的学习笔记,本篇章是对课程不可变基础设施部分的学习,从虚拟化的技术理解容器技术的产生和发展,从部署运维角度理解应用的封装,从网络虚拟化理解容器网络, ...

  2. 软件开发延期引发纠纷-律师随笔

    软件开发延期引发纠纷-律师随笔 吴国平      北京市隆安律师事务所 笔者曾经承办多起软件开发合同纠纷,部分案件由法院判决,部分案件在仲裁委员会仲裁结案.笔者发现仲裁委员会在认定软件纠纷案件时的思路 ...

  3. php输出甲子年,六十随笔 (献给自己的甲子年)

    六十随笔 (献给自己的甲子年) 总感觉,一个甲子那是很久远的事情,却在我们身边转瞬滑过,真是谁也抵抗不了时间的磨砺. 2012年是龙年的壬辰年,12月份迎来了我的六十周岁甲子年. 六十个春寒秋月,六十 ...

  4. 软件开发随笔系列一——分布式架构实现

    软件开发随笔系列一--分布式架构实现 文章目录 软件开发随笔系列一--分布式架构实现 理论基础 分布式架构的实现 内核框架 应用开发 基础设施 服务接入 监控 日志监控 调用链监控 度量指标监控 健康 ...

  5. 1024程序员节前夕,Bug与Debug的随笔

    bug的本意是指昆虫.小虫.损坏.缺陷等意思,在互联网时代还有一种引申意义,用来形容某人/物超乎想象的厉害,那简直就是开挂的人生,系统的bug! 一般地,在码农的世界了,bug是在电脑系统或程序代码中 ...

  6. 专访架构师周爱民:谈企业软件架构设计 1

    最近在网上读到了"杀不死的人狼--我读<人月神话>"系列文章.是周爱民关于<人月神化>的读书心得.<人月神化>在软件工程里一本很有分量的书,讲述 ...

  7. 专访架构师周爱民:谈企业软件架构设计[转]

    这点说的很好,要从整体上考虑,不要过于追求细节,要站在巨人的肩膀上. 转载地址:http://blog.csdn.net/EricLee00/archive/2007/03/19/1533572.as ...

  8. 如何设计网络应用:让软件架构101在项目早期做出正确的决定

    全文共6320字,预计学习时长19分钟 如果你想建立自己的网络应用程序.你有创建的理念,但现在的关键是建立正确的架构. 在这篇文章中,我们将讨论这些关键内容: ·什么是软件架构? ·为什么软件架构很重 ...

  9. 分布式软件架构——单体架构

    序言 当一项大工程需要大量人员共同开发,并保证它们分布在网络中的大量服务器节点能够同时运行,那么随着项目规模的增大.运行时间变长,它必然会受到墨菲定律的无情打击. Murphy's Law:Anyth ...

最新文章

  1. sublime text3 格式化html代码
  2. 编程思想之多线程与多进程——以操作系统的角度述说线程与进程
  3. python画图哆啦a梦-使用Python的Turtle绘制哆啦A梦实例
  4. Tomcat Caused by java lang OutOfMemoryError PermGen space
  5. 拖机软件Betwinnbsp;VSnbsp;2.0.0.368+破解…
  6. [Python从零到壹] 四十三.图像增强及运算篇之图像点运算和图像灰度化处理
  7. 为什么要发布海外新闻稿,海外稿件怎么写
  8. ESP-BOX LVGL ask_wdt: Task watchdog got triggered问题 物联网
  9. hdu2822(会双搜后再写次)
  10. 2019年架构软考论文押题(二)
  11. c语言300行代码大作业,C语言300行代码
  12. C语言的运算符和表达式
  13. NOIP2016——蚯蚓
  14. 匿名内部类会导致内存泄露
  15. 软件测试工程师如何优雅的“甩锅”
  16. Vue的快速入门通俗易懂(学习笔记)
  17. RT-Thread:U盘读写
  18. 第一范式、第二范式、第三范式、巴斯-科德范式、第四范式、主码、候选码、码详解
  19. 云服务器Windows server 2012 R2 搭建网站
  20. python-查找字符串位置

热门文章

  1. 关于binary diff / patch 差分补丁工具的那些事
  2. 5GMM和EMM service request介绍
  3. python儿童入门教程-python儿童教程
  4. 2022/07/25 吉软 Java基础(10)面向对象——多态
  5. targetTouches、touches、changedTouches的具体区别
  6. harris角点检测c语言,Harris角点检测原理及实现
  7. 安全军火库:渗透测试工具流行性大调查
  8. 入门必看 | 如何高效实现矩阵乘?万文长字带你CUDA入门
  9. twelfth day for learning
  10. iOS开发:iPhone设备图片、音乐、视频获取实践