- Go Web編程
- 謝孟軍
- 1564字
- 2018-12-27 18:47:48
自序
緣起
自從一年半之前看到許式偉的博客,我認識了Go這一門語言,發現Go是C系的,個人又偏愛C語言,所以就開始了Go語言的學習之路,用三天時間學習了Go語言的所有語法和基礎知識。恰逢當時手上有一些小項目練手,在項目開發中進一步發現 Go語言具有三大優點:第一,性能好,我的Mac能夠跑2萬左右的并發;第二,語法簡單,對于以前有C語言基礎的人來說非常容易上手,我僅用一天時間就熟悉了基本語法,Go語言是一個上手即用的語言;第三,開發效率高,目前有很多編輯器支持Go語言,對于開發效率有很大的提升,一般的小項目半天就能解決。通過一年多來對Go語言項目的實戰累積,我越來越覺得Go是一門工程語言,而不是其他學院派。無論是開發、測試、部署、項目規模的擴展,或者是團隊協作,Go語言考慮都非常周到;而且其語法恰當好處,不多不少,夠用就是它的設計原則,所以Go語言非常適合項目的開發。
選擇Go語言,還有一部分是緣于我的個人崇拜,Go語言的作者不乏鼎鼎大名的牛人:Robert Griesemer、Rob Pike和Ken Thompson,他們曾設計C語言和Unix系統,后來隸屬Plan9團隊。重要的是,在Go語言的完全開源中,很多名人都參與了進來,使得這個項目越來越完善:Go1.1出來后,性能提升了30-50%,而且GC(垃圾回收機制)已經達到了非常高的水準。相信在開源社區和大牛的共同推動下,Go語言會茁壯成長。
Go Web
我以前是PHP開發者,有十年左右的Web開發經驗,但在Go語言的顯著優勢下,逐漸走向了Go語言的開發之路。我發現Go語言雖然有很強大的網絡編程庫,但是在Web編程方面沒有詳細的介紹,也缺少一些比較實用的庫,所以結合先前的Web開發經驗,以及Go語言本身的網絡編程庫,開始了這本書的創作過程,希望更多同行能夠加入到Go語言的開發行列。
這本書主要分三部分,第一部分是Go語言的基礎語法,主要介紹了Go語言的一些語法特性、環境配置和開發工具。第二部分是Web開發,主要介紹了Go Web的基本原理、表單處理、數據庫操作、Session和Cookie處理、文本處理、Socket編程、安全加密、國際化和本地化、錯誤處理和調試、如何部署和維護等知識點,并且針對整個Web 開發中需要用到的知識點,結合 Go 語言代碼的原理進行了詳細的介紹,針對 Go語言在 Web 開發方面不存在的工具,提供了詳細的實現方式。第三部分是應用框架beego,主要介紹了beego框架的設計、實現及應用。目前書中提到的一些功能都可以在我的github找到相應的代碼,方便讀者進行深入的研究。
這是一本關于Web的書,我覺得特別適合以下幾種開發者:
● 如果你是PHP或者其他動態語言愛好者,Go語言不一定能帶給你很大的驚喜,因為原來的速度不是根本問題。但如果是類似API應用方面,使用Go語言之后,你會發現性能得到了一個量的提升,這本書中就有詳細介紹API開發的實例。
● 如果你是C語言愛好者,強烈建議你學習和使用Go語言。Go語言稱為21世紀的C語言,它不僅可以調用C語言程序,又可以提供足夠的便利;雖然速度上稍有犧牲,但無關大雅。大部分場景下,Go語言都能帶給你與C語言媲美的性能,對于某些確實性能關鍵的場合,我們也可以通過cgo,讓Go語言和C語言搭配使用。
● 如果你是Java愛好者,那么也建議你學習一下Go語言,因為Java能給你的, Go語言能給得更好。
● 如果你是C++愛好者,那么趕緊來看看Go語言吧,因為光學習C++特性的時間,已經可以開發多個Go語言項目了。
致謝
Go 社區里的同仁們給了我很大的支持,如果沒有他們的反饋和幫助,我就不能順利完成本書。非常感謝四月份平民、Hong Ruiqi、BianJiang、Oling Cat、Wenlei Wu、polaris、雨痕等網友的熱心指導,還有很多github中的貢獻者,本書是在大家共同協作努力下才得以完成。
我還要感謝符隆美編輯對我的支持,當我才思枯竭、延期脫稿時,她經常鼓勵我、開導我,使我在壓力下完成此書并最終出版。
最后要感謝家庭對我的莫大支持,妻子劉玉娟幫我收集資料,幫忙完成了本書的大部分整理工作,兒子們傾聽我的思路想法,沒有他們,我也沒有毅力完成寫作,謝謝他們。
謝孟軍
2013年4月于上海
- 案例式C語言程序設計
- Machine Learning with R Cookbook(Second Edition)
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- SQL Server 2012數據庫管理與開發項目教程
- Jupyter數據科學實戰
- Jenkins Continuous Integration Cookbook(Second Edition)
- 零基礎入門學習Python(第2版)
- Java實戰(第2版)
- Processing創意編程指南
- Clean Code in C#
- Go語言底層原理剖析
- Learning Grunt
- 大數據時代的企業升級之道(全3冊)
- DB2SQL性能調優秘笈
- WCF全面解析