模块架构不是软件成功的“决定因素”

【本文是09年的一篇旧文,出于某些原因,对原文内容有删减,在这里整理后重新发表】

前言

感谢XXX对我们技术,对我们公司产品提出这些意见,我们公司卖的是软件产品,开发软件是一件技术活,说实话,要把技术上面的东西用非技术的语言来向大家交流,的确不是容易的事情。

架构的概念和架构的变迁

首先,“架构”一词我们技术和大家有不同的理解,从于冬琪提出的“平行架构”和“树形架构”的字面意思来理解,他(暂且用这个“他”而不是“她”,现在我们只见其声不见其人,不知者无罪,假设错了还请见谅:) )的关注点应该是“功能模块的组织结构”,我们先来看看这两种组织结构都有啥特点,为叙述方便,我们用一个公司的组织结构的发展变迁来说明这个问题。

某公司的组织架构例子

1,公司成立时期

甲、乙、丙 三人因为共同的兴趣和合适的时机凑到了一起,他们决定成立一个公司来卖产品。公司成立之初,没有任何自己的产品,只是大家都认为这个行业很有发展潜力,决定代销某公司的产品。这个时候,只要把产品销售出去即可,而公司的组织结构没有任何明确的结构,公司的所有经营事项三个人一起分担来做,包括行政,财务,销售等。

这个时候公司的实际组织结构为――无架构

2,公司初步发展:

在甲、乙、丙 三人共同的努力下,公司打开了市场,销售形势逐步好转,有了一定的原始积累,招聘了几个新人,公司确定了成立行政,财务,销售三个部门,甲负责行政,乙负责财务,丙负责销售,公司的整体运营仍然由三人共同负责。

这个时候公司的实际组织结构为――平行架构

3,公司快速发展:

经过数年的发展,公司逐步打开了国内市场,销售成果突飞猛进,公司取得了快速发展,员工超过了数百人,公司的组织结构分化为:

l 行政部――行政部,人事部,售后服务部;

l 财务部――财务部,税务部,合同部,资金部;

l 销售部――营销部,销售部,仓储部。

每一个部门设立一个部门经理,甲,乙,丙分任三大部门的副总经理,并且由甲兼任公司总经理。普通员工向部门经经理负责,部门经理向直属副总经理负责,副总经理向总经理负责。

这个时候公司的实际组织结构为――树形架构

4,公司发展到顶峰

经过10几年的发展,甲、乙、丙三人员来所在的公司已经发展到同行业第一企业,发展成了一个企业集团,集团下属有 

l 技术研究院,

l 产品生产企业,

l 专业销售公司,

l 集团物流公司

l 集团总公司

l 。。。。。。

等数个公司和工厂,研究机构,发展成集“技,工,贸”一体的大型企业集团,集团各个下属企业独立运作,由集团总部综合管理,统一协调。

这个时候公司的实际组织结构为――平行架构+树形架构

(很多人认为这个时候还是树形结构,但这个时候集团各个企业是独立运作的,管理上是平级的,站在集团的层次看,它们之间是平行架购,而站在各个企业上门看,它们又都是树形架构的)

在现实社会中,很多公司都经历了上面类似的发展历程,从上面叙述的某个公司的发展历程来说,我们看到在公司发展的不同阶段,我们应该采用不同的“企业架构”,即可以没有任何架构,也可以有平行架购,再到树形架构,甚至是两种或多种架构并存。

架构变迁

俗话说,水无常形,兵无常势,任何事物的结构性态都不是固定的,都是根据当时的情况决定的,不能一开始就说它应该是某种形态,不应该是某种形态。事物的发展,社会的变迁,都是遵循一种“螺旋式上升”的道理,期间可能有种种曲折和反复,但大势如此,任何人都不能够阻止和改变!

XX的发展历程张鹏已经叙述的很清楚了,我们选择的“模块架构”事实上也遵循了从没有明确的架构,到平行架购,到树形架构的一个变迁(下文我会说FT其实已经是一个树形的功能模块架构),这中间也充满了曲折和反复,但是要求我们的软件从一开始就符合最理想的“树形架构”是不现实的,物越分越细,理越辩越明,如果有人一开始就能这么有先见,我只能说“神人啊”!

FT从总体功能模块上面,是一个树形结构(架构),但具体到某一个层次,它又是平行结构(架构)。基金类,理财诊断类,资讯类三大模块之间可以认为是平行结构,但它可能又不完全是,请看下图的

基金诊断用例:

数据架构

功能的实现是基于一套完善的数据的,同样这些数据的组织也是有结构的,如果大家非要问数据的组织是啥架构,那么我只能说它既不是平行架购,也不是树形架构,

这只是一个概念模型,实际上,每一部分的数据处理都是很复杂的,就拿基金基础数据集来说,它本身的处理就分为了原子层,指标层,展现层。

原子层

  原始的数据,在FT/MB项目中使用的基金业务数据来自于“巨灵数据库”,我们需要在这样的数据上面进一步处理成我们自己的数据形式。这样原始的数据集合称为“原子层”;

