• Stars
    star
    594
  • Rank 75,329 (Top 2 %)
  • Language
    HTML
  • License
    Other
  • Created over 8 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📚 软件工程、算法与架构:数据结构与算法、设计模式、软件架构、协同开发、质量保障 QA

License: CC BY-NC-SA 4.0

Software Engineering Series | 软件工程、算法与架构

软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案。而软件开发中最大的挑战,就是即能够快速高效地针对需求、环境的变化做出改变,也能够持续提供稳定、高可用的服务。

在笔者的系列文章中,分门别类地讨论了 Web、服务端、基础架构等某些具体的领域,而本系列关注形而上的软件工程相关的思考方式、通用能力与设计原则。为了更好地阐述,本系列默认使用 Java 为实现语言,不过你也可以在各篇的编程实现章节中查阅 TS、Go、Python、PHP、Rust 等其他版本的实现。

Preface | 前言,从编码到软件系统

一般来说,在软件工程中,我们往往会面临三类问题:性能问题(The Performant System Problem)、系统的嵌入式问题(the Embedded System Problem)以及复杂领域建模问题(the Complex Domain Problem)。

系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。子系统也是由一群有关联的个体所组成的系统,多半会是更大系统中的一部分。

关联:系统是由一群有关联的个体组成的,没有关联的个体堆在一起不能成为一个系统。例如,把一个发动机和一台 PC 放在一起不能称之为一个系统,把发动机、底盘、轮胎、车架组合起来才能成为一台汽车。

规则:系统内的个体需要按照指定的规则运作,而不是单个个体各自为政。规则规定了系统内个体分工和协作的方式。例如,汽车发动机负责产生动力,然后通过变速器和传动轴,将动力输出到车轮上,从而驱动汽车前进。

能力:系统能力与个体能力有本质的差别,系统能力不是个体能力之和,而是产生了新的能力。例如,汽车能够载重前进,而发动机、变速器、传动轴、车轮本身都不具备这样的能力。

模块与组件

软件模块(Module)是一套一致而互相有紧密关连的软件组织。它分别包含了程序和数据结构两部分。现代软件开发往往利用模块作为合成的单位。模块的接口表达了由该模块提供的功能和调用它时所需的元素。模块是可能分开被编写的单位。这使它们可再用和允许人员同时协作、编写及研究不同的模块。

软件组件定义为自包含的、可编程的、可重用的、与语言无关的软件单元,软件组件可以很容易被用于组装应用程序中。模块和组件都是系统的组成部分,只是从不同的角度拆分系统而已。

从逻辑的角度来拆分系统后,得到的单元就是“模块”;从物理的角度来拆分系统后,得到的单元就是“组件”。划分模块的主要目的是职责分离;划分组件的主要目的是单元复用。其实,“组件”的英文 component 也可翻译成中文的“零件”一词,“零件”更容易理解一些,“零件”是一个物理的概念,并且具备“独立且可替换”的特点。

框架与架构

软件框架(Software framework)通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。框架是组件规范,提供基础功能的产品。

软件架构指软件系统的顶层结构。首先,“系统是一群关联个体组成”,这些“个体”可以是“子系统”“模块”“组件”等;架构需要明确系统包含哪些“个体”。

其次,系统中的个体需要“根据某种规则”运作,架构需要明确个体运作和协作的规则。

第三,维基百科定义的架构用到了“基础结构”这个说法,我改为“顶层结构”,可以更好地区分系统和子系统,避免将系统架构和子系统架构混淆在一起导致架构层次混乱。

逻辑

逻辑的抽象复用可以说是所有软件开发活动中最为重要的一条原则,衡量一个程序员代码水平的重要原则之一就是看他代码中重复代码和相似代码的比例。大量重复代码或相似代码背后反映的是工程师思维的懒惰,因为他觉得复制粘贴或者直接照着抄是最省事的做法。这样做不仅看上去非常的丑陋,而且也非常容易出错,更不用提维护起来的难度。

数据中台

产品化是一种技术沉淀,从 CASE BY CASE 支持业务功能过程中,作抽象,把一些通用功能和模块独立出来,配合一些周边的技术工具和便利化的管理界面,形成产品化的结果,更高效的实现一种或多种业务需求,是技术效能提升的方法之一。产品化作得好的系统是一个闭封性优秀的系统,尽量不要外面的使用者关心我内部的实现。

