连击 天
fork: star:
前言 缓存是日常开发常用的技巧,可以有效的加速应用的读写速度,同时也可以降低后端的负载。而加入缓存之后同时也会带来一些其他问题,本文主要交流一下面对这些问题的常用做法。 缓存的基本...
前言 程序员对哈希算法应该都不陌生,比如业界著名的MD5、SHA、CRC等等;在日常开发中我们经常用一个Map来装载一些具有(key,value)结构的数据,利用哈希算法O(1)的时间复杂度提高程序处理效率...
构建自己技术影响力的建议 承担责任:重大的技术决策可能会带来重大的技术风险,要有勇气(和能力)承担风险,并以此赢得他人的尊重。 帮助他人:团队成员遇到技术问题的时候,即使不是自己的...
开闭原则 软件实体(模块、类、函数等)应该对扩展是开发的,对修改是关闭的。 通俗的讲就是:软件功能是可以扩展的,但是软件实体是不可以被修改的。 当我们在代码中看到else 或者 switch/c...
接口隔离原则 不应该强迫用户依赖他们不需要的方法。 使用接口隔离原则,就是定义多个接口,不同的调用者依赖不用的接口,只看到自己需要的方法。而实现类则通过实现这些接口,通过多个接口将...
单一职责原则 一个类,应该只有一个引起它变化的原因。 软件设计有两个基本准则:高内聚和低耦合。 (内聚性主要研究组成一个模块或者类的内部元素的功能相关性)
里氏替换原则 通俗的讲就是:子类型必须能够替换掉它们的基类型。 继承是否合理我们需要用里氏替换原则来判断。是否合理并不是从继承的设计本身看,而是从应用场景的角度看。如果在应用场景中...
依赖倒置原则 高层模块不应该依赖底层模块,二者都应该依赖抽象。 抽象不应该依赖具体实现,具体实现应该依赖抽象。 例如:JDBC 我们在java开发中访问数据库,代码并不直接依赖数据库驱动,而...
需求阶段 主要是通过用例图来描述系统的功能与使用场景; 对于关键的业务流程可以通过活动图描述; 如果在需求阶段就提出要和现有的某些子系统整合,那么可以通过时序图描述新系统和原来的子...
经过一段时间的演化,spark-binlog,delta-plus慢慢进入正轨。spark-binlog可以将MySQL binlog作为标准的Spark数据源来使用,目前支持insert/update/delete 三种事件的捕捉。 delta-plus则是...
概述 Apache Griffin定位为大数据的数据质量监控工具,支持批处理数据源hive、text文件、avro文件和实时数据源kafka,而一些以关系型数据库如mysql、oracle为存储的项目也同样需要可配置化的...
[TOC] 一、概述 随着业务发展和数据量的增加,大数据应用开发已成为部门应用开发常用的开发方式,由于部门业务特点的关系,spark和hive应用开发在部门内部较为常见。当处理的数据量达到一定量...
在遍历spark dataset的时候,通常会使用 forpartition 在每个分区内进行遍历,而在默认分区(由生成dataset时的分区决定)可能因数据分布原因导致datasetc处理时的数据倾斜,造成整个dataset...
前言 目前我们的业务需要多个spark job串行一起执行,每个spark job所需的参数配置各不相同;之所以分开多个spark job,是我们想保留每个任务独立执行的能力,提供独立的服务能力,又想在任务...
前言 目前spark sql 主要应用在structure streaming、etl 和 machine learning 的场景上, 它能对结构化的数据进行存储和操作,结构化的数据可以来自HIve、JSON、Parquet、JDBC/ODBC等数据源...
Histogram -> 可以列出内存中的对象,对象的个数以及大小。 Dominator Tree -> 可以列出那个线程,以及线程下面的那些对象占用的空间。 Top consumers -> 通过图形列出最大的object。 Leak S...
如何写链表代码 写链表代码是最考验逻辑思维能力的,因为链表代码到处都是指针操作、边界条件的处理,稍有不慎就容易产生bug。链表代码写的好坏,可以看出一个人写代码是否够细心,考虑问题是...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复