仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 519|回复: 10
打印 上一主题 下一主题

[学习教程] 来看冒号和他的先生们(连载25)――软件应变

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听,
25.软件应变
潜其心能不雅世界之理,定其心能应世界之变       ——《吕坤·嗟叹语》
第七课刚一开堂,冒号就提了一个成绩:“假如把一个Java程序中一切的private关头字换成public,叨教该程序还能事情吗?”
“应当还能事情,除非——此前不克不及事情。”问号不寒而栗地回覆。
冒号接着问:“既然云云,何须省事辨别它们呢?”
叹号嘴一撇:“固然是为了信息埋没”
冒号步步紧逼:“埋没甚么信息呢?又为何要埋没?”
叹号应对:“对象的形态必要埋没。假如一个对象的形态间接表露在外,让客户随便修正,大概会损坏对象的内涵逻辑。”
冒号仍旧穷追不舍:“那为何对象的办法有些也必要埋没?”
“之前我也有此疑问,看他人代码时最感乐趣的就是那些公有办法。”引号屈打成招。
逗号逗他:“看来你得了窃看癖哦。”
引号悄悄踢了逗号一脚:“如今我分明了,这是为了完成数据笼统,将接口与完成分别开来。”
冒号仍不罢休:“这类笼统事实有何实践优点?”
句号抢答:“一方面,笼统接口形貌了一个类最实质的举动特性;另外一方面,详细完成随时大概变化,埋没它们能够包管这类变化不会涉及客户代码。”
“说到点子上了!”冒号终究中断了诘问,“软件与硬件之别,不但是有形与无形之别,更是变更与固化之别。所谓变更,指源代码随时大概因需而变。一个软件修正保护的工夫一般会凌驾编写工夫,越庞大越成熟的程序越是云云。软件的难点有二:其一是逻辑的庞大,其二是需求的变更。很多程序员垂青前者而看轻后者,年夜部分工夫花在追求办理计划上,而不是在选择办理计划上。他们眼花于奇技淫巧却不解年夜巧若拙之妙,却不知充斥技能的代码不但难于了解而易于堕落,且因其普适性低而受变更的打击更年夜。尽人皆知,交手时最忌招式用老,老即难以变更,一旦为敌手看头则成果不可思议。一样,动不动腾空跃起只是影视作品中兜揽眼球的花梢局面,实战中很少呈现,盖因空中不容易变招。固然凡事皆有度,无一招用老,便无一招用实,难以完成致命一击。反应在软件上,那就是过分计划会带来不用要的庞大和效力丧失。”
世人均想,又上起久背的技击课了。
冒号口若悬河:“一言以蔽之,软件之软,表现在顺应变更的才能。很多编程计划头脑包含OOP的头脑都是以此为主题的,笼统与封装即是典范代表。笼统一个对象模子便是将一类对象最实质因此最不容易变更的部分提炼出来,而封装——正确地说是信息埋没——则是将非实质、简单变更的部分埋没起来,从而将一个类分别为阴阳两面。因为变更多产生在阴面,对外是屏障的,因而修正该面毫无累及客户之忧,由此进步了软件的抗变才能。有些人误以为信息埋没是出于软件平安(security)的思索,实乃是貌同实异的皮相之见。”
问号发问:“软件的变更次要有哪些?”
“软件的变更大抵分两种:一种是出于内涵需求而作的布局性变更,一般以改良软件质量为目标,即所谓的重构(refactoring);一种是出于内在需求而作的功效性变更,一般以满意客户必要为目标。幻想的笼统与封装,应能完整制止第一类变更关于客户代码的影响,也能最年夜限制地下降第二类变更的反作用。只是知易行难,为渺小的变更而支付伟大价值的例子屈指可数。‘千年虫’就是一个最典范的例子,而当32位的IPv4全体换成128位的IPv6,其价值也不遑多让。从中能够看出,信息埋没,特别是布局性信息埋没是何等的主要!上面看一个复杂的例子。”冒号翻开幻灯片——
<p>
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-18 12:15:15 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的工具了吧!
若天明 该用户已被删除
板凳
发表于 2015-1-20 20:22:12 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
柔情似水 该用户已被删除
地板
发表于 2015-1-25 07:47:57 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
若相依 该用户已被删除
5#
发表于 2015-2-2 16:04:17 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
不帅 该用户已被删除
6#
发表于 2015-2-3 12:44:17 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
山那边是海 该用户已被删除
7#
发表于 2015-2-9 00:51:52 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
透明 该用户已被删除
8#
发表于 2015-2-26 15:58:47 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
莫相离 该用户已被删除
9#
发表于 2015-3-8 15:53:47 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
admin 该用户已被删除
10#
发表于 2015-3-16 03:51:05 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
兰色精灵 该用户已被删除
11#
发表于 2015-3-22 19:39:45 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 15:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表