模块化是把系统分离的一种设计思路,模块化后可以方便重复使用和插拨到不同的平台,不同的业务逻辑过程中。

产品化的系统一般都会在内部实现组件化,把模块独立抽象成组件,分离组件边界和责任,便于独立升级和维护。组件化可以让一个产品化的系统更可维护。

平台是一组程序的集合,提供了一系列的接口或界面。平台化是让一个系统具备装载很多不同外部系统的能力。平台化作得好的系统,要吧让外部系统很方便的了解你的内部能力,实现自由方便的插拨。平台化是一种对外的能力,提升的是外部系统与平台系统之间的联接能力,以开放作为设计目标,而不是封闭。

我们的系统有很多服务中心,会员中心,商品中心,产易中心和营销中心等。建这些中心的目的是为了业务系统解偶,为了让业务系统能更专注各自的业务逻辑,让通用业务下沉或平移抽出成为服务中心。中心化和组件化的不同一般是远程和本地的区别。以前客户端软件多用组件化设计,而互联网架构多用中心化,服务中心内部可以有不同的组件化设计,业务系统内部也常用组件化的设计。 中心化可以隔离易变和不易变的逻辑,也可以隔离不同运维策略的业务逻辑。中心化的系统一般符合职责单一原则,在面对对象设计的理论下,中心化可以看作一个逻辑上的大的对象来对待。服务中心是一个完整的业务闭包,可以完成一整组业务逻辑。 中心化不一定需要服务化。业务单元也可以中心化。

服务化,服务化一般是指远程调用的形式,我们关注调用的协议,API 和内容的格式。一个 API 可以独立服务化,一个服务中心也可以通过网关来实现服务化。 服务化有时候也用本地的二方库,类库包的形式提供服务。 服务化关注服务的治理策略和方法,手段。服务化关注服务注册,服务协调,服务可用性,服务通讯协议和内容交换。

SOA 是为了更好的集成,为了隔离不同逻辑之间的互相影响而形成的架构设计理念。服务化是 SOA 的一种实现方式。SPI 是一个接口标准规范,需要别人去实现;API 是标准的实现,可以直接使用。

架构师是一个既需要看全局整体又需要攻坚局部瓶颈并能在业务场景中平衡取舍方案的人,中台和前台,后台都需要架构师,架构师有自已的领域经验。

架构师是分领域的。架构师通过领域建模来划分业务边界,用领域经验来隔离变化,预测变化。很多系统的重复建设,与架架构的领域分拆不清楚有关系。可以借这个底层的实体关系模型来帮助系统建模,找到所有角色、实体对象和关系。 领域建模是一个抽象事实的过程。要为将来的业务扩展性和变化作好足够的准备。

中台和前台的区别是,前台实现业务逻辑和试错,需要比较多的人,这些人可能会失败。而中台实现通用逻辑和工具,产品,帮助前台快速试错,中台失败的可能性应该比较低,把可能错的事让前台去完成。中台人要少,前台人要多。如果前台人少,中台人多,那这个中台基本上应该归属到前台。中台的重点是产品化和平台化。中台应该是一系列能力的组合,包括组织规范和系统的规范,人和系统的一个方法论,标准。

诉求不是需求,而是需求的本质。电商业务中台由一系列业务能力标准、运行机制、业务分析方法论,配置管理和执行系统以及运营服务团队构成的体系,提供各业务方能够快速,低成本创新的能力。

定义能力的定义与标准,提供一个能力注册、发现、查询等管理的机制与管理系统;提供全局性的业务或应用注册管理中心,要让业务跑在大平台上,而不是一个或几个平台上。

提供一套或多套领域对象建模方法论或标准,比如按领域驱动设计 DDD;提供一系列成熟的案例或解决方案,提供多端化开发规范。

定义平台化的标准,定义可以实现平台化的框架的标准,比如框架需要提供模块化、流程化、插件、扩展等功能。平台化的标准是什么?玄难大师有个很好的比喻,如果你的业务能一键上线或下线,就接近平台化了。这里的一键上下线,不是指单纯的切换一个开关,而是要做到部署的代码里不再有和该业务相关的任何代码。

