技术服务

为了确保本博客正常运作,并且方便帮补生计,特为广大有需要者,提供以下服务:网站建设,网站维护,网络搭建,网站服务器管理与维护,网络应用服务建设。网络安全维护,网站数据库建设,维护,备份,恢复,数据恢复,网站开发,软件定制与开发,网络安全产品定制与销售,常用办公管理软件销售。价钱面议与网议。联系方式:MSN:zymh_zy@hotmail.com evan_zy@hotmail.com QQ:3819468 438549233 1421298188 gtalk:evan_zy@gtalk.com 电话:13640892033 13119595395

Product Tags

Product Specials

D-Link DIR-635
D-Link DIR-635
基本参数 产品型号 DIR-635 处理器 AR5008 固定广域网接口 1×10/100BaseT 固定局域网接口 4×10/100Mbps 支持协议 TCP/IP协议 无线标准 IEEE 802.11b,IEEE 802.11g,IEEE 802.11n 传输速率 300,54,48,36,24,18,12,11,9,6,5.5,2,1Mbps VPN支持 支持VPN功能 防火墙支持 支持防火墙 Qos支持 支持QoS功能,支持Qos 其它参数 天线类型 SMA接口 工作频段 2.4 - 2.4835 GHz 网络管理 WEB,SNMP,远程管理 安全标准 FCC, CE 外形尺寸 116.8×193×30.5mm 重量 0.317Kg
CNY500.00
CNY560.00

如何认识软件项目估算

虽然估算是一门科学,更是一门艺术,这个重要的活动不能以随意的方式来进行……因为估算是所有其他项目计划活动的基础,而项目计划又提供了通往成功的软件工程的道路图,所以,没有它我们就会搭错车。——Roger S. Pressman 《软件工程——实践者的研究方法》
1、估算前的规划
当我们的办公室内堆满了杂乱无章的文件时,恐怕无法知道对于我们真正有用的文件在哪里,当我们的软件相目中收集了各种需求、意见、问题时,我们也很难从中估算出整个项目的规模、工作量以及成本。因此,在估算之前我们首先要对众多信息进行整理、归类分析,从而得到一个条理清晰的项目计划,在这个计划提供的框架内,才可能开始正确的估算。精心的规划是任何一个软件开发项目成功与否的关键,有了规划就有如成竹在胸,之后无论风云变幻,都有应对入流的方法。当然只有正确的规划,才能给软件开发指引正确的方向。
软件项目规划的重点是对人员角色、任务进度、经费、设备资源、工作成果等等做出合适的安排,制定出一些计划(包括高层的和细节的),使大家按照计划行事,最终顺利地达到预定的目标。
1.1、规划的第一步:确定软件范围
确定软件范围,就是确定目标软件的数据和控制、功能、性能、约束、接口以及可靠性。这项工作和需求分析是很类似的,如果之前已经达成需求分析规约,那么可以直接从《需求分析说明书》中把有用的部分拿来使用。如果还没有开始需求分析,关于确定软件范围的方法方面,我们可以采用许多需求分析技术(如需求诱导),从客户那里得到一个具体的软件范围。当然如果是一次全新的软件边界探索,就应当考虑软件本身可行性问题,包括团队是否具备在技术、财务、时间、资源上游可靠的保障,软件本身在市场上是否有可靠的竞争优势 ,等等。

想不到俺给一个很简单的技术问题弄得很郁闷!

