V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ysmood  ›  全部回复第 7 页 / 共 15 页
回复总数  295
1  2  3  4  5  6  7  8  9  10 ... 15  
2020-08-04 15:47:59 +08:00
回复了 ysmood 创建的主题 编程 有既用过 Elixir 开发项目,又用过 Go 开发项目的人吗?
@aetherus 朋友都五年了,我都不记得有问过这种问题。elixir 这五年来并没有太大进步,依然还是工具和库匮乏
2020-08-02 17:54:59 +08:00
回复了 pseudo 创建的主题 程序员 TypeScript 运行时复杂类型验证
很多,比如这个 https://github.com/portm/lier
可以当库调 API 使用,也有在线试用 http://lier.vane.im/#/
2020-07-29 22:49:54 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
一千星的项目一个 PR 都没有,全部 issue 都是作者自己创建的。我更希望能分享下推广的经验?
2020-07-26 23:28:05 +08:00
回复了 gantleman 创建的主题 程序员 我们来为“死锁的四个必要条件”加一条
@gantleman 我只是想表达这个问题跟线程没有关系,单线程也可以 mutex 嵌套阻塞。很好奇单线程是如何防止我故意 mutex 嵌套阻塞的。并没有说你解决问题的过程有问题,只是觉得可能表达的方式让大家容易不太容易接受。比如你扔一个项目地址,然而我看了半天文档,却感觉很难跟你说的关联起来。

能简单介绍下 pelagia 的工作原理就好了。目前我稍微看了下,错了请指正。感觉就是把逻辑问题转嫁了而已,用户需要花更多的时间来思考如何把用锁能解决的问题转化为 job 调度问题,把问题提前解决了而已,感觉就是用库或语法辅助思考模式而已。
2020-07-26 21:38:56 +08:00
回复了 gantleman 创建的主题 程序员 我们来为“死锁的四个必要条件”加一条
你说的多线程既不是充分条件也不是必要条件,就算不是多线程也是可以死锁的,就算是多线程也可以不死锁。很多单核 OS 也是可以模拟多线程的,那种 OS 的程序就不会死锁了吗?

我倾向于广义的死锁,即等待一件永远不会发生的事。可以看到这个跟是否多线程,协程等没有任何关系。比如在程序里轮询等待一个变量被设置为 0,但是轮询的时候没有写这个变量,就不可能停止轮询,这部分代码就像是卡住了一样,单线程也是可以复现这种情况的。

我觉得 4 个都有点多余了,还来第 5 个。其实可根据具体情况加无限个条件的,全看你怎么定义死锁,问题太宽泛以至于难以吊起人们的讨论欲望。
2020-07-24 22:42:52 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@abc0707 不要再直接贴代码了,有问题去群里问,也可以去开 issue,v2ex 贴代码太难以阅读了
2020-07-24 22:41:23 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@abc0707 你用法的问题应该用 url := launcher.New().Headless(false).Launch() ,麻烦看看文档再用。Client 这个函数是有说明的。

交流群已经在这个帖子里提及了啊,你没看到吗?本页面内搜索 聊天室
2020-07-24 18:25:01 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@abc0707 朋友我们没有这样的例子,我们的例子是这个啊 https://github.com/go-rod/bypass/blob/master/example/main.go
2020-07-23 23:09:08 +08:00
回复了 saltbo 创建的主题 程序员 goget, 一个比 go get 更方便的装包工具
@saltbo 老哥,vscode 这么简单,哪儿麻烦了啊,我安装到新电脑没配置任何东西,就能 debug golang 了。好奇你怎么用的?
2020-07-23 21:45:28 +08:00
回复了 saltbo 创建的主题 程序员 goget, 一个比 go get 更方便的装包工具
@saltbo 所以我建议你转个 vscode 试试,我从来只用 module 。哪位朋友的截图你也看到了,是有 go.mod 文件的。

我的意思是 edge case 不足够成为真正的痛点。我安装你这个比如花费 1 分钟。但是我一个月可能只用一次,对于有洁癖的人来说意义在哪呢。

再说了这个功能如此简单,那么多 goland 付费用户,只要去提个需求,人家自动 import 很快就能加上了。

https://github.com/golang/vscode-go/issues/398

如果需要额外功能,不如去 IDE 的网站给人家提个 issue,或者贡献代码给 IDE 项目。

