V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lmshl  ›  全部回复第 16 页 / 共 24 页
回复总数  471
1 ... 8  9  10  11  12  13  14  15  16  17 ... 24  
2022-07-12 15:20:04 +08:00
回复了 franklinre 创建的主题 Java 请教,如何根据时间生成有序号码?
https://www.mongodb.com/basics/mongodb-auto-increment
文档里给了一种新开一个 counters collection 的方案,来模拟 rdbms 提供的 sequence ,可以参考
2022-07-12 15:06:07 +08:00
回复了 franklinre 创建的主题 Java 请教,如何根据时间生成有序号码?
Redis 开 AOF 持久化可以满足要求,只开 RDB 的话可能会造成生成重复 ID 。
但是 AOF 可能对性能影响大,建议放弃 Redis 方案
2022-07-12 14:43:00 +08:00
回复了 franklinre 创建的主题 Java 请教,如何根据时间生成有序号码?
盲狗递币上没了解过,我说下我在 postgres 上的经验
PostgreSQL 有个函数可以直接用,SELECT nextval( seq_name );
就可以拿到全局唯一的自增序列号。

你这个场景需要考虑两个问题
1. 多实例并行拿 ID 怎么解决
2. 错误重启怎么恢复

单线程是解决不了问题的,考虑到你将来可能部署多个 webflux 进程 /容器做水平扩展。同时服务崩溃后重启的时候计数不能忘了从头开始吧。
盲狗递币可能可以通过触发器或其他手段达成类似效果?这需要懂行的来贴一下文档了
2022-07-11 12:15:40 +08:00
回复了 caisanli 创建的主题 JavaScript 六年前端准备重学 JS,有啥路线吗?
@shilianmlxg @qinggge 我看的原版 Scheme 版,毕竟 JS 师从 Scheme ,不需要 C 语言基础。倒不如说学 SICP 之前应该先忘了 C 语言