俺的几个小站,数据要迁移,也就是从一台服务器迁移到另外一台服务器。都是centos5.2的。由于选用php的版本不当,走了很多弯路,浪费许多时间。俺的几个小站从上月27日开始就无法正常访问。因为新迁移的环境是lighttpd1.4.22 与php5.3.0 与mysql5,起初,俺以为是迁移时,不小心破坏网站文件与网站数据库,因为俺是直接直接关掉网络应用,直接tar 打包,再移到新环境解压的。解压后。打开网站无法访问。出现一片??乱码。俺检查了数据库与文件,发觉没问题。那就上网查了查。怀疑是新环境的数据库字符集问题,就参照网上的资料作修改,也不行。那俺怀疑可能是lighttpd编译安装不对。又再次编译安装一次lighttpd。发现又不行。那俺怀疑是不是环境的字符集不对啊。就先后装了supesite7.discuz6,uc1.0 的utf版本,发觉可以安装,最后再试试安装discuz6,uc的gbk版本都可以,那环境应没有问题。。但就是恢复俺的网站数据时,访问时,总是发现乱码。那俺再尝试安装supesite6时,发现还是乱码。俺随手用editplus 打开supesite的安装文件,发现提示说没有安装zendopitizer 。那基本判断是环境没有安装zendopitizer所致。那俺就尝试安装zendopitizer。但无论如何安装都无法在phpinfo.php看到zendopitizer3.3.3的信息。俺看了看php.ini 发现php.ini后面都已加上zendopitizer的信息。但就是无法在phpinfo.php看到zednoptizer的信息。也就是网站继续乱码。。。俺白天忙生计,晚上才有时间搞迁移。。。从上个月的27日一直到今天,都仍然无法解决这乱码的问题。俺就犯愁。最后,俺忽然有一个想法,会不会是php版本的事情。因为,俺在安装php5.3.0就遇到一两个奇怪问题。第一,就是php5.3.0下面没有php.ini-dist文件,第二,就是在运行phpinfo.php总提示date参数不对。总将timezone设为Asia/Chongqing .最后,要修改php.ini的开发版本的timezone设置。phpinfo.php所显示的date参数才正常。最后,俺再下载一个php5.2.10时,再跑一装php的安装设置流程。再运行lighttpd ,再打开phpinfo.php 发现zendoptimizer 3.3.3信息可以看到,再打开俺的小站。发现终于正常访问!

俺真的想不到,最终的问题是出在php的版本过高问题,就是这个版本过高。累俺花了五个晚上时间去搞迁移与恢复!而且,俺的php5.3.0是俺访问www.php.net时,并在中国的verycd network像像下载的!

虽然。俺平时不多说粗口,但是针对这个问题。累俺浪费这么多时间。俺真的禁不住说一句:操!是谁放出php.5.3.0这个版本的!

读懂程序代码,使心法皆为我所用

程序代码是别人写的,只有原作者才真的了解程序代码的用途及涵义。许多程序员心里都有一种不自觉的恐惧感,深怕被迫去碰触其它人所写的程序代码。但是,与其抗拒接收别人的程序代码,不如彻底了解相关的语言和惯例,当成是培养自我实力的基石。

对大多数的程序员来说,撰写程序代码或许是令人开心的一件事情,但我相信,有更多人视阅读他人所写成的程序代码为畏途。许多人宁可自己重新写过一遍程序代码,也不愿意接收别人的程序代码,进而修正错误、维护它们、甚至加强功能。

这其中的关键究竟在何处呢?若是一语道破,其实也很简单,程序代码是别人写的,只有原作者才真的了解程序代码的用途及涵义。许多程序员心里都有一种不自觉的恐惧感,深怕被迫去碰触其它人所写的程序代码。这是来自于人类内心深处对于陌生事物的原始恐惧。

读懂别人写的程序代码,让你收获满满

不过,基于许多现实的原因,程序员时常受迫要去接收别人的程序代码。例如,同事离职了,必须接手他遗留下来的工作;也有可能你是刚进部门的菜鸟,而同事经验值够了、升级了,风水轮流转,一代菜鸟换菜鸟。甚至,你的公司所承接的项目,必须接手或是整合客户前一个厂商所遗留下来的系统,你们手上只有那套系统的原始码(运气好时,还有数量不等的文件)。

诸如此类的故事,其实时常在程序员身边或身上持续上演着。许多程序员都将接手他人的程序代码,当做一件悲惨的事情。每个人都不想接手别人所撰写的程序代码,因为不想花时间去探索,宁可将生产力花在产生新的程序代码,而不是耗费在了解这些程序代码上。

