一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

技術(shù)文檔的重要性以及如何提高文檔質(zhì)量

STM32嵌入式開發(fā) ? 來源:STM32嵌入式開發(fā) ? 作者:STM32嵌入式開發(fā) ? 2022-07-22 14:48 ? 次閱讀

本文所說的技術(shù)文檔不僅限于純文本文檔,還包含代碼注釋。很多工程技術(shù)人自己非常輕視技術(shù)文檔的書寫,然而又時常抱怨文檔不完善、質(zhì)量差、更新不及時等。分享本文,介紹技術(shù)文檔的重要性,以及如何寫好技術(shù)文檔。

技術(shù)文檔的重要性

高質(zhì)量的文檔對于一個組織或團(tuán)隊來說有非常多的益處,比如讓代碼和API更容易理解、錯誤更少;讓團(tuán)隊成員更專注于目標(biāo);也可以讓一些手工操作更容易;另外如果有新成員加入的話有文檔也會讓他們更快融入……

寫文檔有比較嚴(yán)重的收益滯后性,不像測試,你跑一個測試case,它能立即告訴你是對還是錯,它的價值馬上就體現(xiàn)出來了。而寫一份文檔,隨著時間的推移,它的價值才會逐漸體現(xiàn)出來。你可能只寫一次文檔,將來它會被閱讀上百次、上千次,因為一份好的文檔可以在未來替你向別人回答類似下面這些問題。

為什么當(dāng)時是這么決策的?

為什么代碼是這樣實現(xiàn)的?

這個項目里都有哪些概念?

寫文檔同樣對于寫作者也有非常大的收益:

幫你構(gòu)思規(guī)范化API:寫文檔的過程也是你審視你API的過程,寫文檔時會讓你思考你API設(shè)計是否合理,考慮是否周全。如果你沒法用語言將API描述出來,那么說明你當(dāng)前的API設(shè)計是不合理的。

文檔也是代碼的另一種展現(xiàn):比如你兩年后回過頭來看你寫過的代碼,如果有注釋和文檔,你可以很快速理解代碼。

讓你的代碼看起來更專業(yè):我們都有個感覺,只要文檔齊全的API都是設(shè)計良好的API,雖然這個感覺并不完全正確,但這兩者確實是強(qiáng)相關(guān)的,所以在很多人眼里,文檔的完善度也成為衡量一個產(chǎn)品專業(yè)度的指標(biāo)。

避免被重復(fù)的問題打擾:有些問題你只需要寫在文檔里,這樣有人來問你的時候你就可以讓他直接去看文檔了,而不是又給他解釋一遍。

為什么大多數(shù)人都不喜歡寫文檔?

關(guān)于文檔的重要性,每個技術(shù)人或多或少都知道一些,但很多人還是沒有寫文檔的習(xí)慣,為什么?除了上文中提到的文檔的收益滯后性外,還有以下幾點原因:

很多工程師習(xí)慣將寫代碼和寫作割裂開,不僅僅是在工作上,而且在思想上就認(rèn)為它們是完全不相關(guān)的兩項工作,這就導(dǎo)致好多人重代碼不重文檔。

也有很多工程師認(rèn)為自己不善寫作,索性就不寫了。這實際是個偷懶的借口,寫文檔不需要華麗的辭藻、生動的語言,你只需要將問題講清楚即可。

有時候工具不好用也會影響的文檔寫作。如果沒有一個很好的寫作工具將寫文檔嵌入到開發(fā)工作流程中的話,寫作確實會增加工作的負(fù)擔(dān)。

大多數(shù)人將寫文檔看做是工作的額外負(fù)擔(dān)。我代碼都沒時間寫,哪有時間寫文檔!,這其實是錯誤的觀念,文檔雖然前期有投入,但能讓你代碼的后期維護(hù)成本大幅降低,磨刀不誤砍柴工這個道理相信大家都還是能理解的。

如何產(chǎn)出高質(zhì)量文檔