Brendan Eich was originally going to embed Scheme into Netscape. But higher-ups said no, it has to be familiar and resemble popular languages like Java to get any traction. (They were right.) So Eich went in and threw something together over a few days, and boom -- JavaScript.
2022-07-10 20:49:19 +08:00
回复了 caisanli 创建的主题 JavaScript 六年前端准备重学 JS,有啥路线吗?
推荐一本 JS 入门教材,补内功专用,这本书帮我收入翻了十倍
《 SICP 》(认真的
2022-07-10 17:07:21 +08:00
回复了 zhengjian 创建的主题 数据库 数据库应该使用单独列存储计数吗?
你的数据量级我建议直接 count ,除非后面加个万字

我也遇到了类似的场景,需要统计客户在我们平台存放了多少数据,我们是多租户 SaaS 软件。不同租户一般几千到几千万不等,冷热分区明显。根据我的场景我试用了如下方案

1. 行数存单独的表,根据事件消息异步更新行数,这个方案必然会产生不一致,解决方案是每日一点重算昨日新增数据。
2. 客户查询时,优先使用 pg estimate 估算,总行数一万以下走 count ,行数一万以上返回行数表 sum 数值

在我的场景下,客户对数据量个位数增减敏感,但是对数据总量差 1%~10%并不敏感,所以保证最终一致性就足够了,每日校正一遍
https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html

SeekableByteChannel position(long newPosition)
// Sets this channel's position.
2022-07-06 21:42:24 +08:00
回复了 luxinfl 创建的主题 程序员 这种去重方法真的有用么
https://i.imgur.com/LY29bV4.png
归根结底还是 Java 设计的 API 太丑了,丑破天际,搁 Scala 里就一行的事
val result = studentList.distinctBy(_.name)
2022-07-06 21:28:20 +08:00
回复了 shigure00 创建的主题 程序员 想学一门新语言, go 和 Python 大家推荐哪个
建议继续学 Scala 3 ,水很深。什么 Akka, Cats-Effect ,ZIO ,Refined 都摸一遍,工作中也用的上,技术深度也足够了
2022-06-28 10:55:36 +08:00
回复了 Girl66 创建的主题 程序员 [请问: 什么数据库字段能存图文并排的文本?]
2022-06-20 21:26:00 +08:00
回复了 Renco 创建的主题 程序员 想问问各位大佬,平日开发异常是怎么处理的。
我们用 Option / Either ,非必要不抛异常😏
2022-06-15 17:29:24 +08:00
回复了 bbsabc2 创建的主题 程序员 作为一名二本计算机专业的教师,如何点亮学生的技能树
推荐一个我喜欢的知乎答案,答主:雾雨魔理沙
https://www.zhihu.com/question/471105298/answer/1995471916
2022-06-15 17:25:11 +08:00
回复了 bbsabc2 创建的主题 程序员 作为一名二本计算机专业的教师,如何点亮学生的技能树
我老婆最一年也在教一些计算机课程(单片机,深度学习等)
她问我该让学生们看什么自学,我就只推荐了 CS61A ,B 站有搬运( https://www.bilibili.com/video/BV16W411W76H
如果能把基础课程啃完的话,这些应用技术应该是最后临找工作前 3 个月随便刷刷就够了。毕竟离开了学校就再也没有环境能让学生们静下心来学基础,做理论题了
2022-06-15 16:32:30 +08:00
回复了 jaggle 创建的主题 程序员 你会因为 IDE 无法分析和跳转函数的所有调用点而烦恼吗?
不,这是编程范式的问题,不是 AI 问题

比如,RPC 服务,有时候 IDE 可能无法知道某个函数是一个远程接口的调用点;
-- 像 algebric effect / zio / tagless final 等范式,会给这类函数两个标记,`IO` 和 `Effect`,比如一个 `Repository[F].getX() -> F[Result]` 中,Repository 就是依赖的 Env ,F 就是 `IO`。Rust 的 async/await 也会对远程接口做一个基本修饰。

再比如,反射出来的的类,IDE 很难通过文本知道,某个变量是什么对象;
-- 像 Scala / Rust 等现代编程语言,编译器足够强大,类型信息都可以在编译期生成完备,没必要拖到运行时给黑客留那么多注入空间。

再比如,很多项目都有依赖注入、门面、工厂的概念,这些概念可以让你的写的代码更优秀,但是让你改代码时,往往牵一发而动全身;
-- 还是 Scala ,注入可以在编译期解决。再配合完备的类型系统,可以帮助程序员将 90% 运行时错误在编译期发现。

更甚至,执行字符串 eval('print("hello")') 。
-- 编译器越强大,需要手动 `eval` 的场景就会越来越少

这些无法跳转的函数调用常常会给程序员带来很多烦恼,程序员需要写很多 annotation 去告诉 IDE ,或者在 docblock 中说,嗨,老李,这个函数在某某文件的某行被调用啦,修改前记得看看对那边有没有影响!
-- 将这些信息编码到类型中,下次编译的时候,编译器会提醒你还需要注意修改哪里

所以,人工智能时代的 IDE ,会为程序员解决这个烦恼吗?
-- 所以,你需要的是用现代化编程语言配合现代化编程范式,Scala / Rust / Kotlin ......
我司项目,大约 20 多人开发规模
mysql: 同事在用,我用 pg
redis: 同事在用,我基本上内存里做缓存了
nginx: 作为 k8s ingress 在用,前端也在用它做静态托管
es: 推荐系统组在用,不懂这玩意儿
mq: 听说过没用过
docker + k8s: 这套是我搭建的
rpc + protobuf: 在用,内部通信和对外接口都有暴露 grpc 端口
session + cookie: 前端项目谁离得开它?
jwt: 多好的签名算法


除了上面的这些,我还在用
cassandra
knative(serving & eventing) + istio
open telemetry
grafana + prometheus
kafka
graph database
其他想不起来了
2022-06-02 16:06:29 +08:00
回复了 awanganddong 创建的主题 程序员 对业务深入程度的问题
我讲个故事:
2012 年刚参加工作的时候,我入职了一家对日外包软件开发公司,技术栈是 .NET 。公司里有两位前辈与故事有关,老宋和李哥:老宋在这家公司干了十几年,业务熟手;李哥则是技术非常强,业务理解不算差。而当时我的 leader (老宋)曾不止一次跟我强调:“技术是有上限的,技术做到一定程度还是要转向业务,对业务理解越深,职业发展越顺”。大意如此,我不敢说一字不差的背下来,只传达核心思想。

2013 年,公司从日本回来一位同事胖子,公司给他定的薪资有 15k ,是老宋和李哥的 2.5 倍有余。得知这个消息的老宋和李哥一个星期天天往老板办公室跑,谈涨薪,无果。

一周后,技术强的李哥面试了一家银行软件开发,并收到 offer 。
而老宋,看着他拿起一本 Java SSH 网站开发的书翻几页,越看越无奈,又合上书看看我们,又翻开书再看几页,如此循环了一会儿,对我们说:“我真羡慕你们还年轻,学得进去。我这个年纪已经学不进去了”


我的观点:
极端点说,如果你的业务是银行财务相关,或者数学 /物理计算模拟软件。业务背后有经济规律 /法律甚至数学物理定律撑腰,那我觉得业务可能更重要一些。

如果你的业务是互联网 CRUD ,其中步骤来自老板 /产品经理朝令夕改的脑洞。或者你们只是在研究如何骗用户点你们平台的广告,那我并不觉得这类业务有什么值得深入的。
2022-05-30 15:18:09 +08:00
回复了 JarvenI 创建的主题 程序员 半路出家如何写好代码?
@shilianmlxg 没有,但是 JS 作为披着 C 外皮的 Scheme ,你熟悉 JS 的前提下,直接看 Scheme 版 SICP 不是什么难事。7 年前我就是这么看的,当时我只是个卑微的前端。
2022-05-30 14:52:38 +08:00
回复了 JarvenI 创建的主题 程序员 半路出家如何写好代码?
@JarvenI 看 Python 版 <SICP> 入门其实没什么问题,也更有实用价值,不用非得追求 scheme 版,但课后题一定要全刷,只有刷完最后一道课后题才能真正理解 <SICP> 在讲什么,空看是没有用的
2022-05-30 14:16:57 +08:00
回复了 JarvenI 创建的主题 程序员 半路出家如何写好代码?
中文确实有进阶路线,机械工业出版社的黑皮砖头书就是进阶路线。
远离极客时间,知识星球,等一切知(割)识(韭)付(菜)费平台。打开学堂在线,离散数学 /组合数学学起来,操作系统 /算法学起来,唯有正襟危坐扎扎实实的上课 /做题,别无他法
2022-05-30 14:13:49 +08:00
回复了 JarvenI 创建的主题 程序员 半路出家如何写好代码?
emmmmm
<SICP> 被誉为神书正是因为他讲的是基础啊,是“编码”这件事的本质。程序的求值模型是怎样的,如何构造惰性 /无穷列表,以及如何自己实现解释器

我看的是 Scheme 原版 + MIT 翻译的视频,至今只看了前三章。效果显著,薪资翻了十倍,对于我一个带专来说已经是很翻身了
1 ... 8  9  10  11  12  13  14  15  16  17 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   890 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 22:57 · PVG 06:57 · LAX 15:57 · JFK 18:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.