读《大道至简》(一)

大道至简,书如其名,把我们认为很难得任务简单化。

愚公移山如此庞大的人物无非就通过顺序、分支和循环解决了,由此可见,多么庞大的项目都是通过简单的编程语言实现的。何必要怀疑自己能不能编程,我们又不是弱智,编程语言也是语言,而且大致都是相似的,程序 = 算法 + 结构,编程的第一要务是先把事情分析清楚,事件先后 的逻辑关系和依赖关系搞清楚,然后再将自己的意思用编程的语言表达出来就可以了。

懒人造就了方法,像愚公那样勤劳的人自然会踏踏实实的劳作,是李冰的懒让他找到了简单的方法,人的精力终归是有极限的。提出新的“方法”,解决的将是影响做事成效的根本问题。虽然一万字的代码可以在一页里写,而就我自己而言,我也是比较喜欢这样子写代码的,但是一个个文件这样子还是比较好的选择的,无论是在结构上还是实现调试上都比较占优势。我想我的大脑也是一团混乱的,大学期间,我们学习了各种语言,各种辅助科目,可是在我的眼里,似乎就只有C++在VS里才可以运行,每当遇上别的软件就不知道该从哪里下手了。

一个团队就必须要有一个领导,他在整个团队里起着调节粘合的作用,在必要时还要首当其冲,项目经理是需要时间来成熟的。他需要有机会来承受 错误,而不是一开始就享受成功。明确分工是你的管理职责。做管理≠做伯乐。

作为一个软开发员,我们需要经常和客户打交道,我们不能要求客户理解我们的编程语言,我们需要项目经理一样的职位用自然语言,用通俗易懂的图和语言来表达我们软件,使用与不使用 UML,其根本的问题在于沟通方式的 选择。只要是行之有效的、能在各个项目角色间通用的, 就是好的沟通方式,项目的中断和中止,与历史产生断层的内因是一致 的。很多的项目(尤其是产品计划)在负责人员 离开后,就自然而然地死掉了。所以我们在做项目时要时时留下历史记录!以方便以后接手这个项目的人可以容易实现继续和维护。

过程理论中,如果懂得了所谓的模型原本都演化自那 个简单的瀑布,那么文档是按 XP 写还是按 RUP 写,也 就可以应时、应需,因地置宜,择善而从了。——本质的 东西若能理解得透,架子还不是随手搬来就可以用的吗? 越是简单的东西,往往越是接近于本质。

时间: 2025-01-03 00:42:44

读《大道至简》(一)的相关文章

读《Java并发编程的艺术》(一)

离开博客园很久了,自从找到工作,到现在基本没有再写过博客了.在大学培养起来的写博客的习惯在慢慢的消失殆尽,感觉汗颜.所以现在要开始重新培养起这个习惯,定期写博客不仅是对自己学习知识的一种沉淀,更是在督促自己要不断的学习,不断的进步. 最近在进一步学习Java并发编程,不言而喻,这部分内容是很重要的.现在就以<并发编程的艺术>一书为主导线,开始新一轮的学习. 进程和线程 进程是一个应用程序在处理机上的一次执行过程,线程是进程的最小基本单位(个人理解).一个进程可以包含多个线程. 上下文切换 我们

Java并发编程的艺术(六)——线程间的通信

多条线程之间有时需要数据交互,下面介绍五种线程间数据交互的方式,他们的使用场景各有不同. 1. volatile.synchronized关键字 PS:关于volatile的详细介绍请移步至:Java并发编程的艺术(三)--volatile 1.1 如何实现通信? 这两种方式都采用了同步机制实现多条线程间的数据通信.与其说是"通信",倒不如说是"共享变量"来的恰当.当一个共享变量被volatile修饰 或 被同步块包裹后,他们的读写操作都会直接操作共享内存,从而各个

《java并发编程的艺术》读书笔记-第三章Java内存模型(二)

一概述 本文属于<java并发编程的艺术>读书笔记系列,第三章java内存模型第二部分. 二final的内存语义 final在Java中是一个保留的关键字,可以声明成员变量.方法.类以及本地变量.可以参照之前整理的关键字final.这里作者主要介绍final域的内存语义. 对于final域,编译器和处理器要遵守两个重排序规则: 在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序. 初次读一个包含final域的对象的引用,与随后初次读这

&lt;java并发编程的艺术&gt;读书笔记-第三章java内存模型(一)

一概述 本文属于<java并发编程的艺术>读书笔记系列,继续第三章java内存模型. 二重排序 2.1数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之后,再读这个位置. 写后写 a = 1;a = 2; 写一个变量之后,再写这个变量. 读后写 a = b;b = 1; 读一个变量之后,再写这个变量. 上面三种情况,只要重排序两个操作的执行顺序,

Java并发编程的艺术下载 &#155949;

下载地址: http://www.gqylpy.com/di/11 <Java并发编程的艺术>PDF高清完整版-下载 内容简介 并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,<Java并发编程的艺术>是他们多年一线开发经验的结晶.本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价.它选取了Java并发编程中核心的技术进行讲解,从JDK源码.JVM.CPU等多角度全面剖析和讲解了Java并发编程的

基于CAS线程安全的计算方法 java并发编程的艺术上的一个案例

package thread; import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; /**  * @author  changxiangxiang  * @date 2014年8月6日 下午3:25:12  * @description  * @since  sprint2  */ public class Counter {     privat

Java并发编程的艺术——互动出版网

这篇是计算机类的优质预售推荐>>>><Java并发编程的艺术> 阿里系和1号店资深技术专家撰写,Java并发编程领域的扛鼎之作,内容在InfoQ等社群得到高度认可,从JDK源码.JVM.CPU等多角度全面剖析与讲解Java并发编程的框架.原理和核心技术 编辑推荐 阿里系和1号店资深技术专家撰写,Java并发编程领域的扛鼎之作 内容在InfoQ等社群得到高度认可,从JDK源码.JVM.CPU等多角度全面剖析与讲解Java并发编程的框架.原理和核心技术 前言 为什么要写这本

Java并发编程的艺术,解读并发编程的优缺点

并发编程的优缺点 使用并发的原因 多核的CPU的背景下,催生了并发编程的趋势,通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升. 在特殊的业务场景下先天的就适合于并发编程. 比如在图像处理领域,一张1024X768像素的图片,包含达到78万6千多个像素.即时将所有的像素遍历一边都需要很长的时间, 面对如此复杂的计算量就需要充分利用多核的计算的能力.又比如当我们在网上购物时,为了提升响应速度,需要拆分,减库存, 生成订单等等这些操作,就可以进行拆分利用多线程的技术完成. 面对复

《Java并发编程的艺术》之ConcurrentLinkedQueue

队列这个数据结构已经很熟悉了,就不多介绍,主要还是根据代码理解Doug Lea大师的一些其他技巧. 入队 如图所示,很多人可能会很疑惑,为什么第一次入队后,TAIL没有指向Node2?答案是为了效率!Σ(っ °Д °;)っ 那这还能叫队列吗?当然,它依然符合先进先出(FIFO)的规则.只是TAIL变量不一定指向尾结点,那么来看看大师是怎么做的. public boolean offer(E e) { checkNotNull(e); final Node<E> newNode = new No

读Java并发编程实践中,向已有线程安全类添加功能--客户端加锁实现示例

在Java并发编程实践中4.4中提到向客户端加锁的方法.此为验证示例,写的不好,但可以看出结果来. package com.blackbread.test; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public