通過將近一週的共同努力,HnuLyx和我終於完成了項目,期間心酸苦辣,受益良多,請容許我一一道來。html
Q: 如何複用我的項目實現結對編程項目?java
A: 我的項目主要是分爲核心的出題程序和簡單的命令交互兩個部分,咱們在結對編程了調用了出題程序部分的代碼,來完成咱們的項目。算法
正文開始...編程
咱們在看到需求後,首先先標記了需求內的主體需求點,如:GUI界面、用戶提供手機號,點擊註冊將收到一個註冊碼,用戶可以使用該註冊碼完成註冊等需求,共同確立了主要方向。咱們一致認爲,先完成主要功能,而後添加各類部件以及美化,可是初步GUI的設計框架必定要有必定的可拓展性,能夠很好的容納各類功能部件。以後,咱們在UI設計上,集思廣益,共同討論,完成了以下的草圖(包含頁面跳轉),而且明確了分工:HnuLyx主要負責內部運行算法方面的內容,我主要負責UI美化以及算法與UI拼接部分的工做,再由咱們二人共同提出想法,分工完成。框架
值得一提的是,在開始前,咱們沒有當即着手製做UI以及編寫算法,咱們先對Java的UI類進行了從新編寫與封裝,造成了uiTools的package,方便複用,減小重複性的代碼,極大的減小了工做量;同時,咱們還共同註冊了騰訊工蜂,以便對想法以及程序缺陷進行管理,制定時間點,里程碑,幫助咱們完成項目。函數
HnuLyx和我開始了高效率的開發工做,常常一塊兒編程,遇到雙方代碼融合部分的bug,咱們都會在一塊兒進行交流,合做解決問題。期間,咱們對如何可以高效的交流進度,解決問題進行了思考。爲了解決同步性、協調性問題,在工做前,咱們都會和對方說明目前的着力點,大概完成的時間,以及雙方對某個功能實現時須要的數據類型,寫好函數,便於開發調用。對於項目製做過程當中的靈感與附加興奮性需求,咱們會進行備忘,放入工蜂中,而後着力開發咱們的主體功能。對於當前的困難,進行鍼對性解決,利用工蜂里程碑,創建結點,體現編程合做的階段性。而且共同約定命名方式,使用小駝峯命名法。post
整體來講,咱們在發現問題,研究問題,解決問題中學習,而且總結經驗。學習
(1)磨刀不誤砍柴功優化
必定要先規劃好框架,方向,定位,在開工,有規劃,有階段性的進行開發,纔會更加有效率;對於技術而言,一樣如此,要先了解JavaGUI能夠幹什麼,有哪些好用的類與函數,而後再結合設計方案,進行開發,這樣會使項目體驗感,可操做性獲得極大的提升。ui
(2)團結就是力量
過橋之因此不能齊步走,是由於你們在經過一個步調上;編程中想要快速實現功能,解決問題,須要結對的咱們在同一方向上進行努力,解決問題,按期交流與階段性交流能夠有效的提升團隊的同步性;其實,真正意義上的結對編程是用兩人用一臺電腦,輪流編程,在這個方面,咱們積極運用在瞭解決問題方面,先將問題分享,說明邏輯,而後輪流解決問題,共同商議。
(3)我的解決問題能力
其實,GUI的實現須要不少函數來實現不少功能,面對想要添加但沒有接觸過的功能,咱們如何解決?咱們本身須要在不尋求他人幫助的狀況下,可以獨立解決問題的能力,上網搜索,看博客,查參考書,等等不少方式,都是解決問題的方法,這也是咱們提升本身的有效途徑之一
(1)代碼框架
敲代碼,框架性很重要,這裏的框架,包含了書寫規範,定義規範,邏輯規範。我在編程中有一些複製粘貼的地方,總會出現遺漏的現象,爲後期處理bug帶來不少麻煩,主要在之後更加註重這方面的強化。在註釋方面,進行了部分關鍵點註釋,須要保持,而且要多參考優秀代碼,學習其好的規範和算法,提升代碼可讀性。
(2)代碼優化
編程中,有言:高類聚,低耦合。代碼中有一些參數在調用時,每每一行要寫很長,極大的影響了代碼的可讀性。對於涉及的框架設計,咱們根據須要,創建了用戶類,捲紙類等,幫助程序編寫,但我認爲,依然有很大的優化空間,須要往後積極學習,向優秀項目看齊。
最後,在這裏和你們分享一些資源,同時附上了本次項目功能說明的博客連接 HNU_小初高數學學習軟件_功能說明 和 隊友HnuLyx發佈的博客(內含流程圖) 結隊編程總結分析 ,但願你們能夠多多提一些建議,相互學習,共同進步。