V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 59 页 / 共 149 页
回复总数  2961
1 ... 55  56  57  58  59  60  61  62  63  64 ... 149  
2022-03-25 13:31:39 +08:00
回复了 Zink99 创建的主题 职场话题 请教一个今天面试中出现的问题
如果是你先提到有 webpack proxy 这种方式然后追问的,那我觉得不冤,如果是在说

「本质上有代理 /浏览器 /HTTP 规范三种方式」然后让你把所有代理配置方式都说一遍,那我觉得很傻逼
2022-03-25 13:16:20 +08:00
回复了 frank1256 创建的主题 Go 编程语言 go 我就不用指针不行?
如下机制必须使用指针:

type T struct {
Field int
}

func (t *T) SetValue(v int) {
t.Field = v
}

var t T
t.SetValue(1) // 否则 t 的值永远不会改变

如下结构传递值会有问题:
defer func(v T){someChan <-v}(vv) // channel 捕捉不到 v 的最后状态而是当前值

gorm 的 scan 使用了大一 C 语言教科书级别的指针传递:
db.Where("id = ?", 1).Scan(&ModeledValue)




无脑用指针的话:

func (*T) TableName() string {
return "t_"
}

你要写 db.Table((&T{}).TableName()) ,本来可以 db.Table(T{}.TableName())




还有浅拷贝的问题:

type T struct{v:int}
type U struct{t *T}
type N struct {u *U}

t := T{v:1}
u := U{}
n := N{}

n.u = &u
u.t = &t


func foo(n *N) N {
return N{u: &U{t: n.u.t}}// 我想「用 n 的值初始化一个新 N 」
}

newN := foo(&n)
newN.u.t.v = 2
n.u.t.v == 2 //但其实 n.u.t 被改了


ref: https://go.dev/play/p/74Q6bC13xN0
2022-03-23 23:14:48 +08:00
回复了 erquren 创建的主题 问与答 国内视频网站用户体验 B 站应该是第一了吧?
@awen233333 说明大部分人都默认标题观点但碍于面子或者奇怪的政治正确只好挑些其它毛病。你看不认同的人就会拿出例子来做对比
2022-03-23 07:58:00 +08:00
回复了 qile1 创建的主题 Flask flask 和 fastapi 及 bottle 如何多进程共享认证 token
> window 的注册表可以不?

我都想替微软谢谢你 ……


redis 就是用来干这个的,你又不想用。数据库自己都有锁会处理好的你又不用,整个 sqlite…… 不会每个 app 自己使用一个 sqlite db 文件吧

要不我再指条路,叫 CreateFileMapping() : https://docs.microsoft.com/en-us/windows/win32/memory/creating-named-shared-memory
2022-03-23 06:28:31 +08:00
回复了 placeholder 创建的主题 Node.js 请各位把代码甩我脸上,读取 json 文件之后怎么搜索
我觉得又是个表达问题

我猜 OP 的原意是在反序列化的过程中中断读取文件流
你是否在找类似于
http://rapidjson.org/zh-cn/md_doc_sax_8zh-cn.html

这样的东西?
2022-03-22 11:28:49 +08:00
回复了 frank1256 创建的主题 Go 编程语言 Goland,单元测试怎么进行 debug?
显然是什么姿势不对
https://i.imgur.com/92Bodi1.png
2022-03-21 06:54:35 +08:00
回复了 Margelator 创建的主题 分享发现 可否欣赏一下大佬们的桌面壁纸?
https://i.imgur.com/27tFZ5h.png

别人问我为什么是这个壁纸我一般会回答

「因为很护眼」



但其实是因为这是我设过的唯一一次壁纸之后一直账号同步就再也没管过了
( macos 上就一直是默认)
2022-03-20 13:09:45 +08:00
回复了 Sekai 创建的主题 程序员 自主开发档案管理系统可能要用到哪些开发软件?
卧槽我第一次见把开发软件也算进项目成本的项目,兄弟咱公司名叫啥 :doge:
2022-03-20 13:04:46 +08:00
回复了 ShittyStars 创建的主题 游戏开发 做了个游戏原型,请大家提提意见并指教
害挺难,最高纪录 42 分
点不亮进不了 BIOS 说明 CPU 不能工作

CPU 不能工作有几个原因: 主板供电有问题、主板的初始化有问题无法使 CPU 上电、内存无法工作(常见于超频之后)



能点亮一次的话先进 BIOS 把 CPU 电压稍微调高,CPU 和内存频率全都减低一点,并且一次只插一根内存,观察稳定性有否改善,如果有,说明可能是内存条的问题,如果没有,那这台机子也许该淘汰了(主板都换了,还插个旧的 CPU 说不过去吧)
2022-03-20 03:17:27 +08:00
回复了 ChaosesIb 创建的主题 C++ 有关模板 + if constexpr + static_assert 的问题
https://stackoverflow.com/questions/50051473/if-constexpr-in-c17-does-not-work-in-a-non-templated-function
https://www.v2ex.com/t/815172#reply10

照上次获得的经验来看,这里应该已经是模板实例化的阶段,所以 GCC 的行为是对的。也许 MSVC 又做了什么非标准流程,无法深究了
2022-03-19 06:04:40 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@documentzhangx66 我在#28 是让你想清楚「直接操作」怎么操作,操作什么?是指真的去更新 100w 行吗?
2022-03-19 05:45:29 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@documentzhangx66
你甚至不知道 OP 遇到了个什么问题……

