查詢方式設計

PL

優點

語言查詢提供的查詢接口比較靈活。靈活帶來的優點是不言而喻的,它應對未來業務的變化能表現出更好的可擴展性,而且給用戶提供的接口也更加簡潔。所謂簡潔是指完成複雜的查詢邏輯只需要少量的語句,說明PL的描述力比較強。

缺點

  1. 使得後臺解析數據的複雜度變大,而且要完全描述出什麼是合法的查詢語句是非常困難的。
  2. 靈活帶來的缺點是不確定性增大,一般內部模塊在查詢時最好是不要用這樣的方式。因爲內部模塊之間的查詢方式一般都相對比較固定,變化的概率不大。除非業務發生劇烈變化,否則可以通過擴容查詢接口的方式來解決業務發展帶來的問題。
  3. 靈活帶來的另一個缺點是速度下降,越是靈活的查詢語言在解析方面花費的時間越長。

RPC

優點

接口完成的業務功能專一,專一往往就是暗示其具有着高內聚的特性,當然這個也不是絕對的。另一方面是相比起語言來說耦合度比較的低。語言一旦設計不好,就會影響所有這個語言能夠描述的業務。而RPC接口的話只完成某項具體的功能,所以就算接口設計不好,影響也只有使用這個接口的業務。

缺點

業務擴展時開發效率偏低,需要針對不同的功能增加不同的接口。所以需求一旦多了起來,就會導致維護的接口膨脹,因爲RPC的描述力太弱了。

PB

本質上是RPC的擴展版本,解決了RPC同一個功能擴展需要新增新接口的帶來的冗餘。

取捨原則

靈活性帶來的效率和解析複雜度下降沒有想象中那麼大,在需要使用靈活度更高的查詢時,果斷應該使用靈活度更高的查詢。查詢方式裏靈活性越來越大依次爲:方法調用(RPC),結構信息(Protocol buffer),查詢語言(SQL)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章