很遗憾的是,上述的情况对程序员来说很难避免。我们总是必须碰触到其它人所写成的程序代码,甚至必须了解它、加以修改。对于这项需求,在现今开放源代码的风气如此盛行的今日,正如之前的《程序设计2.0》文中所提到的,你可以透过开放源代码学习到新的技术、学习到高手的架构设计,大幅提高学习的效率及效果。你甚至可以直接从开放源代码项目中抽取、提炼出自己所需的程序代码,站在巨人的肩膀上,直接由彼端获得所需的生产力。从这个观点来看,读懂别人所写的程序代码,就不再只是从负面观点的“被迫接收”,而是极具正面价值的“汲取养份”。

先了解系统架构与行为模式,再细读

倘若撰写程序代码是程序员的重要技能之一,那么读懂别人的程序代码、接着加以修改,也势必是另一个重要的技能。

如果你不能熟悉这项工作,不仅在遇到你所不愿面对的局面时,无法解决眼前接手他人程序代码的难题,更重要的是,当你看着眼前现成的程序代码,却不知如何从中撷取自己所需,导致最后只能入宝山空手回,望之兴叹。

阅读他人的程序代码,大致上可以分为三种程度:一、了解,二、修改、扩充,三、抽取、提炼。

了解别人的程序代码是最基础的工作,倘若不能了解自己要处理的程序代码,就甭论修改或扩充,更不可能去芜存菁,从中萃取出自己所需,回收再利用别人所撰写的程序代码。

虽说是“阅读”,但程序代码并不像文章或小说一样,通过这种做法,便能够获得一定程度的了解。阅读文章或小说时,几乎都是循序地阅读,你只消翻开第一页,一行行阅读下去即可。但是,有许多程序员在试着阅读其它人的程序代码时,却往往有不知从何读起的困难。

或许找到系统的第一页(也就是程序代码执行的启始点)并不难,但是复杂度高的系统,有时十分庞大,有时千头万绪。

从程序代码的起始点开始读起,一来要循序读完所有的程序代码旷日费时,二来通过这种方式来了解系统,很难在脑中构建出系统的面貌,进而了解到系统真正的行为。所以,阅读程序代码的重点,不在于读完每一行程序代码,而是在于有效率地通过探索及阅读,从而了解系统的架构及行为模式。以便在你需要了解任何片段的细节实作时,能够很快在脑上对应到具体的程序代码位置,直到那一刻,才是细读的时机。

熟悉沟通语言与惯例用语

不论如何,有些基本的准备,是阅读他人程序代码时必须要有的。

首先,你最好得了解程序代码写成的程序语言。想要读懂法文写成的小说,总不能连法文都不懂吧。有些情况则很特殊。我们虽然不懂该程序代码撰写所用的语言,但是因为现代语言的高阶化,而且流行的程序语言多半都是血统相近,所以即使不那么熟悉,有时也可勉力为之。

除了认识所用语言之外,再来就是要先确认程序代码所用的命名惯例(naming convention)。了解命名惯例很重要,不同的程序员或开发团队,差异可能很大。

这命名惯例涵盖的范围通常包括了变量的名称、函式的名称、类别(如果是对象导向的话)的名称、代码档案、甚至是项目建构目录的名称。倘若使用了像设计模式之类的方法,这些名称更有一些具体的表述方式。

命名惯例有点像是程序员在程序语言之上,另行建构的一组沟通行话。程序员会通过共同约束、遵守的命名惯例,来表达一些较高阶的概念。例如,有名的匈牙利式命名法,便将变量名称以属性、型别、说明合并在一起描述。对程序员来说,这种方式能够提供更丰富的信息,以了解该变量的作用及性质。

对程序代码阅读来说,熟悉这个做法之所以重要,是因为当你了解整个系统所采用的惯例时,你便能试着以他们所共同操用的语汇来进行理解。倘若,不能了解其所用的惯例,那么这些额外提供的信息,就无法为你所用。像以设计模式写成的程序代码,同样处处充满着模式的名称,诸如:Factory、 Facade、Proxy等等。以这些名称指涉的类别,也直接通过名称,表达了它们自身的作用。对于懂得这命名惯例的读者来说,不需要深入探索,也能很快捕捉到这些类别的意义。

当你拿到一套必须阅读的程序代码时,最好先取得命名惯例的说明文件。然而,并不是每套程序代码都附有此类的说明文件。另一个方式,就是自己到程序代码中,大略浏览一遍,有经验的程序员可以轻易发掘出该系统所用的命名惯例。

常见的命名方式不脱那几类,这时候经验就很重要,倘若你知道的惯例越多,就越能轻易识别他人所用的惯例。如果运气很糟,程序代码所用的惯例是前所未见的,那么你也得花点时间归纳,凭自己的力量找出这程序代码命名上的规则。

掌握程序代码撰写者的心态与习惯

大多数的程序代码,基本上都依循一致的命名惯例。不过运气更差的时候,一套系统中可能会充斥着多套命名惯例。这有可能是因为开发团队由多组人马所构成,每组人马都有不同的文化,而在项目开发管理又没有管控得宜所造成。最糟的情况,程序代码完全没有明显的惯例可言,这时候阅读的难度就更高了。

想要阅读程序代码,得先试着体会程序代码作者的“心”。想要这么做,就得多了解对方所使用的语言,以及惯常运用的语汇。在下一回中,我们将继续探讨阅读程序代码的相关议题。

101条伟大的计算机编程名言

“人们总是害怕改变。电被发明出来的时候他们害怕电,是不是?他们害怕煤,害怕蒸汽机车。无知无所不在,并导致恐惧。但随着时间推移,人们终究会接受最新的科技。”
  正如比尔盖茨曾经警告过一样,计算机已经真正成为我们的最新科技,几乎遍布我们日常生活的每一方面。所以,我们这个时代的某些最伟大的头脑开始思索起计算机和软件对于人类的重要性来了。以下就是101条有关计算机的伟大名言。

  计算机

  1、“计算机没什么用。他们只会告诉你答案。”

  (巴勃罗·毕加索,画家)

  2、“计算机就跟比基尼一样,省去了人们许多的胡思乱想。”

  (萨姆·尤因,作家)

  3、“他们拥有计算机,他们也还可能拥有其他的大规模杀伤性武器。”

  (珍内特·雷诺,美国前女司法部长)

  4、“跟计算机工作酷就酷在这里,它们不会生气,能记住所有东西,还有,它们不会喝光你的啤酒。”

  (保罗·利里,吉他手)

  5、“如果汽车能赶上计算机的发展周期的话,一辆今天的劳斯莱斯仅值100美元,每加仑要跑100万英里,每年还得爆炸一次,把里面的人杀个精光。”

  (Robert X. Cringely,技术作家)

  计算机智能

  6、“计算机总是越来越智能的。科学家告诉我们说不久它们就能跟我们对话了。(这里的“它们”,我指的是“计算机”。我怀疑科学家永远都不能跟我们对话。)”

  (Dave Barry,幽默作家)

  7、“我最近注意到,在共同文化中,那种对计算机变得智能化并最终掌控世界的妄想恐惧症几乎彻底消失了。据我所知,这跟MS-DOS的发布基本是同步的。”

  (Larry DeLuca)

  8、“计算机会不会思考这个问题就像问潜水艇会不会游泳一样。”

  (Edsger W. Dijkstra,图灵奖获得者)

  9、“活了一百年却只能记住30M字节是荒谬的。你知道,这比一张压缩盘还要少。人类境况正在变得日趋退化。”

  (Marvin Minsky,人工智能研究的奠基人)

  信任

  10、“这座城市的中央计算机告诉你的?R2D2,你不该相信一台陌生的计算机!”

  (C3PO,星球大战中的翻译机器人)

Page 1 of 612345...Last »