计算机达人成长之路 之软件分析与设计

来源:互联网 发布:本草纲目 辣妹子 知乎 编辑:程序博客网 时间:2024/05/22 05:53

计算机达人成长之路  之软件分析与设计


最后,必须声明的事,任何事情都有一个熟能生巧的过程,系统分析也不例外。大家是不是看了上面的分析实例忽然觉得热血沸腾,发觉原来程序分析是如此简单如此清晰的一件事情,产生一种天下程序尽在我手上的错觉,以为自己一下子就转职为编程高手。殊不知好事多磨,只有多做系统分析方面的练习,才可以真正的掌握以上方法的精髓,才可以笑傲程序。否则,你无法透过现象看到本质吗,无法快速并且正确的建模。

不经一番寒彻骨,哪得梅花扑鼻香。不经过一番刻苦的练习,即使背熟了模型,也是纸上谈兵,仍然无法直击本质,无法活用数据结构。恐怕一边摇头一边高唱“借我借我一双慧眼吧,让我把这程序看得清清楚楚明明白白真真切切”就是真实的写照。

倘若有心练习,有大量的实例可供选择。远的不说,就拿大家喜爱的游戏程序来说,从俄罗斯方块、贪吃蛇、扫雷,到连连看、祖玛,植物大战僵尸等等都可以成为练习的素材。甚至可以留意生活中一切可能接触到的应用程序,反向思索其系统分析,比如与朋友们一道卡拉OK时,就可研究点歌程序;使用了一个背单词软件,也可以分析其设计模型。不用担心练习太多,时间无多,分析毕竟是分析,不涉及编码,免去了很多烦人的细节,不会占用太多时间,所以多多益善。当然很有必要从中选取一二完全设计,如此以来即可验证系统分析正确性,又可练习编码等必要能力,还可以得到上台面的成果,实在是学习编程、树立名气、诱惑MM的必备良药。

讲到这里,可能有人会提出疑义:“老师是过来人,自然可以慧眼识珠,知道哪些内容是学习的关键,但一般学生或者刚毕业者,在从未接触某项知识时,根本没有相关概念,除了从头到尾全面学习一遍外,没有任何可行方案。

诚然,学习陌生的知识,尤其是快速的掌握陌生的知识是一种能力,一种高素质的能力。但不可否认,要想在当今社会立足就必须具备这种能力!公司不会给员工一年甚至是几年的时间去熟悉某项业务,老板也不会有耐心花费一年或者几年的时间送员工学习,竞争对手更不会放弃这个难得的机遇。记住,在IT行业,不是大鱼吃小鱼,而是快鱼吃慢鱼。所有你必须具备这些能力,才能在未来的竞争中立于不败之地。

值得兴庆的是,能力是可以培养的,要具备快速学习的能力,需要从两个方面着手:

其一:基础、基础、又见基础。道理不多说,当把笑傲工具前两招运用的炉火纯青时,再使用第三招,会如有神助。

其二:练习、练习、还是练习。平时刻意多做此方面的练习,自然而然会达到慧眼识珠的效果。比如学习某某编程实例或者编程技巧书籍时,不要总是想着要把书全部拿下,你可以翻开目录,直指目的地,少走弯路。最后,给大家提供几个练习的

实例:

练习一:设计中文输入法。

现在的输入法满天飞,什么清华紫光输入法、搜狗输入法等等,貌似一个比一个漂亮,一个比一个更支持模糊拼音,是不是很心动,也想设计属于自己的输入法,那么现在就开始吧。其实所谓输入法就是一个动态链接库程序,里面必须提供某种符合规则的API函数而已。到网上搜索“输入法设计”或者“IME”就可以得到丰富的内容。我们不需要多少漂亮的界面,也不需要高级的算法,能够输入汉字就行。

练习二:设计代理服务器软件。

所谓代理,其实就是具备若干套接字的软件,把这边接收到的信息转发到那边而已。但是转发的信息必须要具备某种格式,标准文件RFC1928定义了SOCK5代理的转发格式,标准文件RFC1945和RFC2616则定义HTTP的协议格式,其中包含HTTP代理的转发格式,仔细阅读这几个文件,就可以设计出自己的代理服务器软件。

练习三:设计本机网络通信窃听程序。

偷窥别人貌似是种不道德的行为,但是偷窥自己的计算机与外界交换的数据貌似毫无道德问题,但问题是,你有能力偷窥吗?获取你的计算机与外界的交流信息,你能吗?能,太能,太阳能!这是必须的。这里介绍一种简单的方法,到谷歌上搜索“API钩子”,你就能得到想要的答案。届时你还可以将此程序专业化,设计其升级版本,比如设计程序监听网络斗地主游戏的出牌记录等。

以上练习所需知识均比较偏僻,完全可确保其陌生性,又均可以在网络上搜索获得,多做此类练习可以极大的提高自学陌生知识能力。但在练习时切记“不求完美”,只是练习而已,培养的是自学能力,而不真的是要在该个项目上深入发展或者开发生产软件,所以程序点到为止,时间以一周为限,过期不做。最后,特别特别要声明的是:以上实例难度很大,只建议基础牢固,课程设计优异,力图更进一步的读者练习,否则会动摇某些人好不容易才积累起来的信心,打击其弱小的心灵。对于不听劝告而造成的后果,本书不予负责!

--the end

原创粉丝点击