指标层

  对原子层的数据进行加工后的数据,它是单一的数据指标,存储的是每一个逻辑意义上面的,基本符合第3范式的数据,数据之间关系明确,没有冗余数据;也可以认为是符合“数据接口”的数据,这些“接口”便是一个个指标。

展现层

  为方便客户端以更方便的方式使用数据,降低数据在客户端的处理量,我们可以将常用的数据的不同展现方式进行封装,例如建立一个视图,封装多个数据指标。

下图是基金基础数据分层关系图

总结

从产品的功能架购,到产品相关的数据架购,再到产品的应用架购,最后到整个公司的技术架购,甚至,还可以延伸到“企业架构”,“架构”一词在不同的层次,有不同的含义,具体到每一个层次,很难说这个架构应该是“平行架购”还是“树形架构”。

架构层次图:

正式由于FT的功能模块繁多,数据量大数据处理复杂,客户环境特殊,而且产品是逐步发展壮大的不是一开始就设计好的,才导致我们的软件显得有些“臃肿”,有些“笨拙”。当然,到了一定的阶段,我们有必要对“架构”进行重新梳理,但这是一个长期的,持续的,绝对不是一蹴而就的过程。

架构不是“决定因素”

但是,不管采用何种架构,要想使问题能够迅速高效的解决,这是不现实的,要不怎么会有这么多的企业管理书籍呢?怎么会有这么的软件架构设设计的书籍和讨论呢?真正想解决问题,那我们就不要把问题复杂化,拿我们的FT软件来说,如果要想让它“飞起来”,但又想保持这么多功能,这样的展现形式,是不可能的,也就是说问题的根源

不在于采用何种架构,而是我们能不能把问题找得简单点!

比如功能简单点,界面简单点,操作简单点,自然我们设计的软件也就是简单的,短小精悍的。

在这里我代表所有的程序员大声宣称:

我是一个懒惰的程序员,我不喜欢复杂!

理想归理想,事实归事实,我“懒惰”不代表我不想改变,我们一直在试图寻找一个好的解决方案,让我们的FT,MB飞起来,就像张鹏说的,FT,MB对我们来说,它们就是我们的孩子,我们一直都在试图努力让它们成长的更好!而根据前面的分析,现有的架构是由软件产品本身的复杂性和软件开发的过程特点决定的,“架构”只是其中的一个问题,不是决定性的问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

细数大数据行业的四大误区

大数据这个词,恐怕是近两年IT界炒的最热的词汇之一了,各种论坛、会议,言必谈大数据,“大数据”这个词,在IT界已经成了某果一样的“街机”或者叫“街词”,不跟风说...

9120
来自专栏JAVA技术zhai

2018开发者技能调查报告之Java程序员求职必备技能分析

根据国外开发者平台 HankerRank 发布的2018 年开发者技能调查报告的统计数据,本文摘录程序员求职时必备技能相关的调查结果。

17520
来自专栏华章科技

用户在线行为学,从点击数据背后说起

用户在线行为学,如果不使用用户浏览行为、使用数据、点击数据、交互数据、眼动图等,那就无异于盲人摸象。但是非常可怜,这个领域连摸的人都不多,都忙着上炒作,融资,忽...

10920
来自专栏Forrest随想录

我是一个什么风格的管理者?

昨天一口气看了好几篇刘建国老师,在极客时间《技术管理实战36讲》的文章,看地非常过瘾。

74630
来自专栏企鹅号快讯

自主决定如何执行任务的机器人

在自动化领域,新的技术突破即将出现。在位于慕尼黑的西门子实验室,只要提供产品生产工作单,机器人就可以自主选择如何组织动作执行任务。与此同时,慕尼黑科技大学的一支...

204100
来自专栏数据猿

金融科技&大数据产品推荐:量子金服投研管理平台

量子金服投研管理平台是以标准化策略生产、验证和交易为核心,主要面向具有一定量化研究能力的机构投资者和科研团队,集“全面高质量数据、量化投资策略构建、快速回测及高...

32870
来自专栏一个爱吃西瓜的程序员

【读书笔记】《增长黑客》创业公司的用户与收入增长秘籍

这本书是去年女朋友买来送给我的,我断断续续地看着,最近终于看完了,现在来说说我的读后感。

13310
来自专栏刘望舒

寒冬已至?四面楚歌的Android工程师该何去何从?

寒冬真的来了吗?可能是吧,因为最近几年每年都说是寒冬,说的真的叫人焦虑。不过互联网的整体环境确实不如前几年,即使不说我想大家也能隐约的感受到了。作为曾经炙手可热...

20530
来自专栏灯塔大数据

PK BAT,运营商大数据其实更有价值

要谈起大数据,必然要提到BAT等互联网公司,它们在大数据领域是先发者,不过这也很正常,因为它本身是有数据基因的,其天然的在线性,其血液中流淌着BIT的血,并通过...

40380
来自专栏大数据钻研

如何学习编程和转行

如果你想知道如何学习编程和转行,那么你不是在单骑作战。随着科技热潮对软件工程师和计算机科学家需求的增加,很多专业人士开始纷纷将自己的职业生涯转移到一条更注重技术...

285110

扫码关注云+社区

领取腾讯云代金券