geektutu / 7days-golang

7 days golang programs from scratch (web framework Gee, distributed cache GeeCache, object relational mapping ORM framework GeeORM, rpc framework GeeRPC etc) 7天用Go动手写/从零实现系列
https://geektutu.com/post/gee.html
MIT License
15.46k stars 2.44k forks source link

意见征求,下一个7天实现的项目大家可以推荐下。 #7

Open geektutu opened 4 years ago

geektutu commented 4 years ago

已经实现:

实现中:

最新动态可以关注:知乎 Go语言 或微博 极客兔兔

订阅方式:watch geektutu/blog ,每篇文章都能收到邮件通知,或通过 RSS 订阅。

闲暇之余,可以看一看 Go 语言高性能编程Go 语言笔试面试题

geektutu commented 4 years ago

@Hilonfot geecache 的文章已经全部写完啦~ 百度网盘的项目比较大,七天实现不了呢。不过有时间倒是可以分析分析,目前分布式爬虫框架 colly 待选。

sekfung commented 4 years ago

是否可以考虑下ORM实现,类似gorm,或者xorm

geektutu commented 4 years ago

@sekfung 这个建议不错,我琢磨下代码量是否合适。python的orm是通过元类(metaclass)实现,golang可能是反射啥的,orm是深入语言特性的好机会。

charming7201 commented 4 years ago

就来个标题上的python interpreter呗,刚好两门语言一起学,哈哈

geektutu commented 4 years ago

@charming7201 第三期已经开始模仿 gorm 写 geeorm 了,第四期再看看python解释器,这个没有什么项目可以参考,从头写起来可能比较累。

tianly123 commented 4 years ago

能不能研究下rpc框架

mlbo commented 4 years ago

支持实现python解释器

token01 commented 4 years ago

考虑爬虫框架

yimeng commented 4 years ago

LDAP SMTP DNS DHCP这些协议都可以用GO来实现下服务端

MarksGui commented 4 years ago

期待 gorm!

geektutu commented 4 years ago

感谢楼上童鞋的推荐,第三期是 gorm,争取在一周内把代码搞定。接下来都会从大家的推荐中选择合适的实现。

leffss commented 4 years ago

第四期就分布式爬虫吧,大佬,python 的 scrapy 很好用啊,go 上面好像没有类似的呢

Ehco1996 commented 4 years ago

@geektutu 之前研究过一段时间的golang的orm,一开始看的也是goorm,但实际上这个项目的的实现和架构很不好。作者现在也已经放弃维护了,开始维护V2了

所以如果要写orm的话推荐参考facebook的https://github.com/facebookincubator/ent

geektutu commented 4 years ago

@Ehco1996 要是一周前知道这个项目就好了..... 现在已经实现到了第六天:geeorm-day6

gorm 看了 3 天我就崩溃了,实在是无法理解!!!gorm-v1设计很烂这句话一开始写在README里了,后来觉得不合适,就改成了

gorm 准备推出完全重写的 v2 版本(目前还在开发中),相对 gorm-v1 来说,xorm 的设计更容易理解,所以 geeorm 接口设计上主要参考了 xorm,具体实现参考了 gorm。

geeorm 目前是 Engine -> Session -> Transaction,以及 Schema -> Table -> Clause 的分层设计。主要参考了 xorm,并且拆分成多个子package,目前总体上我觉得还是OK的。

7天系列代码量虽小,但是对设计的要求还是高的,每个package/文件都尽量做到解耦和独立测试,这样后一天的代码支持新特性时,对已存在的代码尽可能不侵入式修改,以新增package/文件方式实现。

WenHaiGo commented 4 years ago

实现一个简单的分布式数据库?可以先不实现事务 锁,只实现数据的增删改查

wangzeping722 commented 4 years ago

RPC 框架来一个?

Janetyu commented 4 years ago

7 天实现IM?

binbin0325 commented 4 years ago

