PHP转go开发真的很难吗?从这款框架看腾讯云智慧教育的技术转型

1,019 阅读1分钟

腾讯云智慧教育产业链技术升级之http应用框架——Tigo。

引言:

腾讯内部原先一些老旧的PHP业务,近年来都在逐渐进行技术栈切换,一要“上云”,二要“切go”。在这个业务背景下,易上手的go框架开始使用了。

新旧技术栈的对比:

旧技术栈:

编程语言:PHP(Yii框架腾讯二次开发版本)

数据库:MySQL、Redis

负载均衡:NGINX

新技术栈:

编程语言:Go(Tigo框架)

数据库:CDB

负载均衡:CLB

其中CDB是腾讯云的组件,包含MySQL与redis。CLB是腾讯云提供的负载均衡组件。

Yii框架的helloworld:

<?php

namespace app\controllers;

use yii\web\Controller;

class SiteController extends Controller
{
    // ...现存的代码...

    public function actionSay($message = 'Hello')
    {
        return $this->render('say', ['message' => $message]);
    }
}

Tigo框架的Helloworld:

package main

import (
    "github.com/karldoenitz/Tigo/TigoWeb"
    "net/http"
)

// handler
type DemoHandler struct {
    TigoWeb.BaseHandler
}

func (demoHandler *DemoHandler) Get() {
    demoHandler.ResponseAsText("Hello Demo!")
}

// 路由
var urls = []TigoWeb.Router{
    {"/demo", &DemoHandler{}, nil},
}

func main() {
    application := TigoWeb.Application{
        IPAddress:  "127.0.0.1",
        Port:       8888,
        UrlRouters: urls,
    }
    application.Run()
}

Tigo框架的简介:

Tigo是一款Model-view-template特性的web应用框架,简单易上手,熟悉tornado或者flask的同学可以快速上手。

项目github地址:点击此处

项目主页:点击此处

新产品的检验:

目前腾讯云智慧教育开放平台企鹅智笔课堂、企鹅星盟、企鹅派等项目都有在用。