相較於個人項目著重培養獨立解決問題的能力而言,結對編程提供了一個共同進步的機會。通過分析對方的代碼,我們可以經由對方的優點而見賢思齊,可以經由對方的不足而互助共勉。現在,我想談一談我對志豪同學工程文件優缺點的理解。 我認為,實現需求是軟體開發的第一步,在這一點上志豪同學幾近完美。他不僅僅是實現了邏輯 ...
相較於個人項目著重培養獨立解決問題的能力而言,結對編程提供了一個共同進步的機會。通過分析對方的代碼,我們可以經由對方的優點而見賢思齊,可以經由對方的不足而互助共勉。現在,我想談一談我對志豪同學工程文件優缺點的理解。
我認為,實現需求是軟體開發的第一步,在這一點上志豪同學幾近完美。他不僅僅是實現了邏輯層面上的出題功能,也沒有滿足於不夠便利的命令行輸入,而是做出了友好度更高、可用性更好的圖形用戶界面。密碼輸入時做暗文處理、切換類型時按鈕“三選一”、一鍵切換賬號、“生成試卷”按鈕提示試卷類型、Console同步輸出、使用相對文件夾輸出txt文件,這些細節無一不體現出他的設計之用心。也正因於此,軟體的使用體驗很是出色。金無足赤,我認為如果生成試卷之後程式能夠彈框提示,那麼會更加完美。txt文件中題目沒有標明題號,也是一個小小的不足。
談完使用體驗,現在回到代碼本身。我認為代碼所體現的面向對象的編程思想很值得學習。用不同的類分別表示登錄視窗、賬號匹配功能、出題功能、出題視窗與類型切換視窗,通過創建對象、事件處理、方法調用等方式實現功能之間的切換,這是非常棒的設計理念。GUI各類組件的合理使用與調用同樣體現了設計者設計之巧妙,程式中的異常處理體現出設計者扎實的Java編程基礎。很慚愧,我沒有設計圖形用戶界面,而是在代碼美化、性能優化上多下了一些功夫,所以我或許更能註意到一些細節並提出一些改進建議。希望共同學習進步,取長補短,力爭在接下來的結對編程中設計出更加出色的項目。
對《Java編程思想》的研讀幫助我養成了比較規範命名習慣,習慣上類的首字母大寫,變數與方法的首字母小寫,輔以駝峰式命名法,即用大寫字母標記每一個邏輯斷點。儘量取有意義的名字,比方說實現賬號匹配功能的類我更傾向於取名“AccountsMatch”,實現出題功能的函數我更傾向於命名為“setQuestion”。此外,我認為僅處理error而不去重視warning是一個比較不好的編程習慣,考慮到代碼中仍未處理的warning大多是一些無用的import,我更推薦刪去這些import。同時,我建議在代碼中添加更多註釋以增加可讀性,這樣在結對編程時會更加順利。除此之外便是一些演算法與數據結構上的完善,比如,在出題功能的實現過程中,我更推薦使用數組存儲操作符,出題時取隨機數作為索引會更加方便。
希望我們能在結對編程的學習過程中相互學習、共同進步。志豪同學編程習慣上的優點與出色的邏輯思維能力值得我認真學習,我也會不吝自己所學,提供最用心的建議。加油!