對開源框架躍躍欲試,卻在寫的時候犯了難?
本文涉及的開源框架,僅包含前端、後端和客戶端三個方面
開源的世界裡到處都是「奇珍異寶」,那些琳琅滿目的開源項目,它們各有特色有的是簡單清爽的小工具,有的是令人稱奇的黑科技,還有的是解決痛點的技術方案。這些開源項目處處散發著「誘人」的氣息,讓人躍躍欲試、欲罷不能。
不知同為程式設計師的你,每每看到高星、高性能、高效、融合了新特性的開源框架時,是否也有過想要試試的衝動?當你懷著激動心顫抖的手,卻在敲擊第一行程式碼時犯了難:不知道寫什麼項目、不會搭建項目結構,此時此刻心裡又不免打起了退堂鼓。
你可否不止一次痛苦的感慨道:「我只是想試一試,做個項目出來,怎麼就那麼難啊!」
今天 HelloGitHub 給大家帶來的開源項目:RealWorld,就是為了幫助你解決「把玩開源框架難」的問題,讓你忘記痛苦和遺憾,重新喚起那顆「蠢蠢欲動」、熱愛技術的心。
一、介紹
RealWorld——我稱其為「Demo 之母」。
它是一個由多種不同開源框架,以單獨(前端/後端)或相互組合(全棧)的方式,實現一個類似部落格的知識分享平台——Conduit 的示例項目集合。
這些項目採用了不同的技術棧,實現的是同一個 demo 應用(Conduit)。如下圖所示:
該平台前後端分離,包含身份驗證、會話管理、資料庫 CRUD 等功能。
RealWorld 裡面的項目覆蓋前端、後端、客戶端方向,它們採用不同程式語言的多種知名開源框架實現上述功能的類部落格知識平台。
示例用到的開源框架,包括 React、Koa、Next.js、Express、Django、Gin、Laravel 等等,希望藉此通過實際項目讓你快速了解這些開源框架,從而能夠輕鬆上手。
但是由於 RealWorld 里項目眾多,再加上維護也不積極,導致裡面的項目品質參差不齊,其中有很多項目都已經停止維護了。所以我分別從 前端、後端、客戶端 分類中,挑選了幾個相對不錯的項目,方便大家參考和學習。
二、實戰項目
下面是我翻遍了整個 RealWorld 項目,篩選出的精品項目。如果你看了覺得還不錯的話,就點個「贊」支援一下吧。
2.1 前端
Vue + Vite
Vue + Nuxt
Angular + NgRx + Nx
地址://github.com/stefanoslig/angular-ngrx-nx-realworld-example-app
React + Next + SWR
2.2 後端
Python + Django + GraphQL
Rust + ActixWeb + Diesel
地址://github.com/snamiki1212/realworld-v1-rust-actix-web-diesel
Go + Gin
地址://github.com/gothinkster/golang-gin-realworld-example-app
Java + Spring Boot + MyBatis
地址://github.com/gothinkster/spring-boot-realworld-example-app
Swift + Vapor
地址://github.com/iq3addLi/swift-vapor-layered-realworld-example-app
2.3 客戶端
Kotlin
地址://github.com/coding-blocks-archives/Conduit_Android_Kotlin
React Native
由於篇幅問題,這裡就不再給大家過多羅列了。更多內容可以查看:
三、最後
在整理這些開源項目的過程中,我發現了很多聽都沒聽說過的開源框架,比如 Java 的 RESTful Web 框架:Dropwizard,這個項目竟然有 8.2k Star 之多!
說回正題,雖然上面的這些項目實現的功能都一樣而且很簡單,但這樣你就可以拋開業務邏輯,專於框架部分從而快速上手開源框架。又因為不同框架實現的都是一套功能,可以更直觀地對比出框架間的區別和特點,還能有助於你做技術選型。
總而言之,不管你是新手學習新開源框架,還是老手做技術選型挑開源框架,RealWorld 的這些開源項目或多或少都能幫到你。但它們中有的用到的開源框架版本較低或已經過時,使用時得注意一下,開源不易還望多多包涵。
現在有了 RealWorld,當你再遇到那些讓你摩拳擦掌的開源框架時,就知道從哪下手,不會再留有遺憾啦!
其實 Web 開發無外乎身份驗證、會話管理、增刪改查這些東西,不管多大的項目也離不開這些。正所謂
千里之行始於足下——《道德經》
也只有掌握了基礎的功能,才能玩轉這些開源框架,從而擴充你的武器庫,在應對不同場景和多變的需求,能夠做到舉重若輕泰然自若。
最後,如果您覺得本期內容還不錯:求贊、求收藏、求轉發,您的支援是對我最大的鼓勵!這裡是 HelloGitHub 我們下期見~