Go 开源项目推荐:一个简单的 Go 练手项目
阅读本文大概需要 2 分钟。
Go 语言中文网微信群时不时有人问,有没有练手项目推荐。实话说,公众号陆续推荐过不少,但大家更擅长及时问,而不是找找。今天看到一个开源项目,值得学习了 Go 语言,但没有实战过的人练练手。
项目地址:https://github.com/cloudlena/s3manager,这是一个 Web 项目,通过 Web GUI 管理 S3 buckets。你可以基于这个项目开发自己的管理阿里 buckets 或七牛 buckets 等。
主要功能
该项目实现了如下功能:
列出你账号的所有 buckets
创建一个新的 bucket
列出某个 bucket 中的所有对象
将新对象上传到 bucket
从 bucket 下载对象
删除 bucket 中的对象
第三方依赖
该项目主要使用了下面两个第三方库:
github.com/gorilla/mux:没有使用 net/http,而是使用了这个路由库,也没有使用 gin、echo 之类的框架
github.com/spf13/viper:配置管理库。该项目的配置是通过环境变量设置的,环境变量通过 viper 读取
此外,就是基于 S3 的 SDK。
3、核心设计
简单介绍下该项目的核心设计。
1)前后端分离。
API 接口使用 RESTful 风格,例如:
r.Handle("/api/buckets/{bucketName}/objects", s3manager.HandleCreateObject(s3)).Methods(http.MethodPost)
前端基于 jQuery。
2)使用 Go1.16 的 embed
静态资源,包括模板和 css/js,通过 embed 嵌入最终的二进制文件中,使得编译后只需一个二进制文件即可运行,部署方便。
3编写了 Dockerfile
方便通过 Docker 部署。
4、总结
这个项目功能比较简单,作为练手比较合适。建议新手可以参照这个项目,申请一个 S3 或国内的对象存储,实现自己的一个 bucket 管理系统。
往期推荐
苦于没有 Go 实战项目?也许本文的一些想法可以试试
推荐阅读:
常用限流算法的应用场景和实现原理
资料下载
点击下方卡片关注公众号,发送特定关键字获取对应精品资料!
回复「电子书」,获取入门、进阶 Go 语言必看书籍。
回复「视频」,获取价值 5000 大洋的视频资料,内含实战项目(不外传)!
回复「路线」,获取最新版 Go 知识图谱及学习、成长路线图。
回复「面试题」,获取四哥精编的 Go 语言面试题,含解析。
回复「后台」,获取后台开发必看 10 本书籍。
对了,看完文章,记得点击下方的卡片。关注我哦~
Go 开源项目推荐:一个简单的 Go 练手项目相关推荐
- 推荐 Python 十大经典练手项目,让你的 Python 技能点全亮!
前言:如果有人问:"Python还火吗?""当然,很火.""哪能火多久呢?""不知道." 技术发展到现在衍生出许多种编程 ...
- 推荐Python十大经典练手项目,让你的Python技能点全亮!
前言:如果有人问:"Python还火吗?""当然,很火.""哪能火多久呢?""不知道." 技术发展到现在衍生出许多种编程 ...
- 推荐 9 个 GitHub 上练手项目(在线考试、仿美团、仿抖音、仿B站、仿头条...)
GitHub项目推荐 推荐的这几个 GitHub 项目并不是简单的 XX 管理系统,我会从下面这些方向推荐几个入门级别但是不那么 Low 的项目. "我自己是一名从事了6年web前端开发的老 ...
- 推荐:26种NLP练手项目(代码+数据)
1.分词 Word Segmentation chqiwang/convseg ,基于CNN做中文分词,提供数据和代码. 对应的论文Convolutional Neural Network with ...
- java 天猫项目_2018最新Java前后端练手项目【模仿天猫前端】
我之前也一直在找这样的项目,准备作为毕业项目,找工作时候的谈资:贯穿整个java知识点的,用到ssh,或者ssm框架,这样就可以让自己对java有一个整体的,清晰的认识.什么OA人事管理系统,什么ER ...
- [C++练手项目] DocAnalysis
[C++练手项目] DocAnalysis 文章目录 [C++练手项目] DocAnalysis 任务分析 编码 转换DOC文件到TXT 分词 停止词 两文档相同和不同字符数统计 总体实现思路 一.分 ...
- 【C语言】游戏开发:天天酷跑丨完美练手项目 [附源码]
目录 一.项目说明: 二.项目作用 三.项目技术要求 四.库.宏.主函数说明 五.项目实现 5.1游戏背景的实现 5.2实现Hero奔跑 5.3 实现Hero跳跃 5.4 优化帧等待 5.6使用结构体 ...
- python新手项目-推荐:一个适合于Python新手的入门练手项目
原标题:推荐:一个适合于Python新手的入门练手项目 随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人 ...
- python新手小项目-推荐:一个适合于Python新手的入门练手项目
随着人工智能的兴起,国内掀起了一股Python学习热潮,入门级编程语言,大多选择Python,有经验的程序员,也开始学习Python,正所谓是人生苦短,我用Python 有个Python入门练手项目, ...
最新文章
- Hololens Unity 开发入门 之 Hello HoloLens
- memcached图形界面的监控
- R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标、使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in)
- 一个程序员是怎么被逼疯的?
- edge新版 能够正则式_Python爬虫七 数据提取之正则
- Tensorflow快餐教程(8) - 深度学习简史
- debian linux修改语言,Debian Linux系统下英文系统切换为中文
- 程序猿之歌 PHP,1024丨腾讯第一首程序员之歌【Code代码】
- MOV及MP4文件格式中几个重要的Table
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- 与、或、短路或、自增、自减、的执行过程
- 【TypeError: float() argument must be a string or a number, not ‘map’】
- C - Insertion Sort Gym - 101955C(2018icpc沈阳/打表找规律)
- 前端_网页编程 Form表单与模板引擎(上)
- python时间处理,datetime中的strftime/strptime
- 高等数学第六版下册答案
- 财务数据图表分析,这些财务预算表模板免费用
- 【地球科学】使用USGS下载指定地区的遥感影像
- namecheap 添加二级域名
- 用好这28个工具,开发效率爆涨
热门文章
- 压缩ppt大小的方法
- 多语言 cocos 国家列表
- 3主3从redis集群扩缩容配置案例说明
- pip安装pytorch--cuda
- Debian - 搭建NextCloud私人云盘
- css文字过长显示...的几种方案
- 接口的基本语法与应用28,29
- Apache2.2+MySql5.5+PHP5.4的安装和配置(windows)
- 如何预防猪流感!猪流感!?会像SARS那样爆发吗?我们能作的就是预防。
- win10用hdmi线与电视连接了,但不显示的原因