当然如果你要的功能确实和社区矛盾了,那确实该自己发明轮子。但目前的信息上来看合作是更好的方式。
2020-07-23 21:18:38 +08:00
回复了 saltbo 创建的主题 程序员 goget, 一个比 go get 更方便的装包工具
感觉所有 go 的 IDE 都支持的很好了,基本都是自动 import 了,如何说服大家不用 IDE 呢?
2020-07-22 17:17:03 +08:00
回复了 fancy2020 创建的主题 Figma 想找一款"设计界的 Github",不知道有没有这样的网站
让我学设计或者教人设计,我觉得博客 youtube 等社交平台会更效率。比如拉几个人直接视频共享桌面聊天讨论设计。

@darmau 仅个人观点,可能会有偏颇。Figma 这种确实有不少,但最终都没能像 Github 之于程序员那样在设计师间成为标配。美学设计就跟写小说类似,不适合多人平等合作。比如要设计一个飞机场,人员结构是中央集权的,设计流程是至上而下的金字塔结构,难以像程序项目这样扁平低耦合。原因就是为了效率。很多人认为设计感性,我认为设计是可以理性的,但理性设计实际上比写代码更难,因为选择太多且各个部件高耦合(解释下高低耦合:比如设计过的组件由于风格等问题一般很难复用到其他项目,但是设计一个代码库那很多地方都可以复用它)。如果 2 个人拥有同等否决权来合作一个设计项目,那么讨论和互相说服对方将耗费大量时间,可以平等合作但不能期待能达到预期效率。
2020-07-14 02:11:54 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@iyaozhen 多谢。世界就是这么小呢。不是 Go 也没事,偶尔尝试下别的东西也不坏。我们 QA 也不会 Go,几天就能自己用 rod 写测试保障功能了。
2020-07-14 00:14:56 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@iyaozhen 更新了文档,把不正的描述去掉了,欢迎来指点。

关于 chrome only 这个观点,我补充下。随着旧浏览器的淘汰,如今都用 react vue 之类的框架开发网页,跨浏览器支持已经不再是自动化测试的重点了,单测也往往不用 headless 这么重的东西,单测就够了,用了 headless 大概率就是集成测了,集成测试往往目标是冒烟保障,比如监测关键功能是否异常,浏览器兼容性这种细枝末节基本不是瓶颈所在。
2020-07-11 19:19:18 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@iyaozhen 说白了就是两个协议间的抗衡,目前来看由于 puppeteer 的广泛接受度,以及微软也加入到 chromium 阵营,恐怕留给 webdriver 的时间就不多了。

我刚看了下 webdriver2,比起 1,就加了一点功能而已,还是太鸡肋了。举个简单的例子,你说 selenium 更侧重自动化测试,测试需要 profiling 的时候检测性能的时候,selenium 就得使用及其 hack 的手段了,而且也没发支持 devtools 那样丰富的功能。

总体来说 webdriver 协议理想是非常好的但是相比 devtools 协议的成熟度,还是差太远了。关键是 firefox 都已经意识到这点在与 puppeteer 团队合作开发 devtools 的支持了,可见一斑。我当然是希望能用统一的协议,但现实就是这么骨感。
2020-07-11 18:54:58 +08:00
回复了 ysmood 创建的主题 Go 编程语言 Rod 一个为简化自动化和爬虫设计的 devtools driver
@iyaozhen 是的。这段是很早期写的,用词有些过分了。我这就去修改下。我觉的 selenium 主要问题还是它基于 webdriver 协议 https://www.w3.org/TR/webdriver1/。这个协议的主要问题是还太早期,很多功能上的支持和 devtools 协议比起来还是太弱了,我还没研究 webdriver2,说不定会好些。比如你提到的劫持 ajax,webdriver1 根本就不支持,比如你要劫持 https 的请求时,webdriver1 只能借助代理,还要处理一堆证书问题,我恐怕你很难找个现成好用的插件(反正我是没找到 golang 和 java 的,只看到个 python 的 selenium-wire 但它还有限制)。你觉得这说服不了你,那对于 shadow-dom,webdriver1 就根本无法处理了。

如果你看下这个 https://github.com/sukgu/shadow-automation-selenium/issues/7#issuecomment-563062460
你就会知道这是质的差别,selenium 是无法处理 closed shadow root 的,然而 rod 可以。还有很多本质差别,日后有时间我们会尽量列个表出来。
1  2  3  4  5  6  7  8  9  10 ... 15  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   956 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 21:42 · PVG 05:42 · LAX 14:42 · JFK 17:42
Developed with CodeLauncher
♥ Do have faith in what you're doing.