是的,2020年五月,也就是一年前的 #TDD與持續重構 梯次,今天還有同學會在上面問問題,而我也樂於分享一下我的看法一起交流。
從他的發問例子,pull member up 加上 namespace 的 Money, 讓我想到他正在用 Ct 練習 Kent Beck 的 TDD by Examples part 1 的 Money Example.
所以順便分享了一下我覺得不要錯過的重點(美的地方)。
至於那個 builder 的視角,並不是書裡面寫的,而是我會想從 Expression 往下延伸嘗試的設計視角,這樣可以簡單的把一堆 計算 的內容跟組合封裝起來。
試過一次,覺得蠻有趣的,但畢竟不是真實產品等級,我的領域知識也還不足,不知道那樣的 builder 概念在該領域會不會碰到什麼不合適的使用場景就是了。
多嘗試,多從自己的輸出取得回饋,才能真的學到書本內想帶出來的知識點。
—
何況我還有 Kent Beck 可以請教 ❤️
補上在學員群組分享的片段:
—
好的抽象概念(隱喻)真的是可遇不可求,需要大量練習,如果大家有仔細看書的話,Kent Beck 也是在正式做這個例子十多遍以上,才領略到這個設計的角度。
這也是為什麼 一個足夠複雜 概念夠多的題目或需求,值得我們反覆練習
https://tdd.best/courses/classic-tdd-by-example-video-training/
我在這個影音課希望可以達到的效果也是如此,因為我自己一個語言做了十多遍(我目前有準備三個語言的版本 Java, C#, Python),很多遍的設計角度都不一樣。
有一些在前面幾次直覺不可行的,在後面幾次的岔路時,我就決定走走看。
大部分直覺都是對的,但也有幾次走出很不一樣的路。
如果「只練一次」,是沒機會走出那麼多不同的設計角度的。
同樣的,如果寫程式太慢,或是取得回饋的週期過長,你能嘗試的設計方案就會跟著變少,能學到的東西變少,同時要追求「剛好且簡單」的解決方案,機率就會變低。
大家可以想想,如果是自己在做 Money Example, 在真實世界有時間壓力底下,可能這輩子都不可能想出這樣簡單的設計方案。
如果都只在真實工作才學習、練習,那技能就會一直停滯。
永遠都只能用那種直白、procedure式、脆弱的流程設計角度,因為只會這種方式,自然自己最快的完成方式 就只會有這種副作用、複雜度最大的設計方式。
所以要多練 讓自己有多種視角,TDD 也是一種先從使用端來設計的視角,所以易用性的設計角度,物件的互動角度才能在這種視角被凸顯出來。
同時也有3部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,ดาวน์โหลดโค้ดได้ที่ ► http://bit.ly/2WwmTh4 เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs สอนภ...
「expression java」的推薦目錄:
expression java 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的精選貼文
ในภาษาเขียนโปรแกรม javascript, php , c, c++
ในนิพจน์ (expression) ที่ทำการเปรียบเทียบ
อนุญาตให้เขียน assignment กำหนดค่าให้กับตัวแปรได้
.
จึงอาจเกิดการสับสนระหว่างเครื่องหมาย = กับ ==
คือใจอยากเขียน == เพื่อเปรียบเทียบ แต่ดันพิมพ์ = ตัวเดียวเพื่อกำหนดค่าให้กับตัวแปร
.
เทคนิคอย่างหนึ่งคือตอนเปรียบเทียบ
ให้เอาค่าคงที่ไว้ฝั่งซ้ายมือ
ถ้าเกิดเผลอพิมพ์ = ตัวเดียวก็จะคอมไพล์ หรือรันไม่ผ่าน
รู้ปัญหาแต่แรกเลย
ดีไหม
.
แต่ถ้าเป็นภาษาเขียนโปรแกรมอื่นๆ
เช่น Python, Java, C#, swift, kotlin เป็นต้น
จะไม่มีปัญหา เพราะ ตรงนิพจน์เปรียบเทียบห้ามเขียน assigment กำหนดค่าให้กับตัวแปร พิมพ์ = แค่ตัวเดียวก็จะรู้ปัญหาแต่แรก
expression java 在 Phirence 陳寄頻 Facebook 的最佳解答
Awesome! Amazing! The most beautiful Hindu Temple in the world - Prambanan Temple Yogyakarta.
Candi Prambanan or Candi Rara Jonggrang is a 9th-century Hindu temple compound in Central Java, Indonesia, dedicated to the Trimurti, the expression of God as the Creator (Brahma), the Preserver (Vishnu) and the Destroyer (Shiva).
The temple compound, a UNESCO World Heritage Site, is the largest Hindu temple site in Indonesia, and one of the biggest in Southeast Asia. It is characterized by its tall and pointed architecture, typical of Hindu architecture, and by the towering 47-metre-high (154 ft) central building inside a large complex of individual temples.
expression java 在 prasertcbs Youtube 的最讚貼文
ดาวน์โหลดโค้ดได้ที่ ► http://bit.ly/2WwmTh4
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอนภาษา Python ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
สอนภาษาไพธอน Python OOP ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEIZzlTKPUiOqkewkWmwadW
สอน Python 3 GUI ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFB1Y3cCmb9aPD5xRB1T11y
สอนภาษา C เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
สอนภาษา C++ ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
สอนภาษา C# ► https://www.youtube.com/playlist?list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
สอนภาษา Java ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
สอนภาษา PHP เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
สอนภาษา R เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
#prasertcbs #prasertcbs_python
expression java 在 prasertcbs Youtube 的最佳貼文
แสดงเทคนิคการเขียน Comparator โดยใช้
1) anonymous class
2) lambda expression
3) method references
เพื่อเรียงลำดับประเภทตั๋วโดยสารเครื่องบิน
ดาวน์โหลดไฟล์ประกอบได้ที่ http://goo.gl/Q0iIr2
expression java 在 prasertcbs Youtube 的最佳貼文
แสดงให้เห็นถึงความสำคัญของ setter
การใช้งาน regular expression เพื่อลบตัวอักษรที่ไม่ใช่ตัวเลข
============
ดาวน์โหลดไฟล์ตัวอย่างได้ที่ http://goo.gl/bOupBD
============
playlist สอนการเขียนโปรแกรมเชิงวัตถุด้วย Java เบื้องต้น
https://www.youtube.com/watch?v=zC_0xOSX1dY&list=PLoTScYm9O0GEvHKqqib-AdVFwVe_2ln8W
============
playlist สอนภาษาจาวา Java เบื้องต้น
https://www.youtube.com/watch?v=O3rW9JvADfU&list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
============
playlist สอนจาวา Java FileIO การอ่านเขียนไฟล์
https://www.youtube.com/watch?v=y4dfsuShUaw&list=PLoTScYm9O0GEsSpaLgFDuPWzUEZdtnuWs
============
playlist สอนจาวา Java การใช้ Collections ต่าง ๆ เช่น ArrayList, Map, Set, Stack
https://www.youtube.com/watch?v=JYTIQip_pak&list=PLoTScYm9O0GEskLFgdC02Swit1fcDWspM
============
playlist สอนการทำ Unit Test ภาษาจาวา Java
https://www.youtube.com/watch?v=R11yg8hKApU&list=PLoTScYm9O0GHiK3KNdH_PrNB0G3-kb1Bi
============
playlist สอนภาษา C เบื้องต้น
https://www.youtube.com/watch?v=Z_u8Nh_Zlqc&list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
============
playlist สอนภาษา C# เบื้องต้น
https://www.youtube.com/watch?v=hhl49jwOIZI&list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
============
playlist สอนภาษา C++ เบื้องต้น
https://www.youtube.com/watch?v=_NHyJBIxc40&list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
============
playlist สอนภาษาไพธอน Python เบื้องต้น
https://www.youtube.com/watch?v=DI7eca5Kzdc&list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
============
playlist สอนภาษาไพธอน Python การเขียนโปรแกรมเชิงวัตถุ (OOP: Object-Oriented Programming)
https://www.youtube.com/watch?v=4bVBSluxJNI&list=PLoTScYm9O0GF_wbU-7layLaSuHjzhIRc9
============
playlist สอนภาษา R เบื้องต้น
https://www.youtube.com/watch?v=oy4qViQLXsI&list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
============
playlist สอนภาษา PHP เบื้องต้น
https://www.youtube.com/watch?v=zlRDiXjYVo4&list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
============
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่
https://www.youtube.com/subscription_center?add_user=prasertcbs