既然理解了好文檔的重要性,我們?nèi)绾伪WC在時間的長河中維護(hù)好一份文檔,這里有些相關(guān)的方法論,大家可以參考下。

像管理代碼一樣管理文檔

對于如何寫出好代碼,整個技術(shù)圈已經(jīng)有好多經(jīng)驗的總結(jié)了,比如書籍《重構(gòu)》《代碼簡潔之道》…… 針對各種編程語言,也有相關(guān)的規(guī)范,比如國外的Google C++規(guī)范,國內(nèi)的阿里Java開發(fā)規(guī)范等……相關(guān)推薦:萬字 | 菊花廠C語言編程10大規(guī)范。但對于文檔 似乎相關(guān)的資料卻很少。但實際上,不應(yīng)該把文檔和代碼割裂開來,你可以簡單粗暴地認(rèn)為文檔其實就是用一種特殊語言書寫的代碼,這種語言就是人類的語言。這么想的話,實際上我們很多在代碼和工程中總結(jié)出來的經(jīng)驗,也可以直接用在文檔中,比如:

有統(tǒng)一的規(guī)范

有版本控制

有明確的責(zé)任人維護(hù)

有變更Review機(jī)制

有問題的反饋和更新機(jī)制

定期更新

有衡量的指標(biāo)(比如準(zhǔn)確性,時效性)

明確你的讀者是誰

寫文檔有一個很常見的錯誤,那就是很多人文檔都是寫給自己看的,這種情況下就會導(dǎo)致你的文檔只有自己或者和你有相似知識背景的人才能看懂,團(tuán)隊較小時這種問題還好,你們都做著類似的工作,所以也都能看懂文檔。但當(dāng)團(tuán)隊逐漸壯大后,問題就會凸顯出來,新人有時候有著和你不同的工作背景,甚至現(xiàn)在都做著不同的工作內(nèi)容,這時候你之前寫的文檔他們就很難讀懂了。

所以在寫文檔之前請明確你文檔可能的讀者會是哪些人,然后針對他們的特點著重關(guān)注如何才能讓他們理解。當(dāng)然,文檔也不一定要非常嚴(yán)肅和完美,只要能向你潛在的讀者說明問題即可。記住文檔是寫給別人看的,不是給自己看的。

根據(jù)專業(yè)水平可以大致將讀者分為三種:新手、老手和專家,針對不同水平的人寫作需要有側(cè)重點。比如針對新手,你需要重點介紹下里面涉及到的術(shù)語和概念,然后詳細(xì)講解具體的的實現(xiàn)。相反,針對專家 你可以省去這些額外的信息。注意,這里沒有嚴(yán)格的標(biāo)準(zhǔn),因為有些文章新手會看,專家也會看, 這里還是需要具體情況具體分析。

另外一種對讀者分類的方式就是根據(jù)讀者閱讀文檔的目的來分類,比如有人知道自己遇到了什么問題,就是來找解決方案的。還有一批人只有一個簡單的想法,但不知道具體的問題。舉個例子,以讀數(shù)據(jù)庫慢為例,前者已經(jīng)知道數(shù)據(jù)庫慢可能是因為數(shù)據(jù)量巨大且沒有加索引,解決方案很簡單 加索引,這時候他可能需要知道的是如何正確地加索引。而后者可能著重關(guān)注的是為什么讀數(shù)據(jù)庫會慢,這時候你可能需要額外重點介紹下數(shù)據(jù)庫相關(guān)的原理。

清晰的分類

文檔大致可以分為以下幾種類型,每種類型也有自己不同的特點和寫作側(cè)重點。

1 參考文檔

參考文檔也是大部分開發(fā)人員日常會使用和書寫的文檔,比如我們使用某個框架或者工具,都會有API說明文檔,這就屬于參考類文檔。它并沒有太多的要求,只要能向讀者展示清楚如何使用即可,但無需向讀者講明具體的實現(xiàn)。

注:參考文檔并不僅限于API文檔,還包括文件注釋、類注釋、方法注釋,要求都是能準(zhǔn)確說明其用法。

