首页 文章 精选 留言 我的

精选列表

搜索[算力],共10000篇文章
优秀的个人博客,低调大师

生产力桌面工具—想天工作台 7.0.30 版本发布

想天工作台是一款集桌面管理、效率办公、游戏娱乐为一体的副屏“系统”(副屏最佳拍档,也可以在主屏窗口化使用)。 基于Electron和Vue全家桶开发。欢迎各位前端开发的小伙伴下载运行体验。 产品主页:www.apps.vip 目前客户端部分已经完全开源,并托管至Gitee上,近期我们也会推出离线版本,支持无服务端依赖运行。 本次7.0.30更新内容如下:[新增]新增2种番茄钟卡片[新增]番茄钟支持顶部状态栏提示,支持记录番茄数[新增]部分支线任务[新增]社群支持应用和分类的创建[新增]社群的社区应用支持评论和发布内容[优化]优化待办组件的右键菜单和应用样式 [优化]优化桌面图标获取方式,获取到的图标非常高清[修复]修复其他一些小问题

优秀的个人博客,低调大师

穷人版生产力工具,好用得飞起 「GitHub 热点速览」

被 GPT 和 OpenAI 刷屏了一个多月,现在 GitHub Trending 已经没有什么和 gpt 无关的项目了,但是好在总有优秀的开源项目拯救我的项目疲惫。像是贴心好用的反向代理 pgrok,据说是穷人的 ngrok 替代品;拯救 SQL Boy 的 textSQL,现在你可以不写 SQL 来查数据了。 除此之外,高性能打包工具 rspack 高兴起来,打包的工作分分钟就搞定了,scrcpy 则是名声在外的投屏神器,而 nicegui,Nice!Python 工程师们可以有漂亮的 UI 用了。 以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 day 的项目会标注 New,无该标志则说明项目 release 超过半月。由于本文篇幅有限,还有部分项目未能在本文展示,望周知 🌝 本文目录 1. 本周特推 1.1 反向代理:pgrok 1.2 文本转 SQL:textSQL 2. GitHub Trending 周榜 2.1 高性能打包工具:rspack 2.2 SD GUI:ComfyUI 2.3 neovim 配置:AstroNvim 2.4 Android 镜像:scrcpy 2.5 Python 搞定 UI:nicegui 3. HelloGitHub 热评 3.1 炫酷的 Windows 终端软件:FluentTerminal 3.2 AirDrop 的开源替代方案:localsend 4. 往期回顾 1. 本周特推 1.1 反向代理:pgrok 主语言:Golang New 经济实惠的 ngrok 替代品,一个通过 ssh 远程端口转发多租户 HTTP 流量代理。 GitHub 地址→https://github.com/pgrok/pgrok 1.2 文本转 SQL:textSQL 主语言:JavaScript New 现在,你不会写 SQL 也没关系,textSQL 可以将自然语言使用 GPT-3.5 转换 SQL,用于查询数据。 GitHub 地址→https://github.com/caesarHQ/textSQL 2. GitHub Trending 周榜 2.1 高性能打包工具:rspack 本周 star 增长数:900+,主语言:Rust、JavaScript New 基于 Rust 的高性能模块打包工具。特性: 启动速度极快:基于 Rust 实现,构建速度极快,带给你极致的开发体验。 闪电般的 HMR:内置增量编译机制,HMR 速度极快,完全胜任大型项目的开发。 兼容 Webpack 生态:针对 Webpack 的架构和生态进行兼容,无需从头搭建生态。 内置常见构建能力:对 TypeScript、JSX、CSS、CSS Modules、SaSS 等提供开箱即用的支持。 默认生产优化:默认内置多种优化策略,如 Tree Shaking、代码压缩等等。 框架无关:不和任何前端框架绑定,保证足够的灵活性。 GitHub 地址→https://github.com/web-infra-dev/rspack 2.2 SD GUI:ComfyUI 本周 star 增长数:1,800+,主语言:Python、JavaScript New 一个强大的、模块化的、具有图形/节点界面的 stable diffusion GUI,你无需编码任何东西就能搞定 stable diffusion。 GitHub 地址→https://github.com/comfyanonymous/ComfyUI 2.3 neovim 配置:AstroNvim 本周 star 增长数:1,150+,主语言:Lua AstroNvim 是一个美观且功能丰富的 neovim 配置,可扩展,支持同其他优秀的插件一起工作。特性: 带有 Neo-tree 的文件浏览器 支持 Cmp 的自动填充 集成了 Gitsigns 的 git 使用 Heirline 的 Statusline、Winbar 和 Bufferline 使用 Toggleterm 的终端 用 Telescope 进行模糊查找 用 Treesitter 实现语法高亮 用 Null-ls 进行格式化和提示 支持 Native LSP 的语言服务器协议 用 nvim-dap 调试适配器协议 GitHub 地址→https://github.com/AstroNvim/AstroNvim 2.4 Android 镜像:scrcpy 本周 star 增长数:1,550+,主语言:C、Java 安卓手机镜像,可以在 Windows、macOS、Linux 上起一个和你 Android 设备相同的镜像,让你通过电脑端与你的手机端进行交互。 GitHub 地址→https://github.com/Genymobile/scrcpy 2.5 Python 搞定 UI:nicegui 本周 star 增长数:850+,主语言:Python、JavaScript New 用 Python 搞定 Web UI,有了它,你可以用 Python 创建按钮、对话框、Markdown 文件、3D 场景。 GitHub 地址→https://github.com/zauberzeug/nicegui 3. HelloGitHub 热评 在这个章节,我们将会分享下本周 HelloGitHub 网站上的热评项目,HG 开源项目评价体系刚上线不久,期待你的评价~ 3.1 炫酷的 Windows 终端软件:FluentTerminal 主语言:C# 基于 UWP 的 Windows 终端应用,拥有强大的自定义主题模块,能够轻松定制出风格各异的主题。提供了中文选项,支持多窗口、SSH 和搜索等功能。 HG 评价地址→https://hellogithub.com/repository/352150f3034742cbbf67d301a86973ca 3.2 AirDrop 的开源替代方案:localsend 主语言:Dart 可以通过本地网络与附近的设备,安全地共享文件和消息,此过程不需要互联网,不需要外部服务器,支持 Windows、Linux、macOS、Android、iOS 设备。 HG 评价地址→https://hellogithub.com/repository/436b0b9ebda5445b993c422a97ec9b6d 4. 往期回顾 往期回顾: 你的梦想家居「GitHub 热点速览」 开箱即用,你不可错过的好东西「GitHub 热点速览」 以上为 2023 年第 11 个工作周的 GitHub Trending 🎉如果你 Pick 其他好玩、实用的 GitHub 项目,来 HelloGitHub 和大家一起分享下哟 🌝

