写博客之前总想说点什么,但写的时候又忘了想说点什么,算了,不说了,还是来送福利吧。

今天是来分享我在平时工作中搭建的一套前后端分离的框架。

平时工作大多时候都是在做管理类型的软件开发,无非就是增、删、改、查,也没有什么大的并发访问,对程序的性能要求和国内大多数开发管理软件的公司差不多,所以就搭建了一套通用框架,基本上都能满足。

一套好的框架首先得编码规范、容易他人阅读。记得刚学编程得那时,认为只有自己看得懂得代码才是牛逼的,后来发现代码是写给别人看的,别人能轻易的看懂你的代码,你的代码就不会差到哪里去。就比如说接口用大写字母【I】开头:IUser,这样易理解,对于不同的开发团队有不同的规范,这样提高了程序员的开发体验,对于同类型的功能可以用一个相同的前缀开头,比如:日志一类可以用Log_开头,业务类的可以用Service_开头,系统类的可以用Sys_开头,这只是个建议。

我的这套框架也就是三层架构的风格,这套就主要提供对用户管理的增、删、改、查的功能,包括登录的功能,先截个图看看:

运行后的效果图:

添加用户:

删除用户:

编辑用户,会自动赋值:

上传的图片变形了。

最后再来看下大致的代码:

添加用户:

编辑用户:

分页查询、分页搜索:

再来看下业务层代码:

最后看下数据层代码:

后端代码介绍完了。

由于是前后端分离,所以我们来看看前端代码:无法就是HTML、JS、Css

最后总结下:

整体的代码在逻辑上算清晰的、有完善的异常处理机制、日志记录、公共功能的抽象类、出神入化的依赖注入功能等等,想要学习MVC前后端分离的网友们可以加我的一个QQ群,然后@群主获取源代码,群号:240749438,若群主没有及时回复,那肯定是在忙没空及时回,一般群主晚上都会空。

这篇文章主要对框架的整体介绍,更多细节原理请期待后续文章。

博主所有文章均为原创、未得到本人同意,不得商业转载。

【开源】【前后端分离】【优雅编码】分享我工作中的一款MVC+EF+IoC+Layui前后端分离的框架——【NO.1】框架概述的更多相关文章

  1. 分享php工作中遇到的一些探究和技巧【2】

    1 如何定义linux和window通用的文件分隔符号 DIRECTORY_SEPARATOR :  目录分隔符,是定义php的内置常量.在调试机器上,在windows我们习惯性的使用"\& ...

  2. 分享php工作中遇到的一些探究和技巧【1】

    一 foreach的引用 $arr = range(,); //[1,2,3] foreach($arr as &$val) { } foreach($arr as $val) { } pri ...

  3. 分享一个工作中遇得到的sql(按每天每人统计拖车次数与小修次数)

    查询每人每天的数据 首先先建表 CREATE TABLE `user` ( `name` ) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CR ...

  4. 开源是一种态度、分享是一种精神 — FirApi发布、WeiXinApi更新

    在云计算盛行的年代,接触开发式的平台必不可少,因项目累积的代码也不少,之前本着"重复的事情自己做一次就够了,不需要其他人在重复为此工作."的想法发布了WeiXinApi.Boots ...

  5. 以技术面试官的经验分享毕业生和初级程序员通过面试的技巧(Java后端方向)

    本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕 ...

  6. (转)老男孩linux培训某节课前考试试题及答案分享

    目录:[考试目的] ................................2[考试范围]  ...............................2[答题策略] .......... ...

  7. 【开源框架】EFW框架中的系统权限与页面子权限详解

    回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baid ...

  8. 在 Istio 中实现 Redis 集群的数据分片、读写分离和流量镜像

    Redis 是一个高性能的 key-value 存储系统,被广泛用于微服务架构中.如果我们想要使用 Redis 集群模式提供的高级特性,则需要对客户端代码进行改动,这带来了应用升级和维护的一些困难.利 ...

  9. 网易云信技术分享:IM中的万人群聊技术方案实践总结

    本文来自网易云信团队的技术分享,原创发表于网易云信公众号,原文链接:mp.weixin.qq.com/s/LT2dASI7QVpcOVxDAsMeVg,收录时有改动. 1.引言 在不了解IM技术的人眼 ...

随机推荐

  1. 月亮之眼_KEY

    [问题描述] 吉儿是一家古董店的老板娘,由于她经营有道,小店开得红红火火.昨天,吉儿无意之中得到了散落民间几百年的珍宝--月亮之眼.吉儿深知"月亮之眼"价值连城:它是由许多珍珠相连 ...

  2. Centos6.7安装chrome

    cd /etc/yum.repos.dwget http://people.centos.org/hughesjr/chromium/6/chromium-el6.repo yum install c ...

  3. java 基础语法 1

    一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...

  4. 基于NIO和BIO的两种服务器对比

    基于BIO的服务器,服务端可能要同时保持几百万个HTTP连接,而这些连接并不是每时每刻都在传输数据,所以这种情况不适合使用BIO的服务器:而且需要保证共享资源的同步与安全,这个实现起来相对复杂.这时候 ...

  5. Maven(六)之依赖管理

    前面讲了maven一些关于Maven的简单知识,今天我给大家分享一些Maven的依赖管理.我相信用过maven的人都知道,它很重要的功能就是通过依赖来添加jar包. 让我们领略一下Maven是怎么管理 ...

  6. mybatis错误——java.io.IOException: Could not find resource com/xxx/xxxMapper.xml

    在学习Mybatis的时候,参考网上的教程进行简单demo的搭建,配置的没有问题,然后出现了下面的错误! Exception in thread "main" java.lang. ...

  7. http://codeforces.com/contest/834

    A. The Useless Toy time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  8. nodejs+express+mongoose无法获取数据库数据问题解决

    通过mongoose与mongodb进行操作.而mongoose是通过model来创建mongodb中对应的collection的,这样你通过如下的代码: mongoose.model('User', ...

  9. vuejs2-生命周期

    https://segmentfault.com/a/1190000008879966 1 声明周期图示 2 过渡

  10. 【转】wireshark基本用法及过虑规则

    Wireshark 基本语法,基本使用方法,及包过虑规则: 1.过滤IP,如来源IP或者目标IP等于某个IP   例子: ip.src eq 192.168.1.107 or ip.dst eq 19 ...