软件开发杂谈 001

简介:
1. 软件架构设计可以基于数据库的模型设计也可以基于领域模型设计。对于业务系统来说,如果他的核心是数据处理和分析,而且数据量很大可以在架构设计时采用基于数据库建模的方式,对于一些中小型的应系统一般习惯上是用领域驱动设计。
2.分层是软件架构的基本理论。任何软件在逻辑上都可以分层,也可以适当的映射到物理层次上,至于怎么分,分多少层,要不要分等要看你的软件领域(每个领域都有一些现成的架构模式可以参考,所谓领域架构),在拿到需求的时候我们习惯上进行水平和垂直的分割,其实分层技术也是一种基本的架构模式。
3.BI商务智能,所谓的智能只不过是数据对业务的支持,通过ETL对数据的提取,筛选与清理等动作,集合数据支持,通过分析报表,OLAP等等提供商业决策支持,其实BI只是业务系统的一种,只是在原有业务管理系统的数据基础上做了层分析模型,维度模型,更有利于商业决策罢了!
4.上班也已经有两三个星期了,每天都在坐公交车,从起点到终点,很无味。今天发现一个有趣的事,做公交这一途中发现了很多有特色的建筑,以前没注意。其实我们软件开发何尝不是如此,需求就像路景考察,你不可能在一次起点到终点的过程就看到所有的建筑,你必须在公车的不同角度去看,很多建筑、路途景色会让你眼前一亮。需求在起初的讨论中是很难澄清的,除非你是非常小的系统。必须在不断的开发中去探索,去发现和变更,现在很多程序员抱怨因需求和设计的变化而修改程序。其实这种现象很正常。
5.有时候可能凭着自己的性格,有离职的想法。但,当你静下心来想想,很多因素组织了你的想法。其实应该以一种平常心去面对发生了和将要发生的事。
6.五年前开始用 UML2.0,支持工具 ROSE 和 Together 之类的。但是常常令人思考的是 UML 在项目中真的起到指导作用了吗?未必,笔者做的很多项目都是前期画画,后期抛弃。结果前期花费了很多时间拖延了项目的进度,而且在后期维护阶段,这些所谓的图也没有为后来者做什么贡献。就是我所在的H公司,在这方面也不是很理想,或者说是一团乱麻。我想一个很重要的原因就是很多人会用UML,熟悉几个工具,但UML的精髓并没学到。还有就是在项目组中没有一个体系结构师做这方面的工作,你可以说这是中国的大环境。不尽然,一直以来我个人都倡导体系架构。我们都知道 AP---适合小型项目、精英团队的开发过程,在体系架构方面没有严格的要求,所以不适合大型,团队分散的项目。前一段时间也思考了这个问题,写了篇论文 <<敏捷与架构对齐>>,下面我们还是认认真真看看UML的基本知识吧,为新手也为老手,有兴趣的可以看看,总结的还是可以的。有啥问题欢迎讨论。
7.项目客户端完全采用 Ext 框架,表示层没有 HTML, JSP 之类的东东,只有 CSS和JS。Ext 是个很好的东西,也有一些 bug,不过他更新的很快,也有很多示例系统和组件。在构建前端表示的时候可以在很短的时间内作出很炫的效果,真的是令你眼前一亮。和后端服务交互完全是基于 HTTP 协议的 JSON 对象字符串,可能有的项目中这是一个折中的选择。不过我们现在这么做确实使服务端和前台表示端完全分离了,结构很清晰,而且也有明显的效果。对于后台开发也是严格遵守分层概念,符合正交体系结构的设计概念,基于线索的开发模式和分工策略。在体系结构方面有一清晰的架构视图,反映多中关注。目前这个项目已经接近尾声。第一个小版本要发布了,期待。
8.源代码就是设计,似乎是老生常谈,但是很多人还是转不过弯来,俗话说:“重构一段代码很容易,但重构一个人的思想是很难的”。
9.对于一个分层的系统来说,代码构造方式有两种:一种是自顶向下的构造方法;一种是自底向上的构造方法。这两种构造方法都来源于分析,也就是说分析也有两种:一种自顶向下的分析;一种自底向上的分析。这两种分析都源于系统的逻辑层次性(如系统的层次理论,上层下层的关系(一种分析和分解关系)),系统分层源于复杂问题的分解,也就是所说的简单化问题空间以及问题归约方法论。这种分解方式源自于人们认识自然和改造自然的一个学习过程(是人们改造自然、认识自然的经验在系统开发中的一种体现)
10. 支撑系统参考架构
                             支撑系统架构
                                   |
                       ———————————— 
                       |                       |
                    静态架构               动态架构
                       |                       |
             ——————————         业务场景架构
            |                    |
        应用软件架构          视图架构
                                 |
               ———————————————————— 
              |            |            |              |

          功能架构     技术架构     信息架构       流程架构  


本文转自BlogJava 新浪blog的博客,原文链接:软件开发杂谈 001,如需转载请自行联系原博主。

相关文章
|
10月前
|
搜索推荐
如何系统地学习IT技术:一篇指导初学者和有经验专业人士的博客
如何系统地学习IT技术:一篇指导初学者和有经验专业人士的博客
|
11月前
|
前端开发 大数据 程序员
杂谈|程序员还是工程师
杂谈|程序员还是工程师
|
设计模式 运维 前端开发
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
|
敏捷开发
敏捷史话读书笔记14-17章
《敏捷史话》禅道团队,个人读书笔记。了解敏捷agile的由来和人物。记录敏捷开发各个不同的节点。【自适应发软件开发倡导者】【制定《相互依赖声明》】【估算扑克】【测试驱动开发】
97 0
|
敏捷开发 设计模式 安全
敏捷史话读书笔记5-13章
《敏捷史话》禅道团队,个人读书笔记。了解敏捷agile的由来和人物。记录敏捷开发各个不同的节点。【敏捷是什么】【I am a programmer】【不要让自己成为一个标签】【瀑布开发之旅】【敏捷开发的萌芽】【贯彻[匠艺精神]】【重构】【《敏捷宣言》】【Bliki的诞生】【守】【破】【离】【UML/MDA】【Agile UML/MDA】【Dark Scrum】【敏捷之外】【极限编程的诞生】【JUnit的诞生】
161 0
|
敏捷开发 C++
敏捷史话读书笔记1-4章
《敏捷史话》禅道团队,个人读书笔记。了解敏捷agile的由来和人物。记录敏捷开发各个不同的节点。【scrum正式化】【敏捷的生活】【Jeff的书单】【创造[Enterprise Scrum]】【初识DSDM】【敏捷宣言】【集成敏捷转换模型】
193 0