手写一个入门级编译器!YYDS!

共 2507字,需浏览 6分钟

 ·

2022-10-28 09:15

你好,这是 JavaGuide 的「优质 Java 开源项目推荐」第 13 期,每月一期,每一期我都会精选 5 个高质量的 Java 开源项目。

本期项目概览:

  • Mini-Compiler:手写入门级编译器
  • HummerRisk:云原生安全平台
  • oms-erp:开源的订单管理系统
  • Dynamic Tp:轻量级动态线程池
  • hertzbeat:易用友好的监控告警系统

Mini-Compiler:手写入门级编译器

项目介绍

  • 一个 Mini 版本的入门级编译器。
  • 基于 Java 语言编写,有助于初学者了解面向对象编程语言编译器的运行原理。

代码示例

可以看到,代码注释还是非常清晰的,一共只有 7 个类。

不过,想要搞懂这个项目难度会远大于普通的业务类型项目,像核心类 Parser (语法解析器)的代码量接近有 2000 行(其它 6 个类代码量比较少)。

项目地址 :https://github.com/chenyuwangjs/A-tutorial-compiler-written-in-Java 。

相关资料

  • 写给小白的开源编译器[1]
  • 700 行手写编译器(视频)[2]
  • 《编译器设计》[3]

HummerRisk:云原生安全平台

项目介绍

  • 一个开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。
  • 支持混合云安全治理、K8S 容器云安全治理。

混合云安全治理:

  • 对主流的公(私)有云资源(几乎支持所有云)进行安全合规检测
  • 快速查看混合云的各种资源态势与云资源拓扑图
  • 漏洞检测
  • 一键获取合规报告
  • ......

K8S 容器云安全治理:

  • 关联多个 K8S 集群,统一查看各个关联环境的资源态势
  • 检测底层主机/虚机中存在的问题
  • 检测 K8S 的部署编排文件
  • ......

相关地址

  • 项目地址:https://github.com/HummerRisk/HummerRisk
  • 文档:https://docs.hummerrisk.com/

oms-erp:开源的订单管理系统

项目介绍

  • 一站式中台系统包括订单管理系统 OMS/电商 ERP、库存 WMS 统一管理系统和 SAP 财务管理系统等。
  • 云原生,基于微服务架构、容器、DevOps 等技术。

业务架构

技术架构

技术架构.png

相关地址

  • 项目地址:https://github.com/FJ-OMS/oms-erp
  • 官网:www.flightsteed.com/

Dynamic Tp:轻量级动态线程池

Dynamic Tp 概览

项目介绍

  • 一款基于 SpringBoot 的轻量级动态线程池,参考美团线程池实践[4],内置监控告警功能,提供多种报警维度。
  • 支持主流配置中心(支持 Nacos、Apollo,ZooKeeper、Consul、Etcd),并且,所有配置都放在配置中心,对业务代码零侵入。

技术架构

Dynamic Tp 技术架构

相关地址

  • 项目地址:https://github.com/dromara/dynamic-tp
  • 官网:https://dynamictp.cn/

hertzbeat:易用友好的监控告警系统

项目介绍

  • 一款开箱即用的监控告警系统,由 Dromara 孵化,目前已是码云 GVP 项目。
  • 支持网站,API,PING,端口,数据库,操作系统等监控类型,支持邮箱,短信,webhook,钉钉,企业微信,飞书机器人等告警通知,拥有易用友好的可视化操作界面。

项目故事

hertzbeat 的作者本人目前已经离职,这个项目是其全职维护的第一个开源项目,值得点赞和鼓励!

如果你也想参与到这个项目开发的话,建议可以去看看这个项目的项目看板有哪些 todo,看板地址:https://github.com/dromara/hertzbeat/projects/1 。

相关地址

  • Github 地址:https://github.com/dromara/hertzbeat
  • Gitee 地址:https://gitee.com/dromara/hertzbeat
  • 官网:https://hertzbeat.com/

你可以通过 awesome-java (非常棒的 Java 开源项目集合,找 Java 项目必备)找到更多优质的 Java 开源项目。

  • Github 地址:https://github.com/CodingDocs/awesome-java
  • Gitee 地址:https://gitee.com/SnailClimb/awesome-java
  • 在线阅读:https://javaguide.cn/open-source-project/

参考资料

[1]

写给小白的开源编译器: https://www.cnblogs.com/xueweihan/p/16283249.html

[2]

700 行手写编译器(视频): https://www.bilibili.com/video/BV1Kf4y1V783/

[3]

《编译器设计》: https://book.douban.com/subject/20436488/

[4]

美团线程池实践: https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html

··········  END  ··············

👉 欢迎准备 Java 面试以及学习 Java 的同学加入我的知识星球,干货很多!收费虽然是白菜价,但星球里的内容或许比你参加上万的培训班质量还要高。

👉 《Java 面试指北》持续更新完善中!这是一份教你如何更高效地准备面试的小册,涵盖常见八股文(系统设计、常见框架、分布式、高并发 ......)、优质面经等内容。

推荐阅读 :

👉 如果本文对你有帮助的话,欢迎 点赞&在看&分享 ,这对我继续分享&创作优质文章非常重要。非常感谢!

浏览 36
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报