平台化的基础构建,定义业务规则的定义,提供一个统一的业务规则平台(非中心,非动态编译引擎),支持自定义 DSL 插件,权限,审批流程等等,最终每个业务方都可形成自己业务领域的知识库。建设元数据管理中心,与业务规则等平台打通。提供一套服务鉴权的机制。可配置固然重要,但其重要性远低于平台化。

软件设计

软件设计有以下四大目标:简单、正确、一致、完整,但两大流派 MIT Style (MIT AI Lab 是 LISP 重镇) 和 New Jersey Style (C 和 UNIX 的老家贝尔实验室所在地) 对这些目标的优先级排序不同。MIT Style 认为软件正确性要绝对保证,然后优先级 正确 ~= 一致 > 完整 > 简单,简单这一条还得分,为了接口简单,可以忍受实现复杂。而 New Jersey Style 是正好反过来:首先软件实现得简单,做不到宁愿让接口复杂点,为了简单显然可以牺牲完整性,而正确、一致,那就尽力吧…… 反正得简单。Worse is Better 前面的 Worse 指的就是像 UNIX 这样为简单甚至能放弃正确这种有绝对标准的好的东西,后面的 Better, 指的是更好的生存适应性,这里面不带价值判断,文章作者也为 "Worse Is Better Is Worse" or "Worse is Better is Still Better" 一直在纠结,但这是一个能解释很多现象的准确观察。

性能

以著名的 Twitter 为例,你注册,你发推文,你喜欢别人的推文,这就是它。如果 Twitter 很简单,为什么其他人不能这样做呢?很明显,Twitter 的真正挑战实际上不是“它做什么”,而是它“如何做它能做的事情”。

Twitter 面临着每天为大约 5 亿用户提供服务的独特挑战。Twitter 解决的难题实际上是一个性能问题。当挑战是表现时,我们是否使用严格类型的语言并不重要。

系统嵌入

嵌入式系统是计算机硬件和软件的组合,其目的是实现对系统的机械或电气方面的控制。我们今天使用的大多数系统都是建立在一个非常复杂的代码层上,如果不是最初编写的,通常会编译成 C 或 C++ 。

用这些语言编码不适合胆小的人。在 C 中,没有物体这样的东西; 我们作为人类喜欢物体,因为我们可以很容易地理解它们。C 是程序性的,这使我们用这种语言编写的代码更加难以保持清洁。这些问题还需要了解较低级别的细节。

C++ 确实让生活变得更好,因为它具有面向对象,但挑战仍然是与较低级别的硬件细节进行有趣的交互。因为我们对这些问题使用的语言并没有那么多的选择,所以在这里讨论 TypeScript 是无关紧要的。

编程

架构与复杂性控制

对于某些问题,这个挑战不是关于处理更多请求的扩展,而是根据代码库的大小进行扩展。企业公司有复杂的现实问题需要解决。在这些公司中,最大的工程挑战通常是:

  • 能够逻辑地(通过域)将整块的各个部分分成更小的应用程序。然后,物理上(通过有界上下文的微服务)将它们分开,以便可以分配团队来维护它们

  • 处理这些应用程序之间的集成和同步

  • 对域概念进行建模并实际解决域的问题

  • 创建由开发人员和领域专家共享的无处不在(包罗万象)的语言

  • 不会迷失在大量编写的代码中,并且在不破坏现有代码的情况下无法添加新功能

我基本上描述了 Domain Driven Design 解决的问题类型。对于这些类型的项目,您甚至不会考虑不使用像 TypeScript 这样的严格类型的语言。

强/弱类型语言

对于设计到复杂领域建模的问题,如果您不选择 TypeScript 而是选择 JavaScript,则需要一些额外的努力才能成功。您不仅需要更加熟悉 vanilla JavaScript 中的对象建模功能,而且还必须知道如何利用面向对象编程的 4 个原则(封装,抽象,继承和多态)。

这可能很难做到。JavaScript 自然不具备接口和抽象类的概念。使用 vanilla JavaScript 无法轻松实现 SOLID 设计原则中的“接口隔离”。单独使用 JavaScript 也需要一定程度的纪律作为开发人员才能保持代码清洁,而且一旦代码库足够大,这一点至关重要。您还需要确保您的团队在如何在 JavaScript 中实现通用设计模式方面拥有相同的学科,经验和知识水平。如果没有,你需要引导他们。

