V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dream4ever  ›  全部回复第 18 页 / 共 34 页
回复总数  672
1 ... 14  15  16  17  18  19  20  21  22  23 ... 34  
2021-12-02 15:37:21 +08:00
回复了 eachann 创建的主题 程序员 各位技术心得都是用什么做记录的
@rehoni 我有可能是照着别人的文章,写了一个适合自己的版本,哈哈~
2021-12-02 14:24:02 +08:00
回复了 eachann 创建的主题 程序员 各位技术心得都是用什么做记录的
@rehoni https://github.com/Dream4ever/Knowledge-Base/issues?q=is%3Aissue 这里是在 issues 中记录零碎的知识点,https://github.com/Dream4ever/blog-articleshttps://github.com/Dream4ever/blog/tree/main/content/posts 是文章,只不过很久没有写系统性的文章了。
2021-11-29 11:13:13 +08:00
回复了 66beta 创建的主题 程序员 从 Mac 切换到 Windows 工作 2 周了,还是觉得浑身不自在
@xgfan 我也是这样,两个 28 寸显示器,用着很爽
2021-11-26 14:38:22 +08:00
回复了 7911364440 创建的主题 Java 属性名不让用 is 开头,应该用什么?
用 are
2021-11-20 09:22:06 +08:00
回复了 AndyAO 创建的主题 程序员 lazygit 在 windows 上的使用体验太差劲 -_-||
我都是在 Windows 上的 VSCode 中用 git ,装了 Git Graph 和 Gitlens 这两个扩展。
@ChangJingli 忽然想到其实可以把这个常用的需求封装成一个方法,做一层抽象,用起来就能“优雅”一点了
2021-10-09 08:46:31 +08:00
回复了 gabon 创建的主题 Google 为什么最近 Google 搜索会出现这么多垃圾靠 seo 的站点
@phithon 这些垃圾网站太特么恶心了……
2021-09-25 07:11:35 +08:00
回复了 lurker 创建的主题 程序员 居家远程工作两年的分享与思考
@zzhzero 楼主在第一段就说了,在公司所在地缴纳。
2021-09-25 07:11:06 +08:00
回复了 lurker 创建的主题 程序员 居家远程工作两年的分享与思考
@lurker 两代人的确分开住更合适一些,生活习惯,作息规律,各个方面都不一样,住在一起很容易产生矛盾。
2021-09-23 08:37:13 +08:00
回复了 kaiduo 创建的主题 Node.js 深入学习 NodeJs 系列
Node.js 为什么要写成 NodeJs……
2021-09-22 08:41:11 +08:00
回复了 tukon479 创建的主题 程序员 用 nestjs 重构了下个人空间后端
我也分不清楚,看得各种头大,哈哈
```js
const query = {
nickname: { $regex: nicknameReg }
}

if (id) {
query._id = ObjectId(id)
}
if (status) {
query.status = status
}

const findList = await userModel.find(query)
```
2021-09-09 08:34:57 +08:00
回复了 zhoudaiyu 创建的主题 程序员 看到有大佬分享故障排查的过程,就觉得紧张刺激
真遇到重大事故又找不着头绪的时候,心里就完全不是这种感觉了……
2021-09-04 11:31:32 +08:00
回复了 IvanLi127 创建的主题 React React 生态里的 umi.js,很好用吗?
@noe132 这代码看着 真舒服,好评。
@sagaxu 我一同事负责的一项业务有不少 SQL 查询,前一段时间发现服务器 CPU 经常飙到 100%,排查来排查去发现一堆慢查询,最后追根溯源发现数据库各个表所有被查询到的字段都没有设置索引……
@wh469012917 他们这个智商,就告别这一行吧
2021-08-12 10:01:51 +08:00
回复了 dream4ever 创建的主题 MongoDB MongoDB 按题型保持一定比例抽题
@no1xsyzy 小黄鸭调试法很久以前就看到过,不过一直都没有很好地践行这个方法,工作好几年了,感觉工作的方法和习惯还是很原始 @_@
2021-08-11 17:36:47 +08:00
回复了 dream4ever 创建的主题 MongoDB MongoDB 按题型保持一定比例抽题
@xuanbg
@no1xsyzy

