我正在開發一個與設備通信的軟件。創建具有多個函數的庫或創建類是否更好?
軟件將爲設備發送命令。該裝置具有使用以下協議來回答:
<STX><STX><COMMAND>[<DATA_1><DATA_2>...<DATA_N>]<CHKSUM><ETX>
其中:
<STX> is the Start of TeXt (0x55);
<COMMAND> can be 0x01 for read, 0x02 for write, etc;
<DATA> is any value;
<CHKSUM> is the checksum;
<ETX> is the End of TeXt (0x04).
所以,我要驗證所接收的數據。
然後,所接收的數據:
- 不能爲空;
- 必須有3個或更多字符;
- 在字符串數據的前兩個字符中必須有一個頭;
- 必須在字符串數據的最後一個字符中有一個「頁腳」;
- 必須具有有效的CheckSum。
如果答案是有效的,那麼我可以處理數據。但在我必須從收到的響應中提取這些數據之前。
好的,這是一個相對容易的任務。之前,我會以程序化的方式做到這一點,只使用一個功能並放置很多if。
現在我正在研究更多關於良好的編程實踐,事情似乎越來越難做。
要驗證設備答案,最好是創建一個類「ValidateReceivedData」,例如在這個類的構造函數中傳遞接收到的數據?然後創建一個名爲「IsReceivedDataValid」的公共方法來檢查上面給出的所有步驟?
或者也許會更好創建一個庫與幾個功能來驗證接收到的數據?
我也想用單元測試。
正如我之前說過的,我正在學習更多以製作更好的代碼。但是我意識到我現在花更多的時間來編寫代碼。而且有太多的問題正在出現,但在我看來,他們似乎很容易解決,但我沒有得到。
好的設計並不總是編寫代碼的最快方式。但從長遠來看,維護和添加功能要容易得多。所以這絕對是值得的。 – 2011-01-27 18:15:46