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

简介:

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

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

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

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

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,如需转载请自行联系原作者


相关文章
|
1月前
|
设计模式 前端开发 测试技术
Flutter 项目架构技术指南
探讨Flutter项目代码组织架构的关键方面和建议。了解设计原则SOLID、Clean Architecture,以及架构模式MVC、MVP、MVVM,如何有机结合使用,打造优秀的应用架构。
Flutter 项目架构技术指南
|
4月前
|
设计模式 前端开发 Java
KnowStreaming系列教程第二篇——项目整体架构分析
KnowStreaming系列教程第二篇——项目整体架构分析
41 0
|
4月前
|
前端开发 JavaScript Java
电商4.0项目【二】: 架构搭建
电商4.0项目【二】: 架构搭建
42 0
|
1月前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
140 0
|
4月前
|
前端开发 JavaScript 数据库
Flask狼书笔记 | 09_图片社交网站 - 大型项目的架构与需求(2)
9.8 收藏图片 前面已经学习过如何使用关联表来表示多对多关系,缺点是只能表示关系,不能存储数据(如我还想记录下收藏图片的时间戳)。这种情况下,我们可以使用关联模型来表示多对多关系。 在关联模型中,我们将Photo模型与User模型的多对多关系,分离成了User模型和Collect模型的一对多关系,和Photo模型与Collect模型的一对多关系。
64 0
|
1月前
|
消息中间件 并行计算 网络协议
探秘高效Linux C/C++项目架构:让进程、线程和通信方式助力你的代码飞跃
探秘高效Linux C/C++项目架构:让进程、线程和通信方式助力你的代码飞跃
34 0
|
2月前
|
缓存 监控 安全
如何设计大型项目技术运营服务架构
【2月更文挑战第3天】如何设计大型项目技术运营服务架构
339 1
|
3月前
|
存储 缓存 监控
【分布式】大型互联网项目架构目标
【1月更文挑战第25天】【分布式】大型互联网项目架构目标
|
3月前
|
数据管理 程序员 人工智能
后台数据管理系统 - 项目架构设计【黑马程序员】
后台数据管理系统 - 项目架构设计【黑马程序员】
138 0
后台数据管理系统 - 项目架构设计【黑马程序员】
|
4月前
|
微服务
微服务项目之电商4.0技术架构图
微服务项目之电商4.0技术架构图
234 0