現在 dotnet 屬於 dotnet 基金會,所有開發者都可以向 dotnet 貢獻代碼和參與 .NET 的設計,參與路線決策。本文來告訴大家一些基本玩法,帶著小伙伴們入坑 ...
現在 dotnet 屬於 dotnet 基金會,所有開發者都可以向 dotnet 貢獻代碼和參與 .NET 的設計,參與路線決策。本文來告訴大家一些基本玩法,帶著小伙伴們入坑
註意哦,參與 dotnet 開發是沒有金錢的收益的哈
閱讀本文你能瞭解:
- 在哪裡參與 dotnet 的設計和開發
- 2020 的設計流程或提議方式是什麼
在開始之前,必須說明的是 .NET 和 C# 是相對低耦合的,對於 C# 分為兩個方面,一個是 C# 語言的設計,另一個是編譯器的開發參與
- 關於 C# 語言的設計,歡迎來到 https://github.com/dotnet/csharplang/ 裡面的 Issues 撕語言設計問題。在這裡可以聊任何關於這個語言的提議。不過需要小心,這裡的噴子很多,請確定你參與的時候心情不會很差,不會氣炸
- 關於編譯器的開發和設計,歡迎來到 https://github.com/dotnet/roslyn/ 裡面的 Issues 討論。在這裡可以參與編譯器的開發,或者對編譯器的建議。需要小心,這裡屬於神坑,如果你沒有足夠的精力,看看就好
而 .NET 現在是什麼?其實現在主要的是一個 runtime 庫,裡面包含運行時以及框架的支持。在此之前包含了 corefx 等倉庫,比較鬆散。而對於 .NET 的設計一般來說可以分為針對細節和針對整體
針對運行時的表現以及框架的 API 設計的提議或討論,歡迎到 https://github.com/dotnet/runtime 裡面的 Issues 討論。在這裡歡迎討論的點是
- 整體框架的設計,如某個 API 或類應該放在哪裡
- 框架和運行時的坑,例如表現行為
- 某個模塊的 API 是否開放
以及對框架的性能優化,性能優化如果涉及到行為變化,那麼需要經過比較多的討論。比較期望的性能優化是沒有行為的變更,同時僅優化很小的模塊。可以參考性能優化狂魔 Stephen Toub 大佬的更改。基本上任何對性能的優化的 PR 都需要附加基準性能測試的測試,關於基準測試請看 C# 標準性能測試
對整個大的 .NET 包括生態和體系等的提議請到 https://github.com/dotnet/designs 的 Issues 討論。這裡歡迎討論一些比較大的改動,或者針對多個倉庫的改動,或者收編某些庫等
對 .NET 的其他倉庫的設計和更改,基本套路都是在對應倉庫的 Issues 裡面先新建或參與討論,然後再提 PR 請求合併
現在整個 .NET 都是完全開源,任何人都可以進行私有發佈。如你的某項很好的提議沒有被採納,但是自己又覺得特別好,可以發佈自己的 .NET 版本。簡單的構建方法請看 dotnet/source-build: A repository to track efforts to produce a source tarball of the .NET Core SDK and all its components