浅谈系统架构<一>
前言:博主刚刚从事于Web后端开发与学习不久,开发项目经验也是有限的。不过今天依旧将一些个人的想法记录下来,我的构想或许不太正确,还望各位大牛能给我多多建议。
首先:我们从编程开始讲起
博主是偏向于后端开发的程序员,从入门到如今,学过的语言,技术为数不多。但我敢肯定的是:无论是哪一门语言,其语法只要是一个有正常逻辑思维能力的人再加上他一定时间的研究学习。弄懂这门语言的语法是没有任何问题的。那么问题来了。在学过那么多编程语言后,又有多少人能够深刻理解编程过程中涉及到的编程思想。也就造成一部分人在学习过程中知道一个需求该怎么写,但从来没有思考过为什么需要这样写。因此,我在学习一门语言中,常是会问自己,这样写的好处是什么,坏处又有什么,益处也是颇多。
Next: 谈谈需求分析
需求分析对于一个项目来说应该是重中之重,这直接影响到一个项目的成败。而需求分析之前往往还需要通过大量准确的市场调研,毕竟我们最终开发的东西是需要为人民服务,给我们带来便利的。在通过一帮子人不停的讨论、分析,最终将需求报告总结出来之后,又有一个重要的部分需要完成。那便是是项目建模以及权限分配等等,这些模型作为一个项目的分子级别的存在同样是不能容忍存在任何差异的。
Then: 异常处理
无论一个多大多小的项目一定会存在或多或少的bug,如果不存在反而这个项目是存在问题的。在我们代码的编写过程中应当考虑任何有可能发生异常的情况,并给出相应的处理方案。例如,服务器突然发生异常,用户的不正当操作,亦或是用户的并发操作等都有可能给我们的项目带来各种各样的问题。引用伟人说过的一句话——我们不能规避误差,但可以规避错误。方向上的东西一定不允许出错,细节上的尽量规避。而对于比较重要的连环操作更是应当引入事务的支持,例如银行转账,A给B转账1000,先从A账户的余额判断是否大于1000,再减去1000,之后再在B账户的余额增加1000.(实际过程肯定更加严谨)如果在A账户转出成功后,B账户转入失败了呢。这一系列操作应当要回滚。顾对于一个项目重要的部分应添加事务的支持,要么这一些连环操作都执行成功,要么执行失败,回退到执行之前的状态。
在一个项目中或多或少需要引用各种各样的框架使我们的项目更加强健,稳固。同时,我们也不能过分依赖于框架,使我们的项目过分的与框架耦合在一起。假如,我们发现在我们项目中某套框架存在很大的漏洞,又或者是有一套全新的更加完善的框架出现,需要替换框架时,此时我们才发现我们的代码与框架已经紧密耦合在一起了。这个时候如需要替换的话,对我们的成本来说无疑是巨大的打击。例如,在web后端中常用的一套框架spring,如果我们在代码中总是使用spring的注解,而抛弃xml文件可能就会造成这样的问题。
Last:前后端分离
随着互联网的高速发展,以及移动设备的普及,我们的项目更是要适应多平台的使用。在我们的后端代码中更是不能与我们前端页面出现紧密耦合,此时不防使用SOA(面向服务体系架构)思想。这里我分享一位大牛(@夏天的森林)对于前后端分离的博客——Web应用架构的新趋势---前端和后端分离的一点想法
总结:好长一篇文章终于完成了,看到这里的朋友麻烦点个赞,加个关注哈。博客持续更新中...又到周末了,各位程序猿是不是好开森。
浅谈系统架构<一>的更多相关文章
- [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析
		
作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 365234583] ...
 - 浅谈SDN架构下的运维工作
		
导读 目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类 ...
 - Nopcommerce架构浅谈之架构层次
		
前面谈到了系统的文件,从文件结构中我们也可以看出Nop的层次划分还是非常清晰,下面我将介绍下Nop的架构层次,并对每个层做简要的介绍,先看我画的层次图. 这个系统基本上按照了ddd的形式做了划分,我本 ...
 - 浅谈OpenStack架构
		
首先,先来了解,什么是OpenStack? OpenStack是一个云平台管理的项目,它不是一个软件.这个项目由几个主要的组件组合起来完成一些具体的工作.OpenStack是一个旨在为公共及私有云 ...
 - 浅谈MySQL架构体系
		
一 数据库和数据库实例 在MySQL的学习研究中,存在两个非常容易混淆的概念,即数据库和数据库实例.在MySQL中,数据库和数据库实例定义如下: 数据库:存储数据的集合: 数据库实例:操作数据库的集 ...
 - 浅谈JavaWeb架构演变
		
一 JavaWeb架构演变 在java架构模式中,我们可以将MVC架构模式抽象为如下结构: 1.View层.View层即UI层,可采用的技术如JSP,Structs,SpringMVC等 2.Con ...
 - 以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程
		
JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作.项目管 ...
 - 浅谈ETL架构中ODS的作用以及如何在HaoheDI中自动创建ODS表
		
什么是ODS表? 在ETL架构中,源数据很少会直接抽取加载到数据仓库EDW,二者之间往往会设置一个源数据的临时存储区域,存储数据在清洗转换前的原始形态,通常被大家称做操作型数据存储,简称ODS,在Ki ...
 - 浅谈服务架构“五脏六腑”之Spring Cloud
		
本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: 第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性:二是服务架构的基本组成.为什么第一节写服务架构而不 ...
 
随机推荐
- FindBugs 入门——帮你减少代码中的bug数
			
FindBugs 入门 FindBugs 作用 开发人员在开发了一部分代码后,可以使用FindBugs进行代码缺陷的检查.提高代码的质量,同时也可以减少测试人员给你报的bug数. 代码缺陷分类 根据缺 ...
 - SpringMVC   @ModelAttribute注解
			
/** * 1. 有 @ModelAttribute 标记的方法, 会在每个目标方法执行之前被 SpringMVC 调用! * 2. @ModelAttribute 注解也可以来修饰 ...
 - 【Linux】解决Wesnoth中文乱码问题
			
现在使用的系统是Linux Mint 18,安装了Wesnoth,发现打开之后部分中文显示正常,部分中文显示为乱码. 谷歌出的很多办法都只给出了几条指令,但并不具有普适性,我提供一种新的方法,通过修改 ...
 - mysql常用基本操作
			
mysql常用操作 查看都有哪些库 show databases; 查看某个库的表 use 库名; show tables; 查看表的字段 desc 表名; 当前是哪个用户 select user() ...
 - MySql access denied for user错误
			
MySql access denied for user错误 | 浏览:2812 | 更新:2014-11-27 11:16 MySql access denied for user错误 方法/步骤 ...
 - 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
			
1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...
 - 鼠标 mouseover和mouseout事件
			
在div内想实现鼠标移入移出效果,最开始的时候是用了jquery的mouseout和mouseover事件来实现的, $('.product).mouseover(function(){ …… }). ...
 - PHP_Bibel阅读笔记(二)——脸黑的一天(?一年)
			
一早上起来把50包开了,一张橙卡...就问还有谁...........本命年啊,我去买红内裤还不行么.... 实时更新,老哥的号的30包什么都没有....不过中午又开了5包,皇帝,好评啊!!! 五.代 ...
 - [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)
			
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...
 - python-面向对象进阶
			
小总结: 面向对象的好处 更容易扩展,提高代码的使用效率,使代码组织性更强.更清晰,更适合复杂项目的开发 封装:把功能的实现细节封装起来,之暴露调用接口 多态:接口的继承 定义: 类 : 模板 ...