开源的国际里到处都是“奇珍异宝”,那些琳琅满目的开源项目,它们各有特色有的是简单清新的小工具,有的是令人称奇的黑科技,还有的是处理痛点的技能方案。这些开源项目处处散发着“诱人”的气味,让人跃跃欲试、骑虎难下。
不知同为程序员的你,常常看到高星、高性能、高效、交融了新特性的开源结构时,是否也有过想要试试的激动?当你怀着激动心颤抖的手,却在敲击第一行代码时犯了难:不知道写什么项目、不会搭建项目结构,此时此刻心里又难免打起了退堂鼓。
你可否不止一次苦楚的感慨道:“我仅仅想试一试,做个项目出来,怎么就那么难啊!”
今日 HelloGitHub 给我们带来的开源项目:RealWorld,就是为了协助你处理“把玩开源结构难”的问题,让你忘记苦楚和遗憾,重新引发那颗“跃跃欲试”、热爱技能的心。
一、介绍
RealWorld——我称其为**「Demo 之母」**。
它是一个由多种不同开源结构,以独自(前端/后端)或彼此组合(全栈)的方式,完成一个相似博客的常识共享渠道——Conduit 的示例项目集合。
这些项目采用了不同的技能栈,完成的是同一个 demo 应用(Conduit)。如下图所示:
该渠道前后端别离,包含身份验证、会话管理、数据库 CRUD 等功用。
在线:demo.realworld.io/
RealWorld 里边的项目覆盖前端、后端、客户端方向,它们采用不同编程言语的多种知名开源结构完成上述功用的类博客常识渠道。
示例用到的开源结构,包含 React、Koa、Next.js、Express、Django、Gin、Laravel 等等,希望借此通过实际项目让你快速了解这些开源结构,然后能够轻松上手。
可是因为 RealWorld 里项目众多,再加上保护也不积极,导致里边的项目质量参差不齐,其中有许多项目都现已中止保护了。所以我分别从 前端、后端、客户端 分类中,挑选了几个相对不错的项目,便利我们参阅和学习。
二、实战项目
下面是我翻遍了整个 RealWorld 项目,筛选出的精品项目。如果你看了觉得还不错的话,就点个“赞”支撑一下吧。
2.1 前端
Vue + Vite
地址:github.com/mutoe/vue3-…
Vue + Nuxt
地址:github.com/pocojang/nu…
Angular + NgRx + Nx
地址:github.com/stefanoslig…
React + Next + SWR
地址:github.com/reck1ess/ne…
2.2 后端
Python + Django + GraphQL
地址:github.com/ramzitannou…
Rust + ActixWeb + Diesel
地址:github.com/snamiki1212…
Go + Gin
地址:github.com/gothinkster…
Java + Spring Boot + MyBatis
地址:github.com/gothinkster…
Swift + Vapor
地址:github.com/iq3addLi/sw…
2.3 客户端
Kotlin
地址:github.com/coding-bloc…
React Native
地址:github.com/Kisilov-Vad…
因为篇幅问题,这儿就不再给我们过多罗列了。更多内容能够检查:
github.com/search?q=re…
三、最终
在整理这些开源项目的过程中,我发现了许多听都没听说过的开源结构,比如 Java 的 RESTful Web 结构:Dropwizard,这个项目竟然有 8.2k Star 之多!
地址:github.com/dropwizard/…
说回正题,虽然上面的这些项目完成的功用都相同而且很简单,但这样你就能够抛开事务逻辑,专于结构部分然后快速上手开源结构。又因为不同结构完成的都是一套功用,能够更直观地对比出结构间的区别和特点,还能有助于你做技能选型。
总而言之,不论你是新手学习新开源结构,仍是内行做技能选型挑开源结构,RealWorld 的这些开源项目或多或少都能帮到你。但它们中有的用到的开源结构版别较低或现已过时,使用时得注意一下,开源不易还望多多包容。
现在有了 RealWorld,当你再遇到那些让你摩拳擦掌的开源结构时,就知道从哪下手,不会再留有遗憾啦!
其实 Web 开发无外乎身份验证、会话管理、增删改查这些东西,不论多大的项目也离不开这些。正所谓
千里之行始于足下——《道德经》
也只要掌握了基础的功用,才能玩转这些开源结构,然后扩大你的武器库,在应对不同场景和多变的需求,能够做到举重若轻泰然处之。
最终,如果您觉得本期内容还不错:求赞、求保藏、求转发,您的支撑是对我最大的鼓舞!这儿是 HelloGitHub 我们下期见~
我正在参加技能社区创作者签约方案招募活动,点击链接报名投稿。