登陆注册
71628900000010

第10章 软件开发

在固有的软件开发中会涉及几个阶段,主要来说分三个步骤:设计,实施,测试与调试。

简言之,我们会谈一谈 Python 中好的实行法,当然包括了编码风格、命名规则、正式文档化,和单元测试。

对于面向对象的编程思想来说,设计步骤是开发期间最重要的一个阶段。因为在设计环节时,我们要考虑如何把一个程序分解成许多类,这些类该如何进行互动,每个类里应该存储什么样的数据,分别应该有那些动作。(例如,在网页模式书写这段内容时,由于登录超时,导致已经写过的内容全部丢失,需要重新再写。思路已经被打断,所以原始的内容已经无法再现了。但我会尽力去使用短暂记忆系统来回忆写过的内容!)

不管是新人还是老手,在这个步骤中都会面临不同的挑战。对于新人来说常常会面对的是为程序定义一些什么样的类。通常情况下也是难题部分,有一些好的规则能够帮助你来设计类:

第一责任:把一项工作分解成多个不同的角色,每个脚色具有不一样的责任。描述责任时要使用动词性语言,不要使用名字。这就足以说明程序中的许多类要干什么。

第二独立:为每个类定义要干什的时候,要尽可能与其它类保持独立关系,也就是不存在交集情况。类与类之间的责任要进行细分,这样每个类就能够进行自我管理,避免依赖关系。提供给类的数据要能够具备分辨使用数据时的动作能力,换句话说,假设你是一个类中的数据,那么当有人想要使用你的时候,你要能够分辨他们要干什么。

第三行为:定义每个类中的行为时需要谨慎和精确,这样一个类执行一个动作的后果会被其它正在与其交互的类理解。行为的定义就是在类里面定义方法,一个类中的许多行为也就是这个类的接口,这样做的意义在于能够让一段代码可以与类中的众多对象进行互动。

定义类常常伴随着许多实例变量和实例方法,这些都是面向对象编程设计时的关键点。熟练的程序员在执行这些工作任务时会自然地使用一个程序所需的模式,而这些模式都是他们曾经用过的。

在一个项目的初期,高层设计阶段常会使用一种名叫 CRC 卡牌模式。(CRC 是Class-Responsibility-Collaborator 类责任合作首字母缩写)这套工具的意义在于每张卡牌代表了一个组件,最终会变成一个程序中的一个类。玩法就是最上一行会有类的名字,起到索引的作用;下面部分会分为两列,左边会写下组件的责任,右边会列出与自己互动的其它合作项,有时候会是其它组件,因为需要与其它组件互动才能执行自己的动作。

设计过程不是直线上升的,而是在一个角色扮演环节进行迭代,其中我们首先要识别的就是动作(就是代表了责任),然后才确定角色(代表了一个组件),找到适合执行该项动作的角色。所以由于这样的一种工作原理,很少可能一下子就找到合适的匹配项,所以就不是直线上升,需要循环几次才能获得想要的结果。当匹配完成也就是设计完成了!使用 CRC 卡牌模式来做设计工作的好处我就不赘述了,你们自己体验一段时间自会找到答案。

作为设计的正式内容还有一项,那就是标准的解释,以及文档化工作。这里使用的就是 UML 绘图法(UML 是 Unified Modeling Language 首字母缩写形式),这种绘图语言是用来表达一个程序的组织情况,UML 是一项面向对象编程设计的标准可视化注释法。