在像这样的领域驱动项目中,使用严格类型语言的强大好处不是表达可以做什么,而是更多关于使用封装和信息隐藏来通过限制实际允许的域对象来减少错误的表面区域。代码大小通常与复杂域问题相关联,其中大型代码库意味着复杂的域,但情况并非总是如此。当项目的代码量达到一定大小时,跟踪存在的所有内容变得更加困难,并且更容易最终重新实现已编码的内容。

复制是精心设计和稳定的软件的敌人。当新开发人员开始在已经很大的代码库上编码时,这一点尤为明显。Visual Studio Code 的自动完成和 Intellisense 有助于浏览大型项目。它适用于 TypeScript,但它在 JavaScript 方面有限。对于我知道将保持简单和小型的项目,或者如果我知道它最终将被丢弃,我将不太愿意推荐 TypeScript 作为必需品。

生产级别软件与 Demo

生产软件是您关心的代码,或者如果它不起作用您将遇到麻烦的代码。这也是你为其编写测试的代码。一般的经验法则是,如果您关心代码,则需要对其进行单元测试。如果您不在乎,请不要进行测试。

宠物项目是不言自明的。做你喜欢的事。您没有专业承诺维护任何标准的工艺。

性能与高可用

研发效能

About

Copyright & More | 延伸阅读

笔者所有文章遵循 知识共享 署名-非商业性使用-禁止演绎 4.0 国际许可协议,欢迎转载,尊重版权。您还可以前往 NGTE Books 主页浏览包含知识体系、编程语言、软件工程、模式与架构、Web 与大前端、服务端开发实践与工程架构、分布式基础架构、人工智能与深度学习、产品运营与创业等多类目的书籍列表:

NGTE Books

More Repositories

1

Developer-Zero-To-Mastery

📚 To Be Professional Developer From Zero To Mastery, Interactive MindMap, RoadMap(Learning Path/Interview Questions), xCompass, Weekly for Developer, to Learn Everything in ITCS 💫 程序员的技术视野、知识管理与职业规划,提高个人与团队的研发效能
HTML
3,110
star
2

Awesome-Books-Notes

📚 Awesome CS Books(with Digests)/Series(.pdf by git lfs) Warehouse for Geeks, ProgrammingLanguage, SoftwareEngineering, Web, AI, ServerSideApplication, Infrastructure, FE etc. 💫 优秀创业、商业、产品、人文、计算机科学与技术领域相关的书籍归档,以及我的读书笔记。
HTML
1,930
star
3

DistributedSystem-Notes

📚 深入浅出分布式基础架构,Linux 与操作系统篇 | 分布式系统篇 | 分布式计算篇 | 数据库篇 | 网络篇 | 虚拟化与编排篇 | 大数据与云计算篇
HTML
1,527
star
4

Database-Notes

📚深入浅出数据库存储:数据库理论、关系型数据库、文档型数据库、键值型数据库、New SQL、搜索引擎、数据仓库与 OLAP、大数据与数据中台
HTML
1,199
star
5

web-examples

Lucid & Futuristic Production Boilerplates For Frontend(Web) Apps, React/RN/Vue, with TypeScript(Optional), Webpack 4/Parcel, MobX/Redux 💫 多技术栈前端项目模板
JavaScript
872
star
6

Web-Notes

📚 现代 Web 开发语法基础与工程实践,涵盖 Web 开发基础、前端工程化、应用架构、性能与体验优化、混合开发、React 实践、Vue 实践、WebAssembly 等多方面。
HTML
839
star
7

AI-Notes

📚 [.md & .ipynb] Series of Artificial Intelligence & Deep Learning, including Mathematics Fundamentals, Python Practices, NLP Application, etc. 💫 人工智能与深度学习实战,数理统计篇 | 机器学习篇 | 深度学习篇 | 自然语言处理篇 | 工具实践 Scikit & Tensoflow & PyTorch 篇 | 行业应用 & 课程笔记
Jupyter Notebook
754
star
8

CS-Notes

