软件开发杂谈 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,如需转载请自行联系原博主。

相关文章
|
13天前
|
项目管理
技术方案撰写之道:实用技巧与方法
本文探讨了如何撰写技术方案,强调了考虑方案的相关方、关键指标、目标受众和预期收益的重要性。文章提出了写作框架应清晰、表达生动、具有美感,并指出好的方案应实现共赢、系统规划和显著效益。写技术方案时,需明确问题、深入分析需求、设定合理目标、设立度量标准、专业设计方案、规划执行路径并有效项目管理,确保方案的成功实施和收益。
27 0
|
7月前
|
程序员
在技术社区编写技术博客的一些心得体会
在技术社区编写技术博客的一些心得体会
20 0
|
9月前
|
前端开发 大数据 程序员
杂谈|程序员还是工程师
杂谈|程序员还是工程师
|
设计模式 运维 前端开发
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
|
前端开发 JavaScript Java
雷学委趣谈编程 大型鞋厂与开发工程化
朋友们,小白奶奶上次听雷学委趣味故事学会了类和对象。
168 0
雷学委趣谈编程 大型鞋厂与开发工程化
|
定位技术
《精益产品开发》读书笔记之四
何老师的这本书是一本非常“好”读的书,深涩的概念也是讲得深入浅出,触类旁通,而且故事感十足。
148 0
《精益产品开发》读书笔记之四
|
敏捷开发
《精益产品开发》读书笔记之三
何老师的这本书是一本非常“好”读的书,深涩的概念也是讲得深入浅出,触类旁通,而且故事感十足。
147 1
|
测试技术 项目管理 调度
《精益产品开发》读书笔记之二
何老师的这本书是一本非常“好”读的书,深涩的概念也是讲得深入浅出,触类旁通,而且故事感十足。
145 0