Mysqsl服务器SQL模式 (官方精译)
MySQL服务器可以在不同的SQL模式下运行,并且可以根据sql_mode系统变量的值对不同的客户端应用不同的模式。DBA可以设置全局SQL模式以匹配站点服务器操作需求,并且每个应用程序可以将其会话SQL模式设置为自己的需求。模式会影响MySQL支持的SQL语法以及数据验证检查的效果。这使得在不同的环境中使用MySQL变得更容易,并且可以将MySQL与其他数据库服务器一起使用。
Weex的JS缓存实现
原理服务端将weex可用的模块打包成JSBundle下发到客户端,JSBundle没有分具体模块所以文件较大,每次进入页面去请求会产生多余的通信流量及下载时间。所以加入weex缓存策略,将服务端下发的JSBundle缓存到本地文件,请求下载时获取服务端JS_Bundle文件MD5并与本地缓存文件MD5校验,校验成功直接使用缓存,校验失败清除缓存并从服务端下载新的文件,最后缓存。(服务端JS_Bundle地址为空时直接使用本地可用缓存)
用 Swift 模仿 Vue + Vuex 进行 iOS 开发(一):ReSwift
因水滴计划研发移动端的商家应用,笔者开始了iOS端的整体方案设计工作。由于没有历史包袱,且团队愿意尝试一些不同的方案,经过两周专注的学习和调研之后,我们并没有采用主流的MVVM架构,而是基于ReSwift以及Swift这门语言的特性(核心是extension)构建了一套类似Vue+Vuex的方案,笔者打算通过四篇文章来分享下这种思路。需要注意的是,笔者也是第一次接触Swift和iOS,某种程度上来说,也是一名iOS菜鸟,行文中难免出现不高明之处,还望指正。但与此同时,笔者也有Scala和多年的Web前端开发经历,不同的平台和语言,会有相似的思维和知识结构,所以入门移动端原生应用开发时,也发现很多共同之处。以下是本系列文章的大纲:ReSwiftCoordinatorextensionVueLike架构方式的演变在介绍ReSwift之前,我们先来简单回顾下iOS端(不严谨地说,也可以看成是移动端应用开发)的架构演变历史。这方面介绍的好文章已经相当的多,重点还是推荐下
Node.js 中遇到含空格 URL 的神奇“Bug”——小范围深入 HTTP 协议
本文首发于知乎专栏蚂蚁金服体验科技。首先声明,我在“Bug”字眼上加了引号,自然是为了说明它并非一个真Bug。问题抛出昨天有个童鞋在看后台监控的时候,突然发现了一个错误:[error]000001#0:...upstreamprematurelyclosedconnectionwhilereadingresponseheaderfromupstream.client:10.10.10.10server:foo.comrequest:"GET/foo/bar?rmicmd,beginruncleandockerimagesjobHTTP/1.1"upstream:"http://..."大概意思就是说:一台服务器通过HTTP协议去请求另一台服务器的时候,单方面被对方服务器断开了连接——并且并没有任何返回。开始重现客户端CURL指令其实这次请求的一些猫腻很容易就能发现——在URL中有空格。所以我们能简化出一条最简单的CURL指令:$curl"http://fo
fancyBox3 中文文档
也可以在GitHubwiki上查看。说明:本文档仅供参考,更新不及时请查看官方文档。1.介绍fancyBox是一个JavaScript库,它以优雅的方式展示图片,视频和一些html内容。它包含你所期望的一切特性——支持触屏,响应式和高度自定义。1.1依赖推荐jQuery3+,但是fancyBox仍支持jQery1.9.1+和jQuery2+。注意如果你在图片缩放时遇到了问题,请升级jQuery到最近版本(至少v3.2.1)。1.2兼容fancyBox支持触屏操作,而且支持缩放等手势操作。在移动端和PC端上都十分合适。fancyBox已经在下列浏览器中测试:ChromefirefoxIE10/11EdgeIOSSafariNexus7Chrome2.配置可以在html文档中引入.css和.js来使用fancyBox,确保在这之前引入了jQuery库。下面是使用fancyBox的一个基本的HTML模板:
Nodejs的运行原理-科普篇
前言Nodejs目前处境稍显尴尬,很多语言都已经拥有异步非阻塞的能力。阿里的思路是比较合适的,但是必须要注意,绝对不能让node做太多的业务逻辑,他只适合接收生成好的数据,然后或渲染后,或直接发送到客户端。为什么nodejs还可以成为主流技术哪?是因为nodejs对于大前端来说还是非常重要的技术!!!如果你理解nodejs的编程原理,很容易就会理解angularjs,reactjs和vuejs的设计原理。NodeJSNode是一个服务器端JavaScript解释器,用于方便地搭建响应速度快、易于扩展的网络应用。Node使用事件驱动,非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。Node是一个可以让JavaScript运行在浏览器之外的平台。它实现了诸如文件系统、模块、包、操作系统API、网络通信等CoreJavaScript没有或者不完善的功能。历史上将JavaScript移植到浏览器外的计划不止一个,但Node.js是最出色的一个。V8引擎V8JavaSc
移动端如何强制页面横屏
背景最近公司要开发一个移动端的类网页游戏:长按按钮有个自行车一直骑行,碰到某个国家的地标就弹出该国的相应sayhello的tip,要求横屏显示,不能竖屏。然而当用户竖屏打开时,而且没开启手机里的横屏模式,还要逼用户去开启。这时候用户早就不耐烦的把你的游戏关掉了。而且有些机型有些app不能横屏:比如Android的微信就没有横屏模式,而ios的微信能开启横屏模式。解决办法就是在竖屏模式下,写一个横屏的div,然后设置rotate正(负)90度,把他旋转过来;而且如果用户切到横屏时,需要把rotate复原,要求也能正常展现。纯css把main这个div在竖屏模式下横过来,横屏状态下不变。@mediascreenand(orientation:portrait){.main{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);
rxjs学习入门心得(一)Observable可观察对象
推荐我的Rxjs教程:Rxjs系列教程目录前言随着开发中项目的越来越大,代码的要求越来越高,于是开始四处搜找各种js库进行学习。为了学习代码行为模式,例如:竞争等等。在技术总监的指引下找到Rxjs进行学习,再次表以感谢。在看教程时,有很多地方不解,于是用博客做以记录,并将自己的经验以尽可能简单的方式分享给大家。这里简单解释一下Rxjs,RxJS是一个js库,它通过使用observable序列来编写异步和基于事件的程序。ReactiveX结合了观察者模式、迭代器模式和使用集合的函数式编程,以满足以一种理想方式来管理事件序列所需要的一切。看到这你肯定疑问它有什么用?你先放下这个疑问,先看看一个简单的案例。Observable可观察对象Observable可观察对象:表示一个可调用的未来值或者事件的集合。一个例子通常你这样注册事件监听:varbutton=document.querySelector('button');button.addEventListener('click',()=>console.
使用 Angular Flex-Layout 輔助版面布局
強大的Angular團隊在Github上有個專案叫做angular/flex-layout,將FlexBoxCSS包裝成一個個Directive來使用,這個FlexLayout專案輔助Angular(v4.1以上版本)用更方便的方式來佈局HTML樣板。因為angular/material2不包含Flex版面佈局系統,如果想要在Material2進行排版時,建議安裝angular/flex-layout此工具。從caniuse可以看到目前各大瀏覽器都支援FlexBoxCSS樣式,但請注意IE10以上版本僅部分支援。FlexLayoutAngularFlexLayout使用FlexBoxCSS+mediaQuery達成版面布局的設計,FlexBox的基本模型請參考下圖:FlexBox主要角色為主容器(flex-container)和子元素(flex-item),主容器來包各項子元素並控制子元素的排列方式。使用方式從文件中,HTMLA
开源图标字体 uiw-iconfont v1.2.6 发布,新增图标
uiw-iconfontv1.2.6已发布,uiw-iconfont是从uiw组件库抽离出来的图标字体,基于svg图片生成的图标字体。更新内容新增mapandroid-odashboardtableqrcodeprinterbarcode等7个图标.安装npminstalluiw-iconfont--save使用您可以使用uiw-react.github.io/icons/轻松找到您要使用的图标。一旦您复制了所需图标的CSS类名,只需将图标和图标的类名(如apple)添加到HTML元素即可。你需要链接CSS
Require,js配置使用心得
Require,js配置使用心得首先大家要知道requirejs是干嘛用的,要解释,那就用一句话说下:RequireJS是一个JavaScript文件和模块加载器接下来我们开始学会配置使用requireJs,当然在学习使用的过程中也遇到了很多坑,不管是百度还是什么方法最终解决了,所以分享给大家,也方便下次使用时忘掉!1、首页看一下我自己建的项目目录结构,这对接下来配置requireJs有很大的作用2、下载requireJs及requireJs-text.js,将requirejs引入html文件中设置async="true"的作用很明显和jq的ajax中async:true的目的是一样的,就是一边加载RequireJs一边执行它,如果设置为false的话则会等待ReuireJs完全加载完成采取执行它的方法,这会有很大可能导致页面刚开始一片空白,对于一个开发者来说,好像不是很友好。当然如果你script标签不在head里而在页面的最尾部,那你设不设置都是一样的,因为他最好才会加载,我并不建议大家这样做;data-main="scri
C#设计模式之十九状态模式(State Pattern)【行为型】
C#设计模式之十九状态模式(StatePattern)【行为型】一、引言今天我们开始讲“行为型”设计模式的第六个模式,该模式是【状态模式】,英文名称是:StatePattern。无论是现实世界,还是面向对象的OO世界,里面都有一个东西,那就是对象。有对象当然就有状态了。每个对象都有其对应的状态,而每个状态又有对应一些相应的行为,在不同状态下,行为的的方式也是不一样。如果某个对象有多个状态时,那么就会有很多对应的行为。那么对这些状态的判断和根据状态完成的行为,就会导致多重条件语句交织在一起,并且如果添加一种新的状态时,需要更改之前现有的代码。这样的设计显然违背了开闭原则,状态模式正是用来解决这样的问题的。二、状态模式的详细介绍2.1、动机(Motivate)在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?2.2、意图(Intent)允许一个对
基于Docker的日志分析平台(四)平台整合
在上一篇中我们基本上完成了ELK和Kafka环境的安装,并且也通过几个简单的例子入门。现在我们就把搭建好的架构中加入Kakfa作为缓冲区。再来说一下,首先Logstash从日志源读取日志并且存储到Kafka,然后Logstash再从Kafka中读取日志存储到Elasticsearch。所以我们需要两步骤。Logstash->KafkaLogstash会直接把日志发送给Elasticsearch,再由Kibana进行展示。因为因为Logstash会同步把日志传输到Elasticsearch,一旦ElasticSearch挂掉数据就有可能会丢失。于是,我们考虑利用Kafka作为缓冲区,让Logstash不受Elasticsearch的影响,第一步就是让Logstash把日志发送到Kafka,这里Logstash相当于Producer。直接来看看Logstash的配置文件:input{file{path=>["/var/log/laravel/storage
12年经验老程序员的5次转型
上图中,绿色的粗箭头,代表我工作的主线剧情,而蓝色的细线条,代表工作中发展的支线剧情。从一个绿色箭头,跨越到另一个绿色箭头,中间都是一次转型。大家可以从图上看到,我从2002年到2017年,工作15年,先后经历了6个主线剧情,完成5次转型。这5次转型是:2005年,从程控交换设备的售后技术支持转型为开发宽带接入产品的软件工程师2008年下半年~2009年初,从开发者转型为研发部门经理2014年下半年,接受朋友邀请,加入创业者行列2015年底,解散创业团队,回归开发岗位2017年7月,脱离组织,成为自由职业者,以写作、课程、生涯咨询等养活自己也许看到这里,你已经发现了自己的部分经历和我相似……不急,接下来我会展开每次转型,说说我的想法,看看是不是和你相似。也欢迎在文后留言讨论。1.自学C语言,转做软件开发我2002年毕业,进入西安大唐电信,从事程控交换机的售后技术支持工作。大唐的设备散步在各省市的农村,我的工作就是到处跑着插拔电路板、升级软件、重启电脑、更换元器件、开局……
程序员口述:我是如何工作三年后跳槽到美团的?
前言我叫王小闰(花名),非科班出身,野生前端从业者,在小公司打杂三年后,意外地拿到了美团的offer,成功跳槽到了美团外卖事业部。接下来,正文从这儿开始~3年前,我高中毕业,进了编程培训班,后来自修课程,学的是计算机科学与技术专业,之后顺利拿到了北航的学历证书。培训班毕业出来之后,我来到了杭州。在杭州这个充满电商气息的地方,每个人都对自己的未来充满了希望,《猎场》里的郑秋冬如此,我也一样。虽然我的家庭条件不是很差,但我还是希望通过自己的努力,实现当初的梦想,出任CTO,甚至财务自由。来到杭州,我更加明白,要想在杭州出人头地,一定要在别人看不见的地方更加努力才行。很快,我面试上了一家杭州的创业公司,前端工程师岗位,做19楼本地生活平台项目,月薪5K,双休。刚开始的时候,我们公司里的PHP大佬让我先做专题页面的切图,以及其他页面的前端制作,还有公司官网需要的js交互功能的实现。除此之外,我们老板还给了我一本关于PHP开发笔记的书籍,让我研究,因为我们公司的网站后端用的框架是Thin
累和加班多没时间都不是理由,再不挣钱就老啦
累和加班多没时间都不是理由,再不挣钱就老啦最近我在写书,顺便帮编辑推荐写书作者,大多数人的反应是,“我没时间”,具体一点是“我要加班回家晚”,“周末我要出门办事”等等理由。本人最近也写了本javaweb轻量级开发面试教程,另外一本JavaCore方面的面试书也快出了,所以不少人也问我,“如果我要转行或升级,该学什么知识”,我列出三个月学习计划,一看,非常好,第一个星期,很努力,后面就不了了之了,理由同上。这是在敷衍自己。我列些我见到过好的程序员的现状。工作满3年,发展好的人可以进大公司,在里面至少稳定,衣食无忧。或者可以进好的互联网公司了,开始双倍经验模式。工作满5年,这个真就不好说,一般比较好的(还不算也别好的),就可以成为架构师了,按目前流行的技术,SpringCloud,Hystrix,Kafka这些技术就很溜了。这些人按当前市面上的工资,估计至少3万一个月。工作满7年,一般比较好的就可以在公司里做技术总监了,有些甚至可以在著名互联网公司的大型团队里成为技
一个商用级Service Mesh服务的设计之道
作者介绍:田晓亮,8年软件行业经验,曾就职于三星,2012年进入云计算领域,对PaaS,DevOps,APM有深入的研究和实践经验,方案支撑近千台VM中的应用部署监控。2016年加入华为担任架构师,负责微服务的Go语言开发框架及ServiceMesh设计和落地,Go语言微服务框架已被华为5G核心网络采用,ServiceMesh服务也已在华为云商用上线。本文首发自《程序员》,谢绝转载,如需订阅,请点击这里(责编/魏伟)微服务架构是个难题,但解法有多个微服务是一个很大的概念,从团队组织到最佳实践似乎都有实施微服务的一些指导。我们这里只提构建微服务的架构模式,也就是关乎到你用什么样的方式来构建你以微服务架构来组织的应用系统。近些年随着微服务的火热,越来越多的团队开始进行实践,将微服务纷纷落地,也许你是从0开始,一步步地完成了单体应用向微服务的改造,让我们来看看,你解决了多少问题。图1微服务架构需要解决的问题微服务将原本内存中函数的调用转换为网络中的调用后,就牵扯到这些问题,而任何一个分支展开,都会涉及一系列的问题。业务开发
MariaDB ColumnStore在OLAP离线分析中的实践与应用(附脚本)
GreenplumforPostgreSQL-开源版架构选型基于MPP方式(MariaDBColumnstore),我考虑的首位因素是用户体验。它支持标准MySQL协议,支持Navicat/SQLyog/WebSQL等客户端工具,对使用者来说,完全没有必要学习一门新的语言,或熟悉一种新型的数据库,从而增加他们的学习成本,就像使用MySQL一样。对于DBA而言,你不需要创建任何索引,不需要修改业务方的复杂SQL(自身就支持复杂的关联查询、聚合、存储过程和用户定义的函数),你唯一要做的就是把数据导入到ColumnStore里。MariaDBColumnstore是数据仓库的未来,使我们能够存储更多的数据并更快地分析数据,易于使用和维护。在生产环境中,我们的使用场景是用作离线OLAP分析。
node-vue前后端分离记录
nodevue项目开发看了近一周的vue开发,有诸多感触,我之前接触过react、angular所以特别想学学久仰大名的vue。学习半天以后发现,接触到的东西多了,学习起来就是容易很多,vue的指令我能个联想到angular的指令,vue组件化设计类似于react的组件化设计,包括一些router的设置跟react里的路由或者nodejs里的路由都差不多,vuex更是根据redux、flux改写的,虽然我还搞不太明白怎么用,至于vue的模板渲染,跟expres渲染ejs没有太大的区别。使用vue可以完全脱离jq,虽然我还没感受到不用jq有什么神奇的赶脚,但是我觉得这种双向数据绑定的还是挺方便的,此文档用来记录我学习vue的一些新的知识和想法。指令v-bind主要用于动态绑定DOM元素属性,即元素属性实际的值是有vm实例中的data属性提供的。v-model主要对表单元素进行双向数据绑定,在修改表单元素的值时,实例vm中对应的vm对应的属性也同时更新。v-if,v-show,v-else这几个指令来说明模板和
浅析Promise内部实现与原理
早前有针对Promise的语法写过博文,不过仅限入门级别,浅尝辄止食而无味。后面一直想写Promise实现,碍于理解程度有限,多次下笔未能满意。一拖再拖,时至今日。随着Promise/A+规范、ECMAscript规范对PromiseAPI制定执行落地,Javascript异步操作的基本单位也逐渐从callback转换到promise。绝大多数JavaScript/DOM平台新增的异步API(Fetch、Serviceworker)也都是基于Promise构建的。这其中对Promise理解不是仅看过API,读过几篇实践就能完全掌握的。笔者以此行文,剖析细节,伴随读者一起成长,砥砺前行。本文为前端异步编程解决方案实践系列第二篇,主要分析Promise内部机制及实现原理。后续异步系列还会包括Generator、Async/Await相关,挖坑占位。注:本文Promise遵守Promises/A+规范,实现