《一分钟经理人》
一、经典的“自上而下”严密的管理方式存在什么问题?经典的“自上而下”的严密的管理方式,能够严格规范员工的行为方式。但是放在今天,这种方式不能激发员工潜力还扼杀创造力。
二、一分钟管理法2.1 一分钟目标设定一分钟目标:
共同制定工作目标, 并清楚简洁地描述出来, 明确好的工作表现的标准。
每个目标都单独写在一张纸上, 并写下完成期限。
规定每天用几分钟时间, 重温自己最重要的目标。
鼓励人们用一分钟时间审视自己的表现, 检查是否与目标一致。
若与目标不一致, 反思自己的工作表现, 以便调整。
2.2 一分钟称赞进行一分钟称赞:
◆ 前半分钟
及时称赞下属。
告诉他们对在哪里—要说得非常具体。
告诉他们这件事情做对之后, 会让你感到多么高兴, 对整个团队和其他同事又会有多么大的帮助。
◆ 停顿一会儿
沉默几秒, 让他们静静地体会做对事带来的喜悦。
◆ 后半分钟
鼓励他们以后继续这样做。
明确说明你对他们有信心, 并会支持他们获得成功。
2.3 一分钟更正如果目标阐述清晰, 进行一分钟更正:
◆ 前半分钟
错误发生后立刻进行更正。
确认既有的事实, 分析错在哪里,要说得非常具体。 ...
到了一定年龄,低配生活,高配灵魂
本文摘录自新华社夜读文章: 到了一定年龄,低配生活,高配灵魂
part 1
有位作家说:“简朴的生活、高贵的灵魂,是人生的至高境界。”
年轻时,我们总以为人生就是要追求“高配置”的生活,追求豪华的车子、高档的房子、体面的工作……
渐渐地,聪明的人懂得:如果过于追求物质的“高配”,身体累,心更累;适当减减配置,人生才能活得自在从容。
看过一句话:“拥有就是被拥有。”意思是说,一旦我们拥有了某样东西,从那一刻起,我们也被这个东西所拥有。
比如,你拥有了一辆汽车,你同时被这辆汽车拥有,你常担心它被剐蹭、被偷,你要给它买保险、做保养。
比如,你拥有了一件奢侈品衣服,你同时也被这件衣服拥有,脏了要洗、皱了要烫、破了要修。
我们拥有的东西越多,需要担心和关注的外部事物就越多。
相反,如果我们在物质上追求简单,注意力就不会被太多的外物分散,就能集中精力去做自己喜欢的事。
很认可一句话:“简单的生活,不是苦行僧式的自虐,而是一种更为人性化的、经济的、环保的、轻松愉悦的生活。”
我们总是尝试拥有更多,却很少问问自己:拥有这么多之后,我就会幸福吗?
所谓物质低配,不是让你降低生活质量,而是在这个充满 ...
系统稳定性与高可用保障的思考
原文地址:稳定性与高可用保障的工作思路, 本文在原文的基础上做了一些补充和删减。
一、深入理解稳定性与高可用
维基百科上稳定性与高可用性的定义
稳定性
稳定性是数学或工程上的用语,判别一系统在有界的输入是否也产生有界的输出。若是,称系统为稳定;若否,则称系统为不稳定。
关于稳定性的定义我们可以总结归纳为 – 当系统接收输入后,能够产生正确的、符合预期的输出,称系统为稳定;否则,称系统为不稳定。
稳定性描述的是系统的行为,一个系统是否稳定,很难进行量化,但是可以通过否定的方式进行快速地判断。保障系统的稳定性或者说提高系统的稳定性需要通过各种方法来避免那些不稳定的情况发生。所谓的更稳定,客观上并不存在,是主观上希望避免或者减少不稳定的情况发生。
高可用性
高可用性(英语:high availability,缩写为 HA),IT术语,指系统无中断地执行其功能的能力,代表系统的可用性程度。是进行系统设计时的准则之一。高可用性系统与构成该系统的各个组件相比可以更长时间运行。
与稳定性不同,可用性一个可以量化的指标,计算公式在维基百科中描述如下:
根据系统损害、无法使用的时间,以及由无 ...
Java中一个对象占用多少个字节
说明:本文内容参考文章:码辣架构-Java对象的内存布局,详解内容请阅读原文。
一、问题背景在开发过程中,我们经常使用JVM进行缓存一些数据来提高程序的性能,但是我们需要对缓存的数据进行大小估算,防止产生OOM问题,为保证估算的准确性,需要了解一个Java对象在内存中具体占用多少个字节。
二、一个Java对象的组成
组成部分
对象头(object header)
实例数据(Instance Data)
对齐填充(Padding)
说明
包括了关于堆对象的布局、类型、GC状态、同步状态和标识哈希码的基本信息。Java对象和vm内部对象都有一个共同的对象头格式。
主要是存放类的数据信息,父类的信息,对象字段属性信息。
为了字节对齐,填充的数据,不是必须的。
大小
12 byte
基本类型数据类型和引用类型的大小
对象大小不满足8byte的倍数时进行填充
提示:JDK6之后默认都是开始指针压缩的,所以对象头中mark word占用8个byte,klass pointer占用4个byte
object header
Common structure at the be ...
浅谈“伪共享”问题
非原创,转载于:https://www.liuyj.top/false_sharing.html
前言学习的过程中遇到了一个名词——伪共享,出于对知识的兴趣,上网查阅了一些博文,研究了伪共享的问题,写此文章总结记录。
要很好的理解伪共享问题,我们要先从CPU的缓存开始说起。
CPU缓存架构CPU 是计算机的心脏,所有运算和程序最终都要由它来执行。
主内存(RAM)是数据存放的地方,CPU 和主内存之间有好几级缓存,因为即使直接访问主内存也是非常慢的。
如果对一块数据做相同的运算多次,那么在执行运算的时候把它加载到离 CPU 很近的地方就有意义了,比如一个循环计数,你不想每次循环都跑到主内存去取这个数据来增长它吧。
再对缓存的概念做一些说明:
越靠近 CPU 的缓存越快也越小。所以 L1 缓存很小但很快,并且紧靠着在使用它的 CPU 内核。L2 大一些,也慢一些,并且仍然只能被一个单独的 CPU 核使用。L3 在现代多核机器中更普遍,仍然更大,更慢,并且被单个插槽上的所有 CPU 核共享。最后,主存保存着程序运行的所有数据,它更大,更慢,由全部插槽上的所有 CPU 核共享。
当 ...
雪花算法源码分析及实践
一、雪花算法简介雪花算法(Snowflake)是一种生成分布式全局唯一ID的算法,这种算法由Twitter创建并开源。
雪花算法由64位的二进制组成,刚好可以用一个Long类型存储,一共包含四个部分:
符号
时间戳
数据中心和机器ID
序列号
1 bit
41 bits
10 bits
12 bits
1位是符号位,没有被使用,始终是0
41位是时间戳,具体到毫秒,表示现在至1970年以来的毫秒数,最多可用69年
10位是数据中心和机器ID,10位最多可以表示1024台机器
12位是序列号,表示毫秒内生成的序列号,每毫秒最多可生成4096个ID
二、雪花算法源码(java)
雪花算法Java版本源码来自beyondfengyu的github:Snowflake
/**
* twitter的snowflake算法 -- java实现
*
* @author beyond
* @date 2016/11/26
*/
public class SnowFlake {
/**
* ...
张一鸣:牛逼的人找方法,傻逼的人找借口
转载说明内容来源:本文为公众号仟语仟寻(ID:huoqian2014)首发,转载自笔记侠(ID:Notesman)原文地址:张一鸣:牛逼的人找方法,傻逼的人找借口
伴随成长,我们会遇到很多问题,在不断思考,今天读到的这篇文章中许多观点引起了我的共鸣,更从中看到了一些值得去探索的方法。
商业思维编者按:这几天抽空把张一鸣所有的微博看了一遍,2010年的微博是他30岁左右时候发的,那时候他刚创业没多久,在微博上认真分享自己的思考和观点。到了2012年附近,开始做今日头条。从他的微博中,我试图找到他成功的钥匙,仅仅是这些只言片语,我都觉得对我的启发很大。一个有趣的故事是,早年张一鸣曾把马化腾的所有微博读了一遍;而今天,张一鸣的微博也被人仔细研读,试图摸索出他成就背后的思维逻辑。围观他的微博,结论就是张一鸣真的太厉害了,发现他说得最多的关键词:延迟满足感,自控,理性,反省,创新,学习。本文是从他微博中摘录的231句话,绝大多数都是他创业初期的思考,我们可以看下10年前的想创业的张一鸣在想什么,在思考什么,是怎么鞭策自己的。有点长,希望大家耐心看完,一定会有所收获的。
一、关于成长1.人 ...
分布式ID生成方案
一、问题背景由于MySQL的单表数据量超过了千万级别,需要根据日期对数据库进行水平分表,分表后需要保证每个分表Id的全局唯一性,原来单表使用自增保证Id的有序性和唯一性,分表后需要生成全局唯一的Id。
所以接下来讨论一下分布式Id的生成方案,以及各种方案的优缺点等。
二、分布式ID生成方案2.1 UUID
A universally unique identifier (UUID) is a 128-bit label used for information in computer systems. The term globally unique identifier (GUID) is also used通用唯一识别码(英语:Universally Unique Identifier,缩写:UUID)是用于计算机体系中以识别信息的一个128位标识符。
根据标准方法生成,不依赖中央机构的注册和分配,UUID具有唯一性,这与其他大多数编号方案不同。重复UUID码概率接近零,可以忽略不计。通用唯一识别码-维基百科
2.1.1 UUID定义UUID是由一个16进制下的32位数所构成,故 ...
MySQL索引合并优化
一、问题背景之前遇到过一个关于MySQL索引的面试题,问题如下:
一张数据库表t其中有3列为a、b、c,分别为每一个列单独建立一个二级索引,那么现在有一个查询条件select * from t where a=? and b=? and c=?请问上述SQL语句,MySQL存储引擎在执行查询的时候,哪些索引将会被使用到?
当时一顿分析,还谈到了MySQL基于成本估算的优化,认为MySQL优化器先基于a、b、c三个列的索引区分度,选择索引区分度较高的索引进行扫描,根据第一个索引的扫描结果,如果第一个索引的扫描结果集高于一个固定量级,则继续选择第二个索引进行扫描,依次判断是否需要使用第三个索引,如果第一个索引的扫描结果集小于一个固定量级,则直接根据第一个索引的扫描结果集进行回表查询到列记录,再根据未使用到的2列进行过滤。
最后得出的结果是:a、b、c 3个索引都可能被使用到,具体使用到哪些索引,取决于3个索引的区分度以及表的数据量。
正确答案上面的问题应该用索引合并优化的原理来分析,上述的SQL的where条件满足了索引合并优化中的Index Merge Intersection Ac ...
IntelliJ IDEA快捷键使用
工具用得好,下班下得早Ctrl + Alt + T使用if,if/else, while, do/while, for, try/catch, try/finally, try/catch/finally, synchronized, Runnalbe 包围代码块
Alt + Enter代码快速补全、包引入、临时变量生成等
Ctrl + Alt + M将代码块提取到一个方法
Ctrl + Shift + 上下方向键上下移动单行代码和代码块
Class.new + (Alt + Enter)Class.new创建一个Class类型的匿名对象,Alt + Enter将匿名对象赋值给一个新建的变量
instance.try根据instance实例对象快速生成try/catch代码块