📚 编程语言语法基础与工程实践,JavaScript | Java | Python | Go | Rust | CPP | Swift
HTML
687
star
9

Awesome-Lists-and-CheatSheets

📚 Guide to Galaxy, curated, worthy and up-to-date links/reading List, CheatSheets, MindMaps for ITCS-Coding/Algorithm/SoftwareArchitecture/AI. 💫 ITCS-编程/算法/软件架构/人工智能等领域的文章/书籍/资料/项目链接精选,岁月沉淀的美好
Python
623
star
10

Awesome-Methodologies

📚 Ultimate CheatSheets(Tutorials&MindMap), overview of syntax, features and practical tips, collection of useful code snippets, go from zero to hero at fly. 💫 干货满满的全栈开发速学速查手册集锦
HTML
587
star
11

ms-backend-boilerplates

Boilerplate for Your Server Side(Backend) Application, Java | Spring(Boot, Cloud) | Node.js(Express, Koa, Egg) | Go | Python | DevOps 💫 服务端项目模板
Java
401
star
12

Product-Notes

📚 产品迷思,不仅仅是产品经理,对于产品设计、交互体验、项目管理、行业视点等多方面的思考。
HTML
393
star
13

Solutions-Notes

📚 服务端开发实践与工程架构,服务端基础篇 | 微服务与云原生篇 | Spring 篇 | Node.js 篇 | DevOps 篇 | 信息安全与渗透测试篇
HTML
350
star
14

Frontend-Notes

📚 大前端的工程实践:iOS 篇 | Android 篇 | 混合式开发篇 - ReactNative、Weex、Weapp
HTML
208
star
15

sentinel-scanner

Next Generation Distributed Web Security Scanner with Futuristic Architecture and UI 💫 混沌守望者(扫描器),多策略(爬虫扫描&POC 扫描)、模块化、分布式的智能网络空间测绘、管理与安全探测
Python
206
star
16

ts-3d-model-viewer

整合了 google-model-viewer/WebGL/Three.js/WASM 等一系列 3D 模型(STL/OBJ/GLTF/PLY/STEP/X_T)预览工具,便捷地进行模型预览、生成截图、计算拓扑信息。支持 Blender 进行模型压缩优化,提供了基于 Web 的简单 CAD 在线排版操作。
JavaScript
197
star
17

Awesome-RoadMaps-and-Interviews

Awesome Interviews for Coder, Programming Language, Software Engineering, Web, Backend, Distributed Infrastructure, DataScience & AI | 面试必备
HTML
131
star
18

InfoSecurity-Notes

信息安全与渗透测试,密码编码,爬虫,数据安全,网络安全,Web 安全
HTML
128
star
19

sentinel-crawler

Xenomorph Crawler, a Concise, Declarative and Observable Distributed Crawler(Node / Go / Java / Rust) For Web, RDB, OS, also can act as a Monitor(with Prometheus) or ETL for Infrastructure 💫 多语言执行器,分布式爬虫
JavaScript
122
star
20

K8s-Notes

深入浅出 K8s:概念与部署 工作载荷 服务负载 存储 权限 网络 生态扩展
HTML
122
star
21

Cloud-Notes

📚 《深入浅出云计算与 Kubernetes》:云计算(云安全,云原生)、虚拟化(容器、Docker、Xen)、集群编排(Kubernetes、ServiceMesh)
HTML
120
star
22

Go-Notes

📚 Go-Series, Go From Zero to Hero. | 语法基础、工程实践、并发编程、Web 开发
Go
118
star
23

CPP-Notes

CPP Notes & RoadMaps for Coder, Programming Language, Software Engineering, Web, Backend, Distributed Infrastructure, DataScience & AI | 技术领域前瞻与程序员的进阶之路
C++
92
star
24

System-Architecture-Notes

📚软件业务架构设计系列笔记
Java
88
star
25

Linux-Notes

📚深入浅出 Linux 操作系统:操作系统原理、Linux 应用实践、并发编程、物联网操作系统
HTML
83
star
26

MySQL-Notes

📚深入浅出 MySQL 实战
Jupyter Notebook
80
star
27

GrowthHacking-Notes

Awesome MindMaps for Coder, Programming Language, Software Engineering, Web, Backend, Distributed Infrastructure, DataScience & AI | 超全的思维脑图集锦
HTML
70
star
28