2 設(shè)計文檔

很多公司或者團(tuán)隊在項目開始前都要求有設(shè)計文檔,設(shè)計是項目實施的第一步,所以在設(shè)計文檔書寫的過程中要求盡可能考慮周全,例如該項目的存儲、交互、隱私……

好的設(shè)計文檔應(yīng)該包含以下幾個部分:

設(shè)計目標(biāo)

實現(xiàn)的策略

各種利弊權(quán)衡和具體決策

替代方案

各種方案的優(yōu)缺點

寫設(shè)計文檔的過程也你對整個項目做規(guī)劃、思考可能出現(xiàn)問題的過程,設(shè)計的越詳細(xì)、思考的越多,未來遇到問題的可能性就會越小。

3 引導(dǎo)類文檔

引導(dǎo)類文檔也很常見,一般都是Step by Step的形式。比如我們在使用某個框架或者工具的時候,一般都會有個引導(dǎo)類的文檔一步一步幫助你快速上手。大家寫引導(dǎo)類文章大家非常容易犯的一個錯誤就是預(yù)設(shè)了很多背景知識。一般使用文檔都是有開發(fā)者寫的,他們都非常了解這個工具的相關(guān)的知識,所以習(xí)慣性的會認(rèn)為,啊 這個知識點很簡單 用戶也肯定會吧,實際上用戶不一定會。這本質(zhì)上就是一種認(rèn)知偏差,這種現(xiàn)象在跨團(tuán)隊協(xié)作 尤其是多端協(xié)作的時候也非常明顯。

這類型的文檔寫作中,要求寫作者盡可能站在用戶的視角上思考,極力避免出現(xiàn)和用戶的認(rèn)知偏差,力爭每個步驟做到明確無歧義,每兩個步驟之間做到緊密銜接。

4 概念性文檔

當(dāng)參考文檔無法解釋清楚某些東西的時候,就需要概念性文檔了,比如某個API的具體實現(xiàn)原理。其主要是為了擴(kuò)充參考文檔,而不是替代參考文檔。有時候這和參考文檔會有些內(nèi)容重復(fù),但主要還是為了更深層次的說明某些問題、解釋清楚某個概念。

概念性文檔也是所有文檔中寫作最難的,也是被閱讀最少的,所以很多情況下工程師最容易忽視。而且還有另外一個問題,沒合適的地方放,參考文檔可以寫代碼里,落地頁可以寫項目主頁里,概念性文檔似乎也只能在項目文檔里找個不起眼的角落存放了。

這類文檔的受眾會比較廣,專家和新手都會去看。另外,它需要強(qiáng)調(diào)概念清晰明了,因此可能會犧牲完整性(可以由參考文檔補(bǔ)齊),也有可能會犧牲準(zhǔn)確性,這不是說一定要犧牲準(zhǔn)確性,只是應(yīng)當(dāng)分清主次,不重要的就沒必要說了。

5 Landing pages(落地頁)

Landing pages就先簡單翻譯成落地頁了,沒想到啥恰當(dāng)?shù)姆g詞。比如一個團(tuán)隊或者項目的導(dǎo)航頁,雖然沒啥具體的內(nèi)容,但應(yīng)該包含其他頁面的鏈接。比如你新入職一個團(tuán)隊,比較成熟的團(tuán)隊都會扔給你一個文檔,這個文檔里包含常用的工具、文檔鏈接,這就是這個團(tuán)隊的落地頁。落地頁的問題就是隨著時間的推移,頁面可能會變的越來越亂,而且有些內(nèi)容會失效,不過這些問題都好解決,做好定期的維護(hù)和整理就行。落地頁的技術(shù)難度不高,但要求內(nèi)容的有效性、完整性和分類清晰。

文檔Review

在一個組織內(nèi),光靠個人去維護(hù)文檔是不行的,必須得借助群體的智慧。在一個組織內(nèi)部,文檔的變更也應(yīng)該像代碼的變更一樣,需要被其他人Review,以提前發(fā)現(xiàn)其中的問題并提升文檔的質(zhì)量。

