使用 Go 和 TailwindCSS 构建我的个人网站
最近,我发现andrewdavis.me这个域名可以购买。我之前也尝试过购买,但已经被占用了。我很快就买下了域名,但接下来需要决定在上面放什么。我决定建立一个个人网站,展示我的作品和写作。然而,我想利用这次机会学习,尝试以一种非常规的方式构建这个网站。目前最流行的两种个人网站构建方案是 WordPress 和静态网站生成器。我想要一个介于两者之间的方案:一个带有用于撰写文章的后端和一个依赖较少的自定义前端的网站。我用Go 语言和一些前端包(包括TailwindCSS)构建了这个网站。
使用 Gin 进行 Go 后端开发
我决定使用 Go 作为后端。在过去的几年里,Go 在服务器应用(尤其是微服务)中非常流行。我选择了Gin作为 Web 框架来帮助处理路由和模板服务。Gin 拥有类似 Sinatra 的语法,允许你将路由表达为 HTTP 方法以及路由中要调用的函数。
func main() {
router := gin.Default()
router.GET("/", func (c *gin.Context) {
c.HTML(http.StatusOK, "index.html")
})
}
我还引入了Gorm来访问数据库。Gorm 允许你将表编写为 Go 结构体,它会根据结构体字段构建列。然后,你就可以轻松地根据结构体查询记录了。
type Post struct {
gorm.Model
Name string
Content string `gorm:"type:text;"`
}
var post Post
db.First(&post)
fmt.Println(post.Name)
总而言之,我成功地使用 Go 构建了后端。我喜欢数据类型和编译检查带来的安全性。Go 的优点在于,如果你能让代码通过编译,那么你就能更有信心让应用程序正常运行。它的运行速度也非常快。然而,由于大部分请求时间都花在查询数据库上,因此实际速度提升与 PHP 或 Ruby 相比并没有显著差异。我不得不拼凑几个包来获得我需要的所有功能,但也有其他 Go 框架,比如Buffalo,可以提供更类似 Rails 的体验。
前端采用 TailwindCSS、SimpleMDE、Stimulus 和 Prism
我使用TailwindCSS作为我的样式框架。我已经成为 Tailwind 的忠实粉丝,并将其用于我所有的个人项目。虽然适应一个实用框架需要一些时间,但我非常喜欢它的灵活性和功能。它让我无需太多自定义 CSS 就能构建一个独特的网站。此外,它还附带一些很棒的默认配色方案和字体组合。
我在后端使用了SimpleMDE来提供 Markdown 编辑器。设置起来非常简单,而且运行起来没有任何问题。
另外,在后端,我使用了Stimulus来帮助我构建一些交互功能。Stimulus 是一个优秀的服务器渲染 HTML 框架,当我需要一些 JavaScript插件时,它已经成为 jQuery 的替代品。Stimulus 易于学习,并且比 jQuery 更容易维护。
最后,我在前端使用了Prism来高亮代码块。它的设置和运行也非常简单。它允许你选择需要高亮的语言,并提供了主题选择(明晚就赢了!)。
结论
andrewdavis.me现已上线运行,欢迎访问并分享你的想法!虽然我的主要博客平台是 Dev.to,但我喜欢拥有自己的网站来展示我的技能和写作。我计划添加一些页面来展示我目前的项目和过去的工作。我认为个人网站是尝试新模式和体验新语言乐趣的好方法。你的个人网站使用了哪些语言和库?
鏂囩珷鏉ユ簮锛�https://dev.to/restoreddev/building-my-personal-site-with-go-and-tailwindcss-5bhn