1javascript
JSON处理器 fastjsonhtml
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。前端
主要特色:java
快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)docker
强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum)数据库
零依赖(没有依赖其它任何类库除了JDK)npm
示例代码:编程
import com.alibaba.fastjson.JSON; Group group = new Group(); group.setId(0L); group.setName("admin"); User guestUser = new User(); guestUser.setId(2L); guestUser.setName("guest"); User rootUser = new User(); rootUser.setId(3L); rootUser.setName("root"); group.getUsers().add(guestUser); group.getUsers().add(rootUser); String jsonString = JSON.toJSONString(group); System.out.println(jsonString);
2json
JVM-Sandbox设计模式
JVM-Sandbox,JVM 沙箱容器,一种基于 JVM 的非侵入式运行期 AOP 解决方案。
在常见的 AOP 框架实现方案中,有静态编织和动态编织两种。
静态编织
动态编织
侵入性
固化性
3
分布式RPC服务框架 Dubbo
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可经过高性能的 RPC 实现服务的输出和输入功能,能够和 Spring 框架无缝集成。
主要核心部件:
Remoting: 网络通讯框架,实现了 sync-over-async 和 request-response 消息机制
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅
工做原理:
4
Node.js框架 Egg.js
Egg.js,为企业级框架和应用而生,是阿里开源的企业级 Node.js 框架。
深度框架定制
高度可扩展的插件机制
内置多进程管理
基于 koa 开发,性能优异
框架稳定,测试覆盖率高
npm install egg-init -g $egg-init --type simple showcase && cd showcase $npm install $npm run dev $open http://localhost:7001
5
Ant Design Pro
Ant Design Pro 是一套开箱即用的中台前端/设计解决方案。
优雅美观:基于 Ant Design 体系精心设计
常见设计模式:提炼自中后台应用的典型页面和场景
最新技术栈:使用 React/dva/antd 等前端前沿技术开发
响应式:针对不一样屏幕大小设计
主题:可配置的主题知足多样化的品牌诉求
国际化:内建业界通用的国际化方案
最佳实践:良好的工程实践助您持续产出高质量代码
Mock 数据:实用的本地数据调试方案
UI 测试:自动化测试保障前端产品质量
6
JDBC链接池,监控组件Druid
Druid是一个JDBC组件,它包括三部分:
DruidDriver 代理Driver,可以提供基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库链接池。
SQLParser
Druid能够作什么?
1) 能够监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,可以详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库链接池。
3) 数据库密码加密。直接把数据库密码写在配置文件中,这是很差的行为,容易致使安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL执行日志,Druid提供了不一样的LogFilter,可以支持Common-Logging、Log4j和JdkLog,你能够按须要选择相应的LogFilter,监控你应用的数据库访问状况。
扩展JDBC,若是你要对JDBC层有编程的需求,能够经过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。
以下是一个基于Druid内置扩展StatFilter的监控实现:
7
NG-ZORRO
NG-ZORRO 是一个企业级的 UI 组件库,是 Ant Design 的 Angular 4.0 实现,开发和服务于企业级后台产品。
提炼自企业级中后台产品的交互语言和视觉风格,按期与 Ant Design React 版本保持更新一致。
开箱即用的高质量 Angular 组件。
使用 TypeScript 构建,提供完整的类型定义文件。
现代浏览器和 IE9 以上(须要 polyfills)。
当前支持 Angular 4.0.0 版本
8
容器技术Pouch
2017年杭州云栖大会中,阿里巴巴正式宣布,自主研发的容器技术 Pouch 将以开源的形式回馈社区,但愿与开发者共同推进中国容器技术发展,共建容器生态。
阿里Pouch并非一个彻底创新的技术。最先,阿里基于LXC技术为集团业务提供容器服务,2011年,阿里自研容器技术T4,2016年,阿里内部将容器技术从新命名为Pouch,并于去年支持集团内部大量核心业务,好比电商平台核心业务、主要应用和部分数据库、蚂蚁金服的支付业务,淘宝网的交易业务等等。
关于Pouch的命名由来,源于阿里做为开放赋能者,注重用户场景应用的初衷。正如阿里巴巴技术专家孙宏亮所言,Pouch做为从阿里巴巴集团内部大规模场景自研技术,相比docker、rkt等容器技术,差别化的核心价值体如今如下几个方面:
富容器技术:容器内部的应用体验如虚拟机般,拥有init进程,且富含系统服务;
丰富的隔离保障:隔离安全避无可避,内核加固与轻量级虚拟机支持,丰富隔离维度;
P2P镜像分发:超大规模场景下的镜像分发,P2P的方式缓解网络负载;
内核兼容性:企业内核的升级每每较为缓慢,最大限度适配现有底层基础设施。
9
开源数据库AliSQL
AliSQL是基于MySQL官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务。该版本在社区版的基础上作了大量的性能与功能的优化改进。尤为适合电商、云计算以及金融等行业环境。
阿里云数据库资深专家丁奇介绍,AliSQL版本在强度和广度上都经历了极大的考验。最新的AliSQL版本不只从其余开源分支好比:Percona,MariaDB,WebScaleSQL等社区汲取精华,也沉淀了阿里巴巴多年在MySQL领域的经验和解决方案。AliSQL增长更多监控指标,并针对电商秒杀、物联网大数据压缩、金融数据安全等场景提供个性化的解决方案。
“在通用基准测试场景下,AliSQL版本比MySQL官方版本有着70%的性能提高。在秒杀场景下,性能提高100倍。”丁奇表示。
阿里云资深总监李津表示,“AliSQL的发展获得了众多智慧的支持。咱们但愿将过去几年沉淀的技术积累回馈到社区,帮助更多使用MySQL的我的和企业,这是社区良性发展的道路。咱们也欢迎更多的开发者和技术团队加入AliSQL开源项目,使之在业内发挥更大的价值。”
和 Oracle 数据库的性能比较:
10
可视化编码的图形语法AntV - G2
G2 是一套基于可视化编码的图形语法,以数据驱动,具备高度的易用性和扩展性,用户无需关注各类繁琐的实现细节,一条语句便可构建出各类各样的可交互的统计图表。
同时,G2 也是 AntV 最重要的组成,始于《The Grammar of Graphics》一书描述的视觉编码语法系统(这也是 G2 项目命名的由来)。
简单、易用:从数据出发,仅需几行代码就能够轻松得到想要的图表展现效果
完备的可视化编码:以数据驱动,提供了从数据到图形的完整映射
强大的扩展能力:任何图表,均可以基于图形语法灵活绘制,知足你无限的创意
柱状图
完整代码:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>柱状图</title> <!-- 引入 G2 文件 --> <script src="https://gw.alipayobjects.com/as/g/datavis/assets/1.0.5/g2/3.0.0/g2.min.js"></script> </head> <body> <!-- 建立图表容器 --> <div id="c1"></div> <script> const data = [ { genre: 'Sports', sold: 275 }, { genre: 'Strategy', sold: 115 }, { genre: 'Action', sold: 120 }, { genre: 'Shooter', sold: 350 }, { genre: 'Other', sold: 150 } ]; // G2 对数据源格式的要求,仅仅是 JSON 数组,数组的每一个元素是一个标准 JSON 对象。 // Step 1: 建立 Chart 对象 const chart = new G2.Chart({ container: 'c1', // 指定图表容器 ID width : 600, // 指定图表宽度 height : 300 // 指定图表高度 }); // Step 2: 载入数据源 chart.source(data); // Step 3:建立图形语法,绘制柱状图,由 genre 和 sold 两个属性决定图形位置,genre 映射至 x 轴,sold 映射至 y 轴 chart.interval().position('genre*sold').color('genre') // Step 4: 渲染图表 chart.render(); </script> </body></html>
往期推荐
【技术篇】
【技术篇】
【技术篇】
【生活篇】