如何Review文檔:

專業(yè)的視角來保證準(zhǔn)確性:一般由團(tuán)隊里比較資深的人負(fù)責(zé),他們關(guān)注的核心點是文檔寫的對不對,專不專業(yè)。如果Code Review做的好的話,文檔的Review也屬于Code Review的一部分。

讀者視角保證簡潔性:一般由不熟悉這個領(lǐng)域的人來Review,比如團(tuán)隊的新人,或者文檔的使用者。這部分主要是關(guān)注文檔是否容易被看懂。

寫作者視角保證一致性:由寫作經(jīng)驗豐富或者相關(guān)領(lǐng)域比較資深的人承擔(dān),主要是為了保證文檔前后是否一致,比如對同一個專業(yè)術(shù)語的使用和理解是否有歧義。

寫文檔的哲學(xué)

上面部分站在組織和團(tuán)隊的視角來看如何提高文檔質(zhì)量,我們接下來看看站在個人寫作者的視角上如何寫出高質(zhì)量的文檔。

5W法則

5W法則相信大家已經(jīng)聽的多了,分別是Who What When Where Why,這是一個廣泛被用在各行各業(yè)的法則,寫文檔當(dāng)然也能用(5W法則堪稱萬金油,啥地方都能用)。

WHO:前面已經(jīng)說過了,文檔是寫給誰看的,讀者是誰。

WHAT:明確這篇文檔的用途,有時候,僅僅說明文檔的用途和目的就能幫你搭建起整個文檔的框架。

WHEN:明確文檔的創(chuàng)建、Review和更新日期。因為文檔也有時效性,明確相關(guān)日期可以避免閱讀者踩坑。

WHERE:文檔應(yīng)該放在哪!建議一個組織或者團(tuán)隊有統(tǒng)一的永久文檔存放地址,并且有版本控制。最好是方便查找、使用和分享。

WHY:為什么要寫這篇文檔, 你期望讀者讀完后從文檔中獲得什么!

三段式寫作

寫文章一般都會有三個部分,專業(yè)寫作者也講究鳳頭、豬肚、豹尾,這三個詞概括出了好文章三部分應(yīng)有的特點。技術(shù)文檔也算是文章的一種,所以一般也都會有這三部分,每個部分有其自己的作用,比如第一部分闡述問題,中間部分介紹具體的解決方案,第三部分總結(jié)要點。

但這也并不以為著文檔應(yīng)該有三個部分,如果文檔內(nèi)容比較多,可以將其做更細(xì)致的拆解,可以適當(dāng)增加一些冗余的信息幫助讀者理解文檔內(nèi)容。雖然很多工程師都討厭冗余 極力追求簡潔,但寫文檔和寫代碼不同,適當(dāng)?shù)娜哂喾炊梢詭椭x者理解,很簡單,舉個例子,比如寫作中經(jīng)常舉例子,舉的例子本質(zhì)上就是冗余信息,生動的例子肯定是能幫助讀者理解抽象內(nèi)容的(我想這就是自舉吧)。

總結(jié)

目前看到比較好的一個現(xiàn)象就是大家越來越重視文檔了,但和測試相比,重視的程度還不夠。測試已經(jīng)是工作流程中不可或缺的一部分了,而文檔依舊還不是。

當(dāng)然這可能和文檔本身的特性相關(guān),測試很容易被自動化,也有非常多的客觀指標(biāo)來評估。文檔卻做不到,首先文檔的書寫需要人手動介入,而文檔的質(zhì)量也沒有太多客觀的指標(biāo)評估,提升文檔的數(shù)量和質(zhì)量只能從文化和工作流程上去逐漸改變。

最后總結(jié)下本文幾個關(guān)鍵點:

隨著時間的推移和組織規(guī)模的壯大,文檔會越來越重要。

文檔也應(yīng)該是開發(fā)流程的一部分。

一篇文檔只專注在一件事上。

