本文涉及的开源框架,仅包含前端、后端和客户端三个方面
开源的世界里到处都是“奇珍异宝”,那些琳琅满目的开源项目,它们各有特色有的是简单清爽的小工具,有的是令人称奇的黑科技,还有的是解决痛点的技术方案。这些开源项目处处散发着“诱人”的气息,让人跃跃欲试、欲罢不能。
不知同为程序员的你,每每看到高星、高性能、高效、融合了新特性的开源框架时,是否也有过想要试试的冲动?当你怀着激动心颤抖的手,却在敲击第一行代码时犯了难:不知道写什么项目、不会搭建项目结构,此时此刻心里又不免打起了退堂鼓。
你可否不止一次痛苦的感慨道:“我只是想试一试,做个项目出来,怎么就那么难啊!”
今天 HelloGitHub 给大家带来的开源项目:RealWorld,就是为了帮助你解决“把玩开源框架难”的问题,让你忘记痛苦和遗憾,重新唤起那颗“蠢蠢欲动”、热爱技术的心。
一、介绍
RealWorld——我称其为「Demo 之母」。
它是一个由多种不同开源框架,以单独(前端/后端)或相互组合(全栈)的方式,实现一个类似博客的知识分享平台——Conduit 的示例项目集合。
这些项目采用了不同的技术栈,实现的是同一个 demo 应用(Conduit)。如下图所示:
该平台前后端分离,包含身份验证、会话管理、数据库 CRUD 等功能。
在线:https://demo.realworld.io/
RealWorld 里面的项目覆盖前端、后端、客户端方向,它们采用不同编程语言的多种知名开源框架实现上述功能的类博客知识平台。
示例用到的开源框架,包括 React、Koa、Next.js、Express、Django、Gin、Laravel 等等,希望借此通过实际项目让你快速了解这些开源框架,从而能够轻松上手。
但是由于 RealWorld 里项目众多,再加上维护也不积极,导致里面的项目质量参差不齐,其中有很多项目都已经停止维护了。所以我分别从 前端、后端、客户端 分类中,挑选了几个相对不错的项目,方便大家参考和学习。
二、实战项目
下面是我翻遍了整个 RealWorld 项目,筛选出的精品项目。如果你看了觉得还不错的话,就点个“赞”支持一下吧。
2.1 前端
Vue Vite
地址:https://github.com/mutoe/vue3-realworld-example-app
Vue Nuxt
地址:https://github.com/pocojang/nuxt-realworld
Angular NgRx Nx
地址:https://github.com/stefanoslig/angular-ngrx-nx-realworld-example-app
React Next SWR
地址:https://github.com/reck1ess/next-realworld-example-app
2.2 后端
Python Django GraphQL
地址:https://github.com/ramzitannous/medium-graphql-backend
Rust ActixWeb Diesel
地址:https://github.com/snamiki1212/realworld-v1-rust-actix-web-diesel
Go Gin
地址:https://github.com/gothinkster/golang-gin-realworld-example-app
Java Spring Boot MyBatis
地址:https://github.com/gothinkster/spring-boot-realworld-example-app
Swift Vapor
地址:https://github.com/iq3addLi/swift-vapor-layered-realworld-example-app
2.3 客户端
Kotlin
地址:https://github.com/coding-blocks-archives/Conduit_Android_Kotlin
React Native
地址:https://github.com/Kisilov-Vadim/realworld
由于篇幅问题,这里就不再给大家过多罗列了。更多内容可以查看:
https://github.com/search?q=realworld
三、最后
在整理这些开源项目的过程中,我发现了很多听都没听说过的开源框架,比如 Java 的 RESTful Web 框架:Dropwizard,这个项目竟然有 8.2k Star 之多!
地址:https://github.com/dropwizard/dropwizard
说回正题,虽然上面的这些项目实现的功能都一样而且很简单,但这样你就可以抛开业务逻辑,专于框架部分从而快速上手开源框架。又因为不同框架实现的都是一套功能,可以更直观地对比出框架间的区别和特点,还能有助于你做技术选型。
总而言之,不管你是新手学习新开源框架,还是老手做技术选型挑开源框架,RealWorld 的这些开源项目或多或少都能帮到你。但它们中有的用到的开源框架版本较低或已经过时,使用时得注意一下,开源不易还望多多包涵。
现在有了 RealWorld,当你再遇到那些让你摩拳擦掌的开源框架时,就知道从哪下手,不会再留有遗憾啦!
其实 Web 开发无外乎身份验证、会话管理、增删改查这些东西,不管多大的项目也离不开这些。正所谓
千里之行始于足下——《道德经》
也只有掌握了基础的功能,才能玩转这些开源框架,从而扩充你的武器库,在应对不同场景和多变的需求,能够做到举重若轻泰然自若。
最后,如果您觉得本期内容还不错:求赞、求收藏、求转发,您的支持是对我最大的鼓励!这里是 HelloGitHub 我们下期见~