Golang Go语言中用Golang写了个snowflake id生成工具,最近在找工作,求点star,更希望能点出缺点

发布于 1周前 作者 ionicwang 来自 Go语言

Golang Go语言中用Golang写了个snowflake id生成工具,最近在找工作,求点star,更希望能点出缺点

一个使用 golang 编写并根据 Twitter snowflake id 的原理做了的 snowflake ID 生成工具

关于 snowflake ID 的介绍请点击这里

为了减少计算上带来性能消耗,以及最后生成形式的各种不确定性,生成 snowflake ID 采用了直接赋值的操作形式。测了一下,不错。

项目地址: https://github.com/0xNone/snowflake


更多关于Golang Go语言中用Golang写了个snowflake id生成工具,最近在找工作,求点star,更希望能点出缺点的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

13 回复

恕我直言,几行代码的事,连 toy project 都算不上

更多关于Golang Go语言中用Golang写了个snowflake id生成工具,最近在找工作,求点star,更希望能点出缺点的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


把注释,文档改成英文就极好了。

发 giuhub 求 star 跟抖音快手要双击 666 一样 low

大佬们,现在这个形势真的不好找工作。一星期面了好几家,挺累的。我知道这种行为不怎么光彩,这毕竟也是第一个开源,也希望能找到更多的朋友交流和进步,之前随便加了几个讨论群。感觉交流的内容都没什么意义,在这里也是希望能学到东西嘛。

最近比较忙,而且在研究一个把增删改查这种操作以 RESFul API 风格,映射到 json api 上,懒得去写那些低级接口和刷 leetcode。反正找到工作我应该就会继续弄。加油

大佬啊!我毕竟不是 985 也不是 211,希望有一些能拿得出手的东西

如果你开源作品是为了对找工作有帮助的话,建议搞技术难度更高的。

没做过什么大的系统 /项目,不知道写什么,在尝试简化 web 框架,有什么好的思路可以借鉴么?

我猜你是想要找 Go 后端开发方面的工作,那么你可以比如用 Go 写个 Redis 核心功能、sqlite3 核心功能、memcached 核心功能、Proxifier(proxifier.com) Linux 内核动态模块实现版等等之类的。随便找个看起来有点技术含量的,有点兴趣的,用你最擅长、最喜欢的语言来写一个。

你肯定也科学上网,自己设计一个基于 UDP 的可靠传输协议,用自己写的来科学上网,也可以的,而且成就感很大的,技术含量也有。这个就是我自己实现的: https://github.com/fanpei91/gap-proxy

有意可加微信好友相互交流:Wm5WamExOTBhR1ZmWjJaMw== (两次 base64 编码)

哈哈哈,我做安全的,这个我懂,不过以后想往编程方面发展。我试过写一个 windows 全局代理,中间人转发代理那种,报文分析了一个多月,这个真的是个深坑,后来就离职了,暂时搁置

号码有点性感

https://github.com/luw2007/rabbitid 我也写了个发号器。
[需求调研]( https://github.com/luw2007/rabbitid/blob/master/doc/research.md)
为了保证多机房部署,需要一个全局 ID 生成器,支持多机房部署,一主多备。采用ringbuffer分批取,内存使用原子递增的方式保证高效性。支持多个存储后端如:RedisZooKeeperetcd

你好!很高兴看到你用Go语言实现了一个Snowflake ID生成工具,这确实是一个非常有价值的项目,尤其是在分布式系统中。以下是我对你项目的几点建议和可能的改进方向:

  1. 代码可读性和文档:确保你的代码结构清晰,变量和函数命名规范,并附上详细的注释和文档。这有助于其他开发者快速理解你的代码逻辑。

  2. 并发性能:Snowflake ID生成器在并发场景下的性能表现如何?是否进行了充分的测试?你可以考虑使用Go的并发特性(如goroutines和channels)来优化性能。

  3. 时间同步问题:由于Snowflake算法依赖于系统时间,如果机器时间回拨,可能会导致ID重复或生成错误。你的工具是否考虑了这种情况,并提供了相应的处理策略?

  4. 自定义配置:是否可以方便地配置Snowflake ID生成器的各个参数(如机器ID、数据中心ID等)?提供一个配置文件或环境变量支持将使你的工具更加灵活和易用。

  5. 错误处理:检查你的代码中的错误处理逻辑是否完善。在出现异常时,能否给出明确的错误信息,并尽可能地恢复或重试?

总的来说,你的项目很有潜力。如果你能针对上述方面进行改进,并持续维护和更新,相信会吸引更多的关注和star。祝你找工作顺利!如果有兴趣,我也很乐意进一步讨论你的项目细节。

回到顶部