我們與劉乾組進行了互換。附加題目遇到的問題比較多,且有些直到最后也難以解決。
其中最主要的問題在於,劉乾組的代碼在給我們的時候並沒有完全封裝成dll的樣子,雖然文檔里列出了一些接口,但實質上都是一些可以直接使用的類。雖然能實現所有的功能,但形式上並不是我們想象中接口的樣子。我們嘗試將他們的數據結構轉換為我們的數據結構,之后再做一個適配層,利用他們提供的接口,實現我們所定義的幾個接口。然而,由於在接口的設計上大相徑庭,完成這一轉換所需的工作量相當大。於是,最終的適配層放棄了進行數據結構及接口的轉換,轉而去抽象幾個最基本的功能。比如出題、判卷。然后直接使用各自的接口實現這一功能。
所以,最終雖然我們成功地將雙方的前后端結合到了一起,但期間的耦合性很高,也改動了一定的代碼才完成了這一工作。
總結起來,我們認為在做附加題時主要的問題在於:
- 沒有給定標准的接口,所以每組的設計都不太相同
- 接口設計思路大相徑庭
- 沒有定義一些標准的數據結構
因此,整個附加題做下來問題很多,並沒有達到預想的效果。
綜上,若想保證前后端的正確銜接,需要前后端提前商定好接口,詳細定義好每一個接口的前置條件、后置條件、副作用等,形成統一的規范。否則,前后若事先缺乏溝通,則最終試圖連為整體時,就好像在做移植一樣,東改改西改改,而不像是在通過接口連接起來了。
