Swift 全棧開發之路 (一)protoc && SwiftPM

The Tips

  • 結合VaporGoogle Protocol Buffers實踐一款簡單的應用
  • 使用SwiftPM建立項目,編寫Server端代碼

Google Protocol Buffers

Protocol buffers are Google’s language-neutral, platform-neutral, extensible mechanism for serializing structured data — think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.html

Protocol Buffers 是一種輕便高效的結構化數據存儲格式,能夠用於結構化數據串行化,或者說序列化。它很適合作數據存儲或 RPC 數據交換格式。可用於通信協議、數據存儲等領域的語言無關、平臺無關、可擴展的序列化結構數據格式。支持多種語言,詳見Google 官方文檔java

其次,Google今年開源了gPRC,gPRC用到的數據存儲格式就是 protocol buffers。 python

#####使用Protocbuf的好處c++

**「高效」**性能比XML快,存儲比XML小 **「易於使用」**只要按編寫好數據結構,而後經過命令行工具,能夠轉換到不一樣的語言環境下使用,目前已經支持了java,c++,python,OC,還有Swift等等 **「省流量」**同一條數據信息,是JSON的1/10,XML的1/20,性能是XML的接近10倍git

#####如何使用Protocbuf,大體分兩步 一、使用protobuf 的語法構建你須要的數據類型 二、使用命令行轉化成你須要的語言格式,好比C++,Java,Swift等github

#####安裝protoc和**swift-protobuf-plugin**編程

$ brew install protobufswift

讓protobuf能夠轉化成Swift格式,須要安裝最近開源的**swift-protobuf** 這裏就不作闡述,能夠直接到Github上跟着教程走vim

#####舉個簡單的例子 step1,構建數據結構(由於.proto是二進制文件,能夠在命令行上直接建立)設計模式

$ vim Search.proto

syntax = "proto3";
message SearchRequest {
  string query = 1;
  int32 page_number = 2;
  int32 result_per_page = 3;
}
複製代碼

在輸入wq!退出編輯後,執行

$ protoc --swift_out=. my.proto

能夠在該目錄下找到Person.pb.swift的文件

工程若是須要使用只要導入這個文件便可,而不須要Person.proto這個二進制文件。


咱們使用SwiftPM來嘗試一下

Last Remarks

上一篇至今已經有兩個月了,有同窗已經在催我寫第(二)篇了。當初是想要在一週後發(二)的,可是實話說,我不知道要從什麼地方開始寫,我不懂的地方太多了,怕寫錯,寫的不深刻,沒有什麼技術水平。這個月我沒有閒着,對服務端Swift編程依然很感興趣。

  • 看了不少大神的文章;Instapaper通道
  • 看了Hcaking with Swift關於Server-side Swift的書;
  • 常常逛Slack,看來自世界各地的人們在討論Vapor,也很感謝有個大佬幫我解決了個人vapor命令行錯誤。
  • 看完了IBM出的書「Extending Swift Value(s) to the Server」,講了Kitura、SwiftPM、ValueType 、Protocol Oriented Programming,學了不少。
  • 瞭解了MVVM設計模式
  • 實踐如何用Swift處理protobuf,感謝@諸葛俊偉的幫助。
  • 寫了幾篇關於Swift 面向協議編程的文章。
  • 用Swift作了爬蟲,amazing
  • 固然最後還有準備期末考試...

想引用在某文章看的一句話,大概是這個意思

互聯網的路是沒有盡頭的,只有不斷的學習,才能在這個大浪中躋身前列

###Write the code, change the world.

相關文章
相關標籤/搜索