V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  henix  ›  全部回复第 2 页 / 共 4 页
回复总数  72
1  2  3  4  
99 天前
回复了 jlak 创建的主题 Go 编程语言 请问下 go 语言的错误如何处理
这是逼迫你更细致的处理错误,在使用异常的语言中,如果要细致处理错误,代码量并不比 Go 这样的小。

Go 的错误处理思想继承自 C ,有点“程序的性能消耗和代码量成正比”的意思。比如错误不自带堆栈,因为堆栈有性能开销,如果确实需要的话程序员就要手动加,手动加的时候还可以加上更多上下文信息,有时候比异常更好。

个人认为应该将错误分成两类:意料之外的,属于程序 bug 的,直接 panic ;意料之内的用户输入错误,上游 API 错误,用 error 处理。

推荐看看这篇 The Error Model: https://joeduffyblog.com/2016/02/07/the-error-model/
100 天前
回复了 Betsy 创建的主题 C++ 求教个 C++ Get 函数怎么写的问题
首先,这两种写法语义上并不等价,第一种写法多出一个 Status ,第二种写法要加上 Status 的话得返回一个 std::tuple<Status, Student> 或 std::variant<Status, Student>

两者的区别在于,第一种写法,Student 占用的内存由调用方分配,适用于对性能要求较高的场景;第二种写法,每调用一次 Get ,都会为返回的 Student 分配内存(尤其是 Student 包含了一个 string ,string 是动态分配),好处是用起来更方便。

考虑在一个循环中调用 Get ,如果用第一种写法,可以在循环外初始化 Student 并且复用 Student ,从而减少内存分配次数:

Student stu;
for (...) {
Get(key, &stu);
}
101 天前
回复了 Inzufu 创建的主题 程序员 大家是怎么对自用的服务做鉴权的
https (自签证书) + http basic auth
s3 套 aws cdn
推荐一些我最近在看的 blog:

Go 核心开发者 Russ Cox: https://research.swtch.com/
Google 安全大佬 Adam Langley: https://www.imperialviolet.org/
关注编程语言的 Bob Nystrom: https://journal.stuffwithstuff.com/

项目 blog:

The Go Blog: https://go.dev/blog/
V8 Blog: https://v8.dev/blog

还有阮一峰的网络日志
想起一个东西:ExtJS ,当年很火
121 天前
回复了 CHS 创建的主题 分享发现 供应链投毒后,我们的选择还剩下哪些?
可以从多个角度思考:

* 宏观角度:一些有正外部性的东西,可能最好是政府 / 国企来牵头,普通组织很难负担这种成本
* 个体角度:免费的可能是最贵的
如果是我的话可能会选择 pop 函数为空时 panic ,因为你已经提供了 IsEmpty ,为空时还要 Pop 可以认为是程序的逻辑错误(需要改程序)。
程序逻辑错误(需要程序员改程序):用 panic
外部错误(用户输入、上游第三方系统,程序员无法控制):用 error
有些安全补丁安装完只需要重启相关服务就行了,不用重启系统,比如之前的 ssh 安全漏洞
somekey, somekey2 的类型改为自己实现的 json.Unmarshaler 然后外面加上自定义验证逻辑?
130 天前
回复了 0x5c0f 创建的主题 Linux 收集下各位 Linux 下所使用的那些好用的工具
133 天前
回复了 name1991 创建的主题 Firefox 现在用 firefox 的人还多吗?
主要手机上用,简单可靠,电脑上还是习惯 chrome
146 天前
回复了 itakeman 创建的主题 Windows win 下使用 Linux 命令的方法有哪些?
git bash 使用的 msys2 ,还有更老的 Cygwin
147 天前
回复了 Lam1Lam 创建的主题 Windows Windows 下有哪些安卓模拟器好用?
MuMu ,装了些不想装手机的软件
153 天前
回复了 HashV2 创建的主题 NAS 寻找一个简单易用的数据分享服务
我用过 https://pypi.org/project/uploadserver/ 非常简单,基本上就是 Python 自带的 http server + 一个文件上传页面,服务端直接保存在本地
159 天前
回复了 xiguaprince 创建的主题 Python Python 怎么管理依赖和工程化呢?
只是用别人的库的话不需要 setup.py
最简单的就是 Python 自带的 venv https://docs.python.org/zh-cn/3/library/venv.html + requirements.txt
venv 是每个项目一个虚拟环境,安装这个项目所需的 Python 版本和依赖,不同项目之间隔离
161 天前
回复了 jianghu52 创建的主题 Python 是我太菜了,还是 pandans 就是这么慢
遍历 6000 行的 df 需要 1s 也太慢。你用没用 df.iterrows 遍历? iterrows 跟整数索引( for i in range(len(df)))的性能差别挺大的。
一点建议:为啥非要用 excel 和 pandas ?因为 excel 不是文本格式,不方便程序处理。pandas 个人认为对初学者来说有很多坑。
一个架构上的建议:先将你这两个 excel 另存为 csv 格式,然后用 Python 自带的 https://docs.python.org/zh-cn/3/library/csv.html 把每个文件读进来存成一个 list ,算法跟你现在的保持不变,说不定都比你现在的方式快。
166 天前
回复了 Canglin 创建的主题 C 关于 C 语言的相关问题
C 语言本身内容较少,而且抽象层次很低,属于“系统编程语言”,也就导致,网络、IO 、GUI 这些功能在其他编程语言中可能已经抽象到标准库中了,但 C 语言标准库不包含这些,要用的话应该学习操作系统提供的 API 。不同的操作系统提供的 API 是不同的,需要分别去学,或者使用一些别人封装好的跨平台库。

Linux 推荐 Linux/UNIX 系统编程手册 https://book.douban.com/subject/25809330/
Windows 推荐 Windows 系统编程 https://book.douban.com/subject/5323432/
关于库的底层实现的 程序员的自我修养 https://book.douban.com/subject/3652388/

看了这些你能理解一些网络库的底层实现原理了,当然实际应用中可能更多会使用别人的开源库。比如 libuv 、mysql 的 C 接口、GTK 等等,那就去看具体的库的文档。
这种需求应该属于 data validation 吧,除了 pydantic 还可以看看 json schema
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 54ms · UTC 01:48 · PVG 09:48 · LAX 17:48 · JFK 20:48
Developed with CodeLauncher
♥ Do have faith in what you're doing.