MicroCN-Notes

📚 MicroService & CloudNative Architecture,架构衍化,微服务实战,云原生探索,RPC,服务注册与发现
Java
69
star
29

screen-sharing-rdp

基于 Electron 的 Windows 屏幕共享与远程桌面协作,分别采用 Mpegts、WebRTC 等作为传输协议
Rust
65
star
30

JavaScript-Notes

📚 JavaScript Series, Mastering JavaScript & TypeScript from Zero to Hero.
HTML
63
star
31

web-whiteboard

Online web annotation tools & whiteboard(both live, playback, and collaborative mode) for real-time visual collaboration, in business and education. | 在线电子白板,你画我猜,图片编辑,网页注解
TypeScript
60
star
32

coding-examples

Code Snippets, DataStructure, Algorithm and DesignPattern Implementations/Solutions for Several Programming Language: Java, JavaScript, Go, Python, Rust, etc. 💫 多语言版本的数据架构与算法,设计模式,常用代码片等实现。
Rust
60
star
33

Web-Tuning-Notes

Web 性能优化系列:浏览器工作机制、性能优化、体验度量、PWA、录屏与重放
HTML
59
star
34

Web-Engineering-Notes

Web 工程化体系与应用架构探究,模块化、组件化、微前端、框架设计与实现
HTML
58
star
35

CG-Notes

📖 计算机图形学、计算机视觉、图像与媒体处理、图形绘制(Canvas、Three.js、WebGL)、图表与数据可视化
HTML
53
star
36

ueme-replay

Web Automation Suites, for Observing, Recording, Replaying, Cooperating, Editing, etc. | Web 自动化套装,及录屏、回放、编辑的解决方案
JavaScript
49
star
37

design-pattern-examples

[OOP, Concurrency, I/O, FP] Design Pattern Implementations for Several Programming Language: Java, JavaScript, Go, Python, Rust, etc. 💫 多语言版本的设计模式,面向对象的设计模式、函数式编程模式、并发设计模式、I/O 设计模式等实现。
PHP
49
star
38

ueact

Ultimate Progressive and Freewheeling Web Library, Inspired by React and Vue, for Micro Frontend and Interactive Web Apps Building | 渐进式,多调和策略,多渲染终端的乐高式微前端框架,以及可复用的多框架碎片化组件
JavaScript
49
star
39

Node.js-Notes

📚 深入浅出 Node.js 全栈架构,语法基础,框架使用,工程实践,全栈开发,实时通信,数据库
TypeScript
48
star
40

DistributedStorage-Notes

分布式存储系列:分布式 ID,分布式文件系统,复制,对象存储,区块链
HTML
43
star
41

lowcode-legoble

Build your apps like stacking Lego blocks 💫总想自己实现一款可视化配置的动态应用构建工具,动态表单、动态布局、动态报告、动态规则、动态选择、动态流程
TypeScript
43
star
42

Concurrent-Notes

📚深入浅出并发编程实践:并发基础、并发控制、并发模型、并发 IO
Java
39
star
43

react-examples

Micro-Frontend boilerplate with React & TypeScript & Webpack, for complicated cooperative applications. | 微前端项目模板
TypeScript
38
star
44

Startup-Notes

熊说财经与科技 ~ 某熊的创业之路
HTML
38
star
45

Java-Notes

📚 Java Notes & Examples. | 语法基础、数据结构、工程实践、设计模式、并发编程、JVM、Scala
Java
38
star
46

DevOps-Notes

📚DevOps,软件开发与发布,测试、CI、自动化、日志聚合、监控告警、SRE
HTML
38
star
47

micro-components

Massive Fractal Components in Several Libraries(Vanilla, React, Vue, Weapp), for building your great apps easily again
TypeScript
36
star
48

React-Notes

📚 现代 Web 开发之 React 篇
HTML
35
star
49

memi-schema

面向制造业·产业互联网的全链路数据定义,Mall(电商)- ERP(资源规划与客户管理)- MES(生产编排) - IoT(设备与传感器物模型)
TypeScript
35
star
50

algorithm-examples

