读<大道至简>--软件工程实践者的思想有感
初闻其名,《大道至简》,大多人都会觉得这是一本满腹人生哲理的书籍,作者洋洋洒洒的谈论大道理,其实不然,作者以古典文化为引,以作者的所思所想为线,启蒙了我作为一个软件工程初学者的实践思想。
愚公虽愚,却向我们展示了如何完成一个看似庞大的工程,那就是一步一步的分而治之,回想自己大一的学习生活,确实遇到过比较繁杂的程序,那时候一心想的是这太复杂了,可能完成不了,可是当自己真正静下心来去慢慢分析程序该如何一个部分一个部分、一句一句的往下写,分析清楚各部分之间的关系时,运用合适的方法,问题便变得越来越简单,以至于最后消失。作者所言极是:“所以编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。”当我们脑海里都还是一团雾水的时候,想要写出正确的程序那恐怕不太现实。
诚然,一百万行代码是可以写在一个文件里的,像极了初学c++的我,即使知道头文件和源文件可以分开写,但还是愿意把它们安置在一个文件里,可是久而久之发现如果程序出错误了,找到那个位置或许需要鼠标或者键盘操作好多次,便慢慢接受并习惯了分开写程序的一些不同部分,更何况是一百万行,这样只不过是白白的浪费时间,降低了工作的效率。将程序的各个层次结构清晰的划分开,可以减少开发过程中不必要的麻烦,使程序更便于查看与修改。
在现在的我看来,软件的意义是要给人以完美理想的功能以及美好的使用体验,一个好的软件的产出不单单只是程序员们工作的结果,更重要的是软件开发者对软件需求者需求的理解,要想做好一个软件,项目团队中各组织结构间明确分工,各司其职,高效配合是必不可少的。作为开发软件的人,需要明确需求者的需求,从而给出其满意的结果。明确需求时高效的沟通是极其必要的,也要注意方式方法,用客户易于接受和理解的方式进行沟通,这样才能使客户对其需求表达的更加清楚,也利于软件开发者的工作。沟通也要有目的性的,带着问题去沟通的,而不是随意的交流感情,聊项目以外的事情,那样只会浪费彼此的时间。总之,明确目的,开发的方向才能正确,如果连开发的目的都没有搞清楚的话,还指望做出满意的产品简直是痴人说梦。
作者还赘述了一些管理方面的内容,诸如项目经理,BOSS,开发经理在工程的过程中担当了一个怎样的角色,应该如何去发挥自己的职能,不要害怕产生矛盾,而要注重如何解决这些矛盾。
道,规律也,大道之行也,大道至简。本书没有过多的方法,全部是思想的结晶,参悟还需我们在以后的实践中去慢慢体会。
读<大道至简>--软件工程实践者的思想有感的更多相关文章
- 大道至简---软件工程实践者的思想------------java伪代码形式读后感第一章
import.java.大道至简.*; 1.编程的精义----愚公移山 /* 原始需求的产生:惩山北之塞,出入之迂 项目沟通的基本方式:聚室而谋曰 项目的目标:毕力平险,指通豫南,达于汉阴 技术方案: ...
- 阅读《大道至简第一章》读后感(java伪代码)
大道至简讲述的是软件工程实践者的思想,书的第一章引用了著名的----愚公移山这一历史故事,向我们讲述了编程的精义.汤问篇中所述的愚公移山这一事件,我们看到了原始需求的产生---“惩山北之塞,出入之迂” ...
- 大道至简(第五i章)读后感
大道至简(第五章)读后感 再一次在不想看的情况下读大道至简第五章,一个项目的实现中,“过程”与“工程”是同一个概念吗?答案自然是否定的.“过程”是一个确定的模板,而“工程”是有一个目的的实现在里面. ...
- 《大道至简》第三章读后感+ppt课后作业
大道至简读后感 ——第三章团队 古人云“三人为众”,众则是指团体或团队.对于一个团队而言,重要的是凝聚力,大家能在一起把拳头握紧那么产生的力量就不紧紧是能以1+1=2 来 ...
- 《大道至简-Team》
已经学习了<大道至简>两章,我们了解了编程的本质和“懒人”造就了方法.书中没有提供给我们编程的技巧,捷径,而是从别的方面为我们讲解了编程的精义.第三章就为我们引入了“团队”这个概念. 我们 ...
- [转载]大道至简!!!从SAP HANA作为SAP加速器的方式,看ERP on HANA的春天
I AM A ABAPER! 科技的进步,一定会使一些东西变得越来越精简! 大道至简!!! 文章很好!!!!!!!!!!! -------------------------------------- ...
- Strurts(四)——从Struts原型模拟看大道至简(含实例下载)
首先,需要再次声明的是:struts是web层的框架.在介绍struts的第一篇文章就已经有了论述,如果不使用struts框架同样可以进行开发,但是需要在Servlet里面写大量的“if……else… ...
- java伪代码 大道至简第一章
import.java.大道至简.*; //一·编程的精义 import.java.编程的精义.*; public class BIANCHENGDEJINGYI { if(愚公死了) 愚公的儿子,孙 ...
- 大道至简第一章和java理论学时第一节。感受。
这周上了本学期的第一节java课程.课件上说了一些学习java的基本思想.举了个“愚公移山”的例子.这可能就像刚接触一门新的语言,来练习输出“HelloWorld”一样,已成惯例. “愚公移山”的这个 ...
随机推荐
- linux 系统下如何进行用户之间的切换
切换用户的命令是su,su是(switch user)切换用户的缩写.通过su命令,可以从普通用户切换到root用户,也可以从root用户切换到普通用户.从普通用户切换到root用户需要密码(该密码是 ...
- mysql 计算两个时间之间有多少分钟
SELECT TIMESTAMPDIFF(MINUTE, (DATE_FORMAT('2015-08-12 10:38:00','%Y-%m-%d %H:%i')), (DATE_FORMAT('20 ...
- C++与JAVA代码实现CRC-16/MODBUS算法,且与 http://www.ip33.com/crc.html 进行结果验证
CRC-16/MODBUS的多项式为:x16+x15+x2+1(8005),宽度为16.运算时,首先将一个16位的寄存器预置为11111111 11111111,然后连续把数据帧中的每个字节中的8位与 ...
- @uoj - 435@ 【集训队作业2018】Simple Tree
目录 @description@ @solution@ @accepted code@ @details@ @description@ 有一棵有根树,根为 1,点有点权. 现在有 m 次操作,操作有 ...
- React Native声明属性和属性确认
属性声明 因为用React Native创建的自定义组件可以复用, 我们开发过程中可能一个项目组有多个人同时开发,其他同事可能会用到我们自定义的组件, 但是他们使用的时候很容易忘记使用某些属性,这时候 ...
- ORA错误查询手册
ORA-00910: 指定した長さがデータ型に対して長すぎます 原因: データ型CHARまたはRAWに対して指定した長さは.2000を超える値または4000を超える値であるため無効です. 処置: 指定 ...
- Java中Map/List/Set .
很实用,分享一下. 简单版本 复杂版本 参考: http://initbinder.com/articles/cheat-sheet-for-selecting-maplistset-in-java. ...
- HBuider快捷键
朋友推荐用Hbuilder编辑器,看了下Hbuilder官网和那视频,感觉牛逼哄哄的, 自己也就体验了一下,打开Hbuilder的快捷键列表,每个快捷键都体验了一下,以下展示出来的,每一个都是精华,每 ...
- pytorch之expand,gather,squeeze,sum,contiguous,softmax,max,argmax
目录 gather squeeze expand sum contiguous softmax max argmax gather torch.gather(input,dim,index,out=N ...
- 31页PPT:基于Spark的移动大数据挖掘
31页PPT:基于Spark的移动大数据挖掘 数盟11.16 Data Science Meetup(DSM北京)分享:基于Spark的移动大数据挖掘分享嘉宾:张夏天(TalkingData首席数据科 ...