[爆卦]oop三大特性是什麼?優點缺點精華區懶人包

雖然這篇oop三大特性鄉民發文沒有被收入到精華區:在oop三大特性這個話題中,我們另外找到其它相關的精選爆讚文章

在 oop三大特性產品中有1篇Facebook貼文,粉絲數超過1萬的網紅91 敏捷開發之路,也在其Facebook貼文中提到, 【熱血一次就上癮】 分享特地從高雄上來上一天課的熱血夥伴,燒腦完的熱血感想。 真要說我推薦上課的順序,先【#單元測試實戰營】再【#演化式設計:#TDD與持續重構】是好一點的。 至於【#極速開發】,比較沒有依賴關係。先上,馬上受用。 後上,當你上完【單元測試】跟【重構與TDD】之後,...

  • oop三大特性 在 91 敏捷開發之路 Facebook 的最佳解答

    2019-01-16 23:35:10
    有 35 人按讚


    【熱血一次就上癮】

    分享特地從高雄上來上一天課的熱血夥伴,燒腦完的熱血感想。

    真要說我推薦上課的順序,先【#單元測試實戰營】再【#演化式設計:#TDD與持續重構】是好一點的。

    至於【#極速開發】,比較沒有依賴關係。先上,馬上受用。

    後上,當你上完【單元測試】跟【重構與TDD】之後,你可能就會發現自己寫代碼的速度,就像你看不會寫代碼的人一樣。

    尤其是,參加完【熱血 Coding Dojo】的社群活動,發現其他參加過【極速開發】的人,寫代碼怎麼比你順那麼多時,那種衝擊感會更強烈一點。

    此外補充一些,三月份的【C#進階設計-#從重構學會高易用性與高彈性API設計】跟五月份的【Clean Coder:#DI與AOP進階實戰】,也都是進階的實戰課。

    上課的方式,依然沒有投影片,依然會給需求讓大家動手做,依然會給挑戰讓大家感受卡點,依然不會直接介紹框架,而是讓你用基本的設計與原則,搞定你的需求跟卡點,再用框架來提昇效率和彈性。

    上課,就是要學一些網路文章、書上、影片上找不到或不容易自己理解的內容囉。

    繼兩個月前參加 TDD 與重構課程以後,想不到這麼快又與 91 哥見面,上個週末又參加了一堂單元測試實戰課程,因為一樣有蠻多感想的,所以還是來記錄一下心得 XD

    這次課程只有一天,完全聚焦在「怎麼寫有品質的單元測試」,沒有廢話,句句是精華。印象最深刻的就是課程開始的第一個小時內就學到了超好用的一招解耦手法,直接秒殺上次回去練習時覺得用 DI 很難處理的 Legacy Code 情境,當然也連帶理解了之前會覺得很難解,是因為對於單元測試的觀念還不夠完整。

    基本上這次課程進行的模式跟重構那堂差不多,用壓時間實作需求的方式推進,雖然不強制採取 Pair Programming,但用同樣語言的人還是被鼓勵坐一起,因為兩個人會一起被同樣的難題卡住,然後一起相看兩無言。果不其然,看似無害的第一題需求才剛完成,馬上就被緊接而來的測試需求逼死。原想說自從上次課程以來也算是練習過一些單元測試的撰寫了,不至於被秒殺吧,嗯,還真的被秒殺了呢。這逼死人的不是多嚇人的程式碼,用 inline 和三元運算甚至能寫成僅僅一行。透過這個實作,入手了上面講的解耦手法,原來不用什麼奇形怪狀的手段,善用 OOP 的特性就可以輕鬆解決難搞的耦合,在學習的當下內心真的是拍案叫絕激動不已啊。

    上午的內容主要就在打實單元測試的基礎觀念,到了下午的實作題才開始納入測試框架。跟使用其它任何框架一樣,沒有把框架代理的任務原理先摸清楚就直接享受便利,免不了都會有毛毛的感覺,像這樣先徒手走過一輪再用框架的學習模式讓人感覺還是挺紮實的。使用 Mock Framework 以後,產生假物件做測試變得更有效率且直觀了,甚至可以輕易實現原本覺得很難、很麻煩或不可能的測試,印證了很多事情「沒有做不到,只是不知道」的道理。最後一道實作題是集一日大成的需求,雖然不難但因為不夠熟練新掌握的觀念、技巧(還有打 code 太慢)最後也只完成一半,殘念得斯,回家後持續練習還是不可少的。

    兩個月前的重構課程中,有關於單元測試的部分是從 TDD 的觀點出發,關注的是如何從一開始就不讓路走歪;而這次課程的學習角度是偏向處理既有的 Legacy Code,在測試案例規格化的觀念上有更多著墨,以直接學到的實務技巧來說,這次比上次吸收的程度更大,但應該是我太廢了所以上次的重構課程顯得有點越級打怪,不過從前次的課程被啟發很多觀念也是完全不假。

    雖然兩次上課都打了那麼多感想,但真要推薦也很難推薦哪門課比較適合先上或後上,畢竟我覺得自己也是因為有上次課程的觀念為底,才讓這次課程能夠吸收得較好。如果是「想要試試 91 系列課程」,就蠻推薦有學習單元測試需求的朋友來試試看這堂,時間只有一天、價格也硬是比重構課程低一半以上,雖然直接被灌輸實務觀念這件事是無價的,但金錢有時候也是很現實必須考量的要素之一啊哈哈,這堂課就算觀念沒有被啟發,至少一定學得到技術。

    這次課程還有覺得超值回票價的一點就是,除了單元測試的實戰,91 還加碼開講了關於「架構設計」、「測試導入團隊」的觀念、「整合測試」以及「OOP 介面拆分聚合提升可測試性」的原則等等,都是從實務的角度出發,雖然不一定與單元測試直接關聯,但在軟體開發中卻都是息息相關的環節,有些議題尚未遇過感受還不深,但先記下來,我想有朝一日會碰上的。不過不確定是不是每次上課都有這一趴,感覺比較算是隨緣的部分,但應該也要歸功於同學蠻踴躍發問的啦,所以可以保證的一點是學員多提問 & 主動回答對大家都有幫助,很容易撿到寶啊!
    說到最值回票價的部分,莫過於新學到的測試手法直接應用於最近寫面試試題上了,所謂來得早不如來得巧。(好像應該等測驗有過再來說嘴)

    總之再次感謝雅令老ㄙ張仁瀚的相揪,雅令老ㄙ真的很優秀,第一題我被卡死的時候他很快就想到其它解法而且還實作完成惹,學長覺得慚愧R
    也謝謝 91 哥除了熱血上課還各種送書,書桌上待看的書本堆又變厚了...。

你可能也想看看

搜尋相關網站