摘要:本章以實(shí)戰(zhàn)方式來(lái)對(duì)比以下與的寫(xiě)法。寫(xiě)這類(lèi)的文章也遭到了很多質(zhì)疑,作為一個(gè)手記去發(fā)布僅僅為了讓想去學(xué)習(xí)其他語(yǔ)言的朋友了對(duì)新語(yǔ)言的一個(gè)認(rèn)識(shí),不是去對(duì)比其不同。
前言
作為一名PHP程序員,我感到榮幸。但在時(shí)代不斷的變遷中,要具備足夠的知識(shí)才可生存。
那就從Go語(yǔ)言學(xué)起把。
希望看到本篇文章的你可以對(duì)Go有一個(gè)基本的認(rèn)識(shí)。本系列文章與我自己學(xué)習(xí)Go語(yǔ)言的方式去描述。以PHP代碼與Go代碼的對(duì)比加以區(qū)分理解。
這是轉(zhuǎn)型手記的最后一章,在往下沒(méi)辦法再去寫(xiě)了,需要詳細(xì)的看書(shū)去了解。本章以實(shí)戰(zhàn)方式來(lái)對(duì)比以下PHP與Golang的寫(xiě)法。
這里使用Laravel與Beego(基于Go開(kāi)發(fā)的MVC框架)來(lái)演示
安裝Laravel
// 通過(guò)composer直接安裝,簡(jiǎn)單易用 composer global require "laravel/installer" // 創(chuàng)建一個(gè)項(xiàng)目 laravel new blog
Beego
// go自身就有包管理 go get github.com/astaxie/beego // 創(chuàng)建項(xiàng)目也非常簡(jiǎn)單 bee api blog目錄結(jié)構(gòu)
Laravel
// laravel 的結(jié)構(gòu)這里就不再闡述 | - app | - bootstrap | - config | - database | - public | - resources | - routes | - storage | - tests | - vendor
Beego
// 顯而易見(jiàn),beego并沒(méi)有l(wèi)aravel那樣過(guò)度設(shè)計(jì)(雖然過(guò)度設(shè)計(jì)并非指目錄, // 但以看目錄就知道beego真的沒(méi)有太多東西) blog ├── conf │ └── app.conf ├── controllers │ └── object.go │ └── user.go ├── docs │ └── doc.go ├── main.go ├── models │ └── object.go │ └── user.go ├── routers │ └── router.go └── tests └── default_test.go路由
Laravel
Route::get("/user", "UserController@index");
Beego
// 與laravel的使用方式差不多 // 這里為了統(tǒng)一,路由直接綁定控制器方法只有下列這種 // beego 還提供了注解方式 , 詳情見(jiàn) https://beego.me/docs/mvc/controller/router.md beego.Router("/user",&UserController{},"get:index")模型 (Model)
Laravel
Beego
// Beego通過(guò)結(jié)構(gòu)體名稱(chēng)作為表名,并且orm操作的所有字段都必須提前聲明 package models import ( "github.com/astaxie/beego/orm" ) type User struct { Id int `json:"id"` Tel string `json:"tel"` Password string `json:"password"` Status string `json:"status"` } func init() { orm.RegisterModel(new(User)) }控制器Laravel
User::findOrFail($id)]); } }Beego
package controllers import ( "github.com/astaxie/beego" "github.com/astaxie/beego/orm" ) // 這里相當(dāng)于繼承了父類(lèi) beegoController type MemberController struct { beego.Controller } func (c *CityController) Index() { var results []orm.Params orm.NewOrm().QueryTable("member"). Values(&results) c.Data["json"] = results c.ServeJSON() }總結(jié)學(xué)Go有1個(gè)多月的時(shí)間了。寫(xiě)這類(lèi)的文章也遭到了很多質(zhì)疑,作為一個(gè)手記去發(fā)布僅僅為了讓想去學(xué)習(xí)其他語(yǔ)言的朋友了對(duì)新語(yǔ)言的一個(gè)認(rèn)識(shí),不是去對(duì)比其不同。而找其語(yǔ)法相似點(diǎn)。
語(yǔ)言只是工具,希望各位PHP工程師不要僅限于去使用PHP,這一年看到很多寫(xiě)PHP程序員未來(lái)之路一類(lèi)的文章,但從未提出要去學(xué)習(xí)其他語(yǔ)言。
不要將自己圈在一個(gè)領(lǐng)域,不要做井底之蛙。
致謝感謝你看到這里,希望本篇文章可以幫到你。謝謝
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/29656.html
摘要:前言作為一名程序員我感到榮幸。但在時(shí)代不斷的變遷中,要具備足夠的知識(shí)才可生存。本系列文章與我自己學(xué)習(xí)語(yǔ)言的方式去描述。以代碼與代碼的對(duì)比加以區(qū)分理解。沒(méi)有類(lèi)的概念,本章在語(yǔ)法使用上來(lái)對(duì)比與之間的區(qū)別。 showImg(https://segmentfault.com/img/bVbi4ot?w=800&h=533); 前言 作為一名PHP程序員,我感到榮幸。但在時(shí)代不斷的變遷中,要具備...
摘要:前言作為一名程序員我感到榮幸。但在時(shí)代不斷的變遷中,要具備足夠的知識(shí)才可生存。那就從語(yǔ)言學(xué)起把。希望看到本篇文章的你可以對(duì)有一個(gè)基本的認(rèn)識(shí)。本系列文章與我自己學(xué)習(xí)語(yǔ)言的方式去描述。以代碼與代碼的對(duì)比加以區(qū)分理解。 showImg(https://segmentfault.com/img/bVbiKHc?w=1500&h=1000); 前言 作為一名PHP程序員,我感到榮幸。但在時(shí)代不斷...
摘要:前言作為一名程序員我感到榮幸。但在時(shí)代不斷的變遷中,要具備足夠的知識(shí)才可生存。那就從語(yǔ)言學(xué)起把。希望看到本篇文章的你可以對(duì)有一個(gè)基本的認(rèn)識(shí)。本系列文章與我自己學(xué)習(xí)語(yǔ)言的方式去描述。以代碼與代碼的對(duì)比加以區(qū)分理解。 showImg(https://segmentfault.com/img/bVbiKHc?w=1500&h=1000); 前言 作為一名PHP程序員,我感到榮幸。但在時(shí)代不斷...
摘要:個(gè)人網(wǎng)站最近剛寫(xiě)了一個(gè)手機(jī)在線播放的電影站使用日常手記更新使用的的查詢(xún)作用域的本地作用域去自定義可復(fù)用的約束集合,方便鏈?zhǔn)秸{(diào)用什么是本地查詢(xún)作用域本地作用域允許我們定義通用的約束集合以便在應(yīng)用中復(fù)用。 關(guān)于作者 程序開(kāi)發(fā)人員,不拘泥于語(yǔ)言與技術(shù),目前主要從事PHP和前端開(kāi)發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開(kāi)發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:...
閱讀 4063·2021-11-16 11:44
閱讀 5319·2021-10-09 09:54
閱讀 2072·2019-08-30 15:44
閱讀 1750·2019-08-29 17:22
閱讀 2825·2019-08-29 14:11
閱讀 3450·2019-08-26 13:25
閱讀 2383·2019-08-26 11:55
閱讀 1676·2019-08-26 10:37