创建你的UI编程思维
众所周知,GUI代码是难于阅读和维护的,并且看上去总是一塌糊涂。本章我们将讨论三个驯服你的UI代码的技术。我们将讨论重构代码以使其易于阅读、管理和维护。另一个方面是显示代码和基本的处理对象之间的处理,这也是UI程序员头痛的地方。MVC(ModełView/Controller,也就是模型-视图-控制器模式)设计模式是这样一种结构,它保持显示和数据分离以便各自的改变相互不影响。最后,我们讨论对你的wxPython代码进行单元测试的技术。尽管本章的所有例子将使用wxPython,但是其中的多数原则是可以应用到任何UI工具的,代码的设计和体系结构就是所谓的UI编程思维。一个深思熟虑的蓝图将使得你的应用程序建造起来更简单和更易维护。本章的建议将帮助你为你的程序设计一个可靠的蓝图。
重构如何帮我改进我的代码?
好的程序员为什么也会写出不好的界面或界面代码?这有很多原因。甚至一个简单的用户界面可能都要求很多行来显示屏幕上的所有元素。程序员通常试图用单一的方法来实现这些,这种方法迅速变得长且难于控制。此外界面代码是很容易受到不断改变的影响的,除非你对管理这些改变训练有素。由于写界面代码可能是很枯燥的,所以界面程序员经常会使用设计工具来生成代码。机器生成的代码相对于手工代码来说是很差。
原则上讲,保持UI代码在控制之下是不难的。关键是重构或不断改进现有代码的设计和结构。重构的目的是保持代码在以后易读和易于维护。下面说明了在重构时需要记住的一些原则。最重要的是要记住,某人以后可能会不得不读和理解你的代码。努力让他人的生活更容易些,毕竟那有可能是你。风水轮流转,我最讨厌的两件事,一个是别人写的代码没有注释和文档,一种是让我写代码的时候加注释和文档。-
重构的一些重要原则
- 不要重复:你应该避免有多个相同功能的段。当这个功能需要改变时,这维护起来会很头痛。
- 一次做一件事情:一个方法应该并且只做一件事情。各自的事件应该在各自的方法中。方法应该保持短小。
- 嵌套的层数要少:尽量使嵌套代码不多于2或3层。对于一个单独的方法,深的嵌套也是一个好的选择。
- 避免出现硬编码的字符串和数字:字面意义上的字符串和数字应使其出现在代码中的次数最小化。一个好的方法是,把它们从你的代码的主要部分中分离出来,并存储于一个列表或字典中。
这些原则在Python代码中特别重要。因为Python的缩进语法、小而简洁的方法是很容易去读的。然而,长的方法对于理解来说是更困难的,尤其是如果它们在一个屏幕上不能完全显示出来时。类似的,Python中的深的嵌套使得跟踪代码块的开始和结尾很棘手。然而,Python在避免重复方面是十分好的一种语言,特别是因为函数和方法或以作为参数传递。
一个重构的例子
为了展示给你如何在实际工作中应用这些原则,我们将看一个重构的例子。下面显示了一个窗口,它可用作访问微软Access类数据库的前端。
它的布置比之前我们的所见过的那些要复杂一些。但是按现实中的应用程序的标准,它仍然十分简单。例5.1的代码的结构很差。
他的原始代码如下所示:
#!/usr/bin/env python
import wx
class RefactorExample(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, 'RefactorExample',size = (340, 200))
panel = wx.Panel(self, -1)
panel.SetBackgroundColour("White")
prevButton = wx.Button(panel, -1, "<< PREV" , pos = (80, 0))
self.Bind(wx.EVT_BUTTON, self.OnPrev, prevButton)
nextButton = wx.Button(panel, -1, "NEXT >>", pos = (160, 0))
self.Bind

最低0.47元/天 解锁文章

1055

被折叠的 条评论
为什么被折叠?



