NT390 特價中
本課程是關於用 C# 進行.NET 平行程式設計,涵蓋了.NET 中的核心多執行緒設施,即任務平行程式庫(TPL)和平行LINQ(PLINQ)。
本課程將教您以下內容。
1 任務程式設計:如何建立和執行任務、取消任務、等待任務和處理任務中出現的異常
2 資料共享和同步,確保你對共享資料的訪問也以安全和一致的方式進行
3 併發( Concurrent )集合,如 ConcurrentBag,即使從多個執行緒訪問,也能正確操作
4 任務協調概念,包括延續的概念,以及使用同步原語( synchronization primitives )來協調任務
5 平行迴圈,讓你輕鬆地迭代一個計數器或集合,同時分割資料並在不同的執行緒上處理它
6 平行LINQ,是.NET超強的語言整合查詢(LINQ)技術的平行版本
Async/Await 和 .NET 對非同步程式設計的支援
https://softnshare.com/parallel-dotnet/
linq 一對多 在 91 敏捷開發之路 Facebook 的精選貼文
感謝推薦 ❤️
在這邊除了用錢換時間,用最短的時間有系統地了解來龍去脈,建構知識體系,你還會同時與30個一樣熱血的學員建立連結。(公開課)
這樣熱血的人其實在業界真的非常非常少見,可能只有5%的工程師有這樣拼命學習、應用的特質,而這些人沒啥意外的話2年之後就會陸陸續續成為各公司、團隊的中流砥柱或是社群裡面的KOL。
彼此因為一起上過91的課而有連結,彼此知道溝通水平、詞彙,甚至如果有機會成為夥伴還可以省掉訓練成本,未來都可能是職涯上互相幫忙的夥伴。
如果你是孤單的熱血人,這邊不會讓你孤單,除了30位跟你一樣的自走砲,還有我這個點火師。
如果你想變得熱血,卻不知道那是什麼模樣,這邊你會看到人拼了命的努力、用對方式努力,成長速度可以有多快,能力跟收入在進步可以有多快。
如果你是公司內主管或是建立團隊的leader, 這邊上課的學員熱血的純度,保證連 Head Hunter 都沒有這樣珍貴的資源,更別說 LinkedIn 或其他人力銀行了。
當然,還有一個核心的連結就是跟我結緣啦。雖然我不是這麼好相處的傢伙,但基本上課後針對職涯、技能、實務問題的交流,我一直都是不怕你問、怕你不問的態度。當然,如果你只是伸手牌,那我會先導正的會是這件事。
圈子很小,有些朋友很內向(跟我一樣),然而我已經累積了不少優質的人際關係連結,我很願意幫你們引薦合適的公司、工作機會或是適合的 candidate,光找我去內訓的那幾個客戶,也都是業界有名很多人搶著想進去的公司。
他們願意固定定期找我去內訓、coaching,就是信任我的能力,信任我的上課內容可以給他們產品開發上帶來幫助。而你們已經靠自己上過公開課了,從動機來說比他們參加內訓的成員還高;從成本來說,找你進來他們可以節省培訓/溝通/開發的成本;
這不就是一種三贏的媒合嗎?
此外,我的培訓從來都不是懶人包的速食,會讓你快速學會的感覺,以及自己願意、有能力自學的原因,還是因為脈絡、題目設計貼近實務、練習/卡住/講解示範/練習/打通 的上課方式。
因為先把知識體系的主幹打扎實了,一步一步介紹因為有什麼問題、所以怎麼解決、所以還有什麼問題、還可以怎麼改善,到最後才順著脈絡帶到(實務上有用,知識體系上相對無用)的框架原型、框架的功能。
就像我在測試、DI/AOP、重構API以LINQ為例這些課中,框架幾乎都是最後一部分在練習應用才會提到的。經過了前半段不靠框架的處理實務上的挑戰、卡關、打通、了解背後的問題原因與實作,接下來再看框架,整個就是再自然不過的 API 了。因為如果你花時間包,大概也會包出一樣的東西來給自己用。
講到這,2021年打算再來開一次 DI/AOP 的課,這門課的概念跟實作,對 software design, architecture design 還是很重要的基本功。怎麼指數型降低系統設計的複雜度,怎麼把交錯複雜的流程邏輯變成多個正交的組合,怎麼讓每個開發人員關注點分離、好寫好測。
當然還有一個我的課最有代表性的地方,怎麼從一大坨 legacy code 中,在幾乎不用自己手動修改/撰寫程式碼的情況下,重構成我們上面提及的簡潔易懂可擴充可測試的設計。
linq 一對多 在 91 敏捷開發之路 Facebook 的最佳解答
剛結束了三天的【C#進階設計-#重構出高易用性與高擴充性API】
其中的一部分精華,就是上課的進行方式。
能寫出會動的程式真的只是剛入門的菜鳥等級,怎麼樣寫出好用、好懂、好改的 API,而且透過重構來達到剛好才是最好的設計,避免 over design,避免 code smell,才是進階的開發人員必須具備的技能。
三天讓大家練習超過 20 個 lab,還要讓每個人跟得上,在過程中把那堆 generic, delegate, lambda, 以及 code smells, 重構的技巧,工具生產力的優化,內化於無形,是我對這門培訓在設計上最自豪的一點。
※ 上完前兩天的課,大家對看到下面這樣的方法簽章,只會覺得這再自然不過了。
public static IEnumerable
this IEnumerable
IEnumerable
Func
Func
IEqualityComparer
Func
※ 下一梯次在八月,名額有限,卡位要快:https://dotblogs.com.tw/…/2…/02/18/csharp-advance-api-design
這週用了三天時間參與 Joey Chen 所開的 C#進階設計-《從重構學會高易用性、高彈性的 API 設計》課程。課程依舊保有令人腦洞大開、不斷燒腦、充滿羞辱、香焦🤣的風格,總是能得到許多當頭棒喝。
這三天的課是以測試->紅燈->寫 code -> 綠燈-> 重構 -> 綠燈->加需求-> 寫 code -> 綠燈 -> 重構 這樣的模式讓我們試著去寫出近似於 Linq 的程式,可以不斷的練習重構的技巧外,每一次寫 code 的過程中不斷的去思考該寫出什麼樣的程式來滿足需求?我該做什麼樣的重構讓 API 能夠更容易使用?
這是一門挺燒腦的課程,也要不斷動手寫 Code 並專注在課程中,一幌神就有可能跟不上進度。專心聽課真的比邊聽邊做筆記要有效得多。只要撐過去,肯定能得到可以立馬用在工作中的靈感。
這三天的課有幾個體悟
1. 要想設計出好的 API,需要掌握語言內建的資料結構以及其特性。在不同的應用場景、需求,使用正確的物件能讓程式簡單易讀,其效能會比總是用 List 來得好很多。
2. Linq 很好用,會用 Linq 並不算什麼,能夠搞懂 Linq 背後的實作方式更能夠讓自己有能力去依產品需求去客制出高彈性、易用的 API。沒有掌握這樣的能力,就只能在工作中寫出雙層迴圈或三層迴圈。
3. 以前以為延遲執行只是在執行用到時才會執行,它更是 IEnumerable、Enumerator 的靈魂,這也才懂為什麼 Linq 可以串一堆的 method 而它的效能卻能夠這麼的好。
#持續改善
今井正明在《改善—日本企業成功的關鍵》一書中提出的,Kaizen意味著改進,涉及每一個人、每一環節的連續不斷的改進。
持續改善應從自己開始先做起,也並非負面的看待自己,要求他人改善是不現實的,而是讓改善的精神融入生活哲學中,不斷的追求極致,讓自己可以做得更好進而影響週遭。
上課絕對是偷學、持續改善最快的方法!