阿里的文档代码都有股 Java 味。。

2024-04-26 22:01:13 +08:00
 voidmnwzp

看得有点生理不适了

// This file is auto-generated, don't edit it. Thanks.
package main

import (
  "encoding/json"
  "strings"
  "fmt"
  "os"
  dyvmsapi20170525  "github.com/alibabacloud-go/dyvmsapi-20170525/v4/client"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/v2/client"
  util  "github.com/alibabacloud-go/tea-utils/v2/service"
  "github.com/alibabacloud-go/tea/tea"
)


/**
 * 使用 AK&SK 初始化账号 Client
 * @return Client
 * @throws Exception
 */
func CreateClient () (_result *dyvmsapi20170525.Client, _err error) {
  // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见: https://help.aliyun.com/document_detail/378661.html 。
  config := &openapi.Config{
    // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 。
    AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
    // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET 。
    AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
  }
  // Endpoint 请参考 https://api.aliyun.com/product/Dyvmsapi
  config.Endpoint = tea.String("dyvmsapi.aliyuncs.com")
  _result = &dyvmsapi20170525.Client{}
  _result, _err = dyvmsapi20170525.NewClient(config)
  return _result, _err
}

func _main (args []*string) (_err error) {
  client, _err := CreateClient()
  if _err != nil {
    return _err
  }

  batchRobotSmartCallRequest := &dyvmsapi20170525.BatchRobotSmartCallRequest{
    CalledShowNumber: tea.String("your_value"),
    CorpName: tea.String("your_value"),
    CalledNumber: tea.String("your_value"),
  }
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    // 复制代码运行请自行打印 API 的返回值
    _, _err = client.BatchRobotSmartCallWithOptions(batchRobotSmartCallRequest, &util.RuntimeOptions{})
    if _err != nil {
      return _err
    }

    return nil
  }()

  if tryErr != nil {
    var error = &tea.SDKError{}
    if _t, ok := tryErr.(*tea.SDKError); ok {
      error = _t
    } else {
      error.Message = tea.String(tryErr.Error())
    }
    // 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
    // 错误 message
    fmt.Println(tea.StringValue(error.Message))
    // 诊断地址
    var data interface{}
    d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
    d.Decode(&data)
    if m, ok := data.(map[string]interface{}); ok {
      recommend, _ := m["Recommend"]
      fmt.Println(recommend)
    }
    _, _err = util.AssertAsString(error.Message)
    if _err != nil {
      return _err
    }
  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}
10345 次点击
所在节点    程序员
46 条回复
iX8NEGGn
2024-04-27 11:43:30 +08:00
"This file is auto-generated, don't edit it. Thanks.",都已经能自动生成一个能跑的项目了,还奢望什么其他的。
IvanLi127
2024-04-27 11:50:38 +08:00
这种 sdk 真不知道是哪个天才的创意,恶心死我了,有种不伦不类的感觉。
xiuming142857
2024-04-27 12:08:16 +08:00
远离阿里保平安
xiuming142857
2024-04-27 12:09:04 +08:00
杭州卷王,人口不断往杭州涌入,卷不死你们。
flyqie
2024-04-27 12:26:31 +08:00
janus77
2024-04-27 13:02:03 +08:00
你们倒是搞清楚啊,到底是喷阿里还是喷 java ,还是喷 AI 啊。。。
kanepan19
2024-04-27 13:04:40 +08:00
喷 java 很有意思?
securityCoding
2024-04-27 13:38:39 +08:00
说实话我觉得大多数 open api 换成 protobuf grpc 能省不少事情
l8L12cwti87t9Kwg
2024-04-27 13:51:14 +08:00
阿里的东西是真的感觉不论不类,啥品种产品都有,但是不是缺这就是缺那,或者就很难用
zizon
2024-04-27 14:23:27 +08:00
生成结构挺清晰的其实.

初始化.
单独 core function
集中异常处理,甚至看得出框架原型结构可能是上报到个异常收集中心.
mmdsun
2024-04-27 14:37:47 +08:00
注释、命名、try 有点像 AI 转化的?
/**
* 使用 AK&SK 初始化账号 Client
* @return Client
* @throws Exception
*/

tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// ...
}()

CreateClient
pennai
2024-04-27 14:53:57 +08:00
This file is auto-generated, don't edit it. Thanks.
自动生成的代码,有啥好看的,要看就看生成模板的代码
bugu1986
2024-04-27 19:41:26 +08:00
@cbdyzj 是根据文档 朴灵开发的
SeaTac
2024-04-28 08:25:38 +08:00
楼上这些用户是不是看到阿里和 java 这俩关键字组合就自动触发回复了
sdk 和文档代码是自动生成的再正常不过 要人手写那大家都别干活了 全去维护 sdk 和文档得了
lyxxxh2
2024-04-28 10:12:04 +08:00
@SeaTac
"sdk" "代码文档" 自动生成?
第一次听说。

维护个 sdk 和文档,还要全部人?
啥量级啊?
hancai2
2024-04-28 10:22:35 +08:00
本来想拿阿里云的监控数据, 看了一眼 go 的 sdk ,太烂了,直接放弃。
SeaTac
2024-04-28 12:32:08 +08:00
@lyxxxh2
挺正常的
如果需要添加新的 API 或对已有 API 进行改动的话就改 yaml 文件,里面 path/type/parameter/response 包括每一个 parameter description 都有
改完给 sdk team review ,sdk 每周自动生成一个 preview 版本,里面包含所有常用语言的 sdk ,这种事情用人力不仅费时费力也 error-prone
lichao
2024-04-28 13:37:32 +08:00
@SeaTac 文档就是给人读的,用机器生成让人看了很费劲的代码,说明根本没有尊重读文档的人;
lichao
2024-04-28 13:39:24 +08:00
难怪阿里系的 APP 那么卡,时间和精力都耗费在这些“高科技”上了
SeaTac
2024-04-28 14:22:32 +08:00
@lichao
阿里文档我没看过没兴趣 但是自动生成这件事真的很正常
sdk 动辄支持十几个语言 人力维护不切实际也没有必要 准确第一 可读第二

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036033

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX