Rob pike发表过一个有名的演讲<Concurrency is not parallelism>(https://blog.golang.org/concurrency-is-not-parallelism), 演讲胶片在talks.golang.org中可以找到(https://talks.golang.org/2012/waza.slide#1), 演讲视频地址 :https://vimeo.com/49718712 以下是根据视频转换的文本信息. if you looked at t…
"我们希望,一起组成的敏捷联盟能够帮助到其他同行,帮他们用新的更'敏捷'的方式去思考软件开发.方法论和组织.做到这一点,我们就得偿所愿了."Jim Highsmith 在雪鸟会议结束后,发出了这样的感叹. 这位出生于1945年的软件工程师,是一位登山狂热爱好者.在 Jim 看来,无论是工作还是娱乐,所做的事情其实都是在登山.Jim 拥有电气工程学士学位和管理硕士学位.他在工科学校毕业后的第一份工作就接触到了阿波罗载人航天计划.因此,可以说他的第一个项目是成功的,尽管当时他的工作职责微乎…
最近广州.NET微软技术俱乐部对如何编写高性能.NET程序发起了讨论.   首先是在ORM和SQL方面进行了讨论,主题当然是经久不衰的月经贴: EF性能很差. Edi.Wang专门写了一篇文章<Entity Framework 的一些性能建议> 说明了只要正确使用EF, 性能并不差. 我自己用EF十年了, 也没有感觉到EF性能差. 我的解决方法是把EF最常见性能瓶颈,比如审计日志进行优化. 之前是异步记录日志, 最近的做法是术业有专攻, 记录日志就扔给最擅长做日志的ELK组合去做. 同时ABP…
一.先安装jmeter的插件管理工具 1.下载地址:jmeter-plugins.org 点击plugins-manager.jar下载. 2.安装 把下载下来的文件plugins-manager.jar放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可. 3.安装成功 启动jemter,点击选项,最下面的一栏,如下图所示: 4.界面说明 Installed Plugins(已安装的插件):即插件jar包中已经包含的插件,可以通过选中勾选框,来使用这些插件: Availa…
谷歌大牛 Rob Pike 的 5 个编程原则 简介: Rob Pike,目前谷歌公司最著名的软件工程师之一,曾是贝尔实验室Unix开发团队成员,Plan9操作系统开发的主要领导人,Inferno操作系统开发的主要领导人.他是缔造Go语言和Limbo语言的核心人物.下面是他分享给大家他在贝尔实验室工作的一段经历,这段经历改变了他对bug调试的思想认识. 主要工作经历: 我在贝尔实验室工作了很多年.我在计算机科学研究中心,你会很诧异,这是个很小的实验室,但这里却创造了Unix,我来到这里工作的时候…
表驱动方法(Table-Driven Methods) - winner_0715 - 博客园 https://www.cnblogs.com/winner-0715/p/9382048.html What 表驱动方法(Table-Driven Methods),在<Unix 编程艺术>中有提到,<代码大全>的第十八章对此进行了详细地讲解. 表驱动法是一种编程模式(Scheme),从表里面查找信息而不使用逻辑语句(if 和case) 它的好处是消除代码里面到处出现的if.else.…
中国计算机学会推荐国际学术期刊会议 2014年12月,中国计算机学会(CCF)启动新一轮<)计算机体系结构/高性能计算/存储系统: )计算机网络:)网络与信息安全:)软件工程/系统软件/程序设计语言:)数据库/数据挖掘/内容检索:)计算机科学理论:)计算机图形学与多媒体:)人工智能:)人机交互与普适计算:)交叉/新兴/综合等.期刊和会议的推荐类别保持不变,仍分为A.B.C三类.其中,会议论文指“Full paper”或“regular paper”,会议上发表的Short paper, Post…
Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性,不过最主要的原因是这几个我比较熟悉. Go的很多语言特性借鉴与它的三个祖先:C,Pascal和CSP.Go的语法.数据类型.控制流等继承于C,Go的包.面对对象等思想来源于Pascal分支,而Go最大的语言特色,基于管道通信的协程并发模型,则借鉴于CSP分支. Go/Python/Erlang语言特…
python中文资源大全:https://github.com/jobbole/awesome-python-cn A curated list of awesome Python frameworks, libraries and software. Inspired by awesome-php. Awesome Python目录 Environment Management 环境管理 Package Management              软件包管理 Package Reposit…
1. JavaScript是一门什么样的语言,它有什么特点?2.JavaScript的数据类型都有什么?3.请描述一下 cookies,sessionStorage 和 localStorage 的区别?4.webSocket如何兼容低浏览器?(阿里)5.this和它声明环境无关,而完全取决于他的执行环境6.JavaScript异步编程常用的四种方法7.在严格模式('use strict')下进行 JavaScript 开发有神马好处?8.神马是 NaN,它的类型是神马?怎么测试一个值是否等于…
大家好,欢迎回到性能调优培训.上2个星期我们已经讨论了SQLServer里的悲观和乐观锁.今天我想谈下SQL Server里对于锁的一个特殊现象:所谓的锁升级(Lock Escalations).在我们进入那个问题的细节前,我想先谈下SQL Server内部使用的锁层级(Lock Hierarchy). 锁层级(Lock Hierarchy) 2个星期前,当我们开始讨论悲观并发模式(pessimistic concurrency)时,我告诉你SQLServer在记录层会获取共享锁(Shared…
许多OO语言都支持 两种继承方式: (1)接口继承:只继承方法签名: (2)实现继承:继承实际的方法. ECMAScript 由于函数没有签名,无法实现接口继承,因此只支持实现继承,而且主要是依靠原型链来实现的. 1. 原型链 -- 实现继承的主要方法,但是由于其问题,实践中很少会单独使用 基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法. 原型链的实现:让原型对象等于另一个类型的实例,层层递进,构成实例与原型的链条. 实现本质:重写原型对象,代之以一个新类型的实例 实现原型链的基…
一.理解对象 ECMA-262定义对象:无序属性的集合,其属性可以包含基本值.对象或者属性. 我们可以把 ECMAScript 的对象想象成 散列表:无非就是一组 名值对,其中值可以是数据或函数. 创建自定义对象的2种方式: (1)创建一个 Object 的实例,然后为其添加属性和方法         --最简单(早期开发人员的选择) // 创建一个 Object() 的实例,为其添加属性和方法 var person = new Object(); person.name = "Nicholas…
当学完第二课之后,你欣喜的发现,让jobs工作起来是还是相当简单的.虽然让jobs运行起来很简单,对于其执行的关键内容还是需要知道的.它们是IJob接口中的Execute和JobDetails. 当你定义一个实现IJob接口的类的时候,你需要在里面实现实际需要执行的代码.Quartz.NET需要知道关于这代码的各种信息,这样 Quartz.NET才能像你期望的那样工作.这些细节是在JobDetail类中进行了描述,在上一节以及进行了简单的描述. JobDetail由JobBuilder进行实例化…
由于工作需要,决定深入研究SQL Server的扩展事件(Extended Events/xEvents),经过资料搜索,发现国外大牛的系列文章,作为“学习”阶段,我先翻译这系列文章,后续在工作中的心得作为原创添加.原文地址:Stairway to SQL Server Extended Events ,由于英语水平有限,如认为看原文更好,可以自行查阅.另外,在翻译过程中,我会适当增加一些自己的看法或者删除作者的某些我认为不重要.不影响学习的内容,所以不是纯粹的直译. 本系列目前包含4篇文章:第…
HIBERNATE - 符合Java习惯的关系数据库持久化      下一页 HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.0.4   目录 前言 1. 翻译说明 2. 版权声明 1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第…
Flink基础概念 本文描述Flink的基础概念,翻译自https://ci.apache.org/projects/flink/flink-docs-release-1.0/concepts/concepts.html 一.程序(Progrram)和数据流(Dataflows) Flink程序的构建基础为Streams和Transformations.其中Streams为中间结果,而Transformations是将一到多个Streams作为输入,计算产生一到多个Streams作为输出的操作(…
Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二 Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错. deeplearning.net主页,里面包含的信息量非常多,有software, reading list, research lab, dataset, demo等,强…
原文:WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇] 在[第2篇]中,我们深入剖析了单调(PerCall)模式下WCF对服务实例生命周期的控制,现在我们来讨轮另一种极端的服务实例上下文模式:单例(Single)模式.在单例模式下,WCF通过创建一个唯一的服务实例来处理所有的客户端服务调用请求.这是一个极端的服务实例激活方式,由于服务实例的唯一性,所有客户端每次调用的状态能够被保存下来,但是当前的状态是所有客户端作用于服务实例的结果,而不能反映出具体某…
1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换   2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组   3:请简述面向对象的多态的特性及意义!   4:session喜欢丢值且占内存,Cookis不安全,请问用什么办法代替这两种原始的方法   5:对数据的并发采用什么办法进行处理较好.   6:已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E…
Go Revel - Parameters(参数绑定) 参数绑定 Revel框架会尽可能的将提交参数转换为期望的Go类型.这个从一个字符串提交参数转换为另一个类型被称为数据绑定 . 参数 所有的请求参数被存放在一个Params中,他包括: URL路径参数 URL查询参数 表单值(或Multipart) 文件上传 这是Params的定义: type Params struct { url.Values Files map[string][]*multipart.FileHeader } 嵌入的ur…
Deep Learning(深度学习) ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):一 ufldl的2个教程(这个没得说,入门绝对的好教程,Ng的,逻辑清晰有练习):二 Bengio团队的deep learning教程,用的theano库,主要是rbm系列,搞python的可以参考,很不错. deeplearning.net主页,里面包含的信息量非常多,有software, reading list, research lab, dataset, demo等,强…
原创文章,同步首发自作者个人博客转载请务必在文章开头处注明出处. 摘要 本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前缀等. 为何要处理数据倾斜(Data Skew) 什么是数据倾斜 对Spark/Hadoop这样的大数据系统来讲,数据量大并不可怕,可怕的是数据倾斜. 何谓数据倾斜?数据倾斜指的是,并行处理的数据集中,某一部分(如Spar…
创建多线程第一种方式:① 继承:继承Thread.② 重写:重写Thread类的run()方法③ 创建:创建一个子类的对象④ 调用:调用线程的start()方法,启动此线程,调用run()方法 class Work extends Thread{ //① 继承 @Override //② 重写 public void run() { for (int i = 1 ;i < 5; i++) { System.out.println(Thread.currentThread().getName()+…
线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 进程与线程 什么是线程(threading)? A thread is an execution context, which is all the information a CPU needs to execute a stream of instructions. Suppose you're reading…
利用书籍进行系统学习,凭借博客/新闻等资料开阔眼界,辅之以代码及项目实战,并勤加以总结,方可进步. 常用网站: Leetcode刷题:https://leetcode.com/ ,练习数据结构和算法必备 九章算法网站:http://www.jiuzhang.com/solution/,该网站有Leetcode题目的配套答案,而且代码质量很高 C++视频: 腾讯课堂,王桂林老师的课程.基础入门强烈推荐. 知识体系框架参考:http://edu.51cto.com/job/pxbpromotion…
package java.util; import java.util.function.Consumer; /** * LinkedList是List和Deque接口的双向链表的实现.实现了所有可选List操作,并允许包括null值. * LinkedList既然是通过双向链表去实现的,那么它可以被当作堆栈.队列或双端队列进行操作.并且其顺序访问非常高效,而随机访问效率比较低. * 内部方法,注释会描述为节点的操作(如删除第一个节点),公开的方法会描述为元素的操作(如删除第一个元素) * 注意…
Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版]  发表于 2018-04-24 |  随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药.于是就有了分布式系统调用跟踪的诞生. 现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文<Dapper, a La…
终于刷完了leetcode的前250道题的easy篇.好吧,其实也就60多道题,但是其中的套路还是值得被记录的. 至于全部code,请移步github,题目大部分采用python3,小部分使用C,如有问题和建议,欢迎指正. String 有一个string库,可以返回各种string的汇总,很值得用. 当题目中需要实现字符串替代的时候,python中有一个自带的translate()函数可以实现这个功能,具体可见Python3字符串替换replace(),translate(),re.sub()…
利用书籍进行系统学习,凭借博客/新闻等资料开阔眼界,辅之以代码及项目实战,并勤加以总结,方可进步. 常用网站: 找英文电子书网站:gen.lib.rus.ec 和 www.jiumodiary.com/ Leetcode刷题:https://leetcode.com/ ,练习数据结构和算法必备 九章算法网站:http://www.jiuzhang.com/solution/,该网站有Leetcode题目的配套答案,而且代码质量很高 数据结构可视化网站:https://www.cs.usfca.e…