Code Snippets of DataStructure & Algorithm & LeetCode Implementations/Solutions for Several Programming Language: Java, JavaScript, Go, Python, Rust, etc. 💫 多语言版本的数据结构与算法实现分析
C++
34
star
51

Rust-Notes

Rust Series,语法基础、数据结构、并发编程、工程实践,常见的代码示例 & 数据结构与算法
Rust
34
star
52

Mathematics-Notes

📚 [.md & .ipynb] 人工智能与深度学习实战--数理统计与数据分析篇
Jupyter Notebook
33
star
53

HA-Notes

高可用架构,涵盖了分布式系统(存储与计算)、微服务、数据库、Cloud 与 Kubernetes、Linux 与操作系统、DevOps 等多领域知识的融汇
HTML
31
star
54

ERP-Product-Notes

对于行业应用与功能域的思考及实现,电子商务,智能制造,CMS,IM,etc.
HTML
27
star
55

Auth-Notes

与鉴权、认证、RABC、OAuth 等等一系列相关的笔记
HTML
27
star
56

DistributedCompute-Notes

分布式计算:分布式数据处理(流计算/批处理)、消息队列、数据仓库
HTML
25
star
57

CrossBorder-Notes

出海独立站及跨境电商学习笔记(拓客引流、支付、开店、履约等)
HTML
24
star
58

ddd-examples

参考 DDD/Clean Architecture 设计理念,整合 Spring Boot/Spring Security/Mybatis Plus/Vavr 的 Spring Realworld 应用案例
Java
23
star
59

reinvent-cloud-native-mall

从零造的云原生电商系统,Spring + K8s + UDLA 架构,用于个人实践与 NGTE 教学
23
star
60

web-file-manager

ts-file-manager, Draggable & Controllable File Manager | 基于 React & TS 的文件管理器
TypeScript
22
star
61

excel.ts

Excel or Spreadsheet in TypeScript, dynamic customization.
JavaScript
22
star
62

dev-and-docs

[Docs & Development] Soogle, self-made searchable system for your knowledge jessie(docs, images, etc.), with futuristic and friendly clients, integrated with Google/Baidu APIs(OCR, Translate) 💫笔者在日常笔记、写作、浏览、发布中的工具集锦,包含构建自己的文档/图片等知识搜索能力,多端接入以便捷使用 OCR/翻译等外部 API 等
JavaScript
22
star
63

DataEngineering-Notes

数据仓库实战:Hive、HBase、Kylin、ClickHouse
HTML
20
star
64

vue-examples

Micro-Frontend boilerplate with Vue & TypeScript & Webpack, for complicated cooperative applications. | 微前端项目模板
Vue
20
star
65

reinvent-spark-chain

A little spark, Light the prairie, Blockchain in different language and design 💫 星火链, 多语言的区块链实践
JavaScript
20
star
66

ueme-live-chat-support

ueme-chat(bot), Den Den Mushi for One Piece, 在线客服聊天,打通企业微信,支持聊天机器人 | Intercom alternative, Single/Group Chat with Text, Image, ScreenCapture, Sharing Whiteboard, Video Support 💫聊天室与电话虫
TypeScript
19
star
67

ai-models

Artificial Intelligence & Machine Learning & DeepLearning & NLP & CV Workbench | 示例,算法,模型,应用,TensorFlow & PyTorch,Kaggle
Jupyter Notebook
19
star
68

sentinel-cendertron

Cendertron = Crawler + cendertron, Crawl AJAX-heavy client-side Single Page Applications (SPAs), deploying with docker, focusing on scraping requests(page urls, apis, etc.), followed by pentest tools(Sqlmap, etc.). Cendertron can be used for extracting requests(page urls, apis, etc.) from your Web 2.0 page.
TypeScript
19
star
69

Spring-Notes

Spring & Spring Boot & Spring Cloud & Alibaba Cloud 微服务与云原生实战
HTML
19
star
70

reinvent-docker

Just Docker, But Fake 💫 在重造轮子中体悟与成长
JavaScript
18
star
71

ueme-live-streaming

面向工业制造业场景的生产直播与异常检测,包含:基于 UVC 的摄像头控制与直播推流,边缘直播网关,异常检测等模块。
JavaScript
18
star
72

MessageQueue-Notes

