对开源框架跃跃欲试,却在写的时候犯了难?

本文涉及的开源框架,仅包含前端、后端和客户端三个方面

对开源框架跃跃欲试,却在写的时候犯了难?

开源的世界里到处都是”奇珍异宝”,那些琳琅满目的开源项目,它们各有特色有的是简单清爽的小工具,有的是令人称奇的黑科技,还有的是解决痛点的技术方案。 这些开源项目处处散发着”诱人”的气息,让人跃跃欲试、欲罢不能。

对开源框架跃跃欲试,却在写的时候犯了难?

不知同为程序员的你,每每看到高星、高性能、高效、融合了新特性的开源框架时,是否也有过想要试试的冲动? 当你怀着激动心颤抖的手,却在敲击第一行代码时犯了难:不知道写什么项目、不会搭建项目结构,此时此刻心里又不免打起了退堂鼓。

对开源框架跃跃欲试,却在写的时候犯了难?

你可否不止一次痛苦的感慨道:”我只是想试一试,做个项目出来,怎么就那么难啊!”

今天 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 我们下期见~

Original: https://www.cnblogs.com/xueweihan/p/16456927.html
Author: 削微寒
Title: 对开源框架跃跃欲试,却在写的时候犯了难?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554154/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 深入理解Apollo核心机制之配置读取——前言

    前言 Apollo是当下较为火热的配置中心,顾名思义自然是管理配置的,那么它是如何获取配置的呢?本文会简单介绍相关机制,很多东西自然解释得不到位,后续会有单独章节深追源码看具体实现…

    技术杂谈 2023年7月25日
    065
  • 面试中常见智力题

    确实,这种题旧根脑筋急转弯一样,你见过,才能立马想到,没见过,那确实有点难在现场回答出来。 桶装水 只有两个无刻度的水桶,一个可以装6L水,一个可以装5L水,如何在桶里装入3L的水…

    技术杂谈 2023年6月21日
    092
  • 四类日志

    系统 代理 网关 操作 posted @2022-08-04 14:42 papering 阅读(11 ) 评论() 编辑 Original: https://www.cnblog…

    技术杂谈 2023年5月31日
    0109
  • go-切片的追加

    // The append built-in function appends elements to the end of a slice. If // it has suffi…

    技术杂谈 2023年7月11日
    082
  • 语音开源库积累

    音频采集播放 OpenAL OpenAL 最初是由 Loki Software 所开发。是为了将 Windows 商业游戏移植到 Linux 上。Loki 倒闭以后,这个专案由自由…

    技术杂谈 2023年5月31日
    0109
  • 【转】SVG动态图标是如何实现的

    这篇文章给大家分享的内容是SVG动态图标是如何实现的,有需要的朋友可以参考一下。 在 loading.io 上能看到好多效果惊艳的loading图标。它们都是用svg写成的,寥寥几…

    技术杂谈 2023年6月1日
    076
  • Docker私有仓库搭建

    Docker私有仓库搭建 1、Docker Registry 网上有很多的 Registry服务器都支持第三方用户注册,而后基于用户名去做自己的仓库,但是使用互联网上的 Regis…

    技术杂谈 2023年6月21日
    096
  • Jquery_效果-隐藏显示、淡入淡出、滑动面板、简单的动画队列

    1 DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset=&q…

    技术杂谈 2023年7月24日
    072
  • Hazelcast

    声明 本系列文章为学习Hazelcast的笔记,内容大部分都为官方文档翻译,如果对Hazelcast感兴趣,可移步Hazelcast查看官方原版文档。 学习目的 公司项目服务化改造…

    技术杂谈 2023年6月1日
    0100
  • EBS QRCODE

    qrcode_java0.50beta10.tar [root@ebs12vis ~]# su – applmgr [applmgr@ebs12vis ~]$ cd $…

    技术杂谈 2023年6月1日
    075
  • 分布事务和分布式锁

    分布式事务 1 两阶段提交 二阶段提交协议(Two-phase Commit,即 2PC)是常用的分布式事务解决方案,即将事务的提交过程分为两个阶段来进行处理:准备阶段和提交阶段 …

    技术杂谈 2023年7月25日
    076
  • vue系列—响应式原理实现及Observer源码解析(七)

    DOCTYPE html> <html> <head> <title>Vue.js github commits exampletitle…

    技术杂谈 2023年6月1日
    089
  • yum安装Mysql8.0

    停止MySQL service mysqld status service mysqld stop 卸载已经安装过的MySQL 检查是否已经安装 rpm -qa|grep mysq…

    技术杂谈 2023年6月21日
    0117
  • 461. Hamming Distance

    The Hamming distance between two integers is the number of positions at which the correspo…

    技术杂谈 2023年6月21日
    065
  • PyQt5 Designer==5.15.2.3.0.2 启动新路径

    切换为python8并更新到最新的pyqt5-tools, qt designer新路径为:C:\Program Files\Python38\Lib\site-packages\…

    技术杂谈 2023年7月11日
    063
  • Spring Boot实现数据访问计数器

    1、数据访问计数器 在Spring Boot项目中,有时需要数据访问计数器。大致有下列三种情形: 1)纯计数:如登录的密码错误计数,超过门限N次,则表示计数器满,此时可进行下一步处…

    技术杂谈 2023年6月21日
    089
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球