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

2021-09-11 13:03:51 字數 1029 閱讀 6206

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

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

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

#include 

#include

複製**

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

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

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

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

// 匯入乙個模組,模組的訪問空間,就是檔名

// 這裡及其明確清醒,甚至需要寫清楚檔名字尾

include "shared.thrift"

// 使用

// 必須要加命名空間字首,否則訪問不到對應的要素

service calculator extends shared.sharedservice

複製**

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

python系列教程3

python唯一的缺點就是,在目前現有的實現方式下,與c和c 這類編譯語言相比,python的執行速度還不夠快。教程後面將對實現方式的概念進行詳細闡述。簡而言之,目前python的標準實現方式是將源 的語句編譯 或者說是轉換 為位元組碼的形式,之後再將位元組碼解發布來。由於位元組碼是一種與平台無關的...

python系列教程3

宣告 在人工智慧技術教學期間,不少學生向我提一些python相關的問題,所以為了讓同學們掌握更多擴充套件知識更好的理解人工智慧技術,我讓助理負責分享這套python系列教程,希望能幫到大家!由於這套python教程不是要由所寫,所以不如我的人工智慧技術教學風趣幽默,學起來比較枯燥 但它的知識點還是講...

Go 系列教程 3 變數

變數指定了某儲存單元 memory location 的名稱,該儲存單元會儲存特定型別的值。在 go 中,有多種語法用於宣告變數。var name type package main import fmt func main my age is 0 變數可以賦值為本型別的任何值。上一程式中的 age...