對開源框架躍躍欲試,卻在寫的時候犯了難?
本文涉及的開源框架,僅包含前端、後端和客戶端三個方面
開源的世界裡到處都是“奇珍異寶”,那些琳琅滿目的開源專案,它們各有特色有的是簡單清爽的小工具,有的是令人稱奇的黑科技,還有的是解決痛點的技術方案。 這些開源專案處處散發著“誘人”的氣息,讓人躍躍欲試、欲罷不能。
不知同為程式設計師的你,每每看到高星、高效能、高效、融合了新特性的開源框架時,是否也有過想要試試的衝動? 當你懷著激動心顫抖的手,卻在敲擊第一行程式碼時犯了難 :不知道寫什麼專案、不會搭建專案結構,此時此刻心裡又不免打起了退堂鼓。
你可否不止一次痛苦的感慨道:“我只是想試一試,做個專案出來,怎麼就那麼難啊!”
今天 HelloGitHub 給大家帶來的開源專案:RealWorld,就是為了幫助你解決“把玩開源框架難”的問題, 讓你忘記痛苦和遺憾,重新喚起那顆“蠢蠢欲動”、熱愛技術的心。
一、介紹
RealWorld——我稱其為 「Demo 之母」 。
它是一個由多種不同開源框架,以單獨(前端/後端)或相互組合(全棧)的方式,實現一個類似部落格的知識分享平臺——Conduit 的示例專案集合。
這些專案採用了不同的技術棧,實現的是同一個 demo 應用(Conduit)。如下圖所示:
該平臺前後端分離,包含身份驗證、會話管理、資料庫 CRUD 等功能。
RealWorld 裡面的專案覆蓋前端、後端、客戶端方向,它們採用不同程式語言的多種知名開源框架實現上述功能的類部落格知識平臺。
示例用到的開源框架,包括 React、Koa、Next.js、Express、Django、Gin、Laravel 等等,希望藉此通過實際專案讓你快速瞭解這些開源框架,從而能夠輕鬆上手。
但是由於 RealWorld 裡專案眾多,再加上維護也不積極,導致裡面的專案質量參差不齊,其中有很多專案都已經停止維護了。所以 我分別從 前端、後端、客戶端 分類中,挑選了幾個相對不錯的專案,方便大家參考和學習 。
二、實戰專案
下面是我翻遍了整個 RealWorld 專案,篩選出的精品專案。如果你看了覺得還不錯的話,就點個“贊”支援一下吧。
2.1 前端
Vue + Vite
地址: http://github.com/mutoe/vue3-realworld-example-app
Vue + Nuxt
地址: http://github.com/pocojang/nuxt-realworld
Angular + NgRx + Nx
地址: http://github.com/stefanoslig/angular-ngrx-nx-realworld-example-app
React + Next + SWR
地址: http://github.com/reck1ess/next-realworld-example-app
2.2 後端
Python + Django + GraphQL
地址: http://github.com/ramzitannous/medium-graphql-backend
Rust + ActixWeb + Diesel
地址: http://github.com/snamiki1212/realworld-v1-rust-actix-web-diesel
Go + Gin
地址: http://github.com/gothinkster/golang-gin-realworld-example-app
Java + Spring Boot + MyBatis
地址: http://github.com/gothinkster/spring-boot-realworld-example-app
Swift + Vapor
地址: http://github.com/iq3addLi/swift-vapor-layered-realworld-example-app
2.3 客戶端
Kotlin
地址: http://github.com/coding-blocks-archives/Conduit_Android_Kotlin
React Native
地址: http://github.com/Kisilov-Vadim/realworld
由於篇幅問題,這裡就不再給大家過多羅列了。更多內容可以檢視:
http://github.com/search?q=realworld
三、最後
在整理這些開源專案的過程中,我發現了很多聽都沒聽說過的開源框架,比如 Java 的 RESTful Web 框架:Dropwizard,這個專案竟然有 8.2k Star 之多!
地址: http://github.com/dropwizard/dropwizard
說回正題, 雖然上面的這些專案實現的功能都一樣而且很簡單,但這樣你就可以拋開業務邏輯,專於框架部分從而快速上手開源框架 。又因為不同框架實現的都是一套功能,可以更直觀地對比出框架間的區別和特點,還能有助於你做技術選型。
總而言之, 不管你是新手學習新開源框架,還是老手做技術選型挑開源框架,RealWorld 的這些開源專案或多或少都能幫到你 。但它們中有的用到的開源框架版本較低或已經過時,使用時得注意一下,開源不易還望多多包涵。
現在有了 RealWorld,當你再遇到那些讓你摩拳擦掌的開源框架時,就知道從哪下手,不會再留有遺憾啦!
其實 Web 開發無外乎身份驗證、會話管理、增刪改查這些東西,不管多大的專案也離不開這些。正所謂
千里之行始於足下——《道德經》
也只有掌握了基礎的功能,才能玩轉這些開源框架,從而擴充你的武器庫,在應對不同場景和多變的需求,能夠做到舉重若輕泰然自若。
最後,如果您覺得本期內容還不錯: 求贊、求收藏、求轉發 ,您的支援是對我最大的鼓勵!這裡是 HelloGitHub 我們下期見~
- Python 中生成器的原理
- 對開源框架躍躍欲試,卻在寫的時候犯了難?
- 一文讀懂數倉中的pg_stat
- Linux系列之查詢命令
- 聊聊支付流程的設計與實現邏輯
- (資料庫提權——Redis)Redis未授權訪問漏洞總結
- springboot的@ConditionalOnBean註解
- 使用 Cheat Engine 修改 Kingdom Rush 中的金錢、生命、星
- Java String類
- 一次 Keepalived 高可用的事故,讓我重學了一遍它!
- 面試突擊61:說一下MySQL事務隔離級別?
- 小樣本利器2.文字對抗 半監督 FGSM & VAT & FGM程式碼實現
- Spring框架系列(7) - Spring IOC實現原理詳解之IOC初始化流程
- crane:字典項與關聯資料處理的新思路
- 面試突擊60:什麼情況會導致 MySQL 索引失效?
- Java遞迴實現評論多級回覆
- Docker 與 K8S學習筆記(二十四)—— 工作負載的使用
- vue 的常用事件
- 158_模型_Power BI 使用 DAX SVG 打通製作商業圖表幾乎所有可能
- 資料庫系列:MySQL索引優化總結(綜合版)