go实现微服务网关

aleimu commented 4 years ago

佩服楼主的毅力

ljk123 commented 4 years ago

大佬 啥时候开始讲解orm啊 求更啊~~~

leffss commented 4 years ago

可以考虑下爬虫和分布式任务,python 的 scrapy 和 celery 很好用啊,go 好像没看到类似的呢

geektutu commented 4 years ago

感谢大家的关注,上周末第三期 GeeORM 的文档已经补充完整,因为工作内容和分布式相关,考虑到兼顾工作和个人项目,第四期大概率会选择与分布式相关的主题。

ljk123 commented 4 years ago

更新了??赶紧去看讲解咯

yuldong commented 4 years ago

厉害了!

自己

邮箱:yuldong@126.com |

签名由 网易邮箱大师 定制

在2020年03月09日 09:45,ljk123 写道:

更新了??赶紧去看讲解咯

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

MarksGui commented 4 years ago

有没有 websocket 相关的主题了?

tb1989 commented 4 years ago

要是有nsq 和 boltdb的实现就好了

fibbery commented 4 years ago

websockt啊

jensontsq commented 4 years ago

im吧

mcrwayfun commented 4 years ago

有没有考虑rpc框架~

xiaoxfan commented 4 years ago

日志框架

928234269 commented 4 years ago

七天实现容器怎么样.

nashlibby commented 4 years ago

其实可以对标java的项目去实现,完善go的生态

geektutu commented 4 years ago

@nashlibby 这个系列主要还是以学习为主,学习各种优秀的库的一些设计理念和实现技巧。

ParseDark commented 4 years ago

websockt lib.

928234269 commented 4 years ago

docker本身就是go写的,重写一下感觉可以。

botengyao commented 4 years ago

区块链相关?

FWangZil commented 4 years ago

@Hilonfot geecache 的文章已经全部写完啦~ 百度网盘的项目比较大,七天实现不了呢。不过有时间倒是可以分析分析,目前分布式爬虫框架 colly 待选。

大爱大佬这个系列,项目比较大但是如果大佬有兴趣做的话就算是出了特别版(比如三十天系列)我觉得还是会有很多很多人支持的!不过确实不容易,无论如何表达感谢,在您的博客中学到了很多。

tianly123 commented 4 years ago

分布式对象存储

birdream commented 4 years ago

Raft算法? 感觉不用七天可能

birdream commented 4 years ago

分布式消息队列

edte commented 4 years ago

RPC

security00 commented 4 years ago

现在直播技术很火,大佬有空的话也可以考虑试下 实现一个直播的服务端项目

fangbaogang commented 4 years ago

向大佬学习

deepX95 commented 4 years ago

rpc框架真的可以实现一波看看

hanxuanliang commented 4 years ago

好像有一段时间没更新了 🛠️

bearcat-panda commented 4 years ago

可以做一个代理的项目

------------------ 原始邮件 ------------------ 发件人: "geektutu/7days-golang" <notifications@github.com>; 发送时间: 2020年7月10日(星期五) 下午2:05 收件人: "geektutu/7days-golang"<7days-golang@noreply.github.com>; 抄送: "Subscribed"<subscribed@noreply.github.com>; 主题: Re: [geektutu/7days-golang] 意见征求,下一个7天实现的项目大家可以推荐下。 (#7)

好像有一段时间没更新了 🛠️

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

SunMingyuR commented 4 years ago

简易的docker

KomorebiL commented 4 years ago

python解释器!

lzh-lab commented 4 years ago

grpc

geektutu commented 4 years ago

第四期,参考 net/rpc 的 rpc 框架 geerpc 代码和博客都完成了。grpc 的代码量比较大,所以是基于标准库 net/rpc 实现的,并在此基础上添加了一些功能。即使这样,最终的代码量也达到了 1.5k,一旦和通信沾边,代码量真是很难下来, 感兴趣的童鞋可以看看。