当前位置: 首页 > 编程日记 > 正文

读《大道至简》第六章感想

语言确实是种工具,但我们不应该忽略工具的作用。我们想什么,去做什么事会决定使用什么工具,但反过来我们有什么工具也会决定我们怎么想,怎么做事。如果工具没有提供这个功能,你就不会向这方面想,也就不会这样做。我们编程的时候,多数不是全部事先想好再写的,而是边写边想,你会发现你写得越多,你就会想得越多。我觉得,软件不是设计出来的,而是进化出来的。从这角度来说,编程语言是有好坏之分的,简单的说,就是越能帮助思考的语言就越好,要灵活,表达力强,少约束。编程语言就如同数学符号。数学符号也是种工具,好的数学符号会帮助使用者思考,更奇妙的是似乎符号本身也会思考。编程语言会引导思考。语言在设计或者演化的时候会提倡某种思考方式。有些语言提倡函数式编程,有些语言提倡面向对象,有些语言提倡结构化编程。语言确实一种工具,但它可以帮助我们思考,甚至决定了我们的思考方式。

作者向我们介绍方法,作者提到推动逻辑向前发展的动力是“方法”和“方法论”。方法是长期实践的结果,作者以GoF为例,他的成功之道即为不断实践,不断总结,抽取,归纳这些规律。看到这里不由想到了王老师说的,没有学不会编程的人,只要动手去实践,也不由使得我意识到了实践的重要性,想到这里不由得心生惭愧,自己只会照猫画虎,在编程的时候总是以完成任务为目的,从来不到做一点点,多实践一点。从来不回去多考究推敲一遍代码。

工程理论是包含组织学的。如果说工程关心的是“需求”、“配置”和“文档”等等这样一些要素,那么这样的工程还是停留在技术层面的:关注的还是工程的实现细节,而非目标。从角色的角度来看,这是项目经理和技术经理所共同关注的那一部分。 然而项目经理还必须关注于人力资源、项目资金以及多个项目之间的协调等等。这些与工程本身并没有直接关系,而是“组织”方面的内容。工程不是做的,是组织的。不是有了模型,有了项目经理和开发人员,大家按照模型去做就可以成功的,这又不是煮饭烧菜,有原料人手和菜谱就可以的。这需要项目经理起好领头人的作用,组织这个工程中的各个角色,了解每一个人的特点和所长,把他们分配到适合的位置上,进行弹性分工,让每个人的价值在团队中得到最大的发挥。组织好工程中的各个角色,使得大家分工明确,步调一致,才能共同完成好项目。

实现是开发软件的本质需求。为了实现,我们设计了数据结构或逻辑结构来映射物理模型,我们不断的积累和实践来总结和归纳方法。分析、设计和编程因此出现顺序和实现顺序不一样。由于“实现”的需要,我们有了团队组织、有了过程模型、有了语言、有了工具。“实现”如同上帝之手一般,推动着软件工程的理论体系的形成。

转载于:https://www.cnblogs.com/fan-xiaofan/p/4945956.html

相关文章:

Java学习总结:1

