极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班



极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班

古董级工具

这些工具伴随着Java一起出现,在各自辉煌之后还在一直使用。

  • Apache Ant:基于XML的构建管理工具。官网
  • cglib:字节码生成库。官网
  • GlassFish:应用服务器,由Oracle赞助支持的Java EE参考实现。官网
  • Hudson:持续集成服务器,目前仍在活跃开发。官网
  • JavaServer Faces:Mojarra是JSF标准的一个开源实现,由Oracle开发。官网
  • JavaServer Pages:支持自定义标签库的网站通用模板库。官网
  • Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。官网

构建工具

构建及应用依赖关系处理工具。

  • Apache Maven:Maven是一款声明式构建及依赖管理工具,采用约定优于配置方式进行管理。相对Apache Ant更推荐使用Maven,前者采用了过程式管理,维护相对困难。官网
  • Bazel:来自Google的构建工具,可以快速、可靠地构建代码。官网
  • Gradle:使用Groovy(非XML)进行增量构建,可以很好地与Maven依赖管理配合工作。官网

字节码操作

编程方式操作字节码的开发库。

  • ASM:通用底层字节码操作和分析开发库。官网
  • Byte Buddy:使用流式API进一步简化字节码生成。官网
  • Byteman:在运行时通过DSL(规则)操作字节码进行测试和故障排除。官网
  • Javassist:一个简化字节码编辑尝试。官网

集群管理

在集群内动态管理应用程序的框架。

  • Apache Aurora:Apache Aurora是一个Mesos框架,用于长时间运行服务和定时任务(cron job)。官网
  • Singularity:Singularity是一个Mesos框架,方便部署和操作。它支持Web Service、后台运行、调度作业和一次性任务。官网

代码分析

测量代码指标和质量工具。

  • Checkstyle:代码编写规范和标准静态分析工具。官网
  • Error Prone:将常见编程错误作为运行时错误报告。官网
  • FindBugs:通过字节码静态分析查找隐藏bug。官网
  • jQAssistant:使用基于Neo4J查询语言进行代码静态分析。官网
  • PMD:对源代码分析查找不良的编程习惯。官网
  • SonarQube:通过插件集成其它分析组件,对过去一段时间内的数据进行统计。官网

编译器生成工具

用来创建解析器、解释器或编译器的框架。

  • ANTLR:复杂的全功能自顶向下解析框架。官网
  • JavaCC:JavaCC是更加专门的轻量级工具,易于上手且支持语法超前预测。官网

外部配置工具

支持外部配置的开发库。

  • config:针对JVM语言的配置库。官网
  • owner:减少冗余配置属性。官网

约束满足问题求解程序

帮助解决约束满足问题的开发库。

  • Choco:可直接使用的约束满足问题求解程序,使用了约束规划技术。官网
  • JaCoP:为FlatZinc语言提供了一个接口,可以执行MiniZinc模型。官网
  • OptaPlanner:企业规划与资源调度优化求解程序。官网
  • Sat4J:逻辑代数与优化问题最先进的求解程序。官网

持续集成

  • Bamboo:Atlassian解决方案,可以很好地集成Atlassian的其他产品。可以选择开源许可,也可以购买商业版。官网
  • CircleCI:提供托管服务,可以免费试用。官网
  • Codeship:提供托管服务,提供有限的免费模式。官网
  • fabric8:容器集成平台。官网
  • Go:ThoughtWork开源解决方案。官网
  • Jenkins:支持基于服务器的部署服务。官网
  • TeamCity:JetBrain的持续集成解决方案,有免费版。官网
  • Travis:通常用作开源项目的托管服务。官网

CSV解析

简化CSV数据读写的框架与开发库

  • uniVocity-parsers:速度最快功能最全的CSV开发库之一,同时支持TSV与固定宽度记录的读写。官网

数据库

简化数据库交互的相关工具。

  • Apache Phoenix:HBase针对低延时应用程序的高性能关系数据库层。官网
  • Crate:实现了数据同步、分片、缩放、复制的分布式数据存储。除此之外还可以使用基于SQL的语法跨集群查询。官网
  • Flyway:简单的数据库迁移工具。官网
  • H2:小型SQL数据库,以可以作为内存数据库使用著称。官网
  • HikariCP:高性能JDBC连接工具。官网
  • JDBI:便捷的JDBC抽象。官网
  • jOOQ:为SQL schema生成typesafe代码。官网
  • MapDB:以磁盘或堆内存中并发集合为基础的嵌入式数据库引擎。官网
  • Presto:针对大数据的分布式SQL查询引擎。官网
  • Querydsl:Typesafe统一查询。官网

数据结构

  • Apache Parquet:Google Dremel论文中发布的基于组装算法的列式(Columnar)存储格式。官网
  • Protobuf:Google数据交换格式。官网
  • SBE:简单二进制编码,是最快速的消息格式之一。官网
  • Wire:整洁轻量级协议缓存。官网

时间日期工具库

处理时间和日期的开发库。

  • Joda-Time:在Java 8发布前,Joda-Time是实际使用的时间日期库标准。官网
  • Time4J:高级时间和日期库。官网

依赖注入

*帮实现[依赖翻转范式的开发库。*官网

  • Apache DeltaSpike:CDI扩展框架。官网
  • Dagger2:编译时注入框架,不需要使用反射。官网
  • Guice:可以匹敌Dagger的轻量级注入框架。官网
  • HK2:轻量级动态依赖注入框架。官网

开发流程增强工具

从最基本的层面增强开发流程。

  • ADT4J:针对代数数据类型的JSR-269代码生成器。官网
  • AspectJ:面向切面编程(AOP)的无缝扩展。官网
  • Auto:源代码生成器集合。官网
  • DCEVM:通过修改JVM在运行时支持对已加载的类进行无限次重定义。官网
  • HotswapAgent:支持无限次重定义运行时类与资源。官网
  • Immutables:类似Scala的条件类。官网
  • JHipster:基于Spring Boot与AngularJS应用程序的Yeoman源代码生成器。官网
  • JRebel:无需重新部署,可以即时重新加载代码与配置的商业软件。官网
  • Lombok:减少冗余的代码生成器。官网
  • Spring Loaded:类重载代理。官网
  • vert.x:多语言事件驱动应用框架。官网

分布式应用

用来编写分布式容错应用的开发库和框架。

  • Akka:用来编写分布式容错并发事件驱动应用程序的工具和运行时。官网
  • Apache Storm:实时计算系统。官网
  • Apache ZooKeeper:针对大型分布式系统的协调服务,支持分布式配置、同步和名称注册。官网
  • Hazelcast:高可扩展内存数据网格。官网
  • Hystrix:提供延迟和容错。官网
  • JGroups:提供可靠的消息传递和集群创建的工具。官网
  • Orbit:支持虚拟角色(Actor),在传统角色的基础上增加了另外一层抽象。官网
  • Quasar:为JVM提供轻量级线程和角色。官网

分布式数据库

对应用程序而言,在分布式系统中的数据库看起来就像是只有一个数据源。

  • Apache Cassandra:列式数据库,可用性高且没有单点故障。官网
  • Apache HBase:针对大数据的Hadoop数据库。官网
  • Druid:实时和历史OLAP数据存储,在聚集查询和近似查询方面表现不俗。官网
  • Infinispan:针对缓存的高并发键值对数据存储。官网

发布


Read full article from 极分享:高质分享+专业互助=没有难做的软件+没有不得已的加班


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts