預先封裝數據的思路.md

預先封裝數據的思路.md

最近有兩位同窗開發開發了用程序在線競猜數字的小遊戲,能夠經過如下兩個網址去玩:php

bbaa的遊戲 http://bbaass.tk/math/html

codetiger的遊戲 http://www.codetiger.win/extra/index.phppython

以bbaa的遊戲爲例,是猜1-10000之間的一個數字,第一猜5000,和以後的每一次猜5000,
你須要發送的數據老是同樣的,因此能夠預先把數據封裝起來備用,直覺上以爲能夠節約極其少許的時間。api

好比你第一猜5000,你須要發送的數據格式下:
{"Send": "Aaswer", "useranme": "codegay", "math": "5000"}
後來你第二次猜5000,你仍是須要發送以下數據:
{"Send": "Aaswer", "useranme": "codegay", "math": "5000"}
依此類推第三次猜5000,只要數字相同,須要發送的數據都是相同的:
{"Send": "Aaswer", "useranme": "codegay", "math": "5000"}url

那乾脆就先把全部可能須要發送的數據先封裝起來備用咯,python3代碼以下:spa

  1. apiurl = "http://bbaass.tk/math/" 
  2. name = "codegay" 
  3. cmin = 0 
  4. cmax = 10001 
  5.  
  6. data = {r: {'send': 'Answer', 'username': name, 'math': str(r)} for r in range(cmin, cmax)} 

用法:
猜5000 == 調用 data[5000]
猜2003 == 調用 data[2003]code

一樣的思路繼續往底層發散:
底層HTTP庫須要處理和拼接的數據都是同樣的,硬件網卡須要發送的數據都是同樣的,
因此能夠考慮在更底層的方面封裝好數據。甚至定製專門用於發送數據的硬件。
我本身作不到,腦補一下仍是感受很嗨,雖然即便能作獲得也沒有什麼卵用。orm

相關文章
相關標籤/搜索