主頁 > 軟體工程 > 微軟外服作業札記②——聊聊微軟的知識管理服務平臺和一些編程風格

微軟外服作業札記②——聊聊微軟的知識管理服務平臺和一些編程風格

2022-07-13 16:03:36 軟體工程

微軟外服作業札記②聊聊微軟的知識管理服務平臺和一些編程風格

前言

近期,我參加了微軟某部門的知識平臺整合作業,正好把微軟內部的各個知識管理平臺的特點做一個整理,供大家參考,

眾所周知,知識管理服務平臺其實對任何一家稍有規模的企業都是相當重要的,俗話說鐵打的營盤流水的兵,在當今社會,除了在國企,任何一個人都不太可能在一家公司作業一輩子,對公司來說也是如此,你也不能指望員工能在公司里作業一輩子,很多時候因為業務調整、裁員等,人員變動變成了家常便飯,如何將員工在作業中積累的知識財富進行總結和沉淀,如何讓新老員工進行知識銜接、新人能夠很快地上手作業,如何避免技術骨干將技術和業務帶走,都是每一個老板需要經常思考的問題,

微軟在這方面也正在進行長期的試驗和探索,我在上一篇文章《聊聊微軟的大資料平臺和一些個人看法》中說過,微軟內部是一個基本上完全平等和開放的協作系統,不同的部門、員工間,雖然身處世界各地、時差不同,但是通過作業平臺有著無縫和高效的作業體驗,圍繞著大資料平臺,海量檔案的相互參考,基本上是一個網狀的去中心化的作業環境,因此,他們的知識也是極度碎片化的分配到了每一個作業小組(估計在微軟,一、二十人的作業小組達到了上萬個),在此之前每個小組都有自己的知識管理工具和管理方式,甚至每個小組的組員都在同時使用好幾種知識管理工具,這樣造成了知識的散亂及不易整理,微軟自己也意識到了這個問題,因此,從去年起,微軟搭建了一個叫Engineering hub的知識平臺(eng.ms),并且提供了一系列的工具軟體,方便大家將各自的知識管理庫遷移到Engineering hub平臺上,

在微軟,不管什么知識管理平臺統稱為Wiki,也就是大家所熟知的維基百科,就像百度貼吧一樣,Wiki是人人參與,人人貢獻力量;每個人既是知識的提供者,也是知識的消費者,這充分體現了微軟平等開放的企業氛圍;除了Microsoft Confidence的內容外,核心技術絕對不會掌握在某一兩個人手上,因此,大家在微軟,每天、每時都能夠學習到新的知識,如果沒有較強的學習能力,是很難在微軟長久地作業下去的,

大家平時使用的Wiki,有Sharepoint, Teams, OneNote, DevOps等,

SharePoint

微軟推出SharePoint已經有了20多年的歷史,曾經是最賺錢的軟體產品之一,它為企業打造了一個統一的門戶平臺和業務解決方案,將用戶、團隊和知識進行整合,進行SharePoint開發需要一定的專業知識,軟體本身也擁有相當的復雜性,在微軟內部,SharePoint也得到了最大范圍的應用,并且與其他軟體諸如Teams等進行了深度整合,使得其生命周期在不斷地延長,在SharePoint上,檔案管理和其他公司的業務知識等進行整合,具有非常大的優勢,一般每個團隊在SharePoint上都有自己的門戶和團隊檔案,是大家進行學習的好地方,
SharePoint作為微軟老牌的產品,其檔案管理功能一直沒有進行演化,還是采取類似VS Source Safe的獨占簽入、簽出方式,這樣一旦有人將檔案簽出,忘了簽入進去,別人看到只能干瞪眼,無法對檔案進行進一步修改,相對于云時代多人協同在線進行檔案編輯,這樣的管理方式顯然是落伍了,因此,將類似于源代碼管理方式的SharePiont檔案管理平臺進行遷移,也是很多團隊正在思考和在做的事情,

image

OneNote

OneNote其實是一個碎片化的知識記錄工具,類似于便簽,大家把作業中的心得可以隨時記錄下來,供大家參考,軟體本身也在標簽上使用了各種顏色予以區分,OneNote結合OneDrive,可以使得檔案在各個設備終端上使用,OneNote在記錄一些流程、技巧方面有一些優勢,但是小組內員工的個人色彩比較濃厚,經過一段時間沉淀,會發現很多當初別人記錄的內容已經過時,照著步驟去做全是坑,不如不看,小組內也不太會有人去對幾年前別人寫的心得做整理和修正,軟體本身編目的功能也比較差,系統性、完整性欠缺,所以我感覺OneNote個人作為知識記錄工具還可以,用于大的團隊就不是很適合了,

image

Teams

微軟的Teams是個非常不錯的作業協同軟體,大家可以把它想象成企業微信,主要用于聊天和視頻會議,微軟的員工遍布于世界各地,所以選擇合適的作業協同工具是非常重要的,相信在微軟內部外部作業的同學,上班時間Teams和Outlook是得一直開著并盯著看的,Teams也應該不負眾望,很好的擔當起作業協同軟體的角色,在Teams里,大家可以為作業小組開設Wiki,支持一些有限樣式的富文本管理,我想微軟也是在做嘗試,把Wiki同聊天軟體捆綁在一起,可惜的是,Teams的Wiki不支持多級目錄的管理,只能記錄一些少部分的內容,并且僅限于小組內部的成員觀看和編輯,這樣就沒法把知識分享出去;如果需要讓別人能訪問到自己的Wiki,還需要管理員進行授權,加到討論組里面去,所以他的功能就相對比較封閉了;從遷移的情況來看,Teams里面的Wiki是被遷移得最多的,知識相當地分散和零碎,應該說不是個很好的知識管理系統,用于記錄小組內的備忘還不錯,

