安全系统设计指南
系统内部设计准则 不要把开发者个人信息硬编码进系统中。 不要带着调试代码上线。 该脱敏的数据不能打在日志和写在 db 列中-可以存在于内存中。 应使用KMS保存密码等信息。 接口设计指南 敏感接口,涉及敏感信息查询,资金流信息流修改的接口应该有鉴权机制。应该接入统一的 SSO 鉴权,或使用统一的 UPM/UAC 服务。 在高并发的场景要加锁或者使用信号量(内部也试用了锁)机制来防止接口大量重入。 接口的参数里涉及可遍历数据的要进行混淆操作-这和一般的 RESTful API 的设计思路相抵触。所有涉及敏感信息的地方都要根据敏感信息进行分类,防止泄露、篡改、越权。 防止篡改,要单独使用非对称算法进行签名和验签。
Java 平台历代特性
Java 9 模块化,JDK 只依赖于 PATH 不依赖于 CLASSPATH。
汉语
|中文|读音|含义| |颟顸|[mān hān]|糊涂而马虎| |攻讦|[gōng jié]|揭发别人的过失或阴私而加以攻击(多指因个人或派系利害矛盾)。|
余光中:怎样改进英式中文
一 自五四新文化运动以来,七十年间,中文的变化极大。一方面,优秀的作家与学者笔下的白话文愈写愈成熟,无论表情达意或是分析事理,都能运用自如。另一方面,道地的中文,包括文言文与民间文学的白话文,和我们的关系日渐生疏,而英文的影响,无论来自直接的学习或是间接的潜移默化,则日渐显著,因此一般人笔下的白话文,西化的病态日渐严重。 一般人从大众传媒学到的,不仅是流行的观念,还有那些观念赖以包装的种种说法;有时,那些说法连高明之士也抗拒不了。今日的中文虽因地区不同而互见差异,但共同的趋势都是繁琐与生硬,例如中文本来是说“因此”,现在不少人却爱说“基于这个原因”;本来是说“问题很多”,现在不少人却爱说“有很多问题存在”。 对于这种化简为繁、以拙代巧的趋势,有心人如果不及时提出警告,我们的中文势必越变越差,而道地中文原有的那种美德,那种简洁而又灵活的语文生态,也必将面目全非。 中文也有生态吗?当然有。措词简洁、句式灵活、声调铿锵,这些都是中文生命的常态。能顺着这样的生态,就能长保中文的健康。要是处处违拗这样的生态,久而久之,中文就会被污染而淤塞,危机日渐迫近。 目前中文的一大危机是西化。我自己出...
hive 汇总
Hive 操作符和函数汇总 Hive 架构概述 Hive 是构建在 Hadoop 之上的数据仓库基础设施,提供类 SQL 的查询语言 HQL,将查询转换为 MapReduce、Tez 或 Spark 任务执行。 核心组件 MetaStore 存储表的元数据信息,包括表结构、分区、列类型、序列化/反序列化规则等 支持多种存储后端:Derby(默认)、MySQL、PostgreSQL 可配置为远程服务模式,支持多客户端并发访问 Driver 接收查询请求,生成执行计划 编译器:解析 HQL,生成语法树,进行语义分析 优化器:基于规则和成本的查询优化 执行引擎:将逻辑计划转换为物理执行计划 执行引擎 MapReduce:早期默认引擎,适合大规模批处理 Tez:基于 DAG 的执行引擎,减少中间结果落盘 Spark:基于内存计算,显著提升查询性能 Hive 数据模型 Database 数据库是命名空间的逻辑容器,对应 HDFS 上的目录路径。 Table Hive 表分为两种类型: 管理表(内部表):删除表时删除元数据和数据 外部表:删除表时仅删除元数据,保留数据 Par...
计算机数学
precision vs scale sql 中的 decimal 函数的签名如下:DECIMAL[(precision[,scale])] DECIMAL with no precision or scale values is equivalent to DECIMAL(9,0). precision represents the total number of digits that can be represented by the column, regardless of the location of the decimal point. This value must be between 1 and 38. For example, representing integer values up to 9999, and floating-point values up to 99.99, both require a precision of 4. You can also represent corresponding negative values, wit...
泛型拾遗
导读与全景图 Java 泛型在源码层提供编译期类型安全,在字节码层通过类型擦除(type erasure)向后兼容 Java 1.4 及更早的字节码,在 API 设计层用通配符(wildcard)补全协变体系。理解"擦除"和"协变"两点,所有零散规则都能被推导出来——本文围绕这两条主线展开。 知识地图 下图概括了全文的结构与各部分之间的依赖关系。类型擦除是理解后续所有限制(不能 new T()、不能 instanceof T、不能创建泛型数组)的钥匙;通配符则是理解所有 API 设计模式(PECS、捕获、递归边界)的钥匙。 mindmap root((Java泛型)) 基本概念 Type Parameter 形参 Type Variable 类型变量 Type Argument 实参 Generic/Parameterized/Raw Type 类型擦除 向后兼容动机 擦除规则与字节码 桥接方法 擦除的代价 边界 Bo...
MySQL 基本功
插件式架构 MySQL的插件式架构.xmind 索引问题 索引的出现是为了减少单一维度查询时,搜索数据的成本。 索引的基础架构 索引的分类 不同的存储引擎支持不同的索引数据结构。 MySQL 支持的索引类型至少包括:BTree索引、Hash索引、full-text全文检索、R-Tree索引。 Innodb 支持的索引数据结构只有 B+树。 B+树索引 B 树扩充了二叉平衡树,让每个节点能够存储的数据大大提升。 B+ 树从 B 树演变而来,B 树每个节点都存储数据,但高度高,只有查找离根节点近的数据的速度是快的;B+树所有数据都存储在叶子节点,所以查询到特定的数据必须走完查询路径,也因此 B+树的查找速度稳定,遍历全部数据和范围查找的算法稳定(不用上溯下钻)。两种数据结构,各有所长。 B+树的每个节点可以被认为是一个磁盘块(block)-可以认为 MySQL 的磁盘块等同于 OS 的数据页,大小通常为 4k/8k/16k。磁盘块通常是双层的,第一层表示存储的数据项(data entry),第二层表示指向子节点的指针(pointer)。但 B+树本身只有叶子节点真实数据,非叶子节...
六顶思考帽
六顶思考帽®是爱德华·德博诺博士开发的一种思维训练工具,它提供了“平行思维”的工具,全面思考问题的模型,避免将时间浪费在互相争执上。 人们参加会议都是抱着解决问题的共同目的而来的,然而发生争吵很多时候吵的并不是事实,而是情绪。人们总是还未真正理解对方的观点就陷入了和对方喋喋不休的争执之中。 所谓“六顶思考帽”是指蓝帽(指挥帽)、白帽(数据帽)、红帽(情感帽)、黄帽(乐观帽)、黑帽(谨慎帽)、绿帽(创新帽)。 六顶思考帽®是爱德华·德博诺博士开发的一种思维训练工具,它是目前全球最有影响力的创新思维训练课程。它提供了“平行思维”的工具,避免将时间浪费在互相争执上。强调的是“能够成为什么”,而非 “本身是什么”,是寻求一条向前发展的路,而不是争论谁对谁错。运用德博诺的六顶思考帽,将会使混乱的思考变得更清晰,使团体中无意义的争论变成集思广益的创造,使每个人变得富有创造性。它运用于会议管理,团队沟通,流程改进,产品研发/设计,制定决策,解决问题和领导力提升等领域。大部分世界500强企业学习使用过六顶思考帽后,都认为六帽帮助他们大大提高了工作效率,并且使会议时间减少了50%。自1984年被发...
代码大全
第 1 章 欢迎进入软件构建的世界 第 2 章 用隐喻来更充分地理解软件开发 第 3 章 三思而后行:前期准备 第 4 章 关键的“构建决策” 第 5 章 软件构建中的设计 第 6 章 可以工作的类 第 7 章 高质量的子程序 第 8 章 防御式编程 第 9 章 伪代码编程过程 第 10 章 使用变量的一般事项 第 11 章 变量名的力量 第 12 章 基本数据类型 第 13 章 不常见的数据类型 第 14 章 组织直线型代码 第 15 章 使用条件语句 第 16 章 控制循环 第 17 章 不常见的控制结构 第 18 章 表驱动法 第 19 章 一般控制问题 第 20 章 软件质量概述 第 21 章 协同构建 第 22 章 开发者测试 第 23 章 调试 第 24 章 重构 第 25 章 代码调整策略 第 26 章 代码调整技术 第 27 章 程序规模对构建的影响 第 28 章 管理构建 第 29 章 集成 第 30 章 编程工具 第 31 章 布局与风格 第 32 章 自说明代码 第 33 章 个人性格 第 34 章 软件工艺的话题 第 35 章 何处有更多的信息







