hw的垃圾代码, 不吐不快

我都快要被气死了. 因为公司业务需要用云服务, 刚好公司内部有人建议使用华为云 (事实证明他把我坑惨了), 我们尝试使用了华为云的 SDK.

不用不知道, 一用才发现华为是多垃圾, 公开的代码完全不能用!

附上链接: https://github.com/huaweicloud/huaweicloud-sdk-cpp-v3/issues/7

华为的 14级 15级 16级们, 你们写的 SDK, 自己用过吗!

问问自己, ReadMe 写成以后是不是再没更新过?

  • 没写过 bash 或者 pwsh 吗? 你用 // 表示注释?

    cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON ..  // 用以生成动态库
    

    再不济自己复制黏贴跑一下看看有没有报错呢.

  • 示例代码使用未声明的变量:

    Image

    杂鱼! GCC 都比你们懂. 但凡编译一次呢? 为什么不编译!?!?

  • 代码里明明依赖了 librttr:

    option(ENABLE_RTTR  "Enable rttr library" ON)
    

    为什么不在 ReadMe 里写出来, 为什么要藏着掖着!? 生怕我能编译成功吗!!

  • CMake 要怎么配置, 你的 CMakeLists.txt 和文档反着来

每一步都是坑, 写的什么狗屎.

基本素养是没有的

  • 文本文件以 \n 结尾了吗? 用脚本改你们的 CMakeLists.txt 还得先 echo >> 保证语句另起一行
  • 编译产物取名也是逆天, 叫 libcore.so libvpc.so etc., 真不怕和其它库起冲突啊, 安装到 /usr/local 都嫌脏了环境. 素质真差!
  • 要求客户手动编译 spdlog, 你们也不指明 tag/commit, 直接叫我用 default 分支的 HEAD 构建. 要哥哥教你 git clone --branch= 是干什么用的吗?

代码是一塌糊涂的

哥哥实在不想骂人, 但你们这个态度真傻逼呀

  • 知道你们想用 JavaScript 正则表达式语法 \d 表示 digit class, 可惜 "\d" 是实现定义的:

    Image

    双斜杠转义 "\\d" 不会写吗? 哥哥的 GCC/Clang 都输出了 d, 难道我们的华为工程师把 MSVC 移植到了 Linux 上?

    $ echo 'auto fck="X\d";' | g++     -w -S -xc++ -o /dev/stdout - | grep X
            .string "Xd"
    $ echo 'auto fck="X\d";' | clang++ -w -S -xc++ -o /dev/stdout - | grep X
            .asciz  "Xd"
    

    完完全全的错误代码! 初创公司要是用了华为云, 简直天崩开局!

  • CCE 模块为什么不自己编译一次试试看呢? 你们这群猪头, 知道用 include guard 解决表面上的循环 include 问题, 却掩耳盗铃把代码的循环依赖给无视. 好兄弟们你们还在犯只有应届生才可能犯的错误, 回炉重造罢

    Image

  • 现在是 2026 年, 大华为集团还没用上 IDE/LSP 吗? 为什么时至今日还会出现拼写错误?

    Image

    $ grep -rnF WithResponseField huaweicloud-sdk-cpp-v3
    huaweicloud-sdk-cpp-v3/cbr/src/v1/CbrMeta.cpp:354:    reqDefBuilder.WithResponseField(FieldDef().
    huaweicloud-sdk-cpp-v3/cbr/src/v1/CbrMeta.cpp:506:    reqDefBuilder.WithResponseField(FieldDef().
    huaweicloud-sdk-cpp-v3/cbr/src/v1/CbrMeta.cpp:594:    reqDefBuilder.WithResponseField(FieldDef().
    huaweicloud-sdk-cpp-v3/cce/src/v3/CceMeta.cpp:656:    reqDefBuilder.WithResponseField(FieldDef().
    huaweicloud-sdk-cpp-v3/cce/src/v3/CceMeta.cpp:681:    reqDefBuilder.WithResponseField(FieldDef().
    huaweicloud-sdk-cpp-v3/cce/src/v3/CceMeta.cpp:715:    reqDefBuilder.WithResponseField(FieldDef().
    

    声明呢? 函数声明哪儿去了?!!

    老天, 你们公司的基础工具部门一个个都是饭桶吗?

  • 为了用你们的垃圾 SDK, 哥哥还得亲自去读你们的 CMakeLists.txt, 一开始就不情愿, 果不其然一读吓一跳! message(STATUS "Build all Services") 给的是完完全全错误的信息, 你们这群老6, 怎么能骗人呢? 明明就构建了个 libcore.so 而 service 模块一个也没有! 为什么要骗人!!

仁慈的哥哥, 用你们提供的服务, 还得帮你们找 bug,

Respect!


要是实在没精力维护, 诚❤建议:

干脆别做云服务这块业务了吧, 少坑那些没有分辨能力的小白

如果不是公司业务, 哥哥已经爽用阿里云了, 都是你们这群小b崽子害哥哥浪费时间跟你们写的狗屁不通代码作斗争.


华为云的领导们, 为什么 to G 的单子少了, 你们就半死不活. 天天给下属灌输狼性文化, 到底实现了个啥? 华为的好兄弟们, 你们天天 996[1] 就搞出来这么个b玩意, 太让我失望了!


  1. 甚至面临被 251 的风险 ↩︎

13 个赞

哥哥好严厉!

开源的一般都是alpha版本的陈年代码,想要现行版本,得加钱 :grin:

你要明白这是华为云服务的 SDK,没有什么 alpha 什么现行版本。就是对 HTTP API 的封装。这么说你懂吗?它卖的是云服务,提供给客户 API SDK 是它的职责。云服务我们是花了钱的。

所以这压根不是什么开源项目,它脱离了华为云就没法用,它的目标也就是卖云服务。就相当于你去餐厅,餐厅一定是要提供菜单给你的。

所以现在的情况是什么?是客户花钱吃屎。:blush:

4 个赞

hw 都不尊重程序员,能有什么好代码。

1 个赞

对接过 aws, gcp,华为阿里腾讯云,华为云是最垃圾的没有之一

你说的这些问题,写代码的人可能比你更清楚,然而当弄虚作假==升职加薪,认真工作==牛马,代码自然就会写成这样防御式的

人会写出bug和垃圾代码,都是正常的。我认为主要问题还是华为内部发布流程的问题,还有管理不行,理念不行。总而言之,公司基因在那里

华为的基因就不是一家互联网公司

也不是说互不互联网的, 各种公司都可能有这种情况. 就比如需求规划和排期, 可能根本就没有. 产品经理或者领导说要做 xx 功能, 他说这话的时候可能就跟个宝宝一样我不管我就要这种感觉, 导致员工做啥工作都是赶鸭子上架式的. 先实现功能, 具体细节以后再说, 然后没有以后了直接进入新需求的开发. 这种情况下做出来的产品就到处是坑. 还有就是对技术人员的不尊重, 很多场合下程序员都是没啥话语权的, 基本上产品经理做决定也不太考虑会不会为难程序员