做工程新得

2021-05-25 00:25:19 字數 1800 閱讀 5161

自己做了第二遍機房收費系統,功能沒有太完善,因為有一些**太重複了 。一些細節的判斷還沒有來得及寫上。總之還不算乙個完美的作品!

做這個系統分三個階段。每個階段有每個階段的困惑和收穫。

第乙個階段,**全部摸索前進。這個階段的主要問題是作圖雖然清晰,但是到了**上,畢竟第一次用三層書寫,所以除錯**有點困難,思路總是變得模糊。然後除錯了幾個窗體後的收穫是學會了如何除錯**。習慣了用查詢分析器等去分析測試**。。。

第二個階段,**感覺很熟悉了以後就是思考優化結構的問題。我的工程裡面在bll和dal層前面分別加了兩層介面,然後例項化的時候bll層是直接例項化的dal層的類,所以介面作用好像不是特別的明顯。可有可無!!之後是dal連線資料庫的部分,因為我的是每乙個dal層的類對應乙個表,所以每次都用次連線資料庫的字串,感覺很是麻煩。然後那些給sql語句賦值的語句感覺很是繁瑣。總想有沒有什麼辦法可以改進,不過沒有想到如何處理。然後後面的**就越來越重複,到後來就直接貼上**了。做得越來越沒意思到了後面!!!然後好像說是可以用上設計模式,不過我的工程裡面都沒有用到。對於這些我很是困惑。

第三個階段,工程基本完善之後跟別人去請教**。交流後我發現了自己的架構和**均存在很多的問題。

先是包圖之間考慮介面的問題,就是介面沒有起到隔離dal和bll的作用,這裡如果在界面前加乙個抽象工廠,讓工廠去例項化下面的類,這樣就可以將兩個層分離開了。這裡需要用反**就。這樣我的第乙個問題得以解決。

然後是類圖,類圖在bll層問題最突出,bll層的類,沒有考慮該如何減少方法重複書寫在不同的類中。因為我的是 乙個類對應乙個窗體,所以好多窗體有重複的方法,書寫起來很繁瑣。討論後發現,這裡的分類其實應該按照一定的功能或者處理物件來分,這樣對乙個物件或者實現一類功能的方法就不會重複了。

之後是**實現中,這個bll層也有新的問題,這裡的方法是為窗體層服務的,所以每乙個服務,比如上機下機,都算是bll乙個方法,而具體他們再去對那個表進行操作,如何執行增刪改查方法,完全是dal層的方法。而我第一次做得時候,dal層方法完全和bll層的增刪改查方法一樣了。在介面層就把上下機這些方法分類了。這樣相當於介面層執行了bll層的方法,bll有點多餘了。所以這兩層功能有點不清晰。。。。dal是最複雜的,這裡因為每乙個類裡面都有連線資料庫等相同的部分,這裡其實完全可以把它提出來成為乙個類,讓其他的類去繼承的。這樣可以優化**。同時這裡連線資料庫有很多的方法,可以用配置檔案代替,可以用儲存過程,可以用拼接字串的方法。所以不應該侷限於一種方法去思考這個問題。

之後是實體類,剛開始做得時候呢總感覺實體類就是和表一一對應的,所以每乙個屬性都和表的每乙個字段對應,剛開始感覺這是最沒有可能出錯的地方。結果後來發現,其實實體類和表既然是兩個完全不同的概念,那麼他們必然有不同的作用。現在感覺表是實實在在儲存資料的,而實體類是在各層之間通過屬性傳遞資料的,既然如此,那實體就可以有更多的屬性來儲存這個過程中的其他的資料,而不僅僅是表裡面的資料了。所以實體類可以增加屬性根據不同的需要來完成不同的功能。

到這裡感覺自己的工程做的什麼都不是。真是今非昔比啊!剛建完模的時候,感覺對層的處理相當的合情合理。每一層的方法相當的全面,而且**中也能夠實現全部功能。而到現在,自己把自己的觀點全部否定了。。。。。哎。。。。

現在開始合作了,在合作的過程中現在又有了新的認識,估計不久又會發現自己思路全錯了。。。。。。。

通過做這個系統,感覺自信是很必要的,剛開始做得時候看著**比較生疏,所以就有點害怕,以至於重複的**都不敢寫。然後是這個過程是必須要體會的,即使做的並沒有自己想的那麼完美,因為在做到過程中遇到了新的問題,有了煩惱,才有一種動力去學習一門新的學科(比如設計模式)去改變這種現狀,這樣才會對後面的學科作用理解深刻。最後,交流是必不可少的,因為自己做東西,總是容易走進死胡同,畢竟誰都認為自己的是最好的最合理的。只有跟別人交流**後才會發現自己的不足。

(自做工程)階段總結

今天對自己的工程做了個粗略的實際執行測試,最大的體會就是有些情況是自己憑空想不出來的。一些想法只有付諸實驗 實踐才能見其究竟。拿自己調出來的錯誤來說,出現頻率較高的是連線方面 經常彈出,一般性網路錯誤 感覺出錯原因 主要的應該是自己計費的方式 用timer事件觸發,每次執行的操作要佔據很高的訪問流量...

從大出著眼,小處著手做工程(09 03 12)

做工程你得大處著眼,小處著手。做工程得從巨集觀把握,然後微觀調控。一天的課老師都在強調這一點 巨集觀掌握,微觀調控。想想光從老師對這件事的強調程度就可以知道這件事絕對很重要!我是這樣想的,做任何一件事要想做好那就得有理論依據,然後再在理論的基礎上進行實踐。但同時我想說的是任何理論都是要考實踐來驗證的...

web開發 新得

今天看了乙個同事用ruby on rails做了乙個 受益匪淺,學到了很多國外當前先進的新思想 1.ruby on rails 框架,css是bootstrap,restful風格 css跟js在生產環境壓縮成乙個檔案 開發的時候是多個css跟js,部署到生產伺服器的時候自動壓縮成乙個檔案,並且帶快...