不少人有五年的 JavaScript 经验,但实际上可能只是一年的经验重复用了五次而已.完成同样的逻辑和功能,有人可以写出意大利面条一样的代码,也有人两三行简洁清晰的代码就搞定了.简洁的代码不但方便阅读,还能减少复杂逻辑和出错的可能性.本文就介绍一些常用的JavaScript简化技巧,日常开发都用得上. 1. 简化条件表达式 经常碰到这种情况,要判断某个变量是否为指定的某些值,用常规的逻辑表达式会很长.我的做法是把这些值放进数组里: // 太长的逻辑表达式 if (x === 'abc' ||…
目录 使用过Redis,那就先说说使用过那些场景吧 Rdb文件是什么,它是干什么的 分析工具 小结 联想 推荐阅读 使用过Redis,那就先说说使用过那些场景吧 字符串缓存 //举例 $redis->set(); $redis->get(); $redis->hset(); $redis->hget(); 队列 //举例 $redis->rpush(); $redis->lpop(); $redis->lrange(); 发布订阅 //举例 $redis->…
背景 有朋友反馈zk连接很慢.整理出zk连接的关键逻辑如下: 上面的代码造成第一次调用ClientZkAgent.getInstance的时候,需耗时10s, 这个时间恰好跟semaphore的超时时间相当. 在此期间,整个世界好像停滞了一样. 分析 在本地重现后,通过jstack获得系统停滞期间的线程栈,发现这个时候zookeeper的EventThread有个比较奇怪的现象: 客户端实际上很快就连上了zookeeper并返回后生成了SyncConnected事件,而且EventThread已…
作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e894d 简书:https://www.jianshu.com/u/cb1c3884e6d5 微信公众号:土豆妈的碎碎念(扫码关注,一起吸猫,一起听故事,一起学习前端技术) 欢迎大家扫描微信二维码进入群聊讨论(若二维码失效可添加微信JEmbrace拉你进群) 码字不易,点赞鼓励哟~ 温馨提示 本篇文章…
二哥,离你上一篇我去已经过去两周时间了,这个系列还不打算更新吗?着急着看呢. 以上是读者 Jason 发来的一条信息,不看不知道,一看真的是吓一跳,上次我去是 4 月 3 号更新的,离现在一个多月了,可不只是两周时间啊.可能我自己天天写,没觉得时间已经过去这么久了,是时候带来新的一篇"我去"了. 这次没有代码 review,是同事小王直接问我的,"青哥,能给我详细地说一说 synchronized 关键字怎么用吗?"他问的态度很谦逊,但我还是忍不住破口大骂:&quo…
上一篇文章写的是 Spring Boot 的入门,结果有读者留言说,Java 都还没搞完,搞什么 Spring Boot,唬得我一愣一愣的.那这篇就继续来搞 Java,推出广受好评的我去系列第四集:你竟然还不会用 this 关键字. "老大,能给说详细地说说 this 关键字吗,总感觉对这个关键字的认知不够全面."小王又过来找我了,他问的态度很谦逊,很卑微,但我还是忍不住破口大骂:"我擦,小王,你丫的竟然不会用 this,我当初是怎么面试你进来的!" 小王被我这句话…
微信搜「烟雨星空」,白嫖更多好文. 现在 Oracle 官方每隔半年就会出一个 JDK 新版本.按时间来算的话,这个月就要出 JDK15 了.然而,大部分公司还是在使用 JDK7 和 8 . 之前去我朋友家,竟然被嘲笑不会用 JDK8 . 不服气的我,回来之后,当然是重点学习之啊. 话不多说,本文目录如下: 目录: lambda 表达式 接口默认方法和静态方法 函数式接口 方法引用 Optional Stream API 日期时间新 API 一.lambda表达式 先看下 lambda 表达式是…
二哥,你之前那篇 我去 switch的文章也特么太有趣了,读完后意犹未尽啊,要不要再写一篇啊?虽然用的是 Java 13 的语法,对旧版本不太友好.但谁能保证 Java 不会再来一次重大更新呢,就像 Java 8 那样,活生生地把 Java 6 拍死在了沙滩上.Java 8 是香,但早晚要升级,我挺你,二哥,别在乎那些反对的声音. 这是读者 Alice 上周特意给我发来的信息,真令我动容.的确,上次的"我去"阅读量杠杠的,几个大号都转载了,包括 CSDN,次条当天都 1.5 万阅读.但…
写一篇文章容易吗?太不容易了,首先,需要一个安静的环境,这一点就非常不容易.很多小伙伴的办公室都是开放式的,非常吵,况且上班时间写的话,领导就不高兴了:只能抽时间写.其次,环境有了,还要有一颗安静的心,如果心里装着其他挥之不去的事,那就糟糕了,呆坐着电脑前一整天也不会有结果. 我十分佩服一些同行,他们写万字长文,这在我看来,几乎不太可能完成.因为我要日更,一万字的长文,如果走原创的话,至少需要一周时间,甚至一个月的时间. 就如小伙伴们看到的,我写的文章大致都能在五分钟内阅读完,并且能够保证小伙伴…
最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础,加油吧 距离去北京还有23天…
序言 各位好啊,我是会编程的蜗牛,作为java开发者,平时调试接口的时候,肯定需要用到接口调试工具,或者Swagger之类的.Swagger的优势在于它可以将后台加的一些接口注释信息直接展示出来,但是每次关闭网页后,下次就需要再次配置参数.今天要介绍下postman这款工具,就不存在这个问题.我接触这款工具前,都是开发的前后端一体的项目,所以也没有使用postman的需求.后来做前后端分离开发,就被安利了这款工具,用着用着也就慢慢熟悉了. 但是用的时间久了,感觉有些地方还是比较麻烦的,后来去网上…
更快学习 JavaScript 的 6 个思维技巧 我们在学习JavaScript,或其他任何编码技能的时候,往往是因为这些拦路虎而裹足不前: 有些概念可能会造成混淆,尤其当你是从其他语言转过来的时候. 找不到时间(有时是动力)学习. 很容易忘记已经理解了的东西. 工具多又在不断变化,所以不知道从哪里开始. 幸运的是,这些拦路虎是可以被识别,并消灭的.在这篇文章中,我将介绍六个思维技巧来帮助你更快地学习JavaScript,并成为一个更快乐.更富有成效的程序员. 1.不要让未来的决策阻止你现在前…
Javascript的闭包及其使用技巧实例 一.闭包的基本概念 闭包(Closure)是一个引用了自由变量的函数,记录了该函数在定义时的scope chain.又称词法闭包(Lexical Closure)或函数闭包(function closures). 闭包的基本规则: * 函数执行是基于函数定义时的scope, 而不是 函数运行时的scope (定义时的Scope: 在定义这个函数的时候的scope chain) 为此, JS的function对象的内部状态,不仅包括函数代码本身, 而且包…
前言     当面试官问你:你了解js哪些继承方式?es6的class继承是如何实现的?你心中有很清晰的答案吗?如果没有的话,可以通过阅读本文,帮助你更深刻地理解js的所有继承方式.       js继承总共分成5种,包括构造函数式继承.原型链式继承.组合式继承.寄生式继承和寄生组合式继承.   构造函数式继承       首先来看第一种,构造函数式继承,顾名思义,也就是利用函数去实现继承:       假设我们现在有一个父类函数: // 父类构造函数 function Parent(color…
经常会碰到,问一个 CSS 属性,例如 position 有多少取值. 通常的回答是 static.relative.absolute 和 fixed .当然,还有一个稍微生僻的 sticky .其实,除此之外, CSS 属性通常还可以设置下面几个值: initial inherit unset revert { position: initial; position: inherit; position: unset /* CSS Cascading and Inheritance Level…
作者:肖光宇 野狗科技联合创始人,先后在猫扑.百度.搜狗任职,爱折腾的前端工程师. 野狗官博:https://blog.wilddog.com/ 野狗官网:https://www.wilddog.com/ 公众订阅号:wilddogbaas 转载请保留以上信息. 模块化这个问题并非一开始就存在,WWW刚刚问世的时候,html,JavaScript,CSS(JS和CSS都是后来在网景被引进浏览器的)都是极其简单的存在,不需要模块化. 模块化的需求是规模的产物,当web page进化到web app…
前言 其实18年之前写过一篇关于chrome插件的文章,里面安利了4个chrome插件.鉴于这已经是9102年了,之前觉得好用的chrome插件跟新了解到的比起来,还是差了那么点味道.所以决定再更新一波,顺便补上之前漏掉的几个插件. 运用有效的有用的插件,会让我们的工作在一个相对舒适的状态,工作起来更加的流畅. Toby-不直观算我输 大家可以将Toby当成加强版的书签栏,大家可以分类把常去的网站收藏起来,还可以正对每个分类打上对应的tag,在右上角进行筛选. 当你打开了很多要用的网站,但是不得…
你可能在网上见过有人用 几个不同的字符写的各种稀奇古怪的 JavaScript 代码,虽然看起来奇怪,但是能正常运行!比如这个: (!(~+[])+{})[--[~+""][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]] 你猜运行结果是什么?你可以自己去控制台试一下. 看起来很神奇,但这到底是怎么回事呢? 事实上,你几乎可以用下面这 6 个字符写出任意的 JavaScript 程序: []()!+ 很多人都知道这个技巧,但是没有多少开发人员知道它…
TIOBE的4月份编程语言排行榜出来了,java还是稳坐第一位,java最新的版本也到了13,一直以来java凭借其企业级应用的优势和大量的框架级应用俘获了大量的粉丝和企业客户. 谈到开发者,java肯定是个绕不过去的话题,那么这么多的java开发者到底都用哪些IDE呢? 好的IDE肯定不仅要支持java的开发,HTML,CSS,JS,移动开发一个都不能少. IDE就是为了降低开发难道,提升开发效率而生的. 下面是我们今天要讲的5个IDE神器 Eclipse Eclispe不用介绍了吧,记得我写…
引言 SpringBoot项目中的启动类,一般都是XXApplication,例如「StatsApplication」,「UnionApplication」. 每个项目的启动类名称都不一样.但是它的启动类真的是XXApplication吗? META-INF/****Manifest.mf文件 jar文件实际上是class文件的zip压缩存档.jar并不能表达应用程序的便签信息. 「META-INF/Manifest.mf文件提供存档的便签信息.」 Manifest.mf有 「Main-Clas…
随着2020进入4季度,.NET5正式版也已经与大家见面了.不过,尽管 .NET Core发布已经有四五年的时间,但到目前为止,依旧有很多.NET开发者在坚守者.NET4,原因不尽相同,但最大的问题可能还是不熟悉Linux,更别说在Linux服务器中部署.NET服务了. 而 .NET Core在飞速发展的这四五年里,微服务.云原生等概念也在飞速发展. .NET Core在微服务和云原生的场景下,也已日趋稳定,生态也在逐步完善,相信.NET5正式发布后,对于我们苦逼多年了的.NET开发者绝对是个机…
Spring如何解决的循环依赖,是近两年流行起来的一道Java面试题. 其实笔者本人对这类框架源码题还是持一定的怀疑态度的. 如果笔者作为面试官,可能会问一些诸如"如果注入的属性为null,你会从哪几个方向去排查"这些场景题. 那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么. 正文 通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景. 比如几个Bean之间的互相引用: 甚至自己…
做过一段时间的Web开发,我们都知道或者了解JavaScript中有个非常强大的语法,那就是闭包.其实,在PHP中也早就有了闭包函数的功能.早在5.3版本的PHP中,闭包函数就已经出现了.到了7以及后来的现代框架中,闭包函数的使用更是无处不在.在这里,我们就先从基础来了解PHP中闭包的使用吧! 闭包函数(closures)在PHP中都会转换为 Closure 类的实例.在定义时如果是赋值给变量,在结尾的花括号需要添加;分号.闭包函数从父作用域中继承变量,任何此类变量都应该用 use 语言结构传递…
bug描述: 操作步骤:1.进入"商标续展"产品详情页面,点击立即购买(数量设为2),进入合并订单界面,选择合同主体,点击全部,清空所有合同主体2.新建合同主体保存,设置该合同主体为默认合同主体,返回到合并订单界面3.点击"去支付"4.点击选择合同主体,选中刚刚新建的合同主体绑定到该订单5.删除该合同主体,再新建一个合同主体保存,并设置该合同主体为默认合同主体结果:第三步:提示"请选择合同主体",不能支付第四步:能跳到支付界面,但是提示"…
原文  http://blog.csdn.net/ithzhang/article/details/8119286 主题 C++  C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中.它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能.什么东西又可以放在cpp文件中.如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!! 首先谈下 声明与定义的区别. 声明是将一个名称引入程序.定义提供了一个实体在程序中的唯一描述.声明和定义有时是同…
工作中碰到一个问题,需要把某个 collection 中的某些符合条件的数据取出来,逐行处理其中某些字段.mongodb 终端下支持直接写 js 代码.函数,也可以运行 js 文件.1 首先需要设置 mongo 终端的代码编辑器,不设置的话只能输入一行代码文件,无法处理大段 js 逻辑 进入 mongo 终端后,输入 f={} 回车后,继续输入: edit f 未设置过相关系统变量的会收到如下提示: please define EDITOR as a JavaScript string or a…
今天就一个目的,让你可以FQ成功,其他人我不知道,但就程序员来说,不能使用 Google 那真是一大损失,当然还有对所有人适用的 YouTobu 这个视频网站,资源多的没话说,别的不说,学习英语很方便.   当然我们FQ的目的只是为了更好的学习,嗯,反党反革命的事咱们也不干哈.   首先解释一下,什么是FQ.在解释FQ之前先说明一下什么墙,我们国家呢,为了国家的和平安定,国家意志不受美帝等的侵害,为互联网设计了一堵墙,也就是防火墙,全称是中国国家防火墙(Great FireWall of Chi…
时间过得真快,距离这个系列的上一篇文章<商业级4G代理搭建指南[准备篇]>发布的时间已经过了两个星期了,上个星期由于各种琐事缠身,周二开始就没空写文章了,所以就咕咕咕了. 那么在准备篇中,我们了解了一下搭建 4G 代理所需要的软硬件,也知道了各种选择的优劣势.现在,我们就可以开始实际搭建了,相信大家也是期待已久了. 基本思路 从这篇文章的标题中我们可以看出,这一次的搭建方案主要用到的是 Docker,你可能会很好奇,Docker 跟搭建 4G 代理有什么关系吗? 嗯,关系很大,我们把整件事情梳…
作者:人晓 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解. 这篇文章中,我将向大家讲述到底什么是注解,为什么要引入注解,注解是如何工作的,如何编写自定义的注解(通过例子),什么情况下可以使用注解以及最新注解和ADF(应用开发框架).这会花点儿时间,所以为自己准备一杯咖啡,让我们来进入注解的世界吧.   什么是注解? 用一个词就可以描述注解,那就是元数据,即一种描述数据的…
作者:古霜卡比 前言 本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件.本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节. 要理解微服务,首先要先理解不是微服务的那些.通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序.从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程.本文将以一个网上超市应用为例来说明这一过程. 最初的需求 几年前,小明和小皮一起创业做网上超市.小明负责程序开发,小皮负责其他事宜.…