优秀的个人博客,低调大师

解放生产力,自动化生成vue组件文档

# 一、现状 Vue框架在前端开发中应用广泛,当一个多人开发的Vue项目经过长期维护之后往往会沉淀出很多的公共组件,这个时候经常会出现一个人 开发了一个组件而其他维护者或新接手的人却不知道这个组件是做什么的、该怎么用,还必须得再去翻看源码,或者压根就没注意到这个组件 的存在导致重复开发。这个时候就非常需要维护对应的组件文档来保障不同开发者之间良好的协作关系了。 **但是传统的手动维护文档又会带来新问题:** - 效率低,写文档是个费时费力的体力活,好不容易抽时间把组件开发完了回头还要写文档,想想都头大。 - 易出错,文档内容容易出现差错,可能与实际组件内容不一致。 - 不智能,组件更新迭代的同时,需要手动将变更同步到文档中,消耗时间还容易遗漏。 **而理想中的文档维护方式则是:** - 工作量小,能够结合Vue组件自动获取相关信息,减少从头开始写文档的工作量。 - 信息准确,组件的关键信息与组件内容一致,不出错。 - 智能同步,Vue组件迭代升级时,文档内容可以自动的同步更新,无需人工校验信息是否一致。 # 二、社区解决方案 ## 2.1 业务梳理 为了能实现上述理想效果,我搜索并研究了一下社区中的解决方案,目前Vue官方提供了Vue-press可以用于快速搭建Vue项目文档, 而且也已经有了可以自动从Vue组件中提取信息的库了。 但是已有的第三方库并不能完全满足需求,主要存在以下两个问题: > 信息不全面,一些重要内容无法获取例如不能处理v-model,不能解析属性的修饰符sync,不能获取methods中函数入参的详细信息等。 > > 比如下面的例子,value属性与input事件可以合起来构成一个v-model属性,但是这个信息在生成的文档中没有体现出来,要文档读者自行理解判断。而且生成的文档中没有展示是否支持sync。 ![](https://static001.geekbang.org/infoq/83/8378f232a5d5099718c35aeacaf63137.png) > 有较多的自定义标识,而且标识的命名过于个性化,对原有的代码侵入还是比较大的。例如下图中的代码,为了标记注释,需要在原有的 业务代码中额外添加"@vuese" "@arg"等标识,使得业务代码多出了一些业务无关内容。 ![](https://static001.geekbang.org/infoq/a6/a67f7eb2024734b06e9f582e3e5732c1.png) # 三、技术方案 针对以上文中提到的问题以及社区方案的不足,我们团队内沉淀出了一个小工具专门用于Vue组件信息获取并输出组件文档,大致效果如下: ![](https://static001.geekbang.org/infoq/6f/6fd0e52283b7f9aaa761575dc09ddb92.png) 上图中左边是一个常见的Vue单文件组件,右边是生成的文档。我们可以看到我们从组件中成功的提取到了以下一些信息: - 组件的名称。 - 组件的说明。 - props,slot,event,methods等。 - 组件的注释内容。 接下来我们将详细的讲解如何从组件中提取这些信息。 ## 3.1 Vue文件解析 既然是要从Vue组件中提取信息,那么首先的问题就是如何解析Vue组件。Vue官方开发了Vue-template-compiler库专门用于Vue解析, 这里我们也可以用同样的方式来处理。通过查阅文档可知Vue-template-compiler提供了一个parseComponent方法可以对原始的Vue文件进行处理。 ```java import { parseComponent } from 'Vue-template-compiler' const result = parseComponent(VueFileContent, [options]) ``` 处理后的结果如下,其中template和script分别对应Vue文件中的template和script的文本内容。 ```java export interface SFCDescriptor { template: SFCBlock | undefined; script: SFCBlock | undefined; styles: SFCBlock[]; customBlocks: SFCBlock[]; } ``` 当然仅仅是得到文本是不够的,还需要对文本进行更进一步的处理来获取更多的信息。得到script后,我们可以用babel把js编译成js的AST(抽象语法树),这个AST是一个普通的js对象,可以通过js进行遍历和读取 有了Ast之后我们就可以从中获取到我们想到详细的组件信息了。 ```java import { parse } from '@babel/parser'; const jsAst = parse(script, [options]); ``` 接着我们来看template,继续查找Vue-template-compiler的文档我们找到compile方法,compile是专门用于将template编译成AST的, 正好可以满足需求。 ```java import { compile } from 'Vue-template-compiler' const templateAst = compile(template, [options]); ``` 得到结果中的ast则为template的编译结果。 ```java export interface CompiledResult { ast: ASTElement, render: string, staticRenderFns: Array , errors: Array } ``` 通过第一步的文件解析工作,我们成功获取到了Vue的模板ast和script中的js的AST,下一步我们就可以从中获取我们想要的信息了。 ## 3.2 信息提取 根据是否需要约定,信息可以分为两种: > 一种是可以直接从Vue组件中获取,例如props、events等。 > 另一种是需要额外约定格式的,例如:组件的说明注释,props的属性说明等,这部分可以放到注释里,通过对注释进行解析获取。 为了方便的从ast中读取信息,这里先简单介绍一个工具@babel/traverse,这个库是babel官方提供的专门用于遍历js AST的。使用方式如下; ```java import traverse from '@babel/traverse' traverse(jsAst, options); ``` 通过在options中配置对应内容的回调函数,可以获得想要的ast节点。具体的使用可以参考[官方文档](https://babeljs.io/docs/en/babel-traverse) ### 3.2.1 可直接获取的信息 可以从代码中直接获取的信息可以有效的解决信息同步问题,无论代码怎么变动,文档的关键信息都可以自动同步,省去了人工校对的麻烦。 可以直接获取的信息有: - 组件属性props - 提供外部调用的方法methods - 事件events - 插槽slots 1、2都可以利用traverse在js AST上直接遍历名称为props和methods的对象节点获取。 事件的获取稍微麻烦一点,可以通过查找$emit函数来定位到事件的位置,而$emit函数可以在traverse中监听MemberExpress(复杂类型节点), 然后通过节点上的属性名是否是'$emit'判断是否是事件。如果是事件,那么在$emit父级中读取arguments字段, arguments的第一个元素就是事件名称,后面的元素为事件传参。 ```java this.$emit('event', arg); ``` ```java traverse(jsAst, { MemberExpression(Node) { // 判断是不是event if (Node.node.property.name === '$emit') { // 第一个元素是事件名称 const eventName = Node.parent.arguments[0]; } } }); ``` 在成功获取到Events后,那么结合Events和props,就可以进一步的判断出props中的两个特殊属性: > 是否存在v-model:查找props中是否存在value属性并且Events中是否存在input事件来确定。 > props的某个属性是否支持sync:判断Events的时间名中是否存在有update开头的事件,并且事件名称与属性名相同。 插槽slots的信息保存在上文的template的AST中,递归遍历template AST找到名为slots的节点,进而还可以在节点上查找到name。 ### 3.2.2 需要约定的信息 为什么除了可直接获取的组件信息之外,还会需要额外的约定一部分内容呢?其一是因为可直接获取的信息内容比较单薄,还不足以支撑起一个相对完善的组件文档;其二是我们日常开发组件时本身就会写很多的注释,如果能直接将部分注释提取出来放到文档中,可以大大降低文档维护的工作量; 整理一下可以约定的内容有以下几条: - 组件名称。 - 组件的整体介绍。 - props、Events、methods、slots文字说明。 - Methods标记和入参的详细说明。这些内容都可以放在注释中进行维护,之所以放在注释中进行维护是因为注释可以很容易从上文提到的js AST以及template AST中获取到, 在我们解析Vue组件信息的同时就可以把这部分针对性的说明一起解析到。 接下来我们着重讲解如何将提取注释和注释与被注释的内容是如何对应起来的。 js中的注释根据位置不同可以分为头部注释(leadingComments)和尾部注释(trailingComments),不同位置的注释会存放在对应的字段中, 代码展示如下: ```java // 头部注释export default {} // 尾部注释 ``` **解析结果** ```java const exportNode = { type: "ExportDefaultDeclaration", leadingComments: [{ type: 'CommentLine', value: '头部注释' }], trailingComments: [{ type: 'CommentLine', value: '尾部注释' }] } ``` 在同一个位置上,根据注释格式的不同又分为单行注释(CommentLine)和块级注释(CommentBlock),两种注释的区别会反应在注释节点的type字段中: ```java /** * 块级注释 */ // 单行注释 export default {} ``` **解析结果** ```java const exportNode = { type: "ExportDefaultDeclaration", leadingComments: [ { type: 'CommentBlock', value: '块级注释' }, { type: 'CommentLine', value: '单行注释' } ] } ``` 另外,从上面的解析结果我们也可以看到,注释节点是挂载在被注释的export节点里面的,这也解决我们上面提到的另一个问题:注释与被注释的关联关系怎么获取的--其实babel在编译代码的时候已经替我们做好了。 template查找注释与被注释内容的方法不同。template中注释节点与其他节点一样是作为dom节点存在的, 在遍历节点的时候通过判断isComment字段的值是否为true来确定是否是注释节点。而被注释的内容的位置在兄弟节点的后一位: ```java 被注释的节点 ``` **解析结果** ```java const templateAst = [ { isComment: true, text: "template的注释", type: 3 }, { tag: "slot", type: 1 } ] ``` 知道了如何处理注释内容,那么我们还可以利用注释做更多的事情。例如可以通过在methods的方法的注释中约定一个标记@public来区分是私有方法还是公共方法,如果更细节一点的话, 还可以参考另一个专门用于解析js注释的库js-doc的格式,对方法的入参进行更进一步的说明,丰富文档的内容。 我们只需要在获取到注释内容之后对文本进行切割读取即可,例如: ```java export default { methods: { /** * @public * @param {boolean} value 入参说明 */ show(value) {} } } ``` 当然了为了避免对代码侵入过多,我们还是需要尽量少的添加额外的标识。而入参说明采用了与js-doc相同的格式,主要还是因为这套方案 使用比较普遍,而且代码编辑器都自动支持方便编辑。 # 四、总结 编写组件文档是一个可以很好的提升项目内各个前端开发成员之间协作的事情,一份维护良好的文档会极大的改善开发体验。而如果能进一步的使用工具把维护文档的过程自动化的话,那开发的幸福感还能得到再次提升。 经过一系列的摸索和尝试,我们成功的找到了 自动化提取Vue组件信息的方案,大大减轻了维护Vue组件文档的工作量,提升了文档信息的准确度。具体实现上,先用vue-template-compiler对Vue文件进行处理,获得template的AST和js的AST,有了这两个AST后就可以去获取更加详细的信息了, 梳理一下到目前为止我们生成的文档里可以获取到的内容及获取方式: ![](https://static001.geekbang.org/infoq/49/49e846fd1da91640a987cbbaf50c111b.png) 至于获取到内容之后是以Markdown的形式输出还是json文件的形式输出,就取决于实际的开发情况了。 # 五、展望 这里我们所讨论的是直接从单个Vue文件去获取信息并输出,但是像很多第三方组件库里例如elementUI的文档,不仅有组件信息还有展示实例。如果一个组件库维护的相对完善的话,一个组件应该会有对应的测试用例,那么是否可以将组件的测试用例也提取出来, 实现组件文件中示例部分的自动提取呢?这也是值得研究的问题。 > 作者:vivo互联网前端团队-Feng Di

