一面之猿网
让这个世界,因为我,有一点点的不一样
纯序员带你手把手run起来搜狗的workflow框架

大家好,我是不会写代码的纯序员——Chunel Feng。

今天,跟大家聊一聊如何分别在mac和windows环境下使用CLion和VS2019,单步调试起来C++版本的 workflow ——一款来自搜狗的开源高效的后端服务引擎——算是你了解/熟悉/精通workflow之前的入门工作吧。希望实现的目标是:当你需要step by step调试workflow代码的时候,看这一篇就够了


程序员都喜欢借(bai)鉴(piao)开源项目,随便加几个print,就觉得自己深度优化了一个顶级项目。当然了,不同语言的程序员,白嫖的方式可能也不一样。

Python 程序员:我们使用 pip install 引入,灵活。
Java 程序员:我们使用 maven 统一管理,方便。
C++ 程序员(包括不会写代码的纯序员):卧槽,这个库本地跑不通。请问有没有Python版本?

个人认为,上手一个新框架的最快捷有效的方法,就是自己debug起来一个hello world工程,一步一步的跟进下去。至于架构设计这些高屋建瓴的东东,是需要稍微熟悉了一些之后,再去深扒的。毕竟这里水很深,一般人上来也【把握不住】,哈哈。

首先,还是上github链接:https://github.com/sogou/workflow

mac笔记本 && CLion编译器

1、首先你要确保机器上安装了openssl

确认的方法,在终端输入:openssl version

if 本机安装过了,会如上图展示openssl的版本信息;else,需要手动安装一下。在terminal上输入:brew install openssl。emmm,可能还需要重启一下电脑,再次输入openssl version,才能看出效果。

image.png

2、下载&编译workflow源代码

下载的方法也比较简单,终端依次输入:

$ git clone https://github.com/sogou/workflow
$ cd workflow
$ make
$ cd tutorial
$ make

image.png

image

嗯,整体 0 error 0 warning,想想搜狗的小哥哥们(特别是小姐姐们)代码风格还真不是盖的。话说,这里还有纯序员激情commit的代码,有兴趣的朋友可以找找看哈。

3、本地通过CLion创建workflow的tutorial项目工程

这是今天分享的主要内容。纯序员刚开始上手的时候,也就被坑在这里。曾误以为版本无法直接本地调试。

打开CLion,选择Open or Import

image.png

然后直接选择 /workflow/tutorial/CMakeList.txt (注意,不是/workflow/CMakeList.txt),再点击Open as Project,即可生成tutorial项目。

image.png

4、本地调试hello world工程,并进行深度优化
选择[helloworld]工程,对代码进行深度优化(如图),然后就可以进行step by step的调试了。

image.png

好吧,赶快去看看我们的成果吧。
image.png

Windows笔记本 && VS2019编译器

还记得那些曾经被Windows支配的恐惧么?身边的童鞋都抱怨,Windows上C++代码工程编译时候,会遇到各种环境问题。纯序员不以为然,因为我根本不会写代码啊[狗头]。

今天,我也是下了很大的决心,花了一些心思才最终在Win10上通过VS2019把workflow(windows分支)调试起来了。不想你重复我做过的无用功,把经验写在这里分享一下。真心希望能够实现【你看这一篇就够了】的目标。

1、首先确保没有mac笔记本
有mac的话,直接用mac。没有的话,请继续往下看。

2、在Windows上安装openssl库
还是一样,确认一下电脑上有没有安装openssl。在powershell(推荐)或者cmd控制台,输入openssl version,即可查看。

image.png

if 没有,安装一下。安装的方法,给大家推荐使用choco方法安装。

  • 通过管理员权限,打开powershell,执行如下指令,从而安装choco:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

image.png

  • 更新一下choco,总是有必要的。

choco upgrade chocolatey

  • 接着,就可以安装openssl了。下图是因为我安装过openssl了,仅做展示使用。

choco install openssl

image.png

3、在本地编译workflow代码

  • 还是要把workflow代码给借(co)鉴(py)下来的。切换到windows分支。原谅我没有告诉你可以直接下载windows分支,哈哈。
> git clone https://github.com/sogou/workflow.git
> cd workflow
> git checkout windows

image.png

  • 本地编译生成workflow库(Debug版本)
> cmake -B build -S .   
> cmake --build build --config Debug

image.png

  • 本地生成tutorial工程(注意,这个是在buildt文件夹下,不是build文件夹)

cmake -B buildt tutorial

image.png

4、通过VS2019进行调试

  • 通过VS2019,打开buildt文件夹中的tutorial.sln工程。

打开之后,需要通过右击【解决方案tutorial】->【属性】->【设置单启动项目】,然后选择其中的一个。下图以wget项目为例。

image.png

  • 直接F5,就可以在Windows上进行单步调试了。

至于为什么没有对wget项目进行深度优化,主要是以我现在的水平,已经完全看不懂这个了。还是那句我在面试中说了无数次的老话:我不会,不过我可以学啊[手动狗头]。

image.png

写在最后

我只是一个热心的粉丝,没有在实际项目中使用过workflow的经验,所以对于项目本身的了解,基本也仅限于此。不过既然有这么优秀的开源项目,我也想多抽出一些时间,和大家一起交流学习。

如果需要获得更多专业的支持,请加入workflow官方QQ群:618773193。写这篇文章的时候,是周五晚上+周六,是应该休息的时间。不过我周中也挺忙,的确没有时间focus在这上面。好在群里的工程师支持的也都很给力,我最终才达成了【在本地调通】这么simple的成就。

当然,也要呼吁大家,如果你是在日常工作中用到workflow的内容,有疑惑需要被解答,最好还是周一到周五的时间去咨询。至于周末,没事的时候不要总想着工作,可以来找我吹牛逼啊。你看,我什么都不会,但是我很快乐,不是嘛!哈哈

    					[2021.05.22 by Chunel]

个人信息

微信: ChunelFeng
邮箱: chunel@foxmail.com
个人网站:www.chunel.cn
github地址: https://github.com/ChunelFeng