image

DevOps里面的Wiki

應該說DevOps的初衷不是用來做知識管理,他對于敏捷開發的支持、CI/CD集成方面非常完美,也是國內很多開發團隊首選的原始碼管理工具,我們在初始化代碼庫的時候,可以使用它的Wiki功能,這樣就默認生成了以Markdown(.md)格式的Wiki代碼庫;在文本中使用markdown標簽,多人提交PR對Wiki進行管理,DevOps里的Wiki功能已經比較全了,Markdown本身對Wiki的支持就很好,它支持多級目錄、目錄搜索和全文檢索,可以查看各個版本,還可發表評論、標識等;并且可以開放給其他組里的同事看,不需要額外的權限授予,所以微軟的一些大資料平臺包括Cosmos在內就使用DevOps中包含的Wiki功能;微軟在做最后的EngHub整合的時候,也借鑒了DevOps的部分管理功能,

image

EngHub(eng.ms)

最后請出的是我們的王牌知識管理工具EngHub了,EngHub借鑒了GitHub的思想,是一個工程師(engineer)或者工程(engineering)的平臺,微軟為此申請了獨立的專有域名,有專門的作業小組對其開發和維護,在這個平臺上幾乎整合了微軟所有的業務條線的知識內容,有著海量的目錄\分類和內容,對于在微軟正在作業\作業過的員工,或多或少都會在EngHub上留下痕跡,

面對一個如此龐雜的的知識服務平臺,僅依靠一兩個團隊是很難將他維護好的,因此,每個團隊要將自己的知識貢獻出來之前,就要先聯系EngHub團隊,申請相應的目錄和密鑰;在記錄下代碼庫地址后,EngHub會以輪詢的方式通過版本管理從你的代碼庫讀入檔案并轉換、整合到Enghub里;他在很大程度上利用了現有的DevOps資源,將內容管理分散到每個具體的團隊,又能夠進行高度的統一和整合,其統籌的思路很值得我們的管理者進行借鑒,

EngHub背后的檔案決議使用的是Docfx引擎(https://github.com/dotnet/docfx),微軟使用的還是內部的一個專用的分支版本,目前穩定版本是2.x; 3.x都是Beta版本,和2.x有些兼容性差別,不太建議使用,EngHub網站前端使用的展現引擎竟然是nodejs技術堆疊的react?!,具有一些無重繪SPA的體驗,希望有一天能用上Blazor ,
我當時為了把團隊各方面零散的重要的知識整合到EngHub里,前前后后零零散散忙了半年,遷移了數萬篇檔案,幾個G的內容,這些內容在EngHub上的目錄結構里僅僅是一個很里層的很小的一個鏈接,因此可嘆EngHub規模的龐大,有時間的話逛逛EngHub也是很有趣味的,前提是你要對計算機有興趣,并且英文還算過得去,

image

微軟內部的一些代碼編程風格

“一直在模仿,從未被超越”對于微軟來說是最恰當不過的,在技術上從來不進行頭部創新,而是采取跟隨者的策略,自己的企業反而在市場上始終處于領先位置,是商戰里常用的一種策略,國內的企業我就不舉例了,拿微軟說,它的Windows圖形界面抄襲MacOS,IE瀏覽器抄襲Netscape,后來IE、Edge紛紛被Chrome超越,又反過來用Chrome的引擎做Edge,微軟內部的大資料引擎Cosmos應該是Hadoop的一個發行版本修改而來的,至今也沒有開源,它運行在windows平臺上,增加了對.net的支持,定制了一些功能,加強了穩定性,在Cosmos上可以使用Java、Scala、Python等語言進行開發,也可以運行Spark、YARN等作業,這不就是Hadoop套個殼么.......

在微軟,使用各種語言開發的人很多,代碼中使用設計模式的很少,倒是使用模板語言、DSL的比較多,比如Cosmos上運行SCOPE、為ObjectStore做定義的Bond等,都是一些模板語言+語法糖,

使用大資料平臺,少不得在各個系統間相互呼叫,一般用的都是Azure Function、WebHook、WebAPI等,Http本身就不是可靠的的通訊協議,所以在相互呼叫中,會經常出現404、500錯誤,一般要設立重試機制,從.net core開始,微軟就不再提供WCF,舊專案遷移到.net core\5\6需要第三方WCF庫,協議和功能方面有著很多限制;我發現微軟對SOA的熱度正在冷淡,重心逐漸向微服務、容器化、SAAS、PASSS、低代碼平臺上轉移,因為如果使用WCF、WS等SOA等技術,大資料平臺及和周邊的應用之間的通訊質量還是可以得到保證的,在微軟,我還沒碰到比較好的架構師,只是大家對如何協同作業以及程式健壯、穩定性方面有著一定的共識,代碼寫得特別爛的人也進不了微軟周邊;微軟地很多產品我想都是對開源產品的模仿,也就是我們俗稱的重復造輪子,然后在上面構建自己的業務系統,

微軟外服作業札記系列
①聊聊我在微軟外服大資料分析部門的作業經歷及一些個人見解
②聊聊微軟的知識管理服務平臺和一些編程風格
③視窗函式的介紹

作者:thanks       微信:-       QQ:305380844     出處:https://thanks.cnblogs.com/     本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利,

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/498946.html

標籤:其他

上一篇:軟體專案管理 7.4.3.進度計劃編排-時間壓縮法

下一篇:軟體專案管理 7.4.4.進度計劃編排-資源優化法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more