GO有语法缺陷,缺少泛型、public/private、三元运算符?我不喜欢 Go 语言的十个理由 Go 语言有多火爆?国外如 Google、AWS、Cloudflare、CoreOS 等,国内如七牛、阿里、知乎等都已经开始大规模使用 Go 语言开发相关产品,可以说它是近来风头最盛的编程语言之一。但再好的编程语言也不会是完美的编程语言,本文作者 Lawrence 使用了三年 Go 语言,并在这三年间参与了几个大型 Go 语言项目,但三年后他彻底放弃 Go 语言,而且不打算在新项目中使用它。
Go 语言带给他的总体印象是:“好的方面非常好,不好的方面实在令人无法忍受”。Lawrence 在一篇博客文章中列出了他不再喜欢 Go 语言的十大理由,这篇文章很快在 HackerNews 上引发热议,下面就让我们一起来看看这十个理由到底有哪些。
使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制 Proxy是ES6的引入的一个对象监听机制。可视为JavaScript对象的一个代理中间件。用户在访问对象时,会触发自定义行为。
Proxy最简单的用法是可以监听对象属性的变化,比如下面的,当 obj 的 visit 属性改变时,自动更新页面上相应的 input元素值。
var obj = {}
var handler = {
set: function(target, name, value) {
//改变被代理对象的值,使之保持一致
target[name] = value
var input = document.querySelector('[name=' + name + ']')
if (input) {
input.value = value
}
}
}
var proxy = new Proxy(obj, handler);
proxy.visit = 100
JavaScript求一个字符串的字节长度 某些场景可能会对输入内容的字节长度有限制,比如说RSA加密算法。但 String.prototype.length 只会统计字符串的字符个数,并不是字节长度。
同样的字符数,中文要比英文多占用1倍的空间。此时可以通过chartCodeAt来统计字符长度。
Node.JS用RSA签名算法公钥加密私钥解密,实现License软件授权验证 在Node.JS经常用加密算法对一些敏感用户数据进行加密,比如说用户密码。而且用户密码不需要考虑解密,如果用户遗失密度,重置成新的已经新密码即可。此时用不可逆加密算法即可,对比加密后的字符串即可。
还有一些应用需要解密出原内容的,比如说HTTPS的传输。使用公钥对HTTP请求进行加密,在服务器用私钥解密。此时需要用到不对称加密算法,在Node.JS中这种机制很容易实现:
Node.JS在命令行中检查Chrome浏览器是否安装,并打开指定网址 使用Windows命令行cmd可以指定浏览器打开网址。在node.js中使用start即可,但是当用户没有安装Chrome时使用start则会报错,并会弹出错误对话框,Chrome默认安装位置为:
C:\Documents and Settings\{USERNAME}\Local Settings\Application Data\Google\Chrome\Application
我们还需要借助os获取Windows当前登录的用户名,如果没有安装Chrome的话,则用IE打开,最终代码如下:
微服务运维难维护?数据基础架构公司Segment宣布放弃微服务构架 很多人可能已经知道微服务已成为明日黄花,它曾经作为最佳实践为Segment公司起到很大作用,但是并不适合所有场所。
简单说,微服务是将后台业务拆分成很多各自功能独立的面向服务软件架构,其模块化、减少测试压力、功能组合、开发团队自治等优点广为人知。与之对应的是单体式架构,即用单个服务为测试部署扩展提供所有功能模块。
2017年早些时候,Segment产品开发遇到了问题。如果在每个部门继续采用微服务,不但不会加速开发过程,反而会落入复杂的泥潭。这种架构的优势反而变成了负担。最终,团队发现需要三个全职工程师才能确保这套系统运转,这种无法承受的负担必须改变。这篇博文就是回顾如何将产品和团队需求更好嵌入开发过程的回顾。
jQuery用outterHtml获取相对innerHTML父一级包含其自身的html代码内容 jQuery可以用html()来获取对应的innerHTML内容,但有时我们要获取其自身html代码,则可用原生的outterText, outterHtml属性。可以jquery对象可写成:
$('.grid').prop('outerHTML')
$('.grid').prop('outerText')
JavaScript中将字符串true或false转换成Boolean类型 JavaScript中可以使用parseInt方法将字符串转换成整型。但布尔型没有相关方法。可使用JSON解析:
JSON.parse("true");