Javafx布局

JavaFX布局 (一)FlowPane面板 按照从上到下、从左到右的次序摆放,面板大小变化,会重新摆放各个控件的位置 首先创建一个FlowPane对象,代码如下: FlowPane pane = new FlowPane(); pane.setPadding(new Insets(11, 12, 13, 14)); pane.setHgap(5);//设置控件之间的垂直间隔距离...

4 minute read

Yahoo egads

Yahoo Egads

1 minute read

Aiops资料整理

AIOps资料整理 腾讯 AIOPS平台 https://github.com/Tencent/Metis Twitter https://github.com/twitter/AnomalyDetection AIOPS领域各种数据和资料汇聚 https://github.com/chenryn/aiops-handbook https://github.com/linjinjin123/awesome-AIOps https://github.com/zhuyiche/awesome-anomaly-detection https://github.com/kc-ml2/journal-club/blob/ceaa45c5822f55d8060afdab907280d3e47b9288/past/2019-06-12-anomaly-detection.md https://github.com/martinliu/aiops AIOPS黄页 https://github.com/yzhao062/anomaly-detection-resources 异常点检测tutor...

1 minute read

适配器设计模式

适配器设计模式 适配器模式:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式有三个角色 目标角色 我们的期望接口,是一个已经在正式运行的角色 public interface Target { // 目标角色有自己的方法 public void request(); }...

1 minute read

抽象工厂设计模式

抽象工厂设计模式 抽象工厂模式:是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在有多个业务品种、业务分类时(也就是同一个产品,存在不同的等级情况下),通过抽象工厂模式产生需要的对象是一种非常好的解决方式。 对比:工厂设计模式 抽象产品类 与工厂方法的不同是: 根据产品类别可以有多个抽象产品类(又叫产品族) // 抽象产品类A public abstract class AbstractProductA { //每个产品共有的方法...

3 minute read

外观设计模式

外观设计模式 外观模式(Facade Pattern,又叫门面模式)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。外观模式向现有的系统添加一个接口,来隐藏系统的复杂性。 外观模式有两个角色 门面角色 该角色没有实际的业务逻辑,此角色知晓子系统的所有功能,客户端可以调用这个角色的方法。 public class Facade { //被委托的对象 private ClassA a =...

2 minute read

Java序列化

Java序列化 序列化就是,将特定结构的数据转化为另一种能被存储和还原的格式。序列化主要是为了存储和网络传输。 1.序列化关注的问题 正确性:对对象引用关系(特殊的比如循环引用)、继承关系以及泛型的支持是否完备,这些都可能带来不可预知的bug。 开发成本:有的序列化方式可以无缝接入业务系统,有的则需要额外的配置,以具体场景能容忍的开发成本为准。 时间开销:序列化过程中,JVM的GC机制、类加载反射机制会影响时间开销,另外由于IO的成本一般大于内存、CPU的计算的成本,时间开销也往往强依赖于序列化的空间开销,序列化文件越大相应的时间开销也越大。 空间开销:包括序列化过程中动态的内存空间占用量,以及序列化后产出的文件大小。 安全性:因为序列化常涉及到存储和传输,数据暴露在外,涉及到安全性的问题。但同时由于序列化的过程常发生在内部网络,对外输出的数据则有应用层的协议保障安全,故一般情况下,序列化对安全性要求不高。 前向后向兼容:从业务演化的角度,可能出现序列化前后数据模式的改变。比如RPC过程中调用端和被调用端的Java类字段的改变。这就要求序列化有前向、后向兼容性,以此保证业务流程在业务演化过程中的稳定性。 跨语言兼容:大多数情况下同一架构体系内的应用采用同样的语言框架,不用考虑跨语言兼容。当某些互相耦合的模块之间不可避免的需要不同语言的应用来支持时,就需要序列化协议具有跨语言的能力。 2.Java二进制序列化 序列化本质上就是一种编解码方式。 普通的Java对象的数据通过字段的方式组织,类似K-V的形式,序列化后的二进制数组需要能表达不同字段的拆分,即数据单元的拆分和映射。广义而言,有两种方式实现数据单元的拆分、映射: 动态携带meta信息:即类似通过 消息头+消息体...

5 minute read

高效沟通

高效沟通

1 minute read