前言:博主刚刚从事于Web后端开发与学习不久,开发项目经验也是有限的。不过今天依旧将一些个人的想法记录下来,我的构想或许不太正确,还望各位大牛能给我多多建议。

首先:我们从编程开始讲起

  博主是偏向于后端开发的程序员,从入门到如今,学过的语言,技术为数不多。但我敢肯定的是:无论是哪一门语言,其语法只要是一个有正常逻辑思维能力的人再加上他一定时间的研究学习。弄懂这门语言的语法是没有任何问题的。那么问题来了。在学过那么多编程语言后,又有多少人能够深刻理解编程过程中涉及到的编程思想。也就造成一部分人在学习过程中知道一个需求该怎么写,但从来没有思考过为什么需要这样写。因此,我在学习一门语言中,常是会问自己,这样写的好处是什么,坏处又有什么,益处也是颇多。

Next: 谈谈需求分析

  需求分析对于一个项目来说应该是重中之重,这直接影响到一个项目的成败。而需求分析之前往往还需要通过大量准确的市场调研,毕竟我们最终开发的东西是需要为人民服务,给我们带来便利的。在通过一帮子人不停的讨论、分析,最终将需求报告总结出来之后,又有一个重要的部分需要完成。那便是是项目建模以及权限分配等等,这些模型作为一个项目的分子级别的存在同样是不能容忍存在任何差异的。

Then: 异常处理

  无论一个多大多小的项目一定会存在或多或少的bug,如果不存在反而这个项目是存在问题的。在我们代码的编写过程中应当考虑任何有可能发生异常的情况,并给出相应的处理方案。例如,服务器突然发生异常,用户的不正当操作,亦或是用户的并发操作等都有可能给我们的项目带来各种各样的问题。引用伟人说过的一句话——我们不能规避误差,但可以规避错误。方向上的东西一定不允许出错,细节上的尽量规避。而对于比较重要的连环操作更是应当引入事务的支持,例如银行转账,A给B转账1000,先从A账户的余额判断是否大于1000,再减去1000,之后再在B账户的余额增加1000.(实际过程肯定更加严谨)如果在A账户转出成功后,B账户转入失败了呢。这一系列操作应当要回滚。顾对于一个项目重要的部分应添加事务的支持,要么这一些连环操作都执行成功,要么执行失败,回退到执行之前的状态。

Latter: 框架的使用

  在一个项目中或多或少需要引用各种各样的框架使我们的项目更加强健,稳固。同时,我们也不能过分依赖于框架,使我们的项目过分的与框架耦合在一起。假如,我们发现在我们项目中某套框架存在很大的漏洞,又或者是有一套全新的更加完善的框架出现,需要替换框架时,此时我们才发现我们的代码与框架已经紧密耦合在一起了。这个时候如需要替换的话,对我们的成本来说无疑是巨大的打击。例如,在web后端中常用的一套框架spring,如果我们在代码中总是使用spring的注解,而抛弃xml文件可能就会造成这样的问题。

Last:前后端分离

  随着互联网的高速发展,以及移动设备的普及,我们的项目更是要适应多平台的使用。在我们的后端代码中更是不能与我们前端页面出现紧密耦合,此时不防使用SOA(面向服务体系架构)思想。这里我分享一位大牛(@夏天的森林)对于前后端分离的博客——Web应用架构的新趋势---前端和后端分离的一点想法

总结:好长一篇文章终于完成了,看到这里的朋友麻烦点个赞,加个关注哈。博客持续更新中...又到周末了,各位程序猿是不是好开森。

