项目架构搭建的一些心得体会

简介:

项目的架构搭建就是在是在软件开发的设计阶段完成的。

在开始架构设计之前,首先要知道什么是架构,架构就是软件产品的骨架,这个骨架把组件、环境等因素纳入其中,使之能有效得发挥它们的技能,为项目服务。

在架构设计之前,开发人员首先应该了解项目的基本需求,只有在做好需求分析之后,才能做出适合项目的架构。

架构的设计遵循一些原则:

1.    明确目标,切合要求。这是架构的根本,如果一个架构设计的很漂亮,用了很多层次化的东西,但是如果系统不需要这么复杂的设计,那么这样的架构也是不可取的。

2.    可扩展性。一个好的架构一定是一个方便扩展的架构,如果需求发生改变,那么很容易在原来的基础上进行功能扩展。

3.    易用性。就是架构使用起来方便,易于理解,易于使用,在项目开发过程中,不会因为架构的问题而影响项目的进展。

4.    稳健性。一个好的架构,能适应项目设计需求,不管操作方式如何变化,都可以用同样的方法进行处理。

5.    安全性。架构的安全并不是说把架构的代码放到一个地方加密,是在架构设计中考虑软件的安全性能。 

下面,以我项目中使用的三层架构来具体阐释一下。

所谓的三层,是指数据访问层、业务逻辑层和显示层。三层结构之间的关系如图所示:

    其中,显示层是系统的UI层,提供交互式页面,业务逻辑层用负责数据的传递和处理,数据访问层用来和数据库打交道。实体集是用来对抽象的对象的属性的封装,或者自定义的封装,用来做交互过程中的数据载体。

    相邻层之间可以调用,不能跨层调用。

    这种三层架构的优点:扩展性强,当客户需求变动时,只需修改相应的方法即可;安全性保障,层与层之间不能调用,保障了安全性。易用性强,容易看懂,方便操作。

    现在,我们以一个项目管理系统来说明一下三层架构的项目创建过程。

    1. 创建解决方案,在解决方案里建两个逻辑文件夹,ModulesWebSiteModules用来盛放三层架构的业务逻辑层和数据访问层,以及公共使用的实体集。WebSites里面存放显示层的代码,这里用网站作为显示层。如图:

    2. 创建项目,这里创建三个类库:Entities(实体集)Services(数据访问层)Manages(业务逻辑层),一个网站:ProjectManagementSystem(显示层)

 

架构搭建完成后,就可以编写代码了,比如,有一个功能是项目管理,那么,我们在页面里面创建一个项目管理的页面,用于和用户交互,名为:ProjectManagePage.aspx,在Services创建一个类ProjectService.cs,Manages创建ProjectManage.cs,在Entities创建Project.cs(用于封装Project的属性)。如图:

 

现在,假设用户需要获得项目列表List<Project>,那么,在ProjectManagePage.cs中,需要调用ProjectManage.cs的方法GetProjectList(),此方法返回一个Project的列表。ProjectManage.cs的代码可以如下:


 
 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using Entities; 
  6. using Services; 
  7.  
  8. namespace Manages 
  9.     public class ProjectManage 
  10.     { 
  11.         private ProjectService _projectService = new ProjectService(); 
  12.  
  13.         public List<Project> GetProejctList() 
  14.         { 
  15.             //从ProjectService获得数据 
  16.             List<Project> projectList = _projectService.GetProjectList(); 
  17.  
  18.             //......对ProjectList的数据处理 
  19.  
  20.             return projectList; 
  21.         } 
  22.     } 
  23.  

    从这里可以看出,ProjectManage中调用ProjectService中的方法,实际上,是从ProjectService中拿出数据,然后对数据处理,最后返回给显示层。

看一下ProjectService中的代码:


 
 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using Entities; 
  6.  
  7. namespace Services 
  8.     public class ProjectService 
  9.     { 
  10.         /// <summary> 
  11.         /// 获取Project列表,和数据库交互 
  12.         /// </summary> 
  13.         /// <returns>Project列表</returns> 
  14.         public List<Project> GetProjectList() 
  15.         { 
  16.             List<Project> projectList=new List<Project>(); 
  17.  
  18.             //projectList=.... 
  19.             //....... 
  20.             // 
  21.             return projectList; 
  22.         } 
  23.     } 

    ProjectService仅仅是和数据库交互,并不对数据进行处理。

他们都有一个公共的载体Project,是对Projet属性的封装。这里就不在赘述。 

     个人觉得,一个项目中,并不一定非要用一些高明的架构才是一个好项目,而是要用适合自己系统的架构,应着重于上面说的几个原则。

 

 本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/915287,如需转载请自行联系原作者


相关文章
|
7天前
|
存储 数据采集 机器学习/深度学习
新闻聚合项目:多源异构数据的采集与存储架构
本文探讨了新闻聚合项目中数据采集的技术挑战与解决方案,指出单纯依赖抓取技术存在局限性。通过代理IP、Cookie和User-Agent的精细设置,可有效提高采集策略;但多源异构数据的清洗与存储同样关键,需结合智能化算法处理语义差异。正反方围绕技术手段的有效性和局限性展开讨论,最终强调综合运用代理技术与智能数据处理的重要性。未来,随着机器学习和自然语言处理的发展,新闻聚合将实现更高效的热点捕捉与信息传播。附带的代码示例展示了如何从多个中文新闻网站抓取数据并统计热点关键词。
新闻聚合项目:多源异构数据的采集与存储架构
|
4月前
|
前端开发 JavaScript 测试技术
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
71 3
|
1月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
114 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
5月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
204 2
|
2月前
|
开发框架 前端开发 .NET
一个适用于 .NET 的开源整洁架构项目模板
一个适用于 .NET 的开源整洁架构项目模板
73 26
|
4月前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
319 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
4月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
127 6
|
4月前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
5月前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
86 2
|
6月前
|
负载均衡 数据库 开发工具

热门文章

最新文章