同类推荐
  • 我制造的末日

    我制造的末日

    “选择一个国家开始投放你的病毒吧!”作为一名末日制造者,柳川来到了这个世界。每当他一个个病毒投放到一个个国家感染第一个人时,随之而来的则是一场斗智斗勇的病毒与反病毒的对抗游戏。细菌、病毒、寄生虫、生化武器、纳米病毒……一系列恐怖惊悚的感染狂潮将会全面席卷全球,让无数的人类陷入死亡的深渊。这是我一手缔造的末日游戏,也是你们的惊悚乐园!毁灭地球,仅仅只是开始!
  • 变种人末世生存

    变种人末世生存

    我叫叶清,我所在的世界发生了难以想象的灾难,我要活下去,拯救更多的人……凭着重生的先机,在末世发生的前三个月里,叶清背负一张弓,手执一柄刀,游走于各个地球异界之地,夺取进化果实。十年的末世生存经验,叶清掌握了太多的生存技能。热武器、冷兵器、枪械改造、材料处理、打铁铸刀、培养植物、搜寻食物……
  • 求生死录

    求生死录

    2222年,经十年不谢努力,长生不老药问世,这种神奇的药该人们带来了光明,但是好景不长,殊不知,这种药也该大家带来了灾难。药物正式发布半年后,在体内发生了病变,一场病毒大战就此打响。最终是人类能活战胜病毒——终结者还是救世主?!
  • 天道有失

    天道有失

    一个普通的骚年,机缘巧合之下,前往诸天万界,可是这一切又不是巧合...
  • 数据武神

    数据武神

    当敌人的所有动作在你眼中都化作一个个精细无比的数据时,你还会像之前那般羸弱吗?凭借着无意中获得的超强数据分析能力,楚南就此踏上了武道通途,一飞冲天,最终拳纵银河,成就一代武神!
热门推荐
  • 逆神武裝

    逆神武裝

    随身带着一个计费的冰封王座地图副本系统。什么?一枚凡阶一级源晶可以在地图副本逗留一分钟?二级两分钟?那要多少源晶才能打完这防守地图的一波怪啊?看着下一波怪倒计时还有一天时间的天然泪流满面。别动,打劫,此山本就有,此树刚归我,想要从此过,留下买路财。为了能刷完一个副本,天然成为第一个穿越到异界后因缺钱而当起土匪的主角。同时,除了土匪这个表面上的职业外,还有另外一个职业,想知道?进来收看本书《逆神武装》吧!
  • 王俊凯之你是我的命

    王俊凯之你是我的命

    作者上一写些的小说弃文啦,重新写一篇。。。。。。。。。。
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 大佬把我当成弟弟养

    大佬把我当成弟弟养

    【宠!酥!炸!燃!】世家之首太子爷景尘将救命恩人带回家当“弟弟”养。那小子又冷又野,又狂又傲,还很会噎人。偏偏尘爷将他当成掌中宝,众人不敢怒也不敢言。直到有一天,“弟弟”说她亲戚来了需要用某棉,景尘如遭雷劈。后来,“弟弟”的亲生父亲找到了,景尘再遭雷劈。“爷,童小姐又和您的死对头传绯闻了!“”爷,童小姐和您的死对头同居了,我们弄残他去!“景尘黑脸:“弄残谁?那是老子岳父,亲的!”再后来,景尘每次想要和女朋友约会,都会被昔日的死对头横插一脚堵在门外,“先叫一声爸爸来听听,老子再考虑要不要让你进门。”童灼马甲众多,捂了这么多年没被人扒。后来她遇到了一个把她放在心尖上宠的男神,再后来她发现男神总是有各种各样的人要抓,看在“养育之恩”的份上童灼决定帮帮忙。再再再后来……为什么男神要抓的全是自己的马甲?
  • 老板最看重员工的10项素质(Mbook随身读)

    老板最看重员工的10项素质(Mbook随身读)

    《Mbook随身读:老板最看重员工的10项素质》帮你全面提升自身素质,使你在生活的各个方面皆能左右逢源,无往不利;助你解析人生的困惑谜团,让你澄心争志,超然洒脱;帮你提升职业理念,更好地规划个人发展
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 召唤传奇

    召唤传奇

    一条命运的枷锁,让她无处可逃。这是命中注定,还是一场彻彻底底的阴谋?或许,这也只是神的一个小小的玩笑。锁链颤动,铮铮作响,命运的交响曲,开始演奏!
  • 小甜甜系统之最强女主

    小甜甜系统之最强女主

    “少女,你想变强么?”“并不”“有新人礼包哦~”“好吧,勉为其难的答应你”唐鹤和名叫小甜甜的系统,在异世大陆摸爬滚打。最后超神的故事。
  • 愿澜

    愿澜

    我很喜欢桃花,却要离桃花很远,我爱你,却无法触碰你。
  • 魔剑仙侠传..more

    魔剑仙侠传..more

    凡人自觉九天之上,有神明驾鹤仙游,脱离轮回之命,得以长生不死,永保沉鱼落雁之貌。