- 博客(991)
- 资源 (21)
- 收藏
- 关注
原创 如何持续架构治理?我们和 ChatGPT 聊了一会?
在上周的 QCon 北京 2022 大会上,我和我的同事黄雨青一起分享了《组织级架构治理的正确方式》,以帮助开发人员对组织级架构治理体系全貌一瞥,并厘清治理工具的设计思路和核心功能内容。结合我们在 ArchGuard 的探索经验,我们:基于“视点与视角”构建架构治理的工具全景。以帮助组织了解架构治理的整体情况”点-线-面” 策略。以帮助组织围绕关注点,设计举措,引导架构的演进。建议以探索的方式...
2023-02-13 20:58:57 454
原创 2022 年前端趋势总结与 2023 前端规划
PS:本来应该在 2022 年交付的这篇文章,受阳了的影响,延迟到了 2023 年。照旧,本文没有任何的数据支撑,只是总结自己的理解、社区上的趋势以及自己的探索。类微前端:丰富与灵活的各类模式与 5 年前相比,微前端及类微前端模式已经灵活多变,无法简单使用一篇文章来介绍。但是,总体而言,我们可以大致划分四类:微内核模式。即胖 vendor + 插件式的瘦组件标准微前端模式。各个应用、组件完全独立混...
2023-01-30 20:44:52 713
原创 数字技术与架构趋势:对于 2023 年的思考
每年吧,在做年度总结的时候,总会想一想未来是怎样的。现在,可以回顾 2021 年的预测,看看自己是否预测对了,并思考一下 2023 年的一些变化。对于 2023 年的技术趋势,局限于自己所关注的技术,没有做广泛的调研,也因此只能作为参考。兴起的远程办公(国内)出于种种原因,我不对防疫发表评论。A/B 轮班模式。从现有的感染趋势而言,A/B 轮流制的公司/居家模式将成为 2022 年底的一大变化。对...
2022-12-19 20:58:31 486
原创 架构孪生:架构的数字化形态???
架构孪生是一种旨在精确反映架构设计、实现与运行态等的虚拟模型,以数字化的形式对软件的架构、代码模型、分层、实现技术等的进行动态的呈现。PS:我们本无意于创造一个新的概念,只是在探索如何更好的度量架构的过程中,发现借用于已有的成熟模式,可以让这件事情变得更简单。治理架构时,我们(ArchGuard 开发团队)一直推荐三态治理的方式,即设计态、实现态和运行态,以全面 + 数字化的方式来思考问题。在过去...
2022-11-27 20:58:41 634
原创 软件开发工业化:架构语言 Fklang 对下一代架构设计的探索
过去的几个月的业余时间里,一直在设计一个名为 Fklang ( https://github.com/feakin/fklang )的架构 DSL,以 DDD(领域驱动设计)为指导思想构建,除了完成 MVP 原型的编译器与代码生成,还可以使用 Jetbrains IDE 开发(搜索 Feakin)。首先,架构描述语言或者设计语言并不是一个新的东西,Fklang 也是旧瓶新装。我们只是按自己的理解去...
2022-11-20 20:58:18 302
原创 自动增量计算:构建高性能数据分析系统的任务编排
在起始的那篇《金融 Python 即服务:业务自助的数据服务模式》,我们介绍了:使用 Python 如何使用作为数据系统的 wrapper 层?在这一篇文章里,我们将继续之前的话题,介绍如何使用 Python 作为计算引擎核心的胶水层,即:如何使用 Python 构建 DAG(有向无环图,Directed Acyclic Graph) 任务?除此,还可以了解一下,如何设计增量 DAG 计算?先看一...
2022-11-06 20:58:15 441
原创 如何构建高性能可视化架构?一个交互式实时数据引擎的架构设计
在分析 SecDB、Athena、Quartz 几个实时金融与风险分析平台的时候,发现了 Perspective —— 一个 FinTech 开源基金会 FinOS 旗下开源的交互式分析和可视化组件库,由摩根大通(J.P. Morgan Chase)公司开源出去的流式数据可视化组件库。所以,从某种意义上来说也是《金融 Python 即服务:业务自助的数据服务模式》 的后续展开,也可以算是低延迟架构...
2022-10-31 20:58:19 766
原创 低延迟架构体系初探:如何从硬件到应用开发提升性能?
几年前,在通信领域的技术咨询经历,初步了解到预分配内存管理机制,其对于性能的改善是多么的明显。最近,也从点点滴滴的金融科技的领域,看到了高频交易所需要的低延时架构技术(当然了,国内在该领域受限于特色背景),也有点如出一辙的味道。而在未来,“元宇宙” 可能会换个新的名词,但是呢,它依旧也需要一系列的低延迟架构设计模式。在探索的过程中,有感于一系列反直觉的架构模式/设计模式。于是乎,作为低延迟架构领域...
2022-10-24 20:58:30 886
原创 金融 Python 即服务:业务自助的数据服务模式
最近,在研究国外的金融科技公司,他们如何构建他们的平台战略?机缘巧合之间,刚好看到一篇关于Bank Python 相关的文章《An oral history of Bank Python》。在这篇文章里,介绍了 Bank Python 的四种基础构建块:Barbara, the great key value storeDagger, a directed, acyclic graph of fi...
2022-10-16 20:58:14 450
原创 如何用 DDD 给 DDD 建模,破解 DDD 的魔法?
“所有模型都不对,但总有一些是有用的。” —— George BoxDDD 全称是 Domain-Driven Design,而不是我们所擅长的 Deadline-Driven Design。本来,对于再炒这一波冷饭,实在是没有啥乐趣。直到,我发现它可以炒成蛋炒饭 —— 加入 Feakin 的图形生成,适量的编译器知识,还有半勺 WASM。所以,这就是我们所要做的事件,为 DDD 建个模,基于模型...
2022-09-18 20:58:15 598
原创 如何构建一个在线绘图工具:Feakin 是如何设计与构建的?
高中,读过几本 3D 图形编程相关的书。怎么说呢,自那以后,图形学相关的东西,都不在我的兴趣范围里了。直到最近,我重新燃起了一点兴趣:架构治理工具 ArchGuard 依赖于「图即代码」,用于生成架构图,以更好的进行架构治理。年初,开源的知识管理工具 Quake 中,需要支持「概念构建系统」这样一个理念。需要管理多种不同的图形格式。当然了,作为一个 Firefox 浏览器的忠实用户,Firefox...
2022-08-28 20:58:49 642
原创 移动应用架构治理初探:从依赖分析与 Android 应用的生命周期说起
最近的项目比较忙,能腾出的业余时间不多。周内,“机缘巧合” 之下,与国内的某知名手机厂商的架构师们,一起聊了聊如何进行 Android 的架构治理,而其中的出发点是:如何从依赖治理的角度来进行 Android 的架构治理?作为一个非常熟悉 Android 和 Harmony OS 依赖分析的、非专业移动应用开发者,我大抵还算是有一定的经验。先从结论来说,Android 应用与一般的 Web 应用存...
2022-08-21 20:58:52 357
原创 成长的模式:如何从毕业生到技术专家?
过去的一个月里,在帮助其他部门进行毕业生培训。从名称上说是培训,但是实际上则是训战结合。不想一下子给太多,这篇文章会给的建议是:寻找持续成长的动机塑造整洁的编码习惯建立定位问题的方式学习既有的模式频繁性自我总结只凭这五点来说,与《福格行为模型》所定义的三要素也是颇为相似的:要素1 动机(Motivation):找到实现愿望的黄金行为要素2 能力:让行为简单到随时顺便都能做要素3 提示:善用锚点时刻...
2022-08-15 20:46:31 5628 12
原创 图的抽象:如何从概念的定义中提取模型?
最近的业余时间里,一直在研究图相关的领域,顺便构建出 feakin 图形引擎。在研究了 Mermaid、Cytoscape、Drawio/MxGraph/MaxGraph、Excalidraw 等图形库之后,大概写了两个 PoC(概念验证):数据的处理。即将文本转换为可渲染的数据模型。即结合语法解析、图算法来对数据进行处理。图形的渲染。即基于 Konva.js 的 Can...
2022-08-07 20:54:46 250
原创 1000 行输入框的养成:如何平衡体验与灵活性?
在编程的时候,我们会一直考虑所为的「灵活性」的问题。灵活性,可以降低我们变更的成本,减少部署的频率,进而提供更好的开发体验。而与此同时,追求实现的灵活性,可能会影响用户的体验。如何平衡这两种就是一个非常有意思的问题。不过呢,我们一直在关注于所谓的用户的体验,但是有时候对于开发者的开发体验。如何开发体验更好的话,那么它就会带来更好的用户体验。引子在为 ArchGuard 设...
2022-07-31 20:55:49 1615
原创 图表即代码:以代码化的方式构建新一代图形库 —— Feakin
图表即代码是将图表以领域特定语言作为载体,围绕于不同的使用场景,转译生成二次产物 —— 如概念图、架构图、软件架构等。对于造图形库这个库,我的想法由来已久。然而,直到最近,积压的需求越来越多的时候:随着,我们在 ArchGuard 中的架构工作台的进一步深入,需要构建一个架构设计线上化的功能。对于 ArchGuard 平台而言,设计线上化并意味着在线设计架构。在初期,我们...
2022-07-16 20:58:10 678
原创 思维图形化:探索如何重塑知识?
我们学习到的某一个领域的知识,很少会孤立存在的。当我们有意识地去发掘的时候,便会惊讶地发现:它们之间存在联系。这也就是我写这一篇文章的目的,尝试去建立对于思维图形化的推理过程。显然,与结果相比,过程也许是这篇文章的一个重点。虽然,文章的大部分原理来自于认知语义学——即有关语言中概念内容及其结构的现象学。而我并非这方面的专家,我只是偶然间看过相关的书,但是我觉得它们之间...
2022-07-10 22:04:53 477
原创 面向开发者的网站,真的是认真设计过的吗?
最近几年,随着技术产品化的流行,越来越多的公司(如云厂商、开源软件公司)将软件提供给市场,2D(to Developer)成为了一种炙手可热的商业 “风口”。所以,我们会看到各种面向开发者的网站以及各类的服务。只不过,绝大多数的公司并没有考虑开发者们的体验,诸如于:只需要在网站轻松点击三步,你就可以创建一个项目。呵,就不能提供个 CLI 一步到位吗?在页面上拖拉拽就可以构...
2022-07-03 20:58:36 588
原创 社区驱动开发:技术选型的另类浅析
PS:一篇纯吐槽而主的文章,请不要过分代入。六月,在探索一些技术选型的发展趋势 —— 除了研究国内的技术趋势,也研究了一部分的国外技术趋势。当然,结果是显而易见的,国外的技术选型上,依旧还是比国内领先的。但是呢,国内也没有那么差,只是受限于基础不够扎实的原因,还处于追赶状态。为了简化大家的理解,我把这种选择趋势称之为:社区驱动开发。简单来说,就是技术社区上流行什么,那么这...
2022-06-27 20:58:30 689
原创 架构自治服务:构建数据驱动的架构洞察
架构自治服务是一种面向架构分析领域的数据自助服务。它提供了一种集成一体的数据分析方案,让开发人员、架构师、管理者等可以根据不同任务,自由搭配、组合出适用于自身洞察需求的任务/函数。最近,刚好看到两本书名非常有意思的书:《持续 API 管理》、《数据自助服务实践指南》,前者书的内容对不起大纲,后者书的标题对不起内容 —— 内容是好内容,但是标题不对。原书的标题是《The S...
2022-06-26 22:37:05 641
原创 架构治理基石:基于规范 + 模式的工具化
围绕于 ArchGuard,我们一直在探索适合于大多数企业的治理模式。通常来说,对于应用架构的治理来说,我们的预期目标是,对应的架构设计(广义上的)能被采纳和遵守。如果过程中出现有流程上的问题,导致了架构在实施过程中,架构会不断偏离预期的设计。那么,我们就会致力于匹配设计相应的规范、规则和函数,来确保后续在实施过程中是能正确的落地。也因此,在架构治理上,我们可以用一些简单...
2022-06-13 20:58:31 886
原创 解密!第一个开源架构工作台的构建过程
构建一个架构工作台并不是一件容易的事,涉及到了一系列的编译器相关的知识,编辑器相关的知识,当然还有其核心的架构相关的知识。工作台架构图所下所示:在五月底,经历了一系列的磕磕碰碰,我们终于算是 release 了第一个 “可用” 的架构工作台的 alpha 版本(如何定义可用呢?)。在这个早期的 demo 版本里,你可以尝试一下,我们在 ArchGuard 中构建的架构即代...
2022-05-29 20:58:46 1421
原创 架构工作台:构建企业(应用)架构的数字孪生
架构工作台是一个环境,其设计初衷用于帮助人们设计架构、演进架构、观测架构,并有效地运用架构所需要的高质量工具,如交互式的架构开发和分析。在上一篇文章《架构即代码:编码下一代企业(应用)架构体系》中,我们介绍了架构即代码的思想,它是如何围绕于架构的一系列模式,将架构元素、特征进行组合与呈现,并将架构决策与设计原则等紧密的与系统相结合。而为了实施及落地架构即代码的理念,还需要...
2022-05-22 20:58:21 3353 4
原创 架构即代码:编码下一代企业(应用)架构体系
架构即代码,是一种架构设计和治理的思想,它围绕于架构的一系列模式,将架构元素、特征进行组合与呈现,并将架构决策与设计原则等紧密的与系统相结合。如我的上一篇文章《为“架构”再建个模:如何用代码描述软件架构?》中所说,要准确描述软件的架构是一件颇具难度的事情。仅就实现的层面来说,也已经很难通过一个标准模型来让所有人达成一致,“哦,这就是架构”。也因此,在无法定义架构的情况下,...
2022-05-15 20:53:00 5103
原创 为“架构”再建个模:如何用代码描述软件架构?
在架构治理平台 ArchGuard 中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在 ArchGuard 中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个核心的部分就是架构的模型、架构的治理模型,其它的还有诸如构建的模型等,会在后续的过程中持续引入到系统中。PS:本文里的架构展开是基于自动化分析需求的,模型也是基于这个动机出发...
2022-05-05 20:58:00 1334 1
原创 专家 x 抽象 x 类比
多年以前,我一直对于 “专家” 这一词有大量的困惑。到底怎样才是专家?怎样才算是技术专家?社交媒体上所谓的 “技术专家”,在某方面(如编程)上的实力一般,也算是专家吗?过去,我并没有细入的思考过这个问题,直到看到一个软件的元模型,以及一本名为《表象与本质》的书,才重新构建起一个专家的雏形 —— 感谢公司大佬之前推荐的 GEB。在这里,便尝试性地做出第一次小结。作为第一次小...
2022-04-18 20:58:00 1240 1
原创 国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服
过去的 10 年间,软件的架构发生了巨大的变化,从早先流行的单体 MVC 架构,变成了所谓的 5:5 开,即分布式 vs 单体。只是呢,有大量的软件开发人员,无法看到系统的全貌,又或者是从单体的思维转变过来。于是,哪怕是在使用了微服务的情况下,但是实现的却又是一个一个的单体,只是它们变成了“分布式的单体”。
2022-04-08 14:03:18 8036 5
原创 国内首个开源架构治理平台 ArchGuard,专治分布式场景下各种不服
过去的 10 年间,软件的架构发生了巨大的变化,从早先流行的单体 MVC 架构,变成现成 5:5 开的分布式 vs 单体。只是呢,有大量的软件开发人员,并没有从单体的思维转成变化。于是,我们在一个个的组织里,见到了一个又一个的 “分布式单体”。架构治理变得非常迫切。Why ArchGuard?作为一个架构师或者是软件开发人员,在架构治理上,我们面对的诸多挑战有:设计与实现...
2022-04-01 14:02:29 1866
原创 “分布式” 开发规范治理
PS:本文只是先开个头,思考如何应对这种挑战。如果只是从系统来考虑,标题里虽然说的是 “分布式” 规范治理,但是更多的时候是指多仓库的规范治理。而多仓库本身也充斥着一些不合理性,诸如于一个...
2022-03-07 20:58:00 1352
原创 回到单体架构:一个开源项目的重构
这个月,我和我的同事们正在开源一个内部的架构治理平台:ArchGuard,我们进行了一系列的遗留系统的迁移工作:从 Maven 到 Gradle。原因是灵活的自定义 task,还有自带的增...
2022-02-28 08:15:07 1317
原创 代码分析与自动化重构工具集:Modernizing
遗留系统的现代化演进是一门艺术。Why 开源 + 遗留系统现代化工具在日常的软件开发里,我们经常会遇到一系列的问题,诸如于:如何解决人类智商不够的问题?模式、原则和工具谁应该去解决代码的问...
2022-02-20 20:25:57 2648
转载 开源电子书《代码分析与自动化重构》
PS:根据过去编写 Modernizing 相关的开源工具里,编写的《代码分析与自动化重构》指南。GitHub:https://github.com/modernizing/moderni...
2022-02-20 20:25:57 1049
原创 前端技术规划与战略:2022
最近几年,因为前端没啥有意思的东西好玩的,主要精力就在工作相关的后端架构咨询和设计上。只是,刚好最近在编写知识管理元框架 Quake ,应用了一些算是比较新的架构思想,特别好玩。所以,这篇...
2022-01-18 20:58:00 3812 1
原创 无组件架构:你不需要知道的“新一代”前端架构模式
PS:这是一种很好玩的前端架构模式,可以创造出无限的乐趣。你不一定需要知道它,但是它真的很好玩。我写这篇文章主要是因为好玩,也没有啥新东西。很高兴在过去的几年里,微前端已经成为前端架构的一...
2021-12-19 20:57:00 2543
转载 Transflow:Quake 是如何构建以 DSL 为核心的低代码系统?
自我们发布了 Quake 项目之后,我们一直在做各种 Meta 功能。在上次 release 时,可以进行自定义的数据编辑。在这个新的版本里,将会包含一个新的数据可视化特性:Transfl...
2021-12-13 19:33:17 2733
原创 Quake 一个开源的知识管理元框架
本文使用 Quake Web 应用编写,虽然只有基本的 Command + S 来保存标题 + 内容的功能。这个简单粗糙的页面,让我想起了多年前构建 Phodit 的场景,it work...
2021-12-05 19:58:00 2532
原创 元素建模:探索建模的要素
PS:本文有些杂乱无章,偏向于是个人的一些思考。概括来讲,纵观各种语言,其语法成分汇总起来构成一个关键概念集合。—— Leonard Talmy在先前的一系列云研发体系的文章里,我们一直在...
2021-11-29 19:30:00 2393
原创 从 Codecity 到元宇宙:元宇宙的软件形态会怎样的?
PS:作为一个技术人员,对于元宇宙的未来持观望态度。为了向某人证明我买 Oculus Quest 2,是为了用于正道软件开发,而不是用于玩游戏,又或者是玩游戏。我在这周的业余时间,为 In...
2021-11-15 20:58:00 4729
原创 碎片粘合:Tasking DD 启发的思考
标题原来意指 TDD,即 Test Driven Development,用 TDD 来进行碎片化时间的粘合。只是呢,Tasking 才是 TDD 的核心,于是在新的思考之下,我重构了本文...
2021-11-08 20:58:00 1586
原创 开发者体验嗨皮书 ver 0.1 发布:《开发者体验:探索与重塑》
年初,总结了过去在平台与开源软件的一些经验,编写了那篇《开发者体验》。在那之后,陆陆续续地与不同公司、不同行业的人,一起讨论了起了开发者体验。有的是来自于内部平台的开发者,有的是源自于技术...
2021-11-02 20:58:00 1397
Android,Bash,终端,Term
2012-02-09
Django Documentation Release1.2
2011-12-27
Django 1.0 Template Development
2011-12-27
简单多任务任务高度
2011-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人