深入浅出消息队列与消息中间件:Kafka、RabbitMQ、RocketMQ、Pulsar
HTML
18
star
73

Python-Notes

现代 Python 开发:语法基础与工程实践,MD & Notebooks
Jupyter Notebook
17
star
74

wx-chevalier.github.io

某熊的知识库
HTML
17
star
75

segment-anything-web-ui

Meta Segment Anything Web Demo Fork
SCSS
17
star
76

Financial-Notes

非熊斋,科技、财经与投资
HTML
17
star
77

Awesome-System-CaseStudies

国内外大厂系统架构案例,系统架构面试题与从零到一的实践
HTML
17
star
78

zero-notes-website

Multiple clients for visualizing my knowledge map articles, snippets, etc. 💫知识外化,多端访问某熊的知识图谱、成长路线、技术文章、模板代码等内容,包括 Web 主页、RN、小程序、Electron 等。
JavaScript
16
star
79

k8s-examples

Examples from building Distributed Kubernetes Cluster, for Cloud Native MicroServices.
Mustache
15
star
80

NLP-Notes

人工智能与深度学习实战 - 自然语言处理篇
Jupyter Notebook
15
star
81

wx-chevalier

Personal Profile
13
star
82

reinvent-mq

Multiple home-made Message Queues from Scratch, OMMQ(akin RocketMQ), PongoMQ(akin Kafka), CubeMQ(akin TubeMQ)etc.
Java
13
star
83

TensorFlow-Notes

人工智能与深度学习实战 - TensorFlow 篇(MD & Notebooks)
Jupyter Notebook
13
star
84

ms-java-commons

Java Commons(Utils & Boilerplates) for Cloud Native MicroService: Tools & MicroService Architecture for Building MicroService Apps, Java & Go & Node, with examples adhere to the RealWorld API spec.
Java
13
star
85

3d-aigc-examples

基于 YOLOV5 的 3D 打印件自动分拣,包含零件拓扑特征分析
Jupyter Notebook
12
star
86

electron-examples

Electron All-in-one boilerplate with React & TypeScript & Webpack | 包括但不限于系统监控、本地服务管理、页面插件、屏幕共享与远程控制、外设(摄像头)管理
TypeScript
12
star
87

vite-examples

Micro-Frontend boilerplate(TS Lib, TS CLI Lib, React App Lib, React Component Lib) with React & TypeScript & Vite, for complicated cooperative applications. | 微前端项目模板
HTML
12
star
88

Network-Notes

分布式系统之网络篇,TCPIP、HTTP、WebSocket、SDN 等。
HTML
12
star
89

Algorithm-Notes

📚数据结构与算法系列笔记
C
11
star
90

DesignPattern-Notes

📚编程范式与设计模式系列笔记
HTML
11
star
91

Destiny-Notes

真实命理学 | 术数、命理学、预测术、心理学、神秘学
11
star
92

taro-examples

基于 Taro & TS 的多端小程序开发模板
JavaScript
11
star
93

zero-notes-editor

基于 VSCode 打造浏览器中集成笔记系统、知识体系实践,包含多种流程图、脑图等特性的一体化文档工作区间
JavaScript
11
star
94

DeepLearning-Notes

人工智能与深度学习实战 - 深度学习篇
Jupyter Notebook
11
star
95

nest.js-examples

NestJS codebase containing real world examples (CRUD, auth, advanced patterns, K8s, etc) that adheres to the RealWorld API spec, for building micro-frontend apps.
TypeScript
10
star
96

MachineLearning-Notes

人工智能与深度学习实战 - 机器学习篇
Jupyter Notebook
9
star
97

ms-seckilling-examples

高可用秒杀场景的实践案例
C
8
star
98

ms-devops-scripts

🐌 useful scripts for making developer's everyday life easier and happier, involved java, shell etc.
Python
8
star
99

m-fe-scaffold

Cli Toolkits for Web Development & Deploy on Kubernetes,微前端实践中沉淀的一系列脚手架工具
JavaScript
8
star
100

m-fe-commons

Micro-Frontend Utils(Hooks/Hocs Lodash-like Tools , DOM, BOM) with React & TypeScript & Webpack, for complicated cooperative applications. | 微前端项目公共类/函数
HTML
8
star