对于每个软件系统,我们都可以通过行为和架构两个维度来体现它的实际价值。
行为时软件最直观的价值维度。程序员的工作就是让机器按某种指定的方式运行给系统的使用者创造或者提升利润。
架构作为软件价值的第二个维度,体现在软件的灵活性。软件系统必须保持灵活,软件的目的就是让我们可以以一种灵活的方式来改变机器的工作行为。
然而实际工作中我们无法使两个维度都得到最大期望,这就需要从中进行取舍,那么我们需要知道哪个维度的价值更大。是系统的正常工作更重要,还是系统的易于修改更重要?
通常,业务部门的人会说软件的正常工作更重要,开发人员也认可这种看法。这是错误的,可以用个简单的逻辑来推导。
如果某程序可以正常工作,但是无法修改,那么当业务需求变更时,它将无法工作,我们无法通过修改的方法使它正常工作,程序的价值将会为0。
如果某程序当前无法正常工作,但是可以很容易的修改,那么把它改好,并且可以随着需求变化时时更改,都应该是很容易的事,那么程序将秩序产生价值。
来自 《架构整洁之道》- 罗伯特- C-马丁
网友评论