首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Go - 关于 protoc 工具小疑惑

本文主要讨论通过 protoc 生成 Golang 代码,例如我们常见命令: protoc -I . --go_out=xxx 想了解更多参数,执行 protoc --help 查看。...疑惑 一、如何知道 protoc 使用什么插件? 例如:--go_out 使用是什么插件?最终了解到使用protoc-gen-go 插件。...我能想到两个方案解决: 通过两个环境去完成,例如,打两个 docker 环境,新项目一个环境中生成,旧项目另一个环境中生成。...当使用参数 --go_out=plugins=grpc:xxx 生成时,生成文件 *.pb.go 包含消息序列化代码和 gRPC 代码。...当使用参数 --go_out=xxx --go-grpc_out=xxx 生成时,会生成两个文件 *.pb.go 和 *._grpc.pb.go ,它们分别是消息序列化代码和 gRPC 代码

93230
您找到你想要的搜索结果了吗?
是的
没有找到

强大 IDEA 代码生成

对于这种小范围代码生成,我们可以利用 IDEA 提供 Live Templates功能。刚开始觉得它只是一个简单Code Snippet,后来发现它支持变量函数配置,可以支持很复杂代码生成。...基本使用 IDEA 自带很多常用动态模板, Java 代码中输入fori,回车就会出现 for (int i = 0; i < ; i++) { } 按Tab可以各个空白处跳转,手动填值。...下面列举几个我常用简单模板 ========== ---------- System.out.println($END$) ========== ---------- private..._n`, Groovy 代码中使用。| 下面我们来看一下它实际应用。...最后推广一波我写代码生成插件CodeMaker,好好利用也能节省很多重复编写代码时间。 - END - 往期推荐 华为最美小姐姐,被外派墨西哥后... 比Visio快10倍画图工具来了!

33520

基于protobuf代码生成

基于protobuf rpc代码生成 现有的组件或者框架里,基于 protobuf rpc 代码生成多是提供了 protoc 插件形式。比如 grpc ,这种方式有好有坏。...使用 libprotoc 使用 protoc 插件的话官方文档是缺失,但是可以从一些代码文档和其他工具里去找一些sample。如果是使用C++,可以直接使用官方 libprotoc 。...于是我们自己写了 protoc 插件去给生成C++代码插入对 fmt.dev 支持。...完全没有走 protoc 那一套。缺点就是没法很方便地直接侵入官方生成代码;好处也很明显,主要有以下几点: 我们使用了模板引擎来“渲染”生成代码。...执行工具生成代码时,先构建好符号库,然后从这个YAML配置文件里读每个服务模板生成规则,复用同一个符号库。这样就把所有服务和接口代码生成时间又缩短到了3秒以内。

1.4K21

基于protobuf代码生成

基于protobuf rpc代码生成 现有的组件或者框架里,基于 protobuf rpc 代码生成多是提供了 protoc 插件形式。比如 grpc ,这种方式有好有坏。...使用 libprotoc 使用 protoc 插件的话官方文档是缺失,但是可以从一些代码文档和其他工具里去找一些sample。如果是使用C++,可以直接使用官方 libprotoc 。...于是我们自己写了 protoc 插件去给生成C++代码插入对 fmt.dev 支持。...完全没有走 protoc 那一套。缺点就是没法很方便地直接侵入官方生成代码;好处也很明显,主要有以下几点: 我们使用了模板引擎来“渲染”生成代码。...执行工具生成代码时,先构建好符号库,然后从这个YAML配置文件里读每个服务模板生成规则,复用同一个符号库。这样就把所有服务和接口代码生成时间又缩短到了3秒以内。

76130

GCC生成汇编代码

一、查看GCC生成汇编代码 命令行上用“-S”选项,就能看到C编译器产生汇编代码: #gcc -S code.c  注意:这里是大写-S,如果用小写gcc会说找不到main函数 会在当前目录下生成...二、用GDB查看目标文件字节表示   首先,我们用反汇编器来确定函数sum代码长度是19字节。...从这里可以看出函数sum代码长度正好是19字节。 四、生成实际可执行代码   这需要对一组目标文件运行链接器,而这一组目标代码文件中必须包含有一个Main函数。... main.c 中有这样函数:   int main()   {        return sum(1,2);   } 然后,我们用如下方法生成可执行文件: #gcc -O2 -o prog...code.c反汇编产生代码几乎完全一样。

1.9K10

编写你专属 MSBuild C# 代码生成器:保存文件时自动实时生成代码

我之前博客中有介绍如何在项目中生成额外代码,也有介绍制作一个生成代码 NuGet 包。...而本文是在此基础上更进一步,可以让生成代码变成实时;更准确说,是保存文件时即生成代码,而无需完整编译一次项目。...一天,头像全白昵称空格“wuweilai”童鞋问我为什么 GRPC NuGet 包能自动 .proto 文件保存时更新生成代码,怎么才能做到像它那样。...然后,我研究了下 Grpc.Tools 包里代码,外加跟他反复讨论,摸清了自动生成代码方法。 背景知识 本文知识非常简单,如果只是希望知道怎么实时生成代码的话,把本文后面的代码复制一下就可以了。...我们即将实现是:保存 Test.txt 文件时,会立即执行我们编译流程,这样,我们便能基于 Test.txt 来实时生成一些代码

31010

Golang 语言 gRPC 使用接口设计语言 protobuf

4; } 08 protoc 编译器 我们需要安装 protoc 编译器,编译我们编写 proto 文件,生成指定编程语言代码。...protoc 命令选项: # 指定 proto 文件目录 -IPATH, --proto_path=PATH # 指定 go 文件输出目录 --go_out=dir_name 使用 protoc 编译...示例代码protoc --proto_path dir_name/ --go_out=dir_name/ dir_name/xx.proto 09 总结 本文我们介绍 gRPC 使用接口设计语言...protobuf,需要注意是 proto 文件中字段编号必须保证唯一,使用 protoc 编译器编译 proto 文件生成指定编程语言代码protoc 原生不支持生成 golang 代码,需要安装一个包...protoc 编译 proto 文件生成指定编程语言代码不可以直接修改,如果需要修改,可以修改 proto 文件,然后使用 protoc 重新编译。

94730

Apache IoTDB 中使用编译时代码生成

首先,想要在文章开头明确一个概念:查询引擎中提到代码生成可以分为运行时代码生成和编译时代码生成。...编译时代码生成是指在编译时,将一份模版文件生成多份源代码一起打包编译,用来解决向量化引擎带来代码爆炸问题。 本文主要针对二者中编译时代码生成进行介绍。...说实话,这段话写挺好,但是,只有已经懂的人能看懂 :D 看一段代码大家应该更好理解: // 这是 IoTDB 进行 Sum 聚合计算时一段代码(实际有所不同) @Override public...因此,我们考虑如果能够根据一份代码,自动生成其他所有的代码就好了。这就是基于模版代码生成经过选型后,我们决定使用 Apache FreeMarker 来作为我们模版引擎,接下来进行介绍。...通过这个插件, maven 编译时,会在 codegen 阶段根据模版生成代码,并和其他代码一起打包编译,生成代码就和普通源代码处理方式一模一样。 <!

40220

图像结构样式分开生成生成模型论文代码

然而,这些方法忽略图像形成最基本原理:图像产物:(a)结构:底层三维模型;(二)风格:纹理映射到结构。本文中,我们因式分解图像 生成过程并提出体例结构生成对抗性网(S2-GAN)。...代码 https://github.com/xiaolonw/ss-gan 我们训练结果迁移到物体分类识别及对象detection识别上效果也不错。 先上图,然后论文部分解读 ? ? ? ?...本文中,我们建立在这一原则IM101 成像和因子生成对抗网络(GAN)划分为两个 生成过程如图。...我们相信,有融通优势四倍 式和结构图像生成处理。首先,保理和风格 结构简化了整个生成过程,并导致更逼真 高分辨率图像。这也导致高度稳定和强大学习过程。...人们甚至可以因素错误和理解 当表面正常生成失败相比,纹理生成。 第三,我们结果表明,S2-GAN可以让我们学习RGBD表示 无人监督方式。这可用于许多机器人和图形关键 应用程序。

62220

CodeGeeX:一款强大 copilot 之外可以免费使用 AI 代码生成工具

CodeGeeX 是一个由清华大学知识工程实验室团队开发 AI 代码生成工具,它采用了华为开发 AI 框架 MindSpore,它可以帮助程序员自动生成代码、翻译代码、重构代码、编写文档以及回答编程问题...这使得 CodeGeeX 可以更容易地使用 Mindspore 来生成代码。 CodeGeeX 主要功能 自动代码生成:CodeGeeX 可以根据用户输入,自动生成代码。...CodeGeeX 优势 准确性:CodeGeeX 大量数据上进行训练,可以生成高质量代码。 高效率:CodeGeeX 可以自动完成重复性任务,提高程序员效率。...CodeGeeX 未来发展 CodeGeeX2 是基于 ChatGLM2 架构加入代码预训练实现,得益于 ChatGLM2 更优性能,CodeGeeX2 多项指标上取得性能提升,包括但不限于更强大代码能力...开源免费 CodeGeeX 模型代码是开源 github 上,任何用户都可以下载进行本地部署和调试优化。

2.6K120

Go微服务(二)——Protobuf详细入门

--go_out=. hello.proto 如果这样执行的话,他结果是在你go_out目录(这里是当前目录)存放,并且按照你定义go_package名称,在你go_out目录下创建一个目录结构:...--go_out=..../:proto-gen-go插件编译产物存放目录,这里是存放到当前目录,注意生成 .pb.go文件最终位置是你--go_out=?位置+go_package=?...位置,后者是--go_out位置之后,进一步指定生成.pb.go文件存放路径。 -I ../:--proto_path=PATH缩写 表示引入文件目录路径,这里有坑。...时候,假设当前 my_project/protocol/bbb 目录下,则执行: protoc -I ../ -I ./ --go_out=./ bbb.proto # -I ../ : 在上一层目录中寻找引入

2.7K20

代码生成模式:未来代码模式会是怎样

这篇文章草稿差不多在我 todo 列表里躺了一年,直到最近,看到我同事吐槽手动创建步骤繁琐性。...我才想起来,我曾经想写一篇这样文章,但是我博客( https://www.phodal.com ) 上找了好久,也没有发现。然后,我终于 To-Do 应用中看到了它身影。...创建时:模板化代码生成 模板化代码生成,即在代码 or IDE 中内置特定系统、团队代码范式,随后通过特定参数,来生成适合于该团队和该系统代码。...创建时:DSL 生成代码 DSL 生成代码,顾名思义就是通过 DSL 方式,来生成代码,再集成到系统中开发。 最常见一个例子就是我最近使用基于 Antlr 编写 Chapi,便是这种模式。...构建时:DSL / 代码生成代码 构建时代码生成代码,即在构建时候,才进行代码生成。 对于稳定系统来说,可以只构建时才运行代码生成。平时时候,都是通过生成临时代码方式。

38310

代码自动生成重构中一次探索

不过,工作量肯定和插件个数,以及插件代码规模肯定是成正比,我只需要把这两点统计出来,估计一个大概工作量还是可以。于是,有下面的统计表: 图 3 横坐标是代码行数,纵坐标是插件个数。...关于注解解析相关知识可参看我另一篇KM《apt与JavaPoet 自动生成代码》,由于篇幅限制,这里不做讲解。...除此之外,还有AudioEvent、PageEvent等)。...String args,以及其方法体: 图 11 可以看到,即使是System.out.print(LocalDateTime.now());这么一句代码,也可以完整描述成一颗树。...图 12 图 13 图 14 总结 本文主要记述了我如何通过编写工具自动生成代码方式,提高代码重构效率。原本计划需要共计60人日工作量,实际一个人只用了不到三周时间便完成了任务。

2.8K10
领券