附近约学生一晚上100块软件-免费风楼阁全国约,附近一百元三个小时,100块钱3小时上门二维码

          Gitee 官方博客
          • 产品动态
          • 企业案例
          • 项目推荐
          • 关于开源
          • 发现更多
          • 回到 Gitee
          • 产品动态
          • 企业案例
          • 项目推荐
          • 关于开源
          • 发现更多
          • 回到 Gitee

          热门开源Web开发框架推荐

          Gitee
          3 年前发布在 项目推荐
          热门开源Web开发框架推荐-Gitee 官方博客

          程序员圈有这么一句话:“不要重复造轮子” ,这句话也带来许多争议。

          要不要重复造轮子?

          有的人认为这是一种“拿来主义”的傲慢体现,因为你不造自己的轮子,就会缺乏核心技术,由此将一直受限,创新力也大幅度下降,发展空间将会一直被“卡脖子”,从而陷入落后于率先造轮者的步伐;而也有一部分人认为这是一种卓越的工作方式,他们认为并非每个人都能原创出核心的技术,也并非每个程序员都能成为项目的架构师或技术大牛,不重复造轮,而是拿到一个框架,在上面进行二次开发然后拿来去用,学习过程中也提高了效率,这不是什么不屑一顾的事。

          本周的主题并非是不鼓励自主创新,而是推崇自主创新,毕竟只有自主创新才能创造出属于自己的技术,才能提前避免一些风险,对抗现实世界的变化带来的动荡与不安,提高抗风险能力?!安灰馗丛炻肿印辈⒉皇鞘视煤诵募际鹾涂瞻琢煊颍夥矫婊故枪睦胫С帧霸炻帧币凰?。

          只是时至今日,国内的软件行业已然不同于过往的空白期,为了在更快的时间内进步,我们需要快速学习造轮子的套路?;痪浠八?, “站在巨人的肩膀上会让你事半功倍” 。如果你遇到问题,可以尝试这样一个角度:不要只想着自己从头搞定,先去看看有没有前人经验,看看是否有什么人在什么地方遇到过类似的问题,找到这个人,和对方建立联系获取相关信息,能够帮助你节约非常多的时间来做更重要的事情。

          这其中学习新技术、新框架是十分重要一方面,另一方面就是不能只是简单地学习这些技术、框架是怎么用的,要知其然,还要知其所以然。如果想要开发一套稳定的,容易维护的系统,在使用“轮子”的时候,就需要对轮子有足够的了解。知道这个“轮子”适用于什么样的场景,有什么样的特点、优点,会有什么样缺点。这样才能做到扬长避短,更好地使用轮子。因此今天,我们以此为契机,给大家分享一些优秀的开源 Web 开发框架,在先行者的经验上,一同学习、进步。如果你对“不必重复造轮子”或者下列“ Web 开发框架”项目有更深入的见解,欢迎大家在评论中一同讨论 ??

           Java


          JFinal

          开源许可证: Apache-2.0

          项目作者: JFinal

          项目地址: https://gitee.com/jfinal/jfinal

          推荐原因: JFinal 是一款基于 Java 语言的极速 WEB + ORM 框架,拥有 Java 语言优势的同时,拥有 Ruby、Python 等动态语言的开发效率。

          主要编程语言: Java

          项目示例:

          1.控制器(支持 Enjoy、JSP、Velocity、JSON 等等以及自定义视图渲染)。

          @Before(BlogInterceptor.class)
          public class BlogController extends Controller {
          
              @Inject
              BlogService service;
          
              public void index() {
                  set("blogPage", service.paginate(getParaToInt(0, 1), 10));
                  render("blog.html");
              }
          
              public void add() {
              }
          
              @Before(BlogValidator.class)
              public void save() {
                  getModel(Blog.class).save();
                  redirect("/blog");
              }
          
              public void edit() {
                  set("blog", service.findById(getParaToInt()));
              }
          
              @Before(BlogValidator.class)
              public void update() {
                  getModel(Blog.class).update();
                  redirect("/blog");
              }
          
              public void delete() {
                  service.deleteById(getParaToInt());
                  redirect("/blog");
              }
          }

          2.Service所有业务与sql全部放在Service层。

          public class BlogService {
          
              private Blog dao = new Blog().dao();
              
              public Page<Blog> paginate(int pageNumber, int pageSize) {
                  return dao.paginate(pageNumber, pageSize, "select *", "from blog order by id asc");
              }
              
              public Blog findById(int id) {
                  return dao.findById(id);
              }
              
              public void deleteById(int id) {
                  dao.deleteById(id);
              }
          }

          3.Model(无xml、无annotaion、无attribute)

          public class Blog extends Model<Blog> {
              
          }

          4.Validator(API引导式校验,比xml校验方便N倍,有代码检查不易出错)

          public class BlogValidator extends Validator {
              protected void validate(Controller controller) {
                  validateRequiredString("blog.title", "titleMsg", "请输入Blog标题!");
                  validateRequiredString("blog.content", "contentMsg", "请输入Blog内容!");
              }
          
              protected void handleError(Controller controller) {
                  controller.keepModel(Blog.class);
              }
          }

          5.拦截器(在此demo中仅为示例,本demo不需要此拦截器)

          public class BlogInterceptor implements Interceptor {
              public void intercept(Invocation inv) {
                  System.out.println("Before invoking " + inv.getActionKey());
                  inv.invoke();
                  System.out.println("After invoking " + inv.getActionKey());
              }
          }


          ymate-platform-v2

          开源许可证: Apache-2.0

          项目作者: 有理想的鱼

          项目地址: https://gitee.com/suninformation/ymate-platform-v2

          推荐原因: ymate-platform-v2 是一个简单、易用的轻量级 Java 应用开发框架

          主要编程语言: Java

          项目??楣δ埽?/strong>

          热门开源Web开发框架推荐-Gitee 官方博客

          HServer

          开源许可证: Apache-2.0

          项目作者: HServer

          项目地址: https://gitee.com/HServer/HServer

          推荐原因: HServer 是一个开发灵活,轻量级,低入侵,高并发的新型 Web 开发框架。

          主要编程语言: Java

          项目原理及流程:

          热门开源Web开发框架推荐-Gitee 官方博客

          C++


          drogon

          开源许可证: MIT

          项目作者: an-tao

          项目地址: https://gitee.com/an-tao/drogon

          推荐原因: 基于 C++14/17 的跨平台、高性能 HTTP Web 应用框架

          主要编程语言: C++

          操作案例:

          1.创建一个HttpSimpleController对象。

          /// The TestCtrl.h file
          #pragma once
          #include <drogon/HttpSimpleController.h>
          using namespace drogon;
          class TestCtrl:public drogon::HttpSimpleController<TestCtrl>
          {
          public:
              virtual void asyncHandleHttpRequest(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback) override;
              PATH_LIST_BEGIN
              PATH_ADD("/test",Get);
              PATH_LIST_END
          };
          
          /// The TestCtrl.cc file
          #include "TestCtrl.h"
          void TestCtrl::asyncHandleHttpRequest(const HttpRequestPtr& req,
                                                std::function<void (const HttpResponsePtr &)> &&callback)
          {
              //write your application logic here
              auto resp = HttpResponse::newHttpResponse();
              resp->setBody("<p>Hello, world!</p>");
              resp->setExpiredTime(0);
              callback(resp);
          }

          2.代码都可以由 drogon_ctl命令创建后这样创建控制器:

          /// The header file
          #pragma once
          #include <drogon/HttpSimpleController.h>
          using namespace drogon;
          class JsonCtrl : public drogon::HttpSimpleController<JsonCtrl>
          {
            public:
              virtual void asyncHandleHttpRequest(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback) override;
              PATH_LIST_BEGIN
              //list path definitions here;
              PATH_ADD("/json", Get);
              PATH_LIST_END
          };
          
          /// The source file
          #include "JsonCtrl.h"
          void JsonCtrl::asyncHandleHttpRequest(const HttpRequestPtr &req,
                                                std::function<void(const HttpResponsePtr &)> &&callback)
          {
              Json::Value ret;
              ret["message"] = "Hello, World!";
              auto resp = HttpResponse::newHttpJsonResponse(ret);
              callback(resp);
          }

          3.通过 HttpController 类创建一个 RESTful API:

          /// The header file
          #pragma once
          #include <drogon/HttpController.h>
          using namespace drogon;
          namespace api
          {
          namespace v1
          {
          class User : public drogon::HttpController<User>
          {
            public:
              METHOD_LIST_BEGIN
              //use METHOD_ADD to add your custom processing function here;
              METHOD_ADD(User::getInfo, "/{id}", Get);                  //path is /api/v1/User/{arg1}
              METHOD_ADD(User::getDetailInfo, "/{id}/detailinfo", Get);  //path is /api/v1/User/{arg1}/detailinfo
              METHOD_ADD(User::newUser, "/{name}", Post);                 //path is /api/v1/User/{arg1}
              METHOD_LIST_END
              //your declaration of processing function maybe like this:
              void getInfo(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, int userId) const;
              void getDetailInfo(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, int userId) const;
              void newUser(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, std::string &&userName);
            public:
              User()
              {
                  LOG_DEBUG << "User constructor!";
              }
          };
          } // namespace v1
          } // namespace api


          cppweb

          项目作者: 寻根

          项目地址: https://gitee.com/xungen/cppweb

          推荐原因: cppweb 是基于 C++ 开发的 Web 服务器,支持 C/C++、Python、Java 等多语言混合开发 Web 应用。

          主要编程语言: C++

          项目功能展示:

          热门开源Web开发框架推荐-Gitee 官方博客

           PHP


          Hyperf

          开源许可证: MIT

          项目作者: hyperf

          项目地址: https://gitee.com/hyperf/hyperf

          推荐原因: Hyperf 是一款基于 Swoole 4.5+ 实现的高性能、高灵活性的 PHP 持久化框架,特别适用于微服务和中间件的开发。

          主要编程语言: PHP

          实操教程: 请参考 https://course.swoole-cloud.com/videos/5/new?from=hyperf.io 查看详细教程进行操作。


          ThinkPHP

          开源许可证: Apache-2.0

          项目作者: ThinkPHP

          项目地址: https://gitee.com/top-think/think

          推荐原因: ThinkPHP 是一家拥有 15 年历史的老牌 PHP 开源框架

          主要编程语言: PHP

          项目操作方法演示:

          这是一个典型的 Index 控制器的操作方法定义,包含了两个操作方法:若不使用任何参数,如果定义了一个非可选参数,并且不是对象类型,则该参数必须通过用户请求传入,如果是 URL 请求,则通常是通过当前的请求传入,操作方法的参数支持依赖注入。

          <?php
          namespace app\controller;
          
          class Index 
          {
              public function index()
              {
                  return 'index';
              }
              
              public function hello(string $name)
              {
                  return 'Hello,'.$name;
              }
          }


          TimoPHP

          开源许可证: BSD-3-Clause

          项目作者: tomener

          项目地址: https://gitee.com/tomener/TimoPHP

          推荐原因: TimoPHP 是一个快速、灵活的 PHP Web 开发框架。

          主要编程语言: PHP

          目录结构:

          /data
            |-TimoSNS                         项目目录(自己项目名称,比如用TimoPHP开发的社区应用,叫TimoSNS,自定义)
            |   |-app                         应用目录
            |   |   |-cli                     命令行
            |   |   |-api                     移动端
            |   |   |   |-controller          控制器目录
            |   |   |   |_config.php          项目配置文件
            |   |-business                    公共业务逻辑
            |   |-cache                       运行时缓存目录
            |   |-middleware                  中间件
            |   |-provider                    服务提供者目录
            |   |-component                   组件目录
            |   |-config                      公共配置目录
            |   |   |-dev                     开发环境配置目录
            |   |   |-pro                     线上环境配置目录
            |   |   |-test                    测试环境配置目录
            |   |-lib                         自定义类库
            |   |-logs                        日志目录
            |   |-model                       模型目录
            |   |-public                      WEB目录(对外访问目录)名称自定义,如wwwroot、public
            |   |   |-api                     小程序
            |   |   |   |_index.php           小程序入口文件
            |   |-send                        推送(微信、小程序、android、IOS)
            |   |-service                     公共服务目录
            |   |-task                        异步任务
            |   |-vendor                      composer安装类库目录
            |   |-bootstrap.php               整个项目的启动文件
            |   |_composer.json
            |-TimoPHP                         框架,和项目在同一级目录

          JavaScript


          titbit

          开源许可证: MulanPSL-2.0

          项目作者: 疯狂的机械键盘

          项目地址: https://gitee.com/daoio/titbit

          推荐原因: titbit 是一款 Node.js 环境的Web后端框架,支持HTTP/HTTPS/HTTP2,也支持配置切换。

          主要编程语言: JavaScript

          流程展示:

          热门开源Web开发框架推荐-Gitee 官方博客

          Go


          GinSkeleton

          开源许可证: MIT

          项目作者: 张奇峰

          项目地址: https://gitee.com/daitougege/GinSkeleton

          推荐原因: 这是一个基于 Go 语言 Gin 框架封装的 Web 项目骨架。

          主要编程语言: Go

          项目流程展示:

          1.主线逻辑图:

          热门开源Web开发框架推荐-Gitee 官方博客

          2.核心主线调用链图

          热门开源Web开发框架推荐-Gitee 官方博客

          3.后台骨架图

          热门开源Web开发框架推荐-Gitee 官方博客


          go-zero

          开源许可证: MIT

          项目作者: kevwan

          项目地址: https://gitee.com/kevwan/go-zero

          推荐原因: go-zero 是一个集成了各种工程实践的 Web 和 RPC 框架。

          主要编程语言: Go

          项目架构展示:

          热门开源Web开发框架推荐-Gitee 官方博客


          orange

          开源许可证: Apache-2.0

          项目作者: qiqi

          项目地址: https://gitee.com/zhucheer/orange

          推荐原因: orange 是一款基于 Golang 语言的 web 开发框架

          编程语言: Go

          项目原理演示:

          热门开源Web开发框架推荐-Gitee 官方博客

          Delphi


          DelphiWebMVC

          开源许可证: Apache-2.0

          项目作者: PRSoft

          项目地址: https://gitee.com/pearroom/DelphiWebMVC

          推荐原因: 据项目作者表示,Delphi 在 Web 系统开发上没有像 Java 或 PHP 这样方便,对于一直使用 Delphi 的工程师来说是个遗憾,因此使用 Delphi 技术开发了一套 Web 框架,使用 MVC 模式,让工程师只需把精力放在模型与视图的设计上。

          主要编程语言: Delphi

          项目Demo演示:

          注:此项目详细操作请参考作者博客:https://my.oschina.net/delphimvc

          热门开源Web开发框架推荐-Gitee 官方博客
          Gitee开源开源项目

          本文系作者 @Gitee 原创发布在 Gitee 官方博客。未经许可,禁止转载。

          入门简单、轻量好用的嵌入式开发开源项目
          上一篇
          Gitee 企业版助力阳光照明,点亮照明行业的创新明灯
          下一篇
          近期文章
          • 启航 AI 新航道!Gitee 双十一与你共享智能新未来
          • 《中国DevOps现状调查报告(2023)》发布,Gitee 领跑国产平台
          • 研运一体化之下,Gitee 如何精准赋能银行实施大规模敏捷
          • 对数字「祛魅」,中大型规模企业如何进行有效的研发效能度量?
          • 从混乱到卓越,Gitee Code 如何治好 IT 部门的精神内耗
          • 科技赋能,Gitee 助力国家海关总署实现重大业务改革
          • 科大讯飞选择Gitee旗舰版,完成研发协作平台国产化替代
          • 用脑图做测试用例,高效到家了!
          • 信创驶入快车道,中国赛宝实验室选择 Gitee 搭建高效研发协作平台
          • 金融人怎么写出安全可靠的代码?知名证券企业这样做
          相关文章
          研运一体化之下,Gitee 如何精准赋能银行实施大规模敏捷
          对数字「祛魅」,中大型规模企业如何进行有效的研发效能度量?
          从混乱到卓越,Gitee Code 如何治好 IT 部门的精神内耗
          科技赋能,Gitee 助力国家海关总署实现重大业务改革
          关于我们

          Gitee(gitee.com)是 OSCHINA.NET 推出的代码托管·协作开发平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200 万的开发者选择 Gitee。

          品牌内容
          开源软件 GVP计划 Gitee 封面人物 CopyCat 代码克隆检测
          友情链接
          开源中国 Gitee Gitee 高校版 Gitee 企业版
          Copyright ? 2013-2025 Gitee 官方博客. Designed by nicetheme.
          • 产品动态
          • 企业案例
          • 项目推荐
          • 关于开源
          • 发现更多
          • 回到 Gitee
          热门搜索
          • Gitee
          • gitee 企业版
          • 码云
          • 开源项目
          • 码云Gitee
          • GVP
          • Git
          • 开源
          • 码云企业版
          • 码云周刊
          • 码云 gitee
          • DevOps
          • gitee企业版
          • 内源
          • 内部开源
          • innersource
          • 小程序
          • 企业版
          Gitee
          Top

          感谢您访问我们的网站,您可能还对以下资源感兴趣:

          附近约学生一晚上100块软件
          100元5小时上门服务内容 全国凤楼小姐兼职同城网站 2024全国各城市凤楼信息 全国空降同城微信电话号码 附近找小组联系方式