Java的特性 1.简洁有效 2.可移植性 3.面向对象 4.解释型 5.适合分布式计算 6.拥有较好的性能 7.健壮、防患于未然 8.具有多线程处理能力 9.具有较高的安全性 10.是一种动态语言 11.是一种中性结构 Java在开发上有三个分支 一.Java EE(Java企业级开发) 二.Java SE(Java标准版…

2022-2028年中国轻型输送带行业市场发展规模及市场分析预测报告

【报告类型】产业研究 【报告价格】4500起 【出版时间】即时更新(交付时间约3个工作日) 【发布机构】智研瞻产业研究院 【报告格式】PDF版 本报告介绍了中国轻型输送带行业市场行业相关概述、中国轻型输送带行业市场行业运行环境、分析了中国轻型输…

从零开始写个编译器吧 - 单词化简述(Tokenization)

2019独角兽企业重金招聘Python工程师标准>>> 实际上,所谓的源代码,我们可以将其视为一段长长的字符串。所谓字符串,即是字符的有序集。但是,字符本身作为编译器的输入单位,粒度实在太小了,因此&…

springboot+mybatis ,出现多于的参数导致查询数据缺少

在springbootmybatis 中,经常会有多于的字段遗留在xml文件中,这种情况正常人会以为会判断空和null状态,不影响sql语句,但是实际上会有影响, 因为在parameter中未定义,是undefined,而不是null和空…

【C4D教程】Octane渲染大师班

【C4D教程】Octane渲染大师班 本套教程共9大章 4小时20分 高清1920X1080 mp4 视频 英语机译中文字幕 大小 17.8G 信息。 云桥网络 平台获取教程 学习使用Cinema 4D和Octane Render创建惊人渲染的过程和工作流程。 实践分析和指导。 7个项目文件可供学习和借鉴。 C4D Octa…

Java学习总结:2

java的注释 /***文档注释*这种注释的内容会被解释成程序的正式文档*/ public class TestDemo {public static void main(String args[]){System.out.println("Hello MLDN");//System的首字母要大写,否则会显示程序包system不存在/*多行注释............*…

Android采用Application总结一下

什么是 Application   Application和Activity,Service由于是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象。用来存储系统的一些信息。通常我们是不须要指定一个Application的,这时系统会自己主动帮我们创建&#xff…

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大…

网页制作常见的问题(怎样兼容IE6/IE7/火狐浏览器)

1、IE6双边距问题&#xff1f; 在IE6的浏览器中明明设置的是10px的margin却为什么显示的是20px的margin其实这个Ie6的一个双边距BUG 例如: <style type"text/css"> body {margin:0} div { float:left; margin-left:10px; width:300px; height:300px; border:1p…

Ubuntu系统---安NVIDIA 驱动后 CUDA+cuDNN 安装

Ubuntu系统---安NVIDIA 驱动后 CUDAcuDNN 安装 --------------------------------------------20190726--------------------------------------------------------------------------------------------- 上接《Ubuntu系统---NVIDIA 驱动安装》。预配置环境&#xff1a;Ubunt…

Maya基础入门学习教程

Maya基础入门学习教程 视频&#xff1a;.MKV, 1280x720, 共57节课 时长 4小时25分钟&#xff0c;3GB 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 指导老师&#xff1a;Shane Whittington Shane Whittington 百度一下 云桥网…

java学习总结:3

逻辑运算 1.’!’(非) 2.与(多个条件一起满足) Java中&&和&都是表示与的逻辑运算符&#xff0c;都表示逻辑运输符and&#xff0c;当两边的表达式都为true的时候&#xff0c;整个运算结果才为true&#xff0c;否则为false。 ’&&的短路功能&#xff0c;当…

asp.net httpmodule 访问页面控件 备忘

用到的时候发现还得找代码&#xff0c;存一个例子方便自己和他人修改&#xff1a; using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls;…

Ubuntu下Sublime Text 3解决无法输入中文的方法

2019独角兽企业重金招聘Python工程师标准>>> 环境&#xff1a; Ubuntu14.04搜狗输入法 for LinuxSublime text 3提示&#xff1a;编译请在非root下进行 本经验目前在Ubuntu14.04环境下&#xff0c;已有搜狗输入法 for Linux和Sublime Text 3的情况下安装成功。 保存…

电子书下载:Building Websites with DotNetNuke 5

下载&#xff1a;http://www.ctdisk.com/file/9941471 转载于:https://www.cnblogs.com/MaxWoods/archive/2012/10/10/2719167.html

Java学习总结:4

面向对象 面向对象的程序设计具有封装性、继承性、多态性。 类的定义语法如下&#xff1a; class 类名称{数据类型 属性(变量);...public 返回值的数据类型 方法名称(参数1&#xff0c;参数2...){程序语句;[return 表达式;] } }定义类 class Book {String title;double pric…

在3ds Max中使用V-Ray 5渲染引擎视频教程

在3ds Max中使用V-Ray 5渲染引擎视频教程 MP4 | 视频&#xff1a;h264, 1280x720 | 音频&#xff1a;AAC, 44.1 KHz, 2通道。AAC, 44.1 KHz, 2 Ch. 技能水平。初学者&#xff5c;类型&#xff1a;电子学习&#xff5c;语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕…

OC实用转换model的工具

OC实用转换model的工具 说明 这是本人写的一个专门用来将json数据直接转换生成Model文件的工具,目的是为了让你从写Model文件的繁琐过程中解脱出来,提升效率以及减少出错的几率,工具的特点如下: 1. 用组合设计模式处理树形数据结构(非线性数据结构) 2. 在调试台中处理生成Model…

后端怎么防止重复提交?(常用的做法)

后端怎么防止重复提交&#xff1f;&#xff08;常用的做法&#xff09; 客户端的抖动&#xff0c;快速操作&#xff0c;网络通信或者服务器响应慢&#xff0c;造成服务器重复处理。防止重复提交&#xff0c;除了从前端控制&#xff0c;后台也需要控制。因为前端的限制不能解决…

利用MAC OS X 自带的磁盘工具提取光盘镜像ISO文件

虽说渐渐地Mac笔记本基本告别内置光驱时代了&#xff0c;随着网络的普及&#xff0c;使用到光驱的机会也渐少&#xff0c;但有时又难免需要光驱&#xff0c;比如二货出版社的随书光盘等…我们可以通过USB外置光驱将光盘内容提取为ISO文件保存到电脑里&#xff0c;方便以后可以随…

Java学习总结:5

面向对象 对象数组 引用数据类型也可以定义数组 格式&#xff1a; 1.对象数组的动态初始化 类名称 对象数组名称 new 类名称 [长度];动态初始化默认情况下&#xff0c;数组的每一个元素都是其对应的默认值null。 class Book5{private String title;private double price;…

Maya初学者完整的3D动画大师班视频教程

Maya初学者完整的3D动画大师班视频教程 时间13小时30分 包括课程项目文件 1280X720 MP4 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 教程大小解压后&#xff1a;8.38G Maya初学者。完整的3D动画大师班 百度一下 云桥网络 平台…

jQuery-1.9.1源码分析系列(四) 缓存系统

先前在分析Sizzle的时候分析到Sizzle有自己的缓存机制&#xff0c;点击这里查看。不过Sizzle的缓存只是对内使用的&#xff08;内部自己存&#xff0c;自己取&#xff09;。接下来分析jQuery可以对外使用的缓存&#xff08;可存可取&#xff09;。 首先需要明白jQuery缓存需要解…

CBA 赛程的笔记 - 北京首钢

2014-11-01 19:35北京首钢103:89广东宏远结束技术统计 发挥不错&#xff0c;打的比较好&#xff01;2014-11-05 19:35八一双鹿89:100北京首钢结束技术统计 第一节国内球员打的太屎&#xff0c;最后一节国内球员发挥不错&#xff01;2014-11-07 19:35浙江稠州107:116北京首钢结束…

个人技术生涯的感悟(2)

很多时候&#xff0c;一门门槛很低的编程语言对于初学者的帮助是非常大的&#xff0c;从而决定这个人的技术路线的选择。 在经历过大一下学期对C&#xff0c;和C的迷茫之后&#xff0c;在大二上学期&#xff0c;学校在搞一个网页设计比赛&#xff0c;正好和两个朋友一起参赛。开…

HtmlAgilityPack 处理通配的contains

//选择不包含class属性的节点 var result node.SelectNodes(".//span[not(class)]"); //选择不包含class和id属性的节点 var result node.SelectNodes(".//span[not(class) and not(id)]"); //选择不包含class"expire"的span var result node…

游戏风格化角色创建入门指南视频教程

游戏风格化角色创建入门指南视频教程 时间 33小时 包括项目文件 1920X1080 MP4 语言&#xff1a;英语中文字幕&#xff08;根据原英文字幕机译更准确&#xff09;原英文字幕 游戏中的风格化角色创建入门指南 百度一下 云桥网络 平台huo取 教程&#xff01; 信息。 教程33小…

Java学习总结:6

String类(接上篇) 字符串的拆分 public class Test1_1_2_1 {public static void main(String args[]){String str "hello world";String result[] str.split(" "); //以空格作为间隔for(int x0;x<result.length;x){System.out.print(result[x]"…

java面试常见问题之Hibernate总结

1 Hibernate的检索方式 导航对象图检索&#xff08;根据已经加载的对象&#xff0c;导航到其他对象。&#xff09; OID检索&#xff08;按照对象的OID来检索对象。&#xff09; HQL检索&#xff08;使用面向对象的HQL查询语言。&#xff09; QBC检索&#xff08;使…

HDU 4267 线段树 离散点区间更新, 自叶子节点至根单点查询

题意&#xff1a; n个数字 下面n个数字表示数列 2个操作 1 [u, v] k add [u,v ]区间 &#xff08;u点要计算&#xff09;每隔k个位置&#xff0c;该数字add 2 pos 询问 pos下标的值&#xff08;下标从1开始&#xff09; 思路&#xff1a; 因为k很小&#xff0c; 可以直接存 k…