设为首页 加入收藏

TOP

simple go web application & 二维码生成 & 打包部署(一)
2019-05-23 14:33:26 】 浏览:143
Tags:simple web application 二维 生成 打包 部署

go语言简易web应用 & 二维码生成及解码 & 打包部署

转载请注明出处: https://www.cnblogs.com/funnyzpc/p/10801476.html

前言(闲扯)

(20190503)我知道今天会有其他活动,因此我提前买了杯咖啡,
(20190504)我知道深夜会完不成博客,  因此我加班到了这个点。
首先需要做的事情,Demo 准备并调试
还需要做的事情,构建github项目
以及要做的事情,README文档编写
最后要做的事情,生成一篇博客

简单WEB应用

话说一个简单的WEB应用需要多少行依赖,多少行代码,运行需要多大的package,需要多大的运行环境?

  • 对于java
    • 我需要构建下面这些包(5MB+)
          01) aopalliance-1.0.jar                aop的工具包                 `
          02) commons-logging-1.1.3.jar          commons的日志管理
          03) spring-aop-3.2.8.RELEASE.jar       Spring的切面编程
          04) spring-beans-3.2.8.RELEASE.jar     SpringIoC(依赖注入)的基础实现
          05) spring-context-3.2.8.RELEASE.jar   Spring提供在基础IoC功能上的扩展服务
          06) spring-core-3.2.8.RELEASE.jar      Spring的核心包
          07) spring-expression-3.2.8.RELEASE.jar  Spring表达式语言
          08) spring-web-3.2.8.RELEASE.jar         SpringWeb下的工具包
          09) spring-webmvc-3.2.8.RELEASE.jar      SpringMVC工具包
          10) jstl-1.1.2.jar                       JSP标准标签库
    • 需要编写以下代码(14行+)
          package com.test.controller;
          import org.springframework.stereotype.Controller;
          import org.springframework.ui.Model;
          import org.springframework.web.bind.annotation.RequestMapping;
          import org.springframework.web.bind.annotation.RequestMethod;
    
          @Controller
          @RequestMapping(value="/hello")
          public class HelloController {
              @RequestMapping(value="/world",method=RequestMethod.GET)
              public String hello(Model model){
                  model.addAttribute("msg", "你好spring mvc");
                  return "index";
              }
          }
    • 打包(jar or war 5MB+)
    • 部署和环境(jdk 100MB+ , tomcat 5MB+ total:105MB+)
  • 对于Go
    • 需要代码(15行+)
    package main
    
    import (
        "fmt"
        "log"
        "net/http"
    )
    
    func main() {
        http.HandleFunc("/", index)
        log.Println("请访问:", "http://127.0.0.1:2222")
        http.ListenAndServe(":2222", nil)
    }
    
    func index(w http.ResponseWriter, r *http.Request) {
        fmt.Printf("[%s|%s] -> http://%s%s \n", r.Method, r.Proto, r.Host, r.RequestURI)
        dateTime := time.Now().Format("2006-01-02 15:04:05")
    }
    • 打包(<6MB,upx加壳<2MB)
    • 部署和环境(<6MB or <2MB)

结论:一个java web应用部署不小于100MB,而一个go web应用最少只需要2MB,你真的没听错他真的很小而且迅速,唯一不能比的是
java的生态 太庞大了,这是java之所以存在的优势,不过这终将成为历史。

(以上 go 代码在这里:simpleServer.go)

二维码生成及解码

二维码简称(QR CODE),中文全名叫快速响应码,他的基础基础包含:向量运算、字符编码、图形识别等,需要具体了解的可涉猎此
二维码原理,这里不再从算法底层开始写起(毕竟大多数人都不会哈),
主要用到了开源都两个依赖(编码和解码)

  • 二维码生成

    这里用到了go-qrcode

  • Demo主要逻辑(已调试通过)
   // 写二维码
   func writeQrCode() {
       // 写二维码
       err := qrcode.WriteFile("https://funnyzpc.cnblogs.com", qrcode.Medium, 256, "D:/tmp/cnblogs.png")
       if err != nil {
           fmt.Println(err)
       }
   }
  • 二维码解码

    这里用到了qrcode

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇带小伙伴手写 golang context 下一篇深度解密Go语言之反射

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目