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

相关文章
|
1月前
|
测试技术 持续交付 开发者
编程之道:开发者的自我提升之旅
在软件开发的世界里,每位开发者都是用代码绘出数字化画卷的艺术家。本文从技术深度与广度的平衡、代码的简洁之美、持续集成与部署、代码审查、测试驱动开发、有效沟通、时间管理和面对失败的勇气等八个方面,分享了职业心得,帮助开发者在技术和心灵上共同提升,勇敢面对每一次挑战,在编程之路上不断前行。
|
3月前
|
前端开发 API 数据库
探索后端开发之巅:从基础到高级实践
【8月更文挑战第29天】在技术的世界里,后端开发是一块基石,它支撑着无数应用的运行和数据的处理。本文将带你从零基础开始,逐步深入到后端开发的高级实践,包括语言选择、框架搭建、数据库设计、API开发以及性能优化等方面。我们将通过浅显易懂的语言和实际代码示例,帮助你构建起坚实的后端开发知识体系,让你能够自信地应对各种后端挑战。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的学习资源和实践指导。
|
2月前
|
Java C++ Python
探索技术之巅:我的编程之路
【9月更文挑战第2天】 在数字时代的浪潮中,编程已成为连接思想与现实的桥梁。本文将带领读者穿梭于代码的海洋,分享个人的技术旅程,从最初的迷茫到最终的成就感,揭示技术学习过程中的困难、挑战以及克服这些难题的策略。文章不仅展示了编程技能如何逐步提升,还探讨了持续学习的重要性,旨在激励那些踏上或即将踏上编程征途的人们,鼓励他们不断探索技术的边界,实现自我超越。
28 0
|
4月前
|
开发框架 程序员
「随笔」编程中的技术难题与挑战
编程中的挑战如bug、性能优化和跨平台兼容性,常考验程序员的智慧和经验。空指针异常需仔细检查代码,内存泄漏需使用分析工具并理解内存管理,而跨平台兼容性涉及不同设备接口和协议。程序员通过创新方法,如内存管理和跨平台框架,解决问题,展现创造力和技能。这些难题既是障碍,也是成长的契机。
36 0
|
前端开发 大数据 程序员
杂谈|程序员还是工程师
杂谈|程序员还是工程师
|
设计模式 运维 前端开发
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
《构建之法-现代软件工程》读书笔记(二)
|
程序员 C++ 开发者
《代码整洁之道》-开篇
《代码整洁之道》-开篇
下一篇
无影云桌面