浅谈系统架构<一>的更多相关文章

  1. [Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案例的剖析

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节. 交流QQ群:[编程之美 365234583] ...

  2. 浅谈SDN架构下的运维工作

    导读 目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类 ...

  3. Nopcommerce架构浅谈之架构层次

    前面谈到了系统的文件,从文件结构中我们也可以看出Nop的层次划分还是非常清晰,下面我将介绍下Nop的架构层次,并对每个层做简要的介绍,先看我画的层次图. 这个系统基本上按照了ddd的形式做了划分,我本 ...

  4. 浅谈OpenStack架构

    首先,先来了解,什么是OpenStack?   OpenStack是一个云平台管理的项目,它不是一个软件.这个项目由几个主要的组件组合起来完成一些具体的工作.OpenStack是一个旨在为公共及私有云 ...

  5. 浅谈MySQL架构体系

    一  数据库和数据库实例 在MySQL的学习研究中,存在两个非常容易混淆的概念,即数据库和数据库实例.在MySQL中,数据库和数据库实例定义如下: 数据库:存储数据的集合: 数据库实例:操作数据库的集 ...

  6. 浅谈JavaWeb架构演变

    一  JavaWeb架构演变 在java架构模式中,我们可以将MVC架构模式抽象为如下结构: 1.View层.View层即UI层,可采用的技术如JSP,Structs,SpringMVC等 2.Con ...

  7. 以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程

    JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作.项目管 ...

  8. 浅谈ETL架构中ODS的作用以及如何在HaoheDI中自动创建ODS表

    什么是ODS表? 在ETL架构中,源数据很少会直接抽取加载到数据仓库EDW,二者之间往往会设置一个源数据的临时存储区域,存储数据在清洗转换前的原始形态,通常被大家称做操作型数据存储,简称ODS,在Ki ...

  9. 浅谈服务架构“五脏六腑”之Spring Cloud

    本文将从 Spring Cloud 出发,分两小节讲述微服务框架的「五脏六腑」: 第一小节「服务架构」旨在说明的包括两点,一服务架构是什么及其必要性:二是服务架构的基本组成.为什么第一节写服务架构而不 ...

随机推荐

  1. Ubuntu中root用户和user用户

    从user用户切换到root用户 在ununtu系统中缺省用户是user,出于安全考虑,默认时Ubuntu的root用户时没有固定密码的,它的密码是随机产生并且动态改变的. 但是有的时候我们的用户要执 ...

  2. LLVM 笔记(三)—— 了解传统编译器设计

    ilocker:关注 Android 安全(新手) QQ: 2597294287 传统的静态编译器 (如大多数的 C 语言编译器) 通常将编译工作分为三个阶段,分别由三个组件来完成:前端.优化器和后端 ...

  3. VS2015 + OpenCV 2.4.X 配置环境

    VS2015的内部编号是VC14,但现在opencv 2.4.X和最新的3.0版本只有vc12的库文件,所以这里主要简单讲如何针对vs2015配置环境. 首先按照下面的文章把环境配置好: [OpenC ...

  4. Oracle 收缩数据文件

    Oracle数据库中当某些大数据表不再需要的时候,我们可以通过以下方式来进行清理: DROP TABLE TBL_TEST PURGE; 但是对应表空间(tablespace)中的磁盘空间并没有得到释 ...

  5. 浅析selenium的PageFactory模式

    前面的文章介绍了selenium的PO模式,见文章:http://www.cnblogs.com/qiaoyeye/p/5220827.html.下面介绍一下PageFactory模式. 1.首先介绍 ...

  6. bzoj-4514(网络流)

    题目链接: 4514: [Sdoi2016]数字配对 Description 有 n 种数字,第 i 种数字是 ai.有 bi 个,权值是 ci. 若两个数字 ai.aj 满足,ai 是 aj 的倍数 ...

  7. python高级之网络编程

    python高级之网络编程 本节内容 网络通信概念 socket编程 socket模块一些方法 聊天socket实现 远程执行命令及上传文件 socketserver及其源码分析 1.网络通信概念 说 ...

  8. UITabBarController的创建与自定义TarBar---学习笔记三

    代码如下: #import <UIKit/UIKit.h> @interface BSJTabBarViewController : UITabBarController @end #im ...

  9. Android View 事件分发机制 源码解析 (上)

    一直想写事件分发机制的文章,不管咋样,也得自己研究下事件分发的源码,写出心得~ 首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个My ...

  10. 梦想成真,喜获微软MVP奖项,微软MVP FAQ?

    之前一直很钦佩那些MVP获奖者,想着自己有一天也能拿到该多好,就在10月1日邮箱收到了微软的邮件,当选了2016年10月份的MVP.今天主要分享一下获奖的喜悦也分享一下如何获得MVP奖项. 什么是微软 ...