文檔是寫給讀者看的,而不是給你自己看的。

最后提一句個人觀點:優(yōu)秀的工程師應(yīng)該有寫注釋的習(xí)慣,方便自己回頭查閱,也方便后期維護(hù)。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1556

    瀏覽量

    63337
  • 文檔
    +關(guān)注

    關(guān)注

    0

    文章

    48

    瀏覽量

    12133
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4882

    瀏覽量

    70061

原文標(biāo)題:工程師最討厭寫技術(shù)文檔?

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    沖壓件清洗機(jī)的重要性及其對產(chǎn)品質(zhì)量的影響

    某個角落默默地工作,確保每一個零件干凈、無瑕和高質(zhì)量。不少人卻忽視了它對于最終產(chǎn)品質(zhì)量重要性。本篇文章將深入探討沖壓件清洗機(jī)的重要性,以及
    的頭像 發(fā)表于 04-30 16:42 ?170次閱讀
    沖壓件清洗機(jī)的<b class='flag-5'>重要性</b>及其對產(chǎn)品<b class='flag-5'>質(zhì)量</b>的影響

    PCB拼板設(shè)計全解析:重要性、優(yōu)勢與應(yīng)用實踐

    設(shè)計,不僅可以提升生產(chǎn)效率,減少人工干預(yù),還能降低材料浪費和制造成本。因此,合理的拼板設(shè)計對于提高生產(chǎn)效率和產(chǎn)品質(zhì)量具有重要意義。 一、PCB拼板設(shè)計的基本概念及其重要性 PCB拼板設(shè)
    的頭像 發(fā)表于 03-13 09:35 ?322次閱讀
    PCB拼板設(shè)計全解析:<b class='flag-5'>重要性</b>、優(yōu)勢與應(yīng)用實踐

    Labview技術(shù)幫助文檔

    Labview最好的教材就是自帶的幫助文檔
    發(fā)表于 03-05 18:01 ?0次下載

    LPDDR4 16Gb 技術(shù)文檔詳解:SK hynix H9HCNNNBKUMLXR 規(guī)格書

    、引腳定義、電氣特性、時序要求以及初始化和操作流程等信息,旨在幫助工程師和愛好者深入了解該芯片的特性和應(yīng)用方法,對學(xué)習(xí)和提高內(nèi)存芯片相關(guān)知識具有重要價值。 文檔首先概述了 LPDDR
    發(fā)表于 03-03 14:07

    貼片加工質(zhì)量控制的重要性

    的性能和可靠,更是企業(yè)贏得市場競爭力的關(guān)鍵。 一、貼片加工質(zhì)量控制的重要性 在貼片加工過程中,任何微小的偏差都可能導(dǎo)致元件位置不準(zhǔn)確,進(jìn)而影響電路板的電氣性能和機(jī)械強(qiáng)度。嚴(yán)重的質(zhì)量
    的頭像 發(fā)表于 02-20 14:40 ?403次閱讀

    構(gòu)建綜合指揮調(diào)度系統(tǒng)的重要性

    構(gòu)建綜合指揮調(diào)度系統(tǒng)的重要性不言而喻,它對于提升應(yīng)急響應(yīng)速度、優(yōu)化資源配置、加強(qiáng)跨部門協(xié)作、提高決策效率和確保公共安全等方面都具有至關(guān)重要的作用。以下是古河云科技構(gòu)建綜合指揮調(diào)度系統(tǒng)重要性
    的頭像 發(fā)表于 02-06 16:56 ?351次閱讀

    如何提高嵌入式代碼質(zhì)量?

    嵌入式代碼的質(zhì)量是至關(guān)重要的。本文將探討如何通過有效的開發(fā)方法和工具來提高嵌入式代碼的質(zhì)量,以確保系統(tǒng)的可靠和可維護(hù)
    發(fā)表于 01-15 10:48

    PCB板元器件點膠加固的重要性

    PCB板元器件點膠加固的重要性PCB板元器件點膠加固在電子制造過程中起到了至關(guān)重要的作用,其重要性主要體現(xiàn)在以下幾個方面:一、提高機(jī)械強(qiáng)度點膠加固可以顯著降低電子元件的翹曲和變形現(xiàn)象,
    的頭像 發(fā)表于 12-20 10:18 ?845次閱讀
    PCB板元器件點膠加固的<b class='flag-5'>重要性</b>

    智能攤鋪壓實質(zhì)量監(jiān)測管理系統(tǒng)在路面施工中重要性簡介

    統(tǒng)的主要功能、監(jiān)管手段要求以及數(shù)據(jù)共享的重要性,以期為相關(guān)行業(yè)提供參考。 ?????????一、智能攤鋪壓實質(zhì)量監(jiān)測管理系統(tǒng)概述 ????????智能攤鋪壓實質(zhì)量監(jiān)測管理系統(tǒng)是一種集成
    的頭像 發(fā)表于 12-12 09:39 ?279次閱讀
    智能攤鋪壓實<b class='flag-5'>質(zhì)量</b>監(jiān)測管理系統(tǒng)在路面施工中<b class='flag-5'>重要性</b>簡介

    飛凌嵌入式「在線文檔」功能上線 | 開放靈活,盡在掌握

    在忙碌的研發(fā)過程中,效率十分關(guān)鍵,飛凌嵌入式深知“便捷獲取最新資料”的重要性,為此全新上線【在線文檔】功能——進(jìn)入飛凌嵌入式官網(wǎng),產(chǎn)品資料全面升級為在線文檔形式,旨在為客戶帶來更加開放與靈活的使用體驗。
    的頭像 發(fā)表于 09-13 09:46 ?505次閱讀
    飛凌嵌入式「在線<b class='flag-5'>文檔</b>」功能上線 | 開放靈活,盡在掌握

    EMI濾波器的作用和重要性

    電子設(shè)備中不可或缺的一部分。解析其在保護(hù)電子設(shè)備、提升系統(tǒng)性能及保障電磁環(huán)境安全方面的重要性。 一、EMI濾波器的基本概念EMI濾波器,全稱為電磁干擾濾波器,是一種用于抑制電磁干擾,保證信號傳輸質(zhì)量
    發(fā)表于 09-10 14:28

    關(guān)于蓄電池氣密檢測儀重要性和使用方法

    在能源存儲領(lǐng)域,電池的性能和安全非常重要,氣密作為衡量其質(zhì)量的關(guān)鍵指標(biāo)之一,直接影響電池的使用壽命、性能和安全。因此,蓄電池氣密
    的頭像 發(fā)表于 08-23 15:48 ?489次閱讀
    關(guān)于蓄電池氣密<b class='flag-5'>性</b>檢測儀<b class='flag-5'>重要性</b>和使用方法

    NLP技術(shù)在人工智能領(lǐng)域的重要性

    智能的橋梁,其重要性日益凸顯。本文將從NLP的定義、發(fā)展歷程、核心技術(shù)、應(yīng)用領(lǐng)域以及對人工智能領(lǐng)域的深遠(yuǎn)影響等多個維度,深入探討NLP技術(shù)在人工智能領(lǐng)域的
    的頭像 發(fā)表于 07-04 16:03 ?1059次閱讀

    AC/DC電源模塊的原理、特點以及其在實際應(yīng)用中的重要性

    取出來,并將其轉(zhuǎn)換為穩(wěn)定的直流電源,供給各種不同功率需求的設(shè)備使用。本文將介紹AC/DC電源模塊的原理、特點以及其在實際應(yīng)用中的重要性。 AC/DC電源模塊的原理、特點以及其在實際應(yīng)用中的重要
    的頭像 發(fā)表于 06-11 14:11 ?936次閱讀
    AC/DC電源模塊的原理、特點<b class='flag-5'>以及</b>其在實際應(yīng)用中的<b class='flag-5'>重要性</b>

    求助,ADC接地的重要性?

    ADC接地的重要性
    發(fā)表于 06-04 07:56