天天看點

DIY迷你郵件用戶端開發手記(一)

       基于娛樂開源commons-email-1.x包之後,花了點時間重新整理了一下代碼和GUI設計,隻想利用已有的元件搭起一個自己的郵件用戶端,如果在往高出走點,也可以弄一個郵件伺服器來。

      1.開發目的

        簡單,甚至單純的可怕。造重複的輪子,感受不一樣的過程

      2.開發環境

      3.需求,功能

       需求很實在,就是在學習的過程中想切身的感受一種軟體開發的疊代的過程。功能自然是基本滿足發郵件的功能,主要想着是弄一個可以将已經存在的文檔中的電子郵件位址直接作為收件人來使用,這樣也就達到根據不同的政策來實作不同的業務處理的功能。

     4.GUI設計

       軟體的核心是其中對錯綜複雜的業務進行的處理,不過沒有良好的使用者界面,顯然是挑戰這麼多年Windows的權威和價值觀。是以,關于GUI的設計也是一門很深的學問。自己這個郵件用戶端,滿足自身對美學的要求即可,不敢舍本逐末,也不敢殘害視角。

       貼出來一張最終的界面圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201211/140323894.png"></a>

    5. 停下來多想想。

       5.1  如何編寫這些政策性的郵件發送處理

       5.2  如何處理一些關于字元串,郵件位址驗證,擷取收件人位址資訊

       5.3  使用者界面的布局,各個元件在特定時間的狀态

       5.4  如何測試,并且保證已經完成的代碼将可以直接添加到工程中使用

    6. 錯過5,瞎忙乎了一陣

        寫到這裡算是對這幾周利用碎屑時間開發這個小應用的總結和反思吧。

     第一,雖然是碎屑時間,但是沒有對整個應用做一個較為全面的分析群組織策劃,而是匆忙的打開IDE,迫不及待的寫代碼,最後的結果是後面更多的碎屑時間用來收拾前面留下來的問題,基本上是對前面的代碼重新寫了一遍,而且還有點可惜的删減,重構,組織和整合。

  第二,經常會被一些事情打斷手頭這個應用的開發,由于沒有很好的設計,每次都感覺是新東西一樣,還得再次熟悉,各個類之間的關系顯的格外混亂,相反更是浪費時間,還打擊了積極性。

  第三,深思熟慮的重要性。沒有考慮好,請不要動手,可惜動手了;沒有設計好,請不要動手,可惜動手了;沒有測試完成,請不要開始下一塊的編寫,可惜還是動手了。可能大多數人都會煩這個毛病,最後的苦果當然還得用自己碎屑的時間給吃掉,這是何苦呢!這可能是苦逼生活來源的一部分吧。好的軟體是設計出來的,真沒錯,錯在太急于看到顯示出來的東西了。完了,開發周期延長了,瞎忙了一統。

     這是回過頭來看已經發生的問題,觸目驚心的讓人寒顫。本來看到自己做的東西,展示在自己面前了應該像剛開始動手寫的那會激動一下,可惜這個時候一切全無。倒是有Shift+Delete的沖動。軟體工程中有這麼一個笑話吧,說是人類制造的三種東西不能去看: “法律,香腸,軟體”。可以想象這些東西産生的過程,應才是極為豐富和讓人煩躁不堪的。

        這裡想回到一個關于為什麼寫部落格的問題上,了解很簡單,休閑的文章算是認識生活,感受生活,留下美好事物;技術文章自我剖析,揭露自我,追求進步。很多事情是無法經曆的,也有很多事情是沒有必要再去重走。是以寫下手記,提醒自己也同時幫助能夠從中擷取幫助的人。軟體開發的這個反反複複的過程,也許受夠了,不過如果繼續從事,那麼自然要安下心來繼續承受,但是承受的方式,态度将決定了能否感受到其中的愉快和成就感。說不定,還真Shift + Delete已成完成的工程,沒關系,接下來會更好。

本文轉自 secondriver 51CTO部落格,原文連結:http://blog.51cto.com/aiilive/1063834,如需轉載請自行聯系原作者