优秀的个人博客,低调大师

Babel 项目陷入财务困境,尤雨溪力挺负责人

Babel(又名 Babel.js)项目发布公告称陷入了财务困境——当前剩余的资金很快将被用完,因此 Babel 团队希望能收到捐款或厂商提供赞助,以帮助他们可以渡过艰难时期,并继续开发和维护 Babel。 据介绍,自2018年以来,Babel 一直在进行着一个资金实验:全职开发Babel 的工作能否持续?就目前的情况来看,答案是否定的。 虽然 Babel 是一个被数百万人使用的项目,每个月的下载量超过1.17 亿次,全球有成千上万的公司采用了它,并被集成到JavaScript 生态的各种框架中,例如 React、Next.js、Vue、Ember 和 Angular 等。此外还支持各种场景下的自定义插件和优化,例如 CSS-in-JS、GraphQL 或跨巨大代码库的本地化,但团队并没有因此而得到与付出相匹配的收入。 Babel 是一个 JavaScript 编译器,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。下面列出的是 Babel 能为你做的事情: 语法转换 通过 Polyfill 方式在目标环境中添加缺失的特性(通过第三方 polyfill 模块,例如core-js,实现) 源码转换 (codemods) 2020年期间,Babel 项目的主要赞助商退出资助,从而对项目资金状况产生负面影响,其团队中的一名开发者 Kai 不得不辞职,转而从事另一份全职工作。 Babel 现在的负责人 Henry 表示, 为了给维护者支付充分的资金,每年至少需要 $333,000,这个数字是他们目前取得的收入的 2 倍。因此,除了通过在Open Collective和GitHub Sponsors收到的捐款,他们希望可以寻找到更多的公司赞助商。毕竟与科技领域的投资相比,Babel 需求的资金似乎微不足道,不过却能对整个开源生态的健康和可持续性产生很大的影响。 事实上,Henry 发布捐款请求时受到了不少质疑,就连 Babel项目创始人(已离开项目)@sebmck也在推特进行了公开抨击,他表示团队没钱是因为负责人 Henry 从项目的资金中领取了 13.2 万美元年薪,然而过去一年却只提交过 7 次代码,并没有为项目实际工作过 (didn't actually work for on the project)。 对于@sebmck 的这番说法,Vue.js 作者尤雨溪反驳了回去,他表示"Working on a project"不仅仅只包含提交 commit,制定决策、管理团队、筹集资金,以及处理“我要为项目负责”的精神压力,这些都是为项目工作的内容。如果Henry 当初没有在@sebmck 离开项目的时候接管过来,Babel 早已死掉。实际上,Henry 也完全不需要这样做,他大可以找一份高薪的全职工作,但他还是选择了留下来,因为他认为这是正确的选择。 如果你希望为 Babel 捐款,可访问以下地址: https://github.com/sponsors/babel https://opencollective.com/babel

优秀的个人博客,低调大师

Chrome 力甩“耗电大户”称号,再推省电新功能

上个月,我们曾报道过“耗电大户”Chrome 浏览器正开启的一项实验性功能,即通过在标签页处于后台时关闭不必要的 JavaScript 计时器和跟踪器来减少能耗,测试预计此举将增加 28% 的电池寿命,相当于续航 2 小时。 谷歌没有停止在这一方面的探索。根据TheWindowsClub 的消息,Chrome 近日又推出了名为Battery-Savings(Meta Tag)的实验性功能。该功能旨在通过遵循用户的电脑电池设置,使站点向 Chrome 推荐合适的省电措施。 Chrome 希望以这样的方式降低 CPU 和电量的消耗,尤其是针对流量较为密集的视频或视频会议网站。另外,该功能计划减慢某些运行时间过长的 JavaScript 任务的运行速度,例如第三方广告设置或未加载内容的增量预渲染设置等。 从具体的实现上来讲,用户代理(User Agents)可以通过降低动画帧生成速率来实现帧速率的降低(allow-reduced-framerate),或者如果正在播放视频,则将动画帧速率与观察到的视频回放速率进行匹配。它通过将执行线程或进程放在一个小的核心而不是一个大的核心上,从而实现脚本速度的降低(allow-reduced-script-speed)。 完整的功能将包括以下几个方面: 允许站点指示首选模式的元标记(metatag) 媒体查询,使网站可以根据电池设置调整样式表 站点应遵循用户或操作系统的节电模式 User Agents 会遵循网站上的 meta 标记,除非它与用户或操作系统设置冲突 该功能预计随Chrome v86 或 v87 一起上线。届时,Chrome 消耗 CPU 和电量的情况或将得到大幅度改善。

优秀的个人博客,低调大师

国产统信UOS走向世界:俄罗斯、韩国、土耳其力挺

说起国产OS操作系统,统信软件旗下的统一操作系统UOS无疑是近期最为活跃的一个,软硬件适配越来越广泛,而且近期似乎悄然更名了,官方已经不再提及统一操作系统的说法,而是直接称为“统信UOS”。 统信UOS比较特殊的一点是它延续了中国团队研发的、已经很成熟的Deepin深度操作系统,这个发行版全球排名长期名列前10,支持多达33种语言,累计下载量超过8000万次,全球范围内有志愿者建立的100多个镜像站点。 同时,它的桌面环境也已广泛地被移植到其他国际主流Linux发行版本中,例如Arch、openSUSE、Ubuntu、Linux Mint、Manjaro、Anthon等等。 这种天然优势,也让统信UOS进入国际市场直接有路可循。统信软件官方宣布,近期已与土耳其、韩国、俄罗斯的六家Linux发行版团队开始对接,并着手合作。 据悉,在与各国Linux发行版团队的跨国视频会议中,双方最高管理层与主要部门的负责人均参与其中,互相介绍了各自的产品路线、技术特性、国内行业发展情况等,并就共同关注的政策、技术与产品等方面的问题广泛地交换了意见。 各团队一致表示,统信UOS目前的发展给了他们很好的参照,相信通过在政策、产品、技术等诸多方面的合作和对接中,将进一步促进各国操作系统产业的发展,进一步提高系统的能力。 另外值得关注的是,各国的操作系统都不约而同选择了Debian作为基础版本进行开发。 原因非常简单:某些Linux发行版由于受到企业的支持,在当前市场上占据优势地位,但是从供应链保障与国家安全的角度而言,这种发行版作为上游虽然省时省力,但却是将自己的手脚束缚在了美国公司或者其他外国企业的链条上。 Debian则真正属于开源社区,它的开放、透明与无国界是各国选择它最重要的原因。 目前,统信软件已与多国团队达成共识,发展基于Linux开源社区的操作系统,并且要加强各国联合,将走出去和引进来协调好,促使产品具有国际发展能力、软硬件生态的快速建立,使各国操作系统团队更好的服务于本国,同时回馈开源世界。

优秀的个人博客,低调大师

发力IOT、大数据,Apache RocketMQ 构建云时代的新生态

摘要 2018年9月1日,由阿里巴巴中间件举办的RocketMQ开发者沙龙在北京举行。这是RocketMQ今年举办的第二次大型线下技术交流活动,出席技术沙龙的嘉宾包括Apache RocketMQ创始人、OpenMessaging创始人冯嘉、滴滴出行消息团队负责人江海挺、Apache RocketMQ PMC 刘振东、杜恒以及其他commiter和contributor。嘉宾们详尽解读了RocketMQ的使用方式、概念模型、分布式事务等关键机制与原理,深入探讨了RocketMQ在大数据及IOT方面的生态布局、落地实践,并分享了在使用RocketMQ方面的经验以及从Kafka迁移到RocketMQ的具体方案。 Apache RocketMQ Contributor 丁磊和阿里巴巴高级技术专家林佳梁作为主持人开场致辞,介绍了开发者沙龙的日

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册