摘要:对于架构这一概念一直以来都是一知半解,老师提到很多,对自己而已仅仅只是耳熟而已。对于一个在校大学生而言,我们所做的系统没有那么复杂,架构似乎很遥远,在我们的编程过程中没有涉及到相关知识,而所做的系统也仅仅只是实现功能。 随着不断的深入学习,我们会在大量的编码过后发现,可以将代码分模块编写,而编程的效
阅读全文
摘要:许多数据结构——如树和堆,操作——如类型推断和类型合一、数学实体——如斐波那契数和分形图,以及算法,如快速排序、树遍历和递归下降分析,都采用递归定义。实体和操作的递归定义用它自身来定义它的对象。虽然这些定义咋看起来好像是无限循环,但实际上并非如此,这是因为基准范例的定义,一般会定义一个特例,他不依赖...
阅读全文
摘要:创造性的代码布局可以用来提高代码的易读性。我们常常可以通过添加空格,利用临时变量将表达式分解成较小的部分,或使用圆括号提高特定运算符的优先次序等方法,使得表达式更为易读。 使程序更易读,并不总是需要更改它的结构。一些不会影响程序运行的项(比如注释、空格的使用和变量、函数、类名的选择),常常会影响程序...
阅读全文
摘要:开放源码和商业产品的源代码有本质上的不同。这种不同体现在以下几个方面:开放源码项目的作者在开发时就意识到自己编写的代码要被别人阅读,故而在规范的遵守,算法的优化方面都格外用心。开放源码没有严格的时间限制,无需时间与质量的权衡,产生的代码质量更高。开发源码能够做到优胜劣汰,拥有更快的更新速度(评判优劣...
阅读全文
摘要:建模,是指通过对客观事物建立一种抽象的方法用以表征事物并过得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察的对象的内部结构和工作原理的便于理解的表达。建模包含两个问题,一个是怎么建?另一个是模是什么?第一个问题“怎么建”,依赖于方法论,再上升一点到哲学高度就是认识论...
阅读全文
摘要:什么是UML?UML本身并没有包含软件方法,而仅仅是一种语言,一种建模用的语言,而所有的语言都是基本词汇和语法两部分构成的,UML也不例外。UML中定义了一些建立模型所需要的、表达某种特定含义的基本元素:这些元素称为元模型,相当于语言中的基本词汇,例如用例、类等。另外,UML还定义了这些元模型互相之...
阅读全文
摘要:大音希声,大象希行。什么是面向过程?什么是面向对象?面向过程归纳为结构化程序设计、DFD图、ER模型、UC矩阵等,而面向对象则被归纳为继承、封装、多态、复用等具体的技术。事实上,上述的所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具,他们都只是表征而不是本质。面向过程方法认为我们...
阅读全文
摘要:需求的变更时必然!开发者应该是考虑如何让自己的程序更能适应变化,而不是抱怨客户的无理,客户不会管程序员加班时的汗水,也不相信程序员失业时的眼泪。什么是程序集名称?什么是名称空间?知足可以长乐,但知足如何能进步!人生目标很明确,别的方面弱一些有什么关系!什么是三层架构?所谓三层开发,就是关于表现层,业...
阅读全文
摘要:通过UML图对类与类之间的设计,对软件的代码进行封装,重构,这种方法不仅让代码具有极大的扩展性和优秀的可维护性,同时在我看来,这种整理后的代码更加易于理解,正应了那句话,没有规矩不成方圆,完善的规则带来的是秩序的稳定,这种方法我会逐渐的应用于自己的编程中去。 因为这学期开设了《软件设计》这门课...
阅读全文
摘要:从大一到大三,编写过得程序也不少,但这些程序基本都是老师布置的作业,只要实现老师要求的功能就可以,每次写完后都束之高阁,很少去完善,修改这些程序。而在下一次又遇到类似的题目时,都是从头开始写,所以总感觉编写程序很麻烦,老师所说的编程是一件简单的事总是不能体会。而在今年接触到软件设计模式时才突然发现...
阅读全文
摘要:本学期将阅读如下三本书:《UML大象》《代码阅读方法与实践》《大话设计模式》发表阅读笔记时间分别为:十月:10.9,10.19,10.29十一月:11.9,11.19,11.29十二月:12.9,12.19,12.29
阅读全文
摘要:问题,其实就是你期望的东西和你体验的东西之间的差别。 幻觉中的问题是真正的问题。 不要把他们的解决方法误认为是问题的定义——特别是在你使用自己的解决方法时。 如果你太轻易地解决了他们的问题,他们永远都不会相信你真的解决了他们的问题。 道德顾虑在遇到有利可图的问题时往往很快就烟...
阅读全文
摘要:每次,当我们遇到一个自己无法解决的问题,我们就会把这个问题抛给别人做,对,这个时候就产生了一些需求。需求是什么?它是这样一个东西: 1.需求是一个屏蔽了底层实现的操作,它实现了状态的转换.(很抽象吧,那是当然的,因为我们平时说的根本就不是需求,而是另一个东西) 2.用户(提出)的需求是用户个人认...
阅读全文
摘要:《你的灯亮着吗》是著名思想家温伯格(其著作还有系统思维导论,程序员开发心理学)的一本定义分析和解决问题的书籍。全书分六篇由20个寓意深刻的小故事组成,讲述层次仍然遵循定义描述问题-》分析问题-》解决问题的思路,故事中穿插了诸多的最佳实践和案例供大家参考。 读一本书就能够学会如何解决问题是不可能的...
阅读全文
摘要:程序=算法+结构+方法面向对象的局限性。面向过程的方法可以实现任意复杂的系统。程序时顺序的,不是同步的,CPU是按照一条一条指令来执行的。面向过程是对 流程 结构 和编程方法 的高度概括。而面向对象本身只是解决了结构 和编程方法的问题,没有对流程加以改造
阅读全文
摘要:是懒人造就了方法战国时期的李冰凿了一座山。史记中说是“蜀守冰凿离堆”,是说李冰在成都的时候凿出了离堆。一说是李冰将都江堰附近的玉垒山凿了一个大口子,叫宝瓶口,而凿的石头就堆成了离堆。另一说,则是李的确是凿了一座“(溷)崖”,但是是在沫水,亦即是今天的大渡河。在哪里凿的山,是史学家都说不清楚的事。但的...
阅读全文
摘要:实现,才是目的很多人把问题的本质给忘掉了。从最开始,从我们编程开始,我们的目的就是实现一个东西。无论这个东西是小到一个称手的工具,还是一个大到千万的工程,我们的目标,都是要“实现”它。工程只是一种实现的途径。最初做开发的前辈们,不用什么工程或者过程,也一样编出了程序,也一样解决了问题,也一样实现了目...
阅读全文
摘要:GTD(时间管理)在现在显得越来越重要,甚至涌现出了各种各样的软件,有很多基于java的,很优秀,很好用,java的界面也再是当初那般丑陋。mozilla出了一款相似功能的日程管理软件叫做sunbird,有独立的软件,还可以作为thunderbir的插件和thunderbird结合起来使用。网络的迅...
阅读全文
摘要:我看到了我推崇的开源技术的脆弱,我看到了软件工程的重要和繁杂,我看到了一个梦想的破碎。 一个开源的项目,一个在大教堂模式的开源项目,怎么样取得成功,怎样才能避免失败。 一开始他们只有一个想法,想建立一个各个平台都可以使用的时间管理软件,他们没有规格,他们确定技术和方向,他们没有确定人员,他们...
阅读全文
摘要:继《人月神话》后,这是我读的第二本关于软件的著作,无关于技术,只是软件开发过程中的无奈与思考。读的越多,越发的对软件行业充满了敬畏之情,这是一个思想绽放的舞台,同样也掩盖了绽放过程中的种种痛苦,正如书中所说,软件几乎是纯思考的产物,程序员就像诗人,他运用想象,凭空造出城堡。唯有想象才如此灵活,如此轻...
阅读全文