liangzuobin / awesome-fenix

讨论与实践单体、微服务、无服务等架构风格的开源文档:《软件架构探索:The Fenix Project》

Home Page:https://icyfenix.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


logo

Travis-CI License Document License About Author

这是什么?

这是一部以高级程序员、系统架构师为目标读者的技术手册,是一部以软件设计、架构工作中“要考虑哪些因素、需解决哪些问题、有哪些行业标准的解决方案”为主题的开源文档。文章《什么是“The Fenix Project”》详细阐述了此项目主旨、目标与名字的来由,文章《如何开始》简述了文档每章讨论的主要话题与内容详略分布,供阅前参考。

笔者出于以下目的,撰写这部文档:

  • 笔者从事大型企业级软件的架构研发工作,借此机会,系统性地整理自己的知识,查缺补漏,将它们都融入既有的知识框架之中。
  • 笔者正式出版过七本计算机技术书籍,遗憾的是没有一本与自己本职工作直接相关。能按照自己的兴趣去写作,还能获得不菲的经济报酬是一件很快乐的事情;撰写一部工作中能直接使用的、能随时更新、与人交流的在线文档,也是一件颇为实用、颇具价值的事情。
  • 笔者认为技术人员成长有一“捷径”,学技术不仅要去看、去读、去想、去用,更要去说、去写。将自己“认为掌握了的”知识叙述出来,能够说得有条理清晰,讲得理直气壮;能够让他人听得明白,释去心中疑惑;能够把自己的观点交予别人的审视,乃至质疑,在此过程之中,会挖掘出很多潜藏在“已知”背后的“未知”。未有知而不行者,知而不行,只是未知。

除文档部分外,笔者同时还建立了若干配套的代码工程,这是针对不同架构、技术方案(如单体架构、微服务、服务网格、无服务架构、云原生,等等)的演示程序(PetStore-Like-Project)。它们既是文档中所述知识的实践示例,亦可作为实际项目新创建时的可参考引用的基础代码。

如何使用?

根据“使用”的所指含义的不同,笔者列举以下几种情况:

  • 在线阅读:本文档在线阅读地址为:https://icyfenix.cn
    网站由 GitHub Pages 提供网站存储空间;由 Travis-CI 提供的持续集成服务实时把 Git 仓库的 Markdown 文档编译同步至网站;由腾讯云 CDN 提供国内访问的缓存支持。

  • 离线阅读

    • 部署离线站点:文档基于 Vuepress 构建,如你希望在企业内部搭建文档站点,请使用如下命令:

      # 克隆获取源码
      $ git clone https://github.com/fenixsoft/awesome-fenix.git && cd awesome-fenix
      
      # 安装工程依赖
      $ npm install
      
      # 运行网站,地址默认为http://localhost:8080
      $ npm run dev
    • 生成PDF文件:工程源码中已带有基于 vuepress-plugin-export 改造(针对本文档定制过)的PDF导出插件,如你希望生成全文 PDF 文件,请使用如下命令:

      # 编译PDF,结果将输出在网站根目录
      $ npm run export

      PDF 全文编译时间较长,在笔者机器上约耗时25分钟,在 Travis-CI 上约需要约6分钟。PDF 中文字体采用阿里巴巴普惠字体渲染,此字体被允许免费使用与传播。

  • 二次演绎、传播和发行:本文档中所有的内容,如引用其他资料,均在文档中明确列出资料来源,一切权利归属原作者。除此以外的所有内容,包括但不限于文字、图片、表格,等等,均属笔者原创,这些原创内容,笔者声明以知识共享署名 4.0发行,只要遵循许可协议条款中署名非商业性使用相同方式共享的条件,你可以在任何地方、以任何形式、向任何人使用、修改、演绎、传播本文档中任何部分的内容。详细可见本文档的“协议”一节。

  • 运行技术演示工程:笔者专门在探索起步中的“技术演示工程”详细介绍了配套工程的使用方法,如果你对构建运行环境也有所疑问,在附录中的“环境依赖”部分也已包括了详细的环境搭建步骤。此外,这些配套工程也均有使用 Travis-CI 提供的持续集成服务,自动输出到 Docker 镜像库,如果你只关心运行效果,或只想了解部分运维方面的知识,可以直接运行 Docker 镜像而无需关心代码部分。你可以通过下面所列的地址,查看到本文档所有工程代码和在线演示的地址:

协议

  • 本文档代码部分采用 Apache 2.0协议进行许可。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:

    • 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
    • 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
  • 本作品文档部分采用知识共享署名 4.0 国际许可协议进行许可。 遵循许可的前提下,你可以自由地共享,包括在任何媒介上以任何形式复制、发行本作品,亦可以自由地演绎、修改、转换或以本作品为基础进行二次创作。但要求你:

    • 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
    • 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
    • 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。

备案

网站备案信息:粤ICP备18088957号-1

About

讨论与实践单体、微服务、无服务等架构风格的开源文档:《软件架构探索:The Fenix Project》

https://icyfenix.cn


Languages

Language:JavaScript 50.1%Language:Vue 44.7%Language:CSS 5.2%