【重構】使用 strategy pattern 來取代複雜的 switch cases 與 if/else statement
上回在客戶那邊跟著他們一起重構 legacy code 中一大陀的 if/else if 裡面複雜的邏輯。(不同層級、模組的 cache 中做不同的處理)
因為當時時間有限,大家技能水平普遍有點跟不上,所以雖然讓產品程式碼變得乾淨一點,但對學習重構來說,大家少的東西還是太多了。
因此答應了他們,會再弄個簡單一點的範例,包含重構的過程步驟,source code,以及重構的操作過程錄成影片,供他們台灣跟國外的 RD 可以學習跟練習。
--
這例子其實也是我幾年前 3 天 TDD 版本中,重構的 workshop 裡面擷取出來的一段核心,從 C# 換成了 Java,只是重構過程的行雲流水程度,已經今非昔比了。有興趣的朋友可以看一下,我是怎麼用 IDE 在重構的。
身為 JetBrains Taiwan 的 training partner,總是要有點功力才能撐得起這個資格啊。
--
※ 影片網址:https://www.youtube.com/watch?v=zO-NnNC-xyg&feature=youtu.be&ab_channel=JoeyChen
我不定時會錄一些技術相關的影片,有興趣就來按一下小鈴鐺訂閱吧。
※ GitHub commit history: https://github.com/tdd-best/strategy-sample/commits/video
※ 想要了解更完整的來龍去脈,想要讓自己能動手作到一樣的事,想要玩比這範例更進階、更實務的重構與 TDD,2021 年五月的梯次,只剩下 4 個名額啦:https://tdd.best/courses/tdd-continuous-refactoring-2021-05/
話說這個梯次我拍胸脯保證 100% 會額滿的,因為我正在翻譯相關的經典書,屆時會補上更多相關的內容。
#IntelliJ
#Refactoring
#StrategyPattern
同時也有156部Youtube影片,追蹤數超過14萬的網紅Shippo尾巴,也在其Youtube影片中提到,Minecraft Java版 多人遊戲 →直接連線 IP:139.99.32.195 ►加入Shippo尾巴會員:https://reurl.cc/V6DGQy ◉Steamlabs抖內(台灣境外☑抽成較少):https://streamlabs.com/shippo727/tip ◉歐付寶抖內...
java怎麼用 在 91 敏捷開發之路 Facebook 的精選貼文
【更新】九月梯次,僅剩 3 張票。
兩年後的現在,我還蠻享受在重構學員的 java legacy code 的... (畢竟 IntelliJ 重構的威能才是完全體啊...)
重構不是只有排版(排版這種東西應該要用工具自動做)、rename、extract method,或是抽抽變數、constant,code smell 不是只有 long method, magic string/number, bad name 啊。
重構也不是所謂的「找時間重構」,而是「沒有經過重構階段的 code 根本不能稱為完成」
TDD 更不是只有 test first 而已,在這兩天的過程中,會讓各位學習怎麼對需求進行拆解分析,怎麼用測試案例去捕捉、描繪出需求的輪廓,怎麼透過 test case 的 grouping 與排序去驅動出產品代碼的增量。
TDD 是一種開發方法,不是一種測試方法。
重構,是設計的一環,甚至是設計的基底、起手式。
今年剩下的唯一一場【演化式設計:測試驅動開發與持續重構】,在九月份,目前還剩下6個名額:https://dotblogs.com.tw/hatelove/2020/05/08/202009-Evolutionary-Development-TDD-and-Continuous-Refactoring
我會直接重構你們寫出來的 legacy code 給你們看,只有這種不是 set 好的重構,大家才會有感覺,才會拳拳到肉,才會對腦袋有強大的衝擊感。
大家也才能體會到,不寫測試、後補測試、測試先行、測試驅動開發,這不同的情況下,對產品代碼的開發會有多大的影響。
java怎麼用 在 91 敏捷開發之路 Facebook 的最佳解答
突然發現學員的心得文,感到欣慰。
一月份的極速開發報名已經額滿,五月的報名連結在這:https://yihuode.io/activities/724
#vim #php #java #c# #極速開發
Hi 大家好,
之前在Backend版徵到人團報極速開發課程(php/java/c#), 回饋一下寫心得供後面有興趣的板友參考。
我很喜歡老師課堂上的一句話,”你不知道你不知道什麼”,例如你以為你打字很快了,但透過結合IDE跟快捷鍵又可以在上一層,以為精通IDE是極限了,vim+IDE又可以再突破極限。
[這門課不是教你vim指令,而是教你怎麼用vim來開發]
上課之前我認知這個課程會注重在vim操作, 而實際上不只是vim的本身,更進一步的利用如何與IDE做整合,並練習如何利用vim來取代重複的動作,同時教導怎麼針對個人的習慣去客製化vim的操作,更重要的是透過課後練習的review快速將所學轉化到工作上。
[藉由Kata練習將vim和IDE連結在實務上]
可能看了一些教學影片跟書,知道怎麼操作vim但無法流暢的應用在實際開發上。以我自己的親身經驗,練習一段時間且有試著在專案上使用,有感受到vim的便利度跟潛力,但是實際拿來開發上卻差了些什麼,總是有一道牆擋著的感覺,藉由這門課跟課後的練習打通了實際使用上的一些檻,有種武俠小說任督二脈被打通的感覺,終於稍微體會到高手如何應用vim行雲流水般coding
[課後練習與online coaching大量減少學習時間]
老師安排的課後練習跟online coaching,讓學習vim並應用到工作上的時間跟學習曲線可以大幅縮短,班上有同學認真練習在一周內從完全不會vim到可以應用到實際工作上,對公認陡峭的vim學習曲線來說真的很驚人。
[讓你從每個操作的細節中扎實的省下時間]
那成效如何呢? 以我自己練習來說,同一個練習的kata用vim + IDE跟只用IDE起來大概可以快1/4 ~1/2的時間,這是”純操作”上省下的時間,相當的顯著,實務上開發花最多時間的是思考跟debug,其實很難掌控,但是藉由優化每個動作省下一點一滴時間卻是扎扎實實的。ps:附上gif,來看一下一個簡單的移動加刪除操作可以在三種操作下可以差多少個按鍵。
[跨IDE的操作習慣]
我開始練習是使用C# + Visual studio, 現在會有用WebStorm來練習javascript/typescript,操作上幾乎沒有差異,幾乎不需要重新練習跟記憶IDE的熱鍵, 如果同樣是JetBrains系列的IDE那大概可以完全維持一樣的操作習慣,相當推薦給有再用JetBrains IDE 多語言開發的朋友,當然VScodeVim也可以受益,只怕vim整合IDE的部分太過吸引人乾脆跳槽去JetBrains
ps: 單元測試還沒上過或是預算有限的板友可以先參考單元測試班(php/Java/C#),下一梯極速開發不知道會間隔多久了,有單元測試經驗在上極速開發課程會有加乘效果,加上這年頭寫測試已經是幾乎是必備技能了,我個人優先的會把單元測試班排在最前面。
極速開發課程支援php/java/c#,不過同梯也有寫c++的同學,寫ES6跟Typescript的版友也可以參考,操作上差異不大,一點課後心得供大家參考。
課程參考連結: https://dotblogs.com.tw/hatelove
java怎麼用 在 Shippo尾巴 Youtube 的最佳解答
Minecraft Java版
多人遊戲 →直接連線
IP:139.99.32.195
►加入Shippo尾巴會員:https://reurl.cc/V6DGQy
◉Steamlabs抖內(台灣境外☑抽成較少):https://streamlabs.com/shippo727/tip
◉歐付寶抖內:https://payment.opay.tw/Broadcaster/Donate/840855FA64E3F6FC52CB7A408927C3E2
◉綠界抖內:https://p.ecpay.com.tw/C9C34
-
||||||||||||||||||||
✪【聊天室規章】✪
①請不要重複洗頻或說Shippo不理你之類的話
(抖內一定會唸到♡)
②不可以人身攻擊、毀謗
③不要暴露自己的個人隱私及聯絡方式
④請不要討論不在場的實況主或是要求亂入別人直播,尊重每位台主
(包含一直留言其他台主也在開台)
⑤請不要打廣告或具政治立場言論
⑥請觀眾不要相互聊天或是一直講與直播話題無關的東西
⑦Family直播或是與其他日本朋友直播時會是全日文,為了直播進行沒辦法立即翻譯,請不要一直在聊天室要求翻譯或是留聽不懂之類的留言,會影響到其他人
※管理員會視情況嚴重性會給予相對的刪言、禁言、封鎖處分※
||||||||||||||||||||
✪【觀眾常問的問題】✪
①為什麼會日文?怎麼學?學多久?
A:看動漫、和日本人講話、剪片翻譯時自學來的,頻道經營多久就學了多久
②Shippo哪裡人?住在日本嗎?
A:台灣人,目前住在台灣
③喜歡BL嗎?
A:喜歡會幻想BL的腐女/男,因為有夠可愛w
④是全職YouTuber嗎?
A:沒錯,用尾粉的抖內維生中...!影片請幫我多看幾次♡
-
◆所屬團體【尻尾family¨̮】台湾×日本 動漫、遊戲系團體
Shippo
►YouTube:https://www.youtube.com/channel/UCNy0itme-DVgNAS8c1OucUg
►Twitter:https://twitter.com/Shippo727
►Instagram:https://www.instagram.com/shippo727/
緋月なぐも
►YouTube:https://www.youtube.com/channel/UCLiXkynWHt_J3NaxxlXcxVA
►Twitter:https://twitter.com/7s_Gman
►Twitcasting(ツイキャス):https://twitcasting.tv/7s_gman
xPesTx
►YouTube:https://www.youtube.com/channel/UCvJFjQ9CMp2SPUGNaNHotSA/featured
►Twitter:https://twitter.com/ava_PesT1
►Instagram:https://www.instagram.com/ava_pest1/
紅月サクヤ
►YouTube:https://www.youtube.com/channel/UCDtfpSZXvooAbWO6SI1tXXw
►Twitter:https://twitter.com/Akatsuki_0325
►Instagram:https://www.instagram.com/akatsuki_sakuya/?hl=ja
あいりす
►YouTube:https://www.youtube.com/channel/UCVsonTFLwygTA0_hQjRYADw
►Twitter:https://twitter.com/RyNeR4683
►Instagram:https://www.instagram.com/ryner4683/
-
合作邀約請來信:shippo727@gmail.com
![post-title](https://i.ytimg.com/vi/hwVXGJDZheI/hqdefault.jpg)
java怎麼用 在 在地上滾的工程師 Nic Youtube 的最佳貼文
## 影片觀看說明
由於問題較多,大家的問題也可能是你的問題,建議可以先閱讀下方的「問題總匯」區,找到時間碼 Time code 之後跳轉到自己想聽的部分,會比較有效率哦
本影片 Q&A 留言是抓取
【2020 年度回顧! 成為 Team leader? 業外收入增加? 技術能力成長? (第一次蒐集 Q&A)】https://youtu.be/BGaDN9wxbKE
## 影片中提到的專案
簡單用 React 撰寫的留言爬取篩選功能,可以自己抓去玩
https://github.com/niclin/youtube-comment-filter
## 問題總匯
00:00 開場
01:26 QA-1 - 林天寸
一直很喜歡妳的頻道,不單單是因為工程師,當然也有部分原因是自己也是走工程師這條路的。
前一年2020年開始,其實是我剛轉職工程師的第一年,在滿多地方都遇到不小的問題,在troubleshooting上面也是有許多瓶頸的。
後來除了白天上班,下班看書跟休息,偶然間看到你的影片[工程師如何自我進修],才開始慢慢用計畫的方式取代橫衝猛幹。
不得不說,規劃時間真的是比起技術性的功力還更有成效。因為它讓你適時的放鬆跟加強,然後在工作上面才更有長進,雖然很幹話,但我2020的下半年是這樣做的。
目前在準備考取網路管理的證照CCNA,計畫是走network這一塊,還有很多要磨練的。希望也能多看你產出跟network的影片,這是私心話啦,哈哈。
02:57 QA-2 - 仔仔
1.學程式會建議從前端或是後端哪個開始學會比較好?
2.一開始投履歷如何判斷一家公司是可以成長的,而不是進去3,5年後還是那個跟剛進去程度相差不遠的自己差不多
3.跟程式相關的產業有很多(像是製造業到博弈),可以請Nic分析一下各產業的狀況嗎?以及進去各產業前須要具備哪些程式語言或能力?
4.投履歷時看到一些公司列出所需程式語言和工具一大堆,是不是代表你沒完全具備就不要投履歷了,還是可以請Nic給個意見哪些部分還是可以投看看
5.都說工程師又宅又不會說話,為什麼Nic可以交到女朋友?
10:40 QA-3 - ANDREW NG KAR EARN
如果当写编程语言遇到瓶颈,有什么方法可以有效地避免自己陷入钻牛角尖的情况?
11:46 QA-4 - JS Lin
如果NIC現在選擇能馬上精通一項語言會是哪個?會想用來做什麼PJ?
13:13 QA-5 - Rick0
成為 team leader 後無法直接在技術上有更深入的研究和突破,這樣的變化是否值得?
是否會擔心這樣在技術上跟不上其他人,甚至被下屬看輕呢?
14:39 QA-6 - Henry蔡
因為最近是寒假期間,
我開始考慮下學期的修課,
想請教nic大大,
應該在有什麼樣的基礎上,
開始學design patterns?
我目前是碩士生,
大學非資工本科,
學過Python,
也跟過一些網路影片實作過Flask+PostgreSQL,
大學學過資料結構演算法,
但不到得心應手的程度...
16:07 QA-7 - 黃柏瑋
如何同時Handle好好幾件事
我怎麼覺得上班,然後下班假日寫寫side project後就沒啥時間了🤔🤔🤔
17:24 QA-8 - 乾太
我想問一下這年頭轉行斜槓 VTuber 還有沒有搞頭A?
18:10 QA-9 - uuu06222
之前開始關注你有知道你有面試過人的經驗, 想問一下站在面試官的角度...
面試官會不會比較注重作品需要呈現那些東西, 或是有沒有什麼禁忌是不能碰的嗎?
20:07 QA-10 - Joery Lin
想請教您對於對於給你很多成長和照顧的公司,倘若您有一個更好的機會,無論薪水或未知挑戰都大於現在公司。
您將如何做選擇,或許現在公司會給你加薪留下你。
因為自己曾放棄了許多機會
21:37 QA-11 - YangTing Zheng
Q1: 想問通常一個產品開發的週期都多長呢?負責維運和開發的工作內容是否會差很多?
Q2: 想請您簡單介紹一下資工系學生的出路/工作內容?(如PM.SA.DBA.PG.RD.MIS…或是還有其他的?)
24:16 QA-12 - RTB
Hello World
24:18 QA-13 - Barry
目前是公司MIS 很想轉職成後端工程師,但在面試上面都都時常失敗
常常在問技術關卡時就被問倒了,總覺得 要準備的東西非常的龐大
毫無準備的頭緒,總覺得一直寫side project也不是辦法
26:49 QA-14 - 因地制夷
想請教Nic 有在做投資嗎? ex 股票 想聽一些投資心得
27:13 QA-15 - 比歐
想請教 Nic 大,
在之後的工程師生涯中之後有甚麼規劃或想法嗎?
例如:開發產品創業,或是開班授課、轉做顧問之類的。
28:14 QA-16 - yongming jia
请问新手如何学编程,学完去做什么?怎么自己创业?谢谢🙏
29:33 QA-17 - Minghao Chang
是否能請您推薦用來開發的筆電?(正好最近要汰換電腦),想從今年開始養成寫side project的習慣,謝謝。
30:31 QA-18 - Guan Jun Chen
想知道像Nic這麼厲害的工程師,年薪大概落在哪裡
30:46 QA-19 - Sheng Jiang
想請問Nic,如果非資工背景但是對寫程式有熱情,想轉職當軟體工程師,會建議如何起步?
補充:像是什麼樣的人適合自學,什麼樣的人適合去補習,或者補習跟自學的情況各有哪些優劣?
謝謝Nic
## 結尾
31:49 感想
喜歡影片的話!可以幫忙點個喜歡以及分享、訂閱唷!😘
━━━━━━━━━━━━━━━━
🎬 觀看我的生活廢片頻道: https://bit.ly/2Ldfp1B
⭐ instagram (生活日常): https://www.instagram.com/niclin_tw/
⭐ Facebook (資訊分享): https://www.facebook.com/niclin.dev
⭐ Blog (技術筆記): https://blog.niclin.tw
⭐ Linkedin (個人履歷): https://www.linkedin.com/in/nic-lin
⭐ 蝦皮賣場: https://shopee.tw/bboyceo
⭐ Github: https://github.com/niclin
⭐ Podcast: https://anchor.fm/niclin
━━━━━━━━━━━━━━━━
✉️ 合作邀約信箱: niclin0226@gmail.com
#QA #工程師 #在地上滾的工程師 #前端 #後端 #轉職
![post-title](https://i.ytimg.com/vi/HdMIpnH-AJs/hqdefault.jpg)
java怎麼用 在 紙片模型 Youtube 的最佳貼文
清脆的上膛聲、子彈的擊發聲,槍,這東西的存在就宛如是一場美妙的 ASMR。原因為何,我們不得而知。但如果每次我們在打怪時,都能進行一次顱內高潮,不覺得很讚嗎?
咱們今天挑選了 Minecraft 最棒的十種槍枝模組,讓你可以在麥塊中實現每個男孩的夢想。
章節:
0:00 開場
0:23 Vic's Modern Warfare Mod 現代槍械
3:38 Receiver Gun Mod 真實槍械
7:43 MrCrayfish's Gun Mod 小龍蝦先生的槍 /龍蝦槍枝
8:44 Arms Of Fire [FABRIC] 開火武裝
9:34 Gun Customization: Infinity 客製化槍械
10:16 A.V.A - Alliance of Valiant Arms Guns AVA 槍枝
10:56 Guns, Rockets and Atomic Explosions 槍支,火箭彈和原子爆炸
12:29 Torched 土炮照明彈
12:55 Rope Bridge 繩索槍
13:24 BlockFront - WW2 二戰之前
**Minecraft 最棒的 10 種槍枝模組**
1. Vic's Modern Warfare Mod 現代槍械 (請用 Forge 2758)
https://bit.ly/3riY1Zm
2. Receiver Gun Mod 真實槍械
https://bit.ly/2WxaHhp
3. MrCrayfish's Gun Mod 小龍蝦先生的槍 /龍蝦槍枝
http://bit.ly/2I4KTlo
4. Arms Of Fire [FABRIC] 開火武裝
https://bit.ly/34xesHV
5. Gun Customization: Infinity 客製化槍械
http://bit.ly/2vqulRZ
6. A.V.A - Alliance of Valiant Arms Guns AVA 槍枝
https://bit.ly/3myzbkV
7. Guns, Rockets and Atomic Explosions 槍支,火箭彈和原子爆炸
https://bit.ly/2Koz8uP
8. Torched 土炮照明彈
https://bit.ly/3ny4H3H
9. Rope Bridge 繩索槍
https://bit.ly/34z3Wjg
10. BlockFront - WW2 二戰之前
https://bit.ly/37zHAAi
—
**常見問題**
Q:手機能裝嗎?
A:不行,如果紙片的影片如果沒有特別著明,通常都是電腦上遊玩的 Java 版唷。
Q:想找到完整的版本嗎?
A:進入模組頁面 → Files 分頁 → View All 按鈕 → Game Version。即可找到所有版本。
Q:安裝時遇到錯誤,需要前置模組?
A:有兩種方法解決:
1. 閱讀錯誤訊息,直接 Google 訊息所顯示的模組名稱,下載安裝即可。
2. 進入模組頁面 → Relations 分頁。即可找到關聯模組,有時候會顯示非前置但有相關的。
Q:怎麼安裝模組?
A:
1. 請參考紙片的模組教學影片(https://youtu.be/8gYBo_vcZFs)。大多數人會在安裝 Forge 時出錯,請預先裝 Java 並透過他開啟即可。很多時候都是壓縮軟體關聯了 ".jar" 副檔名,導致電腦新手以為下載成了壓縮檔。
2. 透過 MuiltMC 安裝(大推!)
—
Instagram: http://bit.ly/Paper_IG
Facebook: http://bit.ly/Paper_FB
Discord: http://bit.ly/PaperDiscord
—
► 訂閱我的YouTube頻道吧:http://bit.ly/PAPERsubs
—
錄影程式:Bandicam
聲音處理:Audacity
後製軟體:Adobe Premiere cc
—
如果你想要聯絡我,歡迎透過信箱聯繫。礙於人手不足,回應時間約三至七天,請見諒。
E-mail: mlz85613@gmail.com
![post-title](https://i.ytimg.com/vi/ds8UAEQ81pQ/hqdefault.jpg)