他之前的做法可以 SELECT * ORDER BY pos ,pos 是个浮点,他可以在任意两个 pos 之间找一个数作为新 pos 。但这也许会有问题,所以他想问有没有不用浮点数的方案。

那如果不用浮点的话 没法指定 pos=1 和 pos=2 之间的新数了,想把 pos=100w 移到 1 和 2 中间让它变成 2 ,其它的顺次后移,怎么办? id=100w 的那行,pos 改成什么? pos=2 的那行 pos 改成什么?其它的呢?

好,如果不用这种 pos=整数的表示方法,我们用一个链表 ——



回到我的回复开头
2022-03-19 05:38:49 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
我们往表里放了一个链表,现在插入和移动都变得很快了,这很好——

但我怎么知道第四个元素应该是 ID 为几的行? 看起来 ID=4 被 ID=5 指着,然后 ID=4 自己指着 ID=3…… 那,id=3/4/5 这三行到底是第几个元素?没有映射,他们的 ID 与 next/prev 都不直接反应呈现顺序。当只有一个表的时候这做不到。

所以需要第二个映射表。

第四个元素,按桶大小为 3 估计(我给的例子),应该在第二桶,那么我们
查 SUM(桶容量) WHERE ID <2 ,得到 3 ,
再查 capacity WHERE id=2 ,为 3 ,说明确实在第二个桶里。那么
直接查第一个表 WHERE bucket_id = 2 ,提取出 3 行,看 2 号桶的头,是 id=2 。遍历内存里的三个元素找到 id=2 然后沿着 next 遍历(4-3)-1=0 次,得到 id=2 的元素。
总计 3 次查询完成了随机检索,一次桶表扫描,一次桶表索引,一次数据表索引,内存遍历忽略不计
2022-03-19 05:12:51 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@documentzhangx66
我是想说无论数据库怎样实现它的索引,在这个业务里并不能用得上。
SQL 并没有移动行然后自动给你更新所有自增列的值这种内建操作。

OP 描述的困境是,用于排序的索引值是稠密无缝的(如果 int 的话)。如果索引是随机访问地址,那么改变顺序就要批量更新大量地址,如果索引是相对地址(即链表),那没有任何现存机制帮助我们随机提取一批相邻索引的行。


数据库自己的数据结构 works perfect so what?
how does it help?
2022-03-19 04:33:02 +08:00
回复了 wenjie0032 创建的主题 Go 编程语言 GGM: 首个 Gloang 泛型 ORM 库发布 🚀
…… 无恶意,你看过 GORM 的源码吗



当执行一个查询的时候,model 一定是「有类型」的,所以在设计查询接口的时候,目标并不是抹除输入数据的类型差异,相反还要要提取出输入的类型特征加以处理。所以 gorm 用 interface{}来接纳任意类型后用了大量反射手段去还原 interface 的具体 <模型或类型> 是啥


之前看过有个大佬写的博客感觉很有启发,泛型能改善的最大问题是高阶函数:

func (S) filter (d []type1, f func (e type1) bool ) []type1

func (S) filter (d []type2, f func (e type2) bool ) []type2
是两个不同的函数。但有了泛型,可以只写一次。
https://go.dev/play/p/OHdhzMstFxW

我感觉 拼一套低配 LINQ 还是挺有可能而且有意义的
2022-03-19 03:19:50 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@documentzhangx66 你再仔细想想,「重排序」的时候你想喂给数据库的是什么?
2022-03-19 02:48:25 +08:00
回复了 userKamtao 创建的主题 程序员 后端大佬请进!帮我看看这个排序方法可以行得通吗?
@xylophone21
@zmxnv123
@documentzhangx66

链表存的话读取会非常慢,不能范围预加载,OFFSET 更是灾难,因为现在没有记录告诉你 第二页第一行对应 ID 是几的结果行,读一页必须找到页头开始的行然后沿着它的 next 遍历到页尾,这件事还不能用 SQL 解决,得在代码里循环,数据库负担就很重了


不过,可以在这个基础上往外加上「桶」来映射排好序的样子可以解决。桶始终保持有序,如果你愿意也可以保持它的 capacity 平均,这样分页 offset 的时候估算会快(准)一些。然后读出的时候只需要检索桶 ID 符合的记录就可以了,与平时基本无异。

当需要分页和 offset 的时候,先提取桶表的 capacity 列来估计,比如一个桶容量是 100 ,我要 OFFSET 到 1000 ,那就先把前 10 个桶的 capacity 全读出来看够不够,当桶容量总体比较平均的时候这个估计是很近似的,要检索的量也很少。然后还是 where bucket_id in []就行

然后桶还可以嵌套,更小粒度的桶可以被大桶索引,而且对更下层的桶来说都无需改动原有的查询流程,迁移负担很小

https://i.imgur.com/Brxd2Z0.png






—— 没错 恭喜我们又重新发明了 B+树
2022-03-18 18:42:49 +08:00
回复了 honkew 创建的主题 PHP 小白问一个正则匹配的问题
经典正则 vs 括号配对


正则表达式无法匹配成对的括号。 搜索关键词: 泵引理 ( Pumping lemma )
1 ... 55  56  57  58  59  60  61  62  63  64 ... 149  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1059 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 19:54 · PVG 03:54 · LAX 11:54 · JFK 14:54
Developed with CodeLauncher
♥ Do have faith in what you're doing.