浅谈系统架构<一>
前言:博主刚刚从事于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 出发,分两小节讲述微服务框架的「五脏六腑」: 第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性:二是服务架构的基本组成.为什么第一节写服务架构而不 ...
随机推荐
- PHP中的回调函数和匿名函数
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- SQL Server 2008 R2——使用数字辅助表(master..spt_values)实现用计数字段对记录进行重复显示
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- charles 抓取eclipse中的请求
charles抓取eclipse中的请求 有时候,想要监测eclipse中发送get获取post请求,一样可以使用代理方式: 1.eclipse代码设置 代码中添加,可以就写在主函数中,然后再调用请求 ...
- docker-8 docker小技巧
docker使用小技巧 杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有的已经停止的容器 docker rm $(docker ps -a -q) 删除所 ...
- Silicon Labs
Silicon Labs(美国芯科实验室)总部位于美国德克萨斯州的奥斯汀,成立于1996年,拥有全球化的运营.销售和研发团队,是一家业界领先的高性能混合信号IC供应商,为业界提供易用的高度集成化产品方 ...
- .replace(R.id.container, new User()).commit();/The method replace(int, Fragment) in the type FragmentTransaction is not app
提示错误:The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arg ...
- docker
docker pull centos docker images docker run -ti centos cat /etc/redhat-release ##################### ...
- mybatic与spring结合的事务管理
原文地址:http://czj4451.iteye.com/blog/2037759 mybatis与spring结合后,事务管理更加方便,这里介绍使用transactionnal的方式,有错的的地方 ...
- 关于域名系统DNS解析IP地址的一些总结
关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...
- 【原】迎接微信winphone 5.0 版本的IE10样式兼容
微信 Android 5.1 和 iPhone 5.1 已正式发布了,据说本12月底,微信将推出 Winphone 5.0版本,全面支持微信支付,它绑定 IE10 浏览器,那么做微信公众号的 H5 页 ...