我这几天又思考了一下这个随机抽题的需求和实现思路,整理后的内容如下,欢迎指正:

前提:
1. 题库中一共有 N 道题。目前这个 N 为四位数,且在可以预期的未来,也不会有大量的增长。
2. 每道题目均为单选题、多选题、判断题中的一种。
3. 单选题、多选题、判断题的数量之比为 N1 : N2 : N3,且 N1 + N2 + N3 = N 。

需求:
1. 对每个用户来说,在每一轮游戏中,系统会将题库中的这 N 道题目,最多只有一次地、随机地呈现给用户,让用户回答。
2. 如果用户答对了题库中的所有题目,或者答错了 1 道题,则本轮游戏结束。
3. 为减轻系统负担,对于题库中的 N 道题,每次从中抽取 M 道题,全部抽完假设共需 L 次。对于每次抽取到的 M 道题,单选题、多选题、判断题的比例,尽量保持在 N1 : N2 : N3 这个比例上,也就是和这三类题目在总题库中的比例尽量相同。
4. 对同一个用户而言,各轮游戏的题目出现顺序应当不同,比如某一轮最开始拿到的题目是 1 、5 、9 、7,下一轮就不能也是这个顺序了。对于不同用户则没有要求。

大致实现思路:
1. 由于题目数量不多,可以在数据库中给题目增加一个序号字段,用自增的正整数来标记每一道题目的序号。
2. 在每个用户的每一轮游戏开始前,将所有题目的序号按题目类型进行分组,发给用户。例如用户收到的数组是
arr = [[1, 5, 7, 10, ...], [2, 3, 4, 8, ...], [6, 9, 11, 13, ...]],那么 arr[0]、arr[1] 、arr[2] 分别是所有单选题、多选题、判断题的序号。
3. 由于在一轮游戏中,每一次需要抽取 M 道题目,那么可知需要抽取单选题的数量为 Q1 = M * N1 / N,多选题为 Q2 = M * N2 / N,判断题为 Q3 = M * N3 / N 。
4. 前端在 arr[0] 中随机抽取 Q1 个元素为单选题的序号,在 arr[1] 中随机抽取 Q2 个元素为多选题的序号,在 arr[2] 中随机抽取 Q3 个为判断题的序号,并将这三组序号分别从 arr[0]、arr[1]、arr[2] 中移除。
5. 前端用这三组序号,从后端抽取 Q1 + Q2 + Q3 共 M 道题目并呈现给用户,让用户答题。
6. 如果这 M 道题用户全部回答正确,则重复第 4 、5 两步,继续抽取新的 M 道题给用户,直到用户答对所有题目,或者答错 1 道题目。

上面这个思路把抽题功能的主要部分交给了前端来做,感觉这样后端的负担可以小一些,也是对后端不够熟悉,就选择了这么一个相对比较取巧的办法。

PS:在整理这个需求和实现思路的时候,发现自己的表述的确不够清晰准确,就上面这段文字,来来回回修改了好几遍,用了两个多小时才完成,就这还是感觉表达得不够好,知易行难呐。
2021-08-11 15:10:17 +08:00
回复了 Smash 创建的主题 程序员 求推荐个 Node.js 的 orm 轮子,看轮子都看花眼了
@yoa1q7y
@code4you
看了看 typeorm,prisma,sequelize,这三个 repo 的 issues 都是 1200+、1300+,哈哈
1 ... 14  15  16  17  18  19  20  21  22  23 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2906 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 13:03 · PVG 21:03 · LAX 05:03 · JFK 08:03
Developed with CodeLauncher
♥ Do have faith in what you're doing.