7days-golang README

The project's README from github.com/geektutu/7days-golang. As one markdown file: README.md.

7 days golang programs from scratch

CodeSize LICENSE

README 中文版本

7天用Go从零实现系列

7天能写什么呢?类似 gin 的 web 框架?类似 groupcache 的分布式缓存?或者一个简单的 Python 解释器?希望这个仓库能给你答案。

推荐先阅读 Go 语言简明教程,一篇文章了解Go的基本语法、并发编程,依赖管理等内容。

推荐 Go 语言笔试面试题,加深对 Go 语言的理解。

推荐 Go 语言高性能编程(项目地址),写出高性能的 Go 代码。

期待关注我的「知乎专栏」和「微博」,查看最近的文章和动态。

7天用Go从零实现Web框架 - Gee

Gee 是一个模仿 gin 实现的 Web 框架,Go Gin简明教程可以快速入门。

7天用Go从零实现分布式缓存 GeeCache

GeeCache 是一个模仿 groupcache 实现的分布式缓存系统

7天用Go从零实现ORM框架 GeeORM

GeeORM 是一个模仿 gorm 和 xorm 的 ORM 框架

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

7天用Go从零实现RPC框架 GeeRPC

GeeRPC 是一个基于 net/rpc 开发的 RPC 框架 GeeRPC 是基于 Go 语言标准库 net/rpc 实现的,添加了协议交换、服务注册与发现、负载均衡等功能,代码约 1k。

WebAssembly 使用示例

具体的实践过程记录在 Go WebAssembly 简明教程。

  • 示例一:Hello World | Code
  • 示例二:注册函数 | Code
  • 示例三:操作 DOM | Code
  • 示例四:回调函数 | Code

What can be accomplished in 7 days? A gin-like web framework? A distributed cache like groupcache? Or a simple Python interpreter? Hope this repo can give you the answer.

Web Framework - Gee

Gee is a gin-like framework

Distributed Cache - GeeCache

GeeCache is a groupcache-like distributed cache

Object Relational Mapping - GeeORM

GeeORM is a gorm-like and xorm-like object relational mapping library

Xorm's desgin is easier to understand than gorm-v1, so the main designs references xorm and some detailed implementions references gorm-v1.

RPC Framework - GeeRPC

GeeRPC is a net/rpc-like RPC framework

Based on golang standard library net/rpc, GeeRPC implements more features. eg, protocol exchange, service registration and discovery, load balance, etc.

Golang WebAssembly Demo

7days-golang (geektutu/7days-golang)

Searching Database…

Что это такое?Учебный репозиторий, который проводит вас через создание с нуля четырёх проектов на Go, каждый за семь дней: веб-фреймворк Gee, похожий на gin, распределённый кэш GeeCache, похожий на groupcache, ORM GeeORM, похожую на gorm и xorm, и RPC-фреймворк GeeRPC, похожий на net/rpc. Также есть несколько демонстраций WebAssembly на Go.
Это готовый фреймворк или серия уроков?Это серия уроков с исходным кодом, а не готовый продакшен-фреймворк для подключения. Каждый из четырёх треков разбит на семь ежедневных уроков, у каждого есть короткое описание и соответствующий снимок кода.
Как мне пройти этот материал?Выберите один из четырёх треков (Gee, GeeCache, GeeORM или GeeRPC), начните с «Дня 1» и проходите связанный код каждого дня по порядку. Есть также отдельная папка с демонстрацией WebAssembly.
Мне нужно установить Go, чтобы работать с этим?Да, нужен рабочий набор инструментов Go, так как каждый урок — это простой исходный код на Go. Внешние сервисы и ключи API не требуются.
Gee, GeeCache, GeeORM и GeeRPC предназначены для продакшена?Нет, это намеренно упрощённые клоны, созданные для изучения внутреннего устройства gin, groupcache, gorm/xorm и net/rpc, а не проверенные продакшен-библиотеки.
Чему учит урок «День 6» в GeeCache?Он рассказывает, как предотвратить пробой кэша с помощью техники singleflight, чтобы параллельные запросы к одному и тому же отсутствующему ключу запускали только одну выборку.
Чем GeeRPC отличается от стандартного net/rpc в Go?Он построен на основе net/rpc, но добавляет обмен протоколом, регистрацию и обнаружение сервисов, а также балансировку нагрузки примерно в 1000 строках кода.
Почему GeeORM больше ориентируется на xorm, а не на gorm?Автор нашёл дизайн xorm более понятным, чем gorm v1, поэтому интерфейс GeeORM в основном следует xorm, но заимствует некоторые детали реализации у gorm.
Есть ли здесь что-то помимо четырёх серий по 7 дней?Да, есть четыре небольшие демонстрации на Go WebAssembly: Hello World, регистрация функций, работа с DOM и колбэки.
Creator
geektutu
Size
1.1 MB
Stars
17K
Updated
CommitSep 05
Age
7y
Commits · 90 Days