常用javascript代码片段
有时候项目中placeholder也许要兼容某些特殊的浏览器,所以才有了下面这段代码。这种方案有一个缺点就是:如果你恰好要对这个输入框绑定focus事件并操作它的值,必须要小心处理//修复不支持placeholder属性startconstisSurportPlder="placeholder"indocument.createElement("input");//判断浏览器是否支持placeholderif(!isSurportPlder){$("[placeholder]").focus(function(){const_this=$(this);if(_this.val()==_this.attr("placeholder")){_this.val('');}}).blur(function(){const_this=$(this);if(_this.val()==''||_this.val()==_this.attr("placeholder")){_this.val(_t
koa 实现 jwt 认证
其中/api/register和/api/login为publicapi,无需token就能访问。/users则为privateapi,需要传入正确的token才能访问。自定义401handler使用了koa-jwt中间件后,如果没有token,或者token失效,该中间件会给出对应的错误信息。如果没有自定义中间件的话,会直接将koa-jwt暴露的错误信息直接返回给用户。//server/middlewares/errorHandle.jsexportdefaulterrorHandle=(ctx,next)=>{returnnext().catch((err)=>{if(err.status===401){ctx.status=401;ctx.body={error:err.originalError?err.originalError.message:err.message,};}else{throwerr;}});}
plupload上传与springmvc整合
plupload上传与springmvc整合看我这个就够了(并非原创只做整理,有修改)原帖地址http://blog.csdn.net/t894690230/article/details/37956277plupload.html
处理JavaScript异常的正确姿势
译者按:错误是无法避免的,妥善处理它才是最重要的!原文:AGuidetoProperErrorHandlinginJavaScriptRelatedTopics:译者:Fundebug为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。如果你相信墨菲定律的话,任何事情如果会出问题,那么就一定会出问题。对于代码,即使我们有100%的自信没有问题,依然有可能出问题。在这篇文章,我们来研究如何处理JavaScript的错误。我会先介绍坏的处理方式、好的处理方式,最终介绍异步代码和Ajax。个人感觉,事件驱动的编程设计使得JavaScript语言非常的丰富灵活。我们设想浏览器就是事件驱动机器,错误同样由它的驱动产生。当一个错误触发,导致某个事件被抛出。从理论上说,错误在JavaScript中就是事件。如果你对此感到陌生,那么暂且不管它。在这篇文章中,我主要关注浏览器端的JavaScript。这篇文章基于JavaScript中的错误处理部分的概念。如果你还不熟悉,我建议你先阅读一下。
css选择器总结
最近有点忙,所以没有发表博文,现在时间空闲下来了,好好的整理一下知识,今天总结一下css里面的一些选择器。css里的选择器有好多种,下面我就把我了解到的写一写,如果有不全的或者有误的欢迎留言指正,万分感谢。一、选择器1、*通配符选择器这个选择器是匹配页面中所有的元素,一般用来清除浏览器的默认样式.*{margin:0;padding:0}2、元素选择器通过标签名来选择元素。div{width:100px;height:100px;}3、class选择器class选择器/类选择器/用class属性给元素命名,在页面中可以出现很多次,相当于人的名字。.box{width:100px;height:100px;}
Spring Boot集成Kafka
前提介绍由于公司使用了微服务架构,很多业务拆成了很多小模块。有个场景是这样的A服务主要负责写入或者修改数据库中的数据,B服务主要负责读取,B服务使用缓存技术,当A发生了修改后,需要通知B来清除缓存。中间两个服务之间通知使用了Kafka,这个是本篇文章主要介绍的,关于缓存技术我也简单介绍过。Kafka简介Kafka官网Kafkaisadistributed,partitioned,replicatedcommitlogservice。它提供了类似于JMS的特性,但是在实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例成为broker。无论是kafka集群,还是producer和consumer都依赖于zookeeper来保证系统可用性集群保存一些meta信息。
2017 年终总结
上一次的年终总结已经是2014年的了,2014年终总结,2015年和2016年好像没有发生很多事情,年终总结的事情也耽搁了,索性在这篇里面顺带提几句。20152015年主要在搞技术,一周平均上一次课那种状态,全年没做什么值得提的事情,除了暑假花了一个多月周游七个省。翻了翻2015年的博客,其他时间全部都在搞技术,折腾过网站备案,HTTPS优化,CDN优化,以及iOS开发的基础。关于2015年,有几个点还是要说一说的。逃课是不是坏事我还是坚持2014年的观点,一节课不逃,跟每节课都不去,没什么区别。一个是太拘束,一个是太自由。可能会有人问,不去上课老师管不管啊,就我本科学校来举例子,有的老师完全不管,有的老师一学期点个三四次,有的老师管得就比较严了,通常第一第二类老师的课我是直接不去。如果连续几节课都点名,或者每节课都点上次逃课的,这类老师我会直接去课堂上面,下课之后跟他们交涉,直接说我不想来上课,我有自己的安排,并且拿出实际的证据和成果,有的老师就会直接放过我,其他老师表面上是不同意,其
如何看待部分程序员在代码备注骂用户的现象?
其实,花式注释本来就是一种程序员的文化传统啊。首先,程序员也是人,写代码之余,碰见烦心事怎么排解呢,程序员里面能言善道的很少,沉默寡言的挺多,撕逼能力未必都是高段位。所以注释是一个挺好的表达情绪的地方。如果把骂人的话写在代码里面,其实就不大好了,比如要是把变量名起名叫boss_is_sb,看起来过于情绪化了,不是很专业。说起来,搞怪注释与其说是一种极客行为,不如说是一种艺术。艺术除了自己看,也是要给别人欣赏。代码不是一般人可以看懂的,但是注释可以。每个人都是有表达欲的。注释比起代码来,显然更有挥洒的空间。这是几年前某个程序员写在代码里面的注释:这段注释中,表达了浓浓的阶级友情。当面不好说的话,放在注释里面再好不过了。这一段注释看下来,谁又说所有的程序员都是木讷的呢:这个呢,表达了愤慨之情。这种愤慨,即可以用在对偷代码者身上,也可以用在产品经理身上:还可以植入自己的联系方式,寻求合作:这是我们自己产品常用的一段注释,表达了程序员对美好生活的向往:分享之后我还是要推荐下我自己的前端学习群:635808125
无奇不有!来看看程序员注释里“藏着的那些不宜见人的秘密”
分享之后我还是要推荐下我自己的前端学习群:635808125,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,送给大家,欢迎初学和进阶中的小伙伴。07好吧,最后这位程序员写的代码注释我是跪了,不过还真是想知道它是干嘛的?大家看完上面这些,有啥想法啊?或者有什么奇葩搞笑的也来说一说!
通过出版一本案例方面的图书来包装自己(实施篇)
上周我写了一篇博文,在著名出版社出版书,你也行——记录我写书出版的经历和体会,承蒙管理员抬爱,收获了2000+的阅读量,也承蒙大家的厚爱,一度进入“最多推荐”栏。本文将进一步告诉大家如何写出第一本属于自己的图书。自己联系版社Vs通过图书公司出版要出就找国内比较出名的计算机类出版社,清华出版社,人民邮电出版社,电子工业出版社和机械工业出版社,在上文里,已经给出了如何申请选题的大致步骤。这里要大声说:其实在这些著名出版社出版图书的难度一点也不比在其它出版社高,而且,当大家通过如下形式的邮件表达出想写书的愿望时,编辑一般会联系大家。我接触过不少人,他们是通过图书公司的人和编辑联系,这也是一条途径,本人也做过。其实和图书公司联系的话,出书的要求并不会降低多少,该做的也一定得做,而且他们可能还会从大家应得的稿酬中抽取一点作为盈利。图书公司对大家的帮助可能就有如下两个,第一,可能他们相关书籍做得很多,如果新手出书,他们可能会起一定的指导作用,比如告诉大家目录该怎么写,文字措辞又该怎么写。第二
某天醒来,全世界的人都变成程序员,那将会怎样?
原文:http://www.ijiandao.com/2b/baijia/75154.html果没有程序员,整个虚拟世界都会消失不见。全中国7亿多网民,再也不能愉快滴发自拍,看视频,打游戏,甚至连打电话都成了一种幻想。绝大部分电子设备都会变成废铁,人类的生活将完全倒退到70多年以前。程序员贡献了自己的聪明才智,但他们当中的大部分人都时刻承担着超出常人的压力,付出了常人难以忍受的高强度劳动。“十年编程两茫茫,工期短,需求长。千行代码,Bug何处藏。纵使上线又如何,新版本,继续忙。黑白颠倒没商量,睡地铺,吃食堂。夜半梦醒,无人在身旁。最怕灯火阑珊时,手机响,心里慌。”程序员注定是不被理解的那群人吗?不,我想用几个漫画小故事和大家说:如果你是程序员,那每一天将会怎样度过。这周是优达程序员节
【译】注释的艺术
原文地址:https://css-tricks.com/the-art-of-comments/译者Github:@elevenbeans更多内容请见译者Blog:https://github.com/elevenbeans/elevenbeans.github.io我认为注释代码十分重要。最主要的是,我认为注释往往是被误解的。我之前某天在Twitter上说过:“对于是否应该写注释,我听到的意见不一致,但我因为写这些,从初级开发者那里得到感谢,所以我会继续写下去”。我收到的反馈是多种多样的,但我看到的是:每个人都同意,写注释是必要的,他们都有不同的原因。注释是一个比我们所赋予它的功劳更具意义的事情。注释没有术语(也不应该有),但把所有的注释集中在一起是过于简单化了。在这个漫画中回应的例子是真实的:这就是我认为许多注释的错误观念之所在。《CleanCode》这本书中,罗伯特c.马丁谈到这:注释不必要,因为代码应该是自说明的。如果你觉得一个注释是必要的,你应该重写你的代码直至她自说明得更清晰。我既同意,也
浅谈软件项目规模估计——估什么?
预测是一件非常困难的事情,尤其是预测未来。——尼尔斯.玻尔玻尔定制化软件开发是一件复杂的事情,尤其是目前我们主要提供的端到端软件交付,它极大拓宽了软件开发的生命周期,更加着眼于业务价值,但这也增加了整个设计、分析、交付过程中的复杂度。软件交付已不仅仅是传统意义上的技术交付,更包括了体验设计、业务分析、测试、管理、运维、运营支持、以及流程管理的内容。基于笔者几年浅薄的软件交付经验,尝试总结在初期进行规模估计的时候,应该考虑的范围会有哪些。体验设计在笔者看来,在互联网产品的影响下,目前客户对体验设计的要求已经到了“奢侈”的程度,经常对仅有几十个、甚至几个用户的系统提出很多关于体验式上的较高要求。但人毕竟是视觉动物,好的展示效果、使用体验往往是产品的加分项,能带来比较大的口碑收益。同时,这也是最容易跟客户(尤其是业务客户)产生交流和互动的地方,有利于跟客户的深入沟通,特别是这些终端用户还经常是项目重要的Stakeholder。在端到端交付中,设计人员会参与项目的整个交付过程,从最开始的Discovery一直到产品的上线,
业界微服务楷模 Netflix 是这样构建微服务技术架构的
原标题:业界微服务楷模Netflix是这样构建微服务技术架构的编者按:本文转发自微信公众号“InfoQ”(infoqchina),作者:杨波,36氪经授权转发。Netflix是美国在线影片租赁商,曾利用超过100亿次的用户观看纪录分析观众喜好,制作出热播剧集《纸牌屋》。Netflix还是业界微服务和DevOps组织的楷模,有大规模生产级微服务的成功实践。本文是作者多年研究Netflix技术资料的总结,可以认为是对Netflix微服务技术架构的一次全面系统的反向工程。Netflix大规模生产级微服务微服务很多公司(Amazon,eBay,BAT)都有,甚至比Netflix做得更早,但Netflix大概是大规模生产级微服务做得最杰出的。100s范围的微服务(2016年的数据是超过500个),1000s范围的每日生产变更,10,000s范围的实例,1,000,000s范围的活跃客户数,1,000,000,000s范围的度量指标。但是只有10s范围的运维工程师,没有自己的数
项目中常用的19条MySQL优化
在写文章之前,首先感谢飞友科技陆老师提供的文档。。声明一下:下面的优化方案都是基于“Mysql-索引-BTree类型”的一、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值extra列,详细说明。注意常见的不太友好的值有:Usingfilesort,Usingtemporary二、SQL语句中IN包含的值不应过多MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:selectidfromtwherenumin(1,2,3)对于连续的数值,能用between就不要用in了;再或者使
MySQL参数sql_safe_updates在生产环境的使用
摘要:在应用BUG或者DBA误操作的情况下,会发生对全表进行更新:updatedelete的情况。MySQL提供sql_safe_updates来限制次操作。setsql_safe_updates=1;设置之后,会限制updatedelete中不带where条件的SQL执行,较严格。在应用BUG或者DBA误操作的情况下,会发生对全表进行更新:updatedelete的情况。MySQL提供sql_safe_updates来限制次操作。setsql_safe_updates=1;设置之后,会限制updatedelete中不带where条件的SQL执行,较严格。会对已有线上环境带来不利影响。对新系统、应用做严格审核,可以确保不会发生全表更新的问题。CREATETABLEworking.test01(idINTNOTNULLAUTO_INCREMENT,NAMEVARCHAR(20),ageINT,gmt_createdDATETIME,PRIMARYKEY(id)
应用中抛出SELECT/UPDATE/INSERT/DELETE command denied to user 'XXX'@'XXX.XXX.XXX.XXX' for ta...
摘要:SELECT/UPDATE/INSERT/DELETEcommanddeniedtouser'XXX'@'XXX.XXX.XXX.XXX'fortable'xxx'的错误大部分出现在应用程序中,有时用客户端登录mysql后执行操作也会遇到,后者更容易排查,前者由于涉及应用逻辑以及对象...实为吾之愚见,望诸君酌之!闻过则喜,与君共勉第一章准备环境创建数据测试数据mysql>createdatabasetest1;QueryOK,1rowaffected(0.00sec)mysql>createdatabasetest2;QueryOK,1rowaffected(0.00sec)mysql>createdatabasetest3;QueryOK,1rowaffected(0.00sec)mysql>createuseruptest1@'%'identifiedby'123';QueryOK,0rowsaffected
js中的正则表达式(1)
前言对于正则,著称火星文字,见名知意主要它晦涩难懂,一直以来,看到它总是怕怕的,在平时,也只是简单的用用,其主要是靠搜,还有就是厚着脸皮求助各路大神了,遇到稍复杂些的正则,便无从下手了,令人头疼,即使写完了,过几月在回头看时,发现又看不懂那些符号是什么意思了,终归结底,还是自己使用得太少,认识得太浅,正则是一个非常强大能完成搜索和替换的文本工具,本文为初学者学习笔记心得,适用小白,对于正则,我也一直在学习当中,虽然很是枯燥,但是出去混迟早是要还的,欢迎路过的老师多提意见和指正使用场景正则最常见的是用在表单验证上,比如要注册一个网站的账号,申请注册邮箱,填写收货人信息等,需要填写用户信息,比如:姓名,地止,手机号,邮箱,出生日期等,在将这些表单数据信息提交到服务器处理之前,我们使用javascript程序检查表单以确认用户输入的信息,并且是否符合某些条件要求的,当然正则的用处远不止在表单上,比如:你正在搜索一个文件,这个文件里包含suibichuanji(不区分大小写),你并不想要把包含着其他的字母给找出来,比如什么hello,b
如何用webgl(three.js)搭建一个3D库房-第一课
今天我们来讨论一下如何使用当前流行的WebGL技术搭建一个库房并且实现实时有效交互第一步、搭建一个3D库房首先你得知道库房长啥样,我们先来瞅瞅库房长啥样(这是我在网上找的一个库房图片,百度了“库房”一下,找不到合适的全景,我们也只能窥一斑思全豹了,就它了,特此声明:此图片归原作者所有非本人所拍,拿来只是给读者做个案例)下面是我用webgl做出来的3D效果图(当前展示没有货物时的整体模拟):第二部、开干1、首先我们创建一个页面,引入各种需要的库文件
测试工具比较:选Jest,不选Mocha
我们Automattic公司的WordPress.com是由Calypso项目推动的,而这个项目中所有的测试用的都是Mocha框架。项目中还包括端到端测试,都保存在自己独立的代码库里。这套设定我们已经用了三年多了,我觉得是时候该重新审查一下这个选择。我发现这篇[单元测试工具的比较]文章(https://mo.github.io/2017/06/05/javascript-unit-testing.html)非常有帮助,可以用来评估不同的选择。文中,作者**MartinOlsson**给我们分享了他的结论,我强烈赞同这个结论:我觉得,要继续使用Javascript,就很难忽视Jest的势头。当然,如果这个编号#2059的问题能修好就太棒了。然后还是要说一下,对不少人来说,Mocha似乎已经够用了。在这个贴子里,我想突出说明一下这个名叫Jest的测试工具的特色。这些特色使它成为一个很有吸引力的选择。我们有几次简单地内部讨论过Jest,主要集中在快照功能这一独特的测试方法上。在我看来,这个功能只不过是锦上添花,所以我更想讨论一下其它我认为更重要