看得有点生理不适了
// 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)
}
}
1
povsister 248 天前
头一次见把 go 代码写这么丑的,有一种不伦不类的美
|
2
NeoZephyr 248 天前
有谁规定一定要怎么写了嘛
|
3
youngce 248 天前
_result,_err 真是天才🤣
|
4
NessajCN 248 天前
这段还好啊? 没发现太重的 oop 味儿
没整个 100 层的抽象封装继承算什么 jvav 味儿 |
5
yanyao233 248 天前 via Android
_err 草
|
6
flyqie 248 天前
阿里。。
阿里家换语言也是散不去的 java 味道。。 习惯了就好,只能再封装下眼不见为净。。 |
7
cbdyzj 248 天前
这个代码感觉是根据 Java 代码自动生成的吧,不像是人类写的
我记得之前看到过阿里云的 Python 的 SDK 是根据 Java SDK 自动生成的 |
9
me1onsoda 248 天前
不懂就问,哪里有 Java 味
|
10
flyqie 248 天前
|
11
flyqie 248 天前
而且,这自动生成出来的还有不少奇怪的内容。
`_result = &dyvmsapi20170525.Client{}` 是一个完全没有意义的定义 `return _result, _err` 都给返回值具名了为啥还要这么返回? `if tryErr != nil { ... } return _err` 为啥在这个 if 里还要单独 return 一个_err ?在最后统一 return 不就完事了,反正下面也没有其他操作。 |
12
totoro52 248 天前
if tryErr != nil { 这波操作我直接看傻了哈哈哈哈哈
|
13
Honwhy 248 天前
|
14
thevita 248 天前
还好吧,,,怎么会有人去抠自动生成的代码 @throws Exception 多明显啊,就是基于 java 生成的,(如果这代码是 文档/demo ,那使劲骂,这点投入都不愿意)
相比之下 他们的 sdk package 命名是怎么回事, 我看 github.com/alibabacloud-go 这个仓库下的 sdk 都代个日期后缀,是用这个来管理版本吗???? |
15
thevita 248 天前
tryErr 这个 明显是生成自一段 try catch ,基于规则的代码翻译嘛很正常,因为规则都具有局部性,又不是人写代码, “反正下面也没有其他操作”,规则当然是不知道的,可以说这个翻译写得不好,但是写得更好也没有任何收益啊,只要保证逻辑正确就行了
再次,如果这段代码是给人看的,就该往死里骂,否则你就不应该打开这段代码 |
16
kneo 248 天前 3
转译出来的代码,第一优先级是正确性,然后是生成后代码的性能。这两者挑不出毛病的话,建议保持安静。不要觉得你比写编译器的人聪明。
|
17
1194129822 247 天前 8
v 站的技术板块已经沦落到这样了吗,你是不是不引战就生理不适?
|
18
whoisjohnlee 247 天前 1
This file is auto-generated, don't judge it. Thanks.
|
20
FightPig 247 天前
你去看看腾讯的 tencentcloud-sdk-ruby, 你会发现新世界
|
21
iX8NEGGn 247 天前
"This file is auto-generated, don't edit it. Thanks.",都已经能自动生成一个能跑的项目了,还奢望什么其他的。
|
22
IvanLi127 247 天前
这种 sdk 真不知道是哪个天才的创意,恶心死我了,有种不伦不类的感觉。
|
23
xiuming142857 247 天前
远离阿里保平安
|
24
xiuming142857 247 天前
杭州卷王,人口不断往杭州涌入,卷不死你们。
|
25
flyqie 247 天前 1
|
26
janus77 247 天前 1
你们倒是搞清楚啊,到底是喷阿里还是喷 java ,还是喷 AI 啊。。。
|
27
kanepan19 247 天前
喷 java 很有意思?
|
28
securityCoding 247 天前
说实话我觉得大多数 open api 换成 protobuf grpc 能省不少事情
|
29
l8L12cwti87t9Kwg 247 天前 via Android 1
阿里的东西是真的感觉不论不类,啥品种产品都有,但是不是缺这就是缺那,或者就很难用
|
30
zizon 247 天前
生成结构挺清晰的其实.
初始化. 单独 core function 集中异常处理,甚至看得出框架原型结构可能是上报到个异常收集中心. |
31
mmdsun 247 天前
|
32
pennai 247 天前 via Android
This file is auto-generated, don't edit it. Thanks.
自动生成的代码,有啥好看的,要看就看生成模板的代码 |
34
SeaTac 246 天前 via iPhone
楼上这些用户是不是看到阿里和 java 这俩关键字组合就自动触发回复了
sdk 和文档代码是自动生成的再正常不过 要人手写那大家都别干活了 全去维护 sdk 和文档得了 |
36
hancai2 246 天前
本来想拿阿里云的监控数据, 看了一眼 go 的 sdk ,太烂了,直接放弃。
|
37
SeaTac 246 天前 via iPhone
@lyxxxh2
挺正常的 如果需要添加新的 API 或对已有 API 进行改动的话就改 yaml 文件,里面 path/type/parameter/response 包括每一个 parameter description 都有 改完给 sdk team review ,sdk 每周自动生成一个 preview 版本,里面包含所有常用语言的 sdk ,这种事情用人力不仅费时费力也 error-prone |
39
lichao 246 天前
难怪阿里系的 APP 那么卡,时间和精力都耗费在这些“高科技”上了
|
40
SeaTac 246 天前 via iPhone
|
41
lichao 246 天前
|
42
SeaTac 246 天前 via iPhone
@lichao
怎么说呢 aws azure gcp 大家都是这么干的 无非是有些 API 文档写的细一点有些写的乱一点 具体看相应的组 这跟尊不尊重没关系 实在看不懂开 support ticket 嘛 |
43
flyqie 246 天前 via Android
@SeaTac #42
问题在于 sdk example code ,v1 版本是手写的,v2 是自动生成的效果非常不好的。 你要说 sdk 内部逻辑随他去,反正能跑就行。 sdk example code 这种专门给开发者看的东西自动生成效果这么不好就直接发出来似乎 aws azure gcp 也不敢这么干吧? |
44
SeaTac 246 天前
@flyqie
我重新看了一遍这个 sample code ,说实话除了那个跟乱码一样的变量名以外我没觉得有什么槽点 config 需要什么变量,endpoint 是什么,如何创建 client ,如何传参,写的都挺清楚 当然我不知道按这么写能不能跑 毕竟我没用过阿里云也不知道这个 api 干什么 但我觉得无论如何都算不上“效果这么不好” 还是那句话,看不懂开 support ticket 呗 |
45
flyqie 246 天前 via Android
@SeaTac #44
对比下阿里 v1 跟 v2 的示例代码。 这俩差距挺大的,sdk example code 最重要的是清晰,在上面的代码上我完全看不出来清晰,其中有很多奇怪的无意义内容,如果你觉得这种代码是个没有槽点的,那我只能说可能个人要求不一样吧,反正我是接受不了。 |
46
Richared 246 天前
这不是根据 java 代码生成的 go 么,现在黑 java 政治正确?阿里用 java 做的东西不行?还是用其他语言做的东西行了?不太懂,每天不就搬砖么,用什么形状的砖夹子重要么。。。。
|