Thrift RPC 系列教程(3)——模組化

浮生若夢的程式設計發表於2019-02-15

模組化是好事,以及,它讓我聯想到了 C 語言,以及它那如同平原一樣的名稱空間。

為什麼需要模組化

所謂『模組化』,是一種很自然的事情,體現了『分而治之』的思想。

坦白來說,這是一個無需過多討論的話題。如果你寫過C 語言,就會對它那『近乎平坦』的名稱空間,感到熟悉。所有的函式,變數都在同一個全域性名稱空間(static 型別的除外,事實上,static 函式,是C語言中少數的模組化手段之一)。如果你 include一個東西,你都不知道你在幹嘛,you know nothing。比如:

#include <stdio.h>
#include <stdlib.h>
複製程式碼

有時候我也許能記得 printf 在 stdio裡面,但大部分時候我的記性不怎麼好,也不愛記憶這種東西。

而且,為了防止命名衝突,大部分時候,我們都要給我們的函式,加各種命名字首,比如,寫一個連結串列實現的時候,會出現諸如List_Add(List* l, void* item) List_Remove(List* l, void* item) 這樣的東西。這和上古時代的『匈牙利命名法則』(感興趣的朋友,可以百科搜尋一下),何其相似,各種無聊的 btn 字首,不明覺厲的變數命名。

關鍵是,在比較現代化的程式語言中,或者比較現代化的程式設計IDE中,偶爾能看到這樣的命名風格,這時讓人有一種莫名的,穿越上的喜感。

Thrift中的模組化

幸好,Thrift 雖然借用了 include 這個關鍵字,但是沒有搞成 C 語言那樣(也許用 import 是更好的選擇?)。用法如下:

// 匯入一個模組,模組的訪問空間,就是檔名
// 這裡及其明確清醒,甚至需要寫清楚檔名字尾
include "shared.thrift"

// 使用
// 必須要加名稱空間字首,否則訪問不到對應的要素
service Calculator extends shared.SharedService {

}
複製程式碼

和這個使用感覺,最相同的,就是 Go 語言了,既簡單又明確。

相關文章