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

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

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

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

代碼即注釋,注釋即代碼的概念是如何形成的

jf_GctfwYN7 ? 來源:芯時代青年 ? 2023-11-18 16:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

"代碼即注釋,注釋即代碼"這個概念是如何形成的呢?記得之前看一些討論,程序員應(yīng)該如何寫代碼的注釋,大家的意見很多,不過我只對兩句話記憶非常深刻:

(代碼)既然難寫,就應(yīng)難讀。

代碼本身就是注釋。

根據(jù)這兩句話意見呢,我們的代碼本身并不需要太多的注釋內(nèi)容。而應(yīng)該盡可能的通過合理的模塊與函數(shù)劃分、明確的信號命名、清晰的邏輯表達來替代繁瑣的注釋說明,同時再借助比較完備的文檔進行代碼的傳接。更何況呢坊間一直有一句傳聞:代碼易,人可替(我剛編的哈哈哈),所以久而久之我就養(yǎng)成了不寫注釋的好習(xí)慣。

俗話說,程序員都有兩個最大的厭惡:一是別人不寫注釋,二是別人讓自己寫注釋。我估摸著哈,這都是和我一樣養(yǎng)成好習(xí)慣的盆友。不過不寫注釋偶爾也會帶來一些惡果,最典型的就是隔一個月半個月要改自己的祖?zhèn)鞔a時,得把代碼從頭理一遍的痛苦。當然,代碼即注釋這句話不是本文的重點,重點是后面的注釋即代碼。

注釋即代碼的思想是怎么來的呢?來自于兩個對本奪命腳本師影響頗深的事情。一件是verilog-mode的使用,這個工具的介入直接讓困擾我多年的模塊例化與互連問題迎刃而解;另一件是前司開發(fā)的RTL檢查工具,借助注釋生成的檢查代碼節(jié)約了驗證大量的時間,因為我自己是驗證所以對此感受還是頗深的。腳本的目的無非是兩個,提高效率與提高質(zhì)量,而以注釋生成代碼以小生多的思路,不僅大大的提升了工作的效率,也能夠保證生成代碼的高質(zhì)量,畢竟人會出錯工具不會出錯(除非是我自己和工具沖突了,此時必是工具有bug╭(╯^╰)╮)。

那么在樹立了注釋即代碼的思想后,我就沿著這個方向進行了幾個腳本的開發(fā)。

第一個是名叫g(shù)en_link的腳本,看這個名字就知道這是模仿verilog-mode中的自動連線功能而開發(fā)的RTL例化與互連工具。為什么會重復(fù)造輪子呢?說來就比較曲折了,因為我不知道verilog-mode是開源的工具 ̄□ ̄||知道了這件事之后,我就轉(zhuǎn)而去研究了如何配置和使用該工具了,甚至還做了專欄。

第二個腳本是auto_assert,這個腳本和前司的借助注釋檢查代碼的工具思路是一致的,不過我在其中做了簡化和一些功能的補充。最終完成的腳本能夠支持如下的功能:

1.信號的不定態(tài)檢查

2.信號在使能時的不定態(tài)檢查

3.仿真過程中信號的取值檢查

4.仿真過程中使能時信號的取值檢查

5.仿真過程中信號取值覆蓋率分析

6.仿真結(jié)束時信號結(jié)束值檢查

然后我就發(fā)現(xiàn)了這個腳本的致命問題:這玩意會極大地增加設(shè)計的工作量!因為這個致命問題的存在,后面雖然我還對其進行了維護,但是一般不會在工作中使用了,就算用也只用最基礎(chǔ)的不定態(tài)檢查和結(jié)束值檢查功能。

第三個腳本是auto_unfold,這個腳本的功能是對代碼中的相似代碼進行循環(huán)展開,比如下面這種:

wKgZomVYe56ACfeNAAAZboLnnxc394.png

本來呢我以為這個是verilog-mode中的原生功能,后來才發(fā)現(xiàn)是前司內(nèi)部自己開發(fā)的派生功能。然后我又沒有對其進行進一步開發(fā)的能力,那能怎么辦呢?只好借助python開發(fā)新的腳本然后嵌入到vim中了。

最后一個腳本是auto_dff,這個腳本我前幾天才寫好的,寫它的目的是啥呢?在前面的文章提到了dff例化風(fēng)格代碼,在實踐的過程中就會發(fā)現(xiàn)一個問題,那就是每一個寄存器的例化和信號聲明寫起來也是挺煩的。在某一個進行進行批量寄存器替換的夜晚,我突然感覺寫這么多無效的寄存器代碼也非常的不能忍,所以開發(fā)了這個腳本:

wKgaomVYe6uAFPvdAABWDbv8I54182.png

但是說來非常的慚愧,寫完這個腳本后我就很久沒有開發(fā)代碼了,一直沒能好好的感受下效率提升的效果。

目前為止遵循“代碼即注釋,數(shù)值即代碼”思路開發(fā)的腳本就是這4個,以后再慢慢增加吧。

審核編輯:湯梓紅

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70762
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    398

    瀏覽量

    28472
  • 注釋
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    6605

原文標題:IC學(xué)霸筆記 | 代碼即注釋,注釋即代碼

文章出處:【微信號:IC修真院,微信公眾號:IC修真院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    麻煩問下keil選中代碼后快速注釋為何在代碼左邊出現(xiàn)注釋符號

    出現(xiàn)在左邊不就把代碼也都注釋掉了嗎,我想讓他出現(xiàn)在右邊這樣我寫注釋就不會把代碼注釋
    發(fā)表于 01-15 16:44

    44B0啟動代碼詳細注釋

    本內(nèi)容提供了44B0啟動代碼的詳細注釋,希望對大家有用
    發(fā)表于 08-01 15:44 ?59次下載
    44B0啟動<b class='flag-5'>代碼</b>詳細<b class='flag-5'>注釋</b>

    如何在代碼中添加注釋

    什么是代碼注釋,如何在代碼中添加注釋,相信每一位了解編程的人并不陌生。注釋里往往有很多有趣的腦洞和「真心話」
    的頭像 發(fā)表于 10-17 10:53 ?1.1w次閱讀

    python基礎(chǔ):如何注釋代碼

    ? ? ? 大家好,又到了每日學(xué)習(xí)的時間了,最近博主在和python打交道,今天我們來聊一聊python一些基礎(chǔ)的東西,如何注釋代碼塊。 ? ? ? ?前言 ? ? ? ?編寫python程序有時候
    的頭像 發(fā)表于 12-26 22:03 ?5847次閱讀
    python基礎(chǔ):如何<b class='flag-5'>注釋</b><b class='flag-5'>代碼</b>塊

    用于代碼注釋生成的語法輔助機制設(shè)計

    現(xiàn)有代碼注釋生成方法的復(fù)制機制未考慮源代碼復(fù)雜多變的語法結(jié)構(gòu),導(dǎo)致存在準確率和魯棒性不高等問題。通過改進指針網(wǎng)絡(luò)使其支持結(jié)構(gòu)化數(shù)據(jù)輸入,提出一種語法輔助復(fù)制機制,以用于代碼
    發(fā)表于 04-27 11:23 ?19次下載
    用于<b class='flag-5'>代碼</b><b class='flag-5'>注釋</b>生成的語法輔助機制設(shè)計

    JAVA連接Oracle數(shù)據(jù)庫實代碼+詳細注釋

    JAVA連接Oracle數(shù)據(jù)庫實代碼+詳細注釋(西工大現(xiàn)代電源技術(shù)考題)-該文檔為JAVA連接Oracle數(shù)據(jù)庫實代碼+詳細注釋簡介文檔,是一份還算不錯的參考文檔,感興趣的可以下載看看
    發(fā)表于 09-27 13:48 ?3次下載
    JAVA連接Oracle數(shù)據(jù)庫實<b class='flag-5'>代碼</b>+詳細<b class='flag-5'>注釋</b>

    嵌入式系統(tǒng)設(shè)計中的注釋和調(diào)試代碼

    使用 C++ 風(fēng)格的//注釋符號——,將//放在每行的開頭——稍微好一點,但應(yīng)用起來非常乏味,而且在刪除時也可能容易出錯。
    的頭像 發(fā)表于 06-20 16:04 ?1285次閱讀
    嵌入式系統(tǒng)設(shè)計中的<b class='flag-5'>注釋</b>和調(diào)試<b class='flag-5'>代碼</b>

    python代碼中使用HTTP代理IP,demo注釋清晰

    如何再python代碼中使用HTTP代理IP。 以下代碼主要圍繞第一次接觸HTTP代理IP的python新手來寫。(步驟注釋清晰) 直接把下面示例代碼中的HTTP代理API,替換成你后
    的頭像 發(fā)表于 08-04 15:40 ?1247次閱讀

    代碼編程規(guī)范之注釋風(fēng)格

    注釋的原則是有助于對程序的閱讀理解以及提供二次開發(fā)所需文檔,注釋的方式有很多,但是業(yè)內(nèi)常用的規(guī)范是 Doxygen 代碼注釋規(guī)范。遵循原則為,說明性文件、函數(shù)接口必須充分
    的頭像 發(fā)表于 02-15 15:01 ?2240次閱讀
    <b class='flag-5'>代碼</b>編程規(guī)范之<b class='flag-5'>注釋</b>風(fēng)格

    C語言中如何實現(xiàn)注釋

    在C語言中,注釋是用來增加代碼可讀性和注釋過程和功能的文本。C語言中支持兩種類型的注釋:單行注釋和多行
    的頭像 發(fā)表于 11-22 10:17 ?1930次閱讀

    c語言怎么把代碼全部注釋

    要將C語言代碼全部注釋掉,不讓代碼被編譯和執(zhí)行,可以使用注釋語句來實現(xiàn)。C語言提供兩種注釋方式
    的頭像 發(fā)表于 11-22 10:21 ?8941次閱讀

    devc怎么注釋掉一段代碼

    在DevC中,要注釋掉一段代碼,你可以使用注釋符號來標記這段代碼。注釋符號的作用是告訴編譯器不要編譯這些
    的頭像 發(fā)表于 11-22 10:23 ?3288次閱讀

    c++多行注釋快捷鍵

    在C++中,多行注釋(也稱為塊注釋)是一種用于注釋大段代碼或多個語句的方法。當你希望暫時禁用一些代碼或者解釋特定部分
    的頭像 發(fā)表于 11-22 10:24 ?9591次閱讀

    vs中如何快速注釋多行代碼

    在VS中,快速注釋多行代碼可以通過以下幾種方法實現(xiàn)。我將詳細介紹每種方法的步驟和應(yīng)用場景。 方法一:塊注釋注釋是一種常見的注釋多行
    的頭像 發(fā)表于 11-22 10:26 ?1.8w次閱讀

    java中的注釋有三類分別是

    在Java編程語言中,注釋是非常重要的一部分,它們提供了對代碼的解釋和說明。注釋可以幫助開發(fā)人員更好地理解代碼,使代碼更易于維護和理解。在J
    的頭像 發(fā)表于 11-28 16:47 ?1700次閱讀