写博客之前总想说点什么,但写的时候又忘了想说点什么,算了,不说了,还是来送福利吧. 今天是来分享我在平时工作中搭建的一套前后端分离的框架. 平时工作大多时候都是在做管理类型的软件开发,无非就是增.删.改.查,也没有什么大的并发访问,对程序的性能要求和国内大多数开发管理软件的公司差不多,所以就搭建了一套通用框架,基本上都能满足. 一套好的框架首先得编码规范.容易他人阅读.记得刚学编程得那时,认为只有自己看得懂得代码才是牛逼的,后来发现代码是写给别人看的,别人能轻易的看懂你的代码,你的代码就不会差到…
1 如何定义linux和window通用的文件分隔符号 DIRECTORY_SEPARATOR :  目录分隔符,是定义php的内置常量.在调试机器上,在windows我们习惯性的使用"\"作为文件分隔符,但是在linux上系统不认识这个标识,于是就要引入这个php内置常量了:DIRECTORY_SEPARATOR 这样可以不用判断是在linux还是window系统下   2 PHP压缩与解压缩类 PclZip是一个很强大的压缩与解压缩zip文件的PHP类,PclZip library…
一 foreach的引用 $arr = range(,); //[1,2,3] foreach($arr as &$val) { } foreach($arr as $val) { } print_r($arr); 上面的代码会输出什么? Array ( [] => [] => [] => ) 这是因为foreach的源代码中,对变量进行了引用.导致其作用之后,将地址赋值于最后一个 例: tmp是var的引用,指向的是var的存储空间,当tmp改变的时候,var也改变$var =…
查询每人每天的数据 首先先建表 CREATE TABLE `user` ( `name` ) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `repair` ( `name` ) DEFAULT NULL, `repair_num` ) DEFAULT NULL, `repair_second` ) DEFAULT NULL, `date` date DEFAULT NULL ) ENGINE=InnoDB DEF…
在云计算盛行的年代,接触开发式的平台必不可少,因项目累积的代码也不少,之前本着"重复的事情自己做一次就够了,不需要其他人在重复为此工作."的想法发布了WeiXinApi.Bootstrap for MVC,在许久之后的今天对WeiXinApi进行了升级,并发布一款新的API——FirApi. 什么是Fir? FIR.im是一个免费App托管平台, 全名 Fly It Remotely,能够帮助开发者两步简单发布应用程序, 极大简化了App内测的过程 .内测应用分发只是开发过程中一个小环…
本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕业生和初级程序员(一般是工作经验3年以下)大多处于事业的青黄不接的阶段,在找工作时往往会遇到缺乏实际项目经验的瓶颈,作为技术面试官,我也经常在面试过程中感受到这些候选人缺乏实际经验的缺陷.不过本人之前做过java兼职培训老师,也总结了些这批人群提升实际技能和面试技能的技巧,最近也老有人来问我这个,所…
目录:[考试目的] ................................2[考试范围]  ...............................2[答题策略] ................................2[口头表达技能考试题] ......................2[技术技能笔试考试题] ......................2[附加题40] ................................4[做人做事技巧考试] .....…
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baidu.com/s/1eQCc69G 使用EFW框架开发系统,框架中提供了两个级别的权限控制:角色菜单权限与页面子权限. 角色菜单权限:就是不同的用户登录系统后,根据配置的权限动态生成的菜单,管理员一般全部菜单都可以看到,而一般用户很多菜单就看不到:用户绑定角色,角色配置系统菜单,系统根据登录的用户先查找绑定的角…
Redis 是一个高性能的 key-value 存储系统,被广泛用于微服务架构中.如果我们想要使用 Redis 集群模式提供的高级特性,则需要对客户端代码进行改动,这带来了应用升级和维护的一些困难.利用 Istio 和 Envoy ,我们可以在不修改客户端代码的前提下实现客户端无感知的 Redis Cluster 数据分片,并提供读写分离.流量镜像等高级流量管理功能. Redis Cluster Redis 的一个常见用途是用作数据高速缓存.通过在应用服务器和数据库服务器之间加入一个 Redis…
本文来自网易云信团队的技术分享,原创发表于网易云信公众号,原文链接:mp.weixin.qq.com/s/LT2dASI7QVpcOVxDAsMeVg,收录时有改动. 1.引言 在不了解IM技术的人眼里,群聊是再平常不过的功能而已,万人群聊?应该也不难实现吧?! 确实,从前端功能界面上来看,群聊无非就是个循环向群员发送消息的一对多聊天消息分发模式而已,难在何处? 真实的情况是,群聊是IM系统中的高难度技术点之一.难在哪?难在服务端!从某种角度上说,群聊功能的架构设计和技术实现的品质,可以代表这款…
工作中后端是如何将API提供出去的?swaggo很不错 咱们上一次简单分享了 GO 权限管理之 Casbin ,他一般指根据系统设置的安全规则或者安全策略 分享了权限管理是什么 Casbin 是什么 Casbin 的特性 Casbin 的应用案例 要是感兴趣的话,咱们以后可以多多深入的探讨和分享,欢迎查看文章 GO 权限管理之 Casbin 今天咱们来分享一下咱们在工作中,后端的小伙伴是如何将 API 高效的提供出去的呢? API 由一组定义和协议组合而成,可用于构建和企业集成应用软件 API…
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮助,此博文介绍的都是UI上面的框架,接下来会有其他的开源框架(如:HTTP框架.DB框架). 1.Side-Menu.Android分类侧滑菜单,Yalantis 出品.项目地址:https://github.com/Yalantis/Side-Menu.Android2.Context-Menu.…
C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译? 这个feature叫做Export Template,即外名模板,它的作用在于使得模板代码可依照C/C++语言习惯,将模板声明和实现分开分别放到.h和.cpp文件中,并且可以减少冗长的模板编译单元中分别实例化).Export Template曾经是被写入C++98标准中的,然并卵,很少有主流编译器在某编译main.cpp时,como的处理与其他编译square.cpp时,由于square模板声明是一个外名模板,虽然como不会为…
在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”,那么,这一篇博文将讲解  “ 将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片”. 一.为何选择将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片的方法减少HTTP请求数? 为什么我会讲解 “将图片转成二进制并生成Base64编码,可以在网页中通过url查看…
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮助,此博文介绍的都是UI上面的框架,接下来会有其他的开源框架(如:HTTP框架.DB框架). 1.Side-Menu.Android 分类侧滑菜单,Yalantis 出品. 项目地址:https://github.com/Yalantis/Side-Menu.Android 2.Context-Me…
分享一个自己写的MVC+EF “增删改查” 无刷新分页程序 一.项目之前得添加几个组件artDialog.MVCPager.kindeditor-4.0.先上几个效果图.      1.首先建立一个数据库,添加一个Peoples表之后在项目中右键添加“新建项”,选择你刚才建立的数据库和表.      2.加完之后项目中会有个Peoples.edmx,这里面包括数据上下文和实体属性.     3.在Controllers右键添加“PersonController.cs”,选择强类型视图,生成对应的…
前言 或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处,本文不会安利大家使用Redux 概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在React项目中使用Redux react-thunk 中间件,作用:支持异步action 目录结构 Tips:与Redux无关的目录已省略 |--src |-- store Redux目录…
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮助,此博文介绍的都是UI上面的框架,接下来会有其他的开源框架(如:HTTP框架.DB框架). 1.Side-Menu.Android分类侧滑菜单,Yalantis 出品.项目地址:https://github.com/Yalantis/Side-Menu.Android2.Context-Menu.…
按:在PHP中级班的课堂上,有位同学问这样一个问题:“我在用 base64_encode 对用户名进行编码时,会出来等号,是不是可以去掉?”跟我来看完这篇文章,答案即揭晓. 1: 为什么需要base64? ASCII码一共规定了128个字符的编码,这128个符号,范围在[0,127]之间.其中,[0,31],及127, 33个属于不可打印的控制字符. 在电子邮件传输信息时,有些邮件网关会把[0,31]这些控制字符给悄悄清除.还有的早期程序,收到[128,255]之间的国际字符时,甚至会发生错误.…
SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. SpringMVC分离了控制器.模型对象.分派器以及处理程序对象的角色,这种分离让它们更容易进行定制. MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.…
Gson 是google解析Json的一个开源框架,同类的框架fastJson,JackJson等等 本人fastJson用了两年,也是从去年才开始接触Gson,希望下面的总结会对博友有用,至于Gson与FastJson的对比,其实半斤八两的问题,不再赘述 第一步:在AS下面创建Java工程 并添加gson依赖 compile 'com.google.code.gson:gson:2.6.2' Gson的实例化方式: 1:Gson gson=newGson(); 2:通过GsonBuilder…
平常在开发过程中,前端选择时间一般都要使用时间选择插件,但是这种插件选出来的时间都是字符串类型,我们该怎么转换为后端的Date呢?/? 前端效果如下(笔者用的是layDate5.0插件): 修改前的后端属性: 想要Date接收字符串时自动转换只需要一个springMVC提供的注解, @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")…
2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件 过去十年间,许多科技公司已开始畅怀拥抱开源.许多公司使用开源工具来运行自己的 IT 基础设施和网站,一些提供与开源工具相关的产品和服务,或基于开源工具而建的产品和服务,还有一些在为开源代码贡献代码或支持开源项目. Black Duck 在 2015 年的一项调查发现,78% 的企业组织使用开源软件,这个比例几乎是 2010 年时候的两倍.此外,88% 的企业表示,它们预计在今后几年,会加大为开源项目贡献代码的力度,66% 表示在…
文/朱季谦 环境准备:安装Gin与Gorm 本文搭建准备环境:Gin+Gorm+MySql. Gin是Go语言的一套WEB框架,在学习一种陌生语言的陌生框架,最好的方式,就是用我们熟悉的思维去学.作为一名后端Java开发,在最初入门时,最熟悉的莫过于MVC分层结构,可以简单归纳成controller层,model层,dao层,而在SpringBoot框架里,大概也经常看到以下的分层结构-- 这个结构分为java根目录与resources资源目录. 在学习Go语言的Gin框架时,是否也可以参照这样…
在我们开发开发H5程序或者小程序的时候,有时候需要基于内置浏览器或者微信开发者工具进行测试,这个时候可以采用默认的localhost进行访问后端接口,一般来说没什么问题,如果我们需要通过USB基座方式发布到手机进行App测试的时候,那就需要使用局域网的IP地址了,否则就无法访问后端的接口,本篇随笔总结在开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址和localhost地址并存,便于开发测试. 1.修改VS配置地址文件 默认我们IISExpress是采…
分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前有一段经历 在月初的时候这个数据库曾经置疑过,启动不起来 Could ::), :), :), ). Page: LSN ::), type . , context , PrevPageLSN: (::). Restore from a backup of the database, or repa…
摘要:该文章将向大家分享Android中的资源与国际化的问题. 今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layout与values目录,layout里的xml文件的我们应用使用布局的文件,values里的sring.xml是用来存放文字资源,一个key对应一个value值. 但是在实际应用开发中,通常横屏(land)与竖屏(port)可能布局文件有所不同,这时候我们可以独自定义横屏与竖屏的布局文件(文件名字要…
优雅使用 illuminate/database 包中的 Collection 或许你很抵抗使用 Laravel , 但是你没有理由不喜欢使用 illuminate/database.这是一个 ORM 的类库.我个人认为,这个类库你是否用的好,其中很重要的一点就是你是否能用好 Collection 这个数据结构,Collection 这个数据结构的源码在 Illuminate\\Database\\Eloquent\\Collection. Collection 这个数据结构有很多方法.各种方法…
Python编码规范:IF中的多行条件 转载 2017年03月08日 09:40:45 http://blog.csdn.net/wsc449/article/details/60866700 有时我将IF中的长条件分解成几行.最明显的方法是: if (cond1 == 'val1' and cond2 == 'val2' and cond3 == 'val3' and cond4 == 'val4'): do_something 在视觉上不是非常非常有吸引力,因为动作与条件混合.但是,这是使用…
最近看到一种router的写法 import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const login = r => require.ensure([], () => r(require('@/page/login')), 'login'); const manage = r => require.ensure([], () => r(require('@/page/manage')), '…