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

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

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

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

代碼命名規(guī)范是真優(yōu)雅呀!代碼如詩

jf_ro2CN3Fa ? 來源:小姐姐味道 ? 2023-03-13 09:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


日常編碼中,代碼的命名是個大的學(xué)問。能快速的看懂開源軟件的代碼結(jié)構(gòu)和意圖,也是一項必備的能力。那它們有什么規(guī)律呢?

Java項目的代碼結(jié)構(gòu),能夠體現(xiàn)它的設(shè)計理念。Java采用長命名的方式來規(guī)范類的命名,能夠自己表達(dá)它的主要意圖。配合高級的IDE,可以減少編碼人員的記憶負(fù)擔(dān),靠模糊的匹配就能找到自己所需要的資源。

為了讓大家更好的理解命名的套路,我借鑒了最流行的Java接開源軟件(spring系列,netty,libgdx,guava,logback等等),總結(jié)了10類常見的類命名。大多數(shù)是以后綴形式存在的,也有不少可以組合使用,用來表達(dá)多重的意義。

e5f8c4fa-c02f-11ed-bfe3-dac502259ad0.png

這些單詞很簡單,但可以讓你的類命名看起來更加清爽和專業(yè)。接下來,我將帶大家游覽一遍。為了方便理解,每種類型,我都配備了相應(yīng)的 示例。

管理類命名

寫代碼,少不了對統(tǒng)一資源的管理,清晰的啟動過程可以有效的組織代碼。為了讓程序運(yùn)行起來,少不了各種資源的注冊、調(diào)度,少不了公共集合資源的管理。

Bootstrap,Starter

一般作為程序啟動器使用,或者作為啟動器的基類。通俗來說,可以認(rèn)為是main函數(shù)的入口。

AbstractBootstrap
ServerBootstrap
MacosXApplicationStarter
DNSTaskStarter

Processor

某一類功能的處理器,用來表示某個處理過程,是一系列代碼片段的集合。如果你不知道一些順序類的代碼怎么命名,就可以使用它,顯得高大上一些。

CompoundProcessor
BinaryComparisonProcessor
DefaultDefaultValueProcessor

Manager

對有生命狀態(tài)的對象進(jìn)行管理,通常作為某一類資源的管理入口。

AccountManager
DevicePolicyManager
TransactionManager

Holder

表示持有某個或者某類對象的引用,并可以對其進(jìn)行統(tǒng)一管理。多見于不好回收的內(nèi)存統(tǒng)一處理,或者一些全局集合容器的緩存。

QueryHolder
InstructionHolder
ViewHolder

Factory

毫無疑問,工廠模式的命名,耳熟能詳。尤其是Spring中,多不勝數(shù)。

SessionFactory
ScriptEngineFactory
LiveCaptureFactory

Provider

Provider = Strategy + Factory Method。它更高級一些,把策略模式和方法工廠揉在了一塊,讓人用起來很順手。Provider一般是接口或者抽象類,以便能夠完成子實現(xiàn)。

AccountFeatureProvider
ApplicationFeatureProviderImpl
CollatorProvider

Registrar

注冊并管理一系列資源。

ImportServiceRegistrar
IKryoRegistrar
PipelineOptionsRegistrar

Engine

一般是核心模塊,用來處理一類功能。引擎是個非常高級的名詞,一般的類是沒有資格用它的。

ScriptEngine
DataQLScriptEngine
C2DEngine

Service

某個服務(wù)。太簡單,不忍舉例。范圍太廣,不要濫用哦。

IntegratorServiceImpl
ISelectionService
PersistenceService

Task

某個任務(wù)。通常是個runnable

WorkflowTask
FutureTask
ForkJoinTask

基于 Spring Boot + MyBatis Plus + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 視頻教程:https://doc.iocoder.cn/video/

傳播類命名

為了完成一些統(tǒng)計類或者全局類的功能,有些參數(shù)需要一傳到底。傳播類的對象就可以通過統(tǒng)一封裝的方式進(jìn)行傳遞,并在合適的地方進(jìn)行拷貝或者更新。

Context

如果你的程序執(zhí)行,有一些變量,需要從函數(shù)執(zhí)行的入口開始,一直傳到大量子函數(shù)執(zhí)行完畢之后。這些變量或者集合,如果以參數(shù)的形式傳遞,將會讓代碼變得冗長無比。這個時候,你就可以把變量統(tǒng)一塞到Context里面,以單個對象的形式進(jìn)行傳遞。

在Java中,由于ThreadLocal的存在,Context甚至可以不用在參數(shù)之間進(jìn)行傳遞。

AppContext
ServletContext
ApplicationContext

Propagator

傳播,繁殖。用來將context中傳遞的值進(jìn)行復(fù)制,添加,清除,重置,檢索,恢復(fù)等動作。通常,它會提供一個叫做propagate的方法,實現(xiàn)真正的變量管理。

TextMapPropagator
FilePropagator
TransactionPropagator

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現(xiàn)的后臺管理系統(tǒng) + 用戶小程序,支持 RBAC 動態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

  • 項目地址:https://github.com/YunaiV/yudao-cloud
  • 視頻教程:https://doc.iocoder.cn/video/

回調(diào)類命名

使用多核可以增加程序運(yùn)行的效率,不可避免的引入異步化。我們需要有一定的手段,獲取異步任務(wù)執(zhí)行的結(jié)果,對任務(wù)執(zhí)行過程中的關(guān)鍵點(diǎn)進(jìn)行檢查?;卣{(diào)類API可以通過監(jiān)聽、通知等形式,獲取這些事件。

Handler,Callback,Trigger,Listener

callback通常是一個接口,用于響應(yīng)某類消息,進(jìn)行后續(xù)處理;Handler通常表示持有真正消息處理邏輯的對象,它是有狀態(tài)的;tigger觸發(fā)器代表某類事件的處理,屬于Handler,通常不會出現(xiàn)在類的命名中;Listener的應(yīng)用更加局限,通常在觀察者模式中用來表示特定的含義。

ChannelHandler
SuccessCallback
CronTrigger
EventListener

Aware

Aware就是感知的意思,一般以該單詞結(jié)尾的類,都實現(xiàn)了Aware接口。拿spring來說,Aware 的目的是為了讓bean獲取spring容器的服務(wù)。具體回調(diào)方法由子類實現(xiàn),比如ApplicationContextAware。它有點(diǎn)回調(diào)的意思。

ApplicationContextAware
ApplicationStartupAware
ApplicationEventPublisherAware

監(jiān)控類命名

現(xiàn)在的程序都比較復(fù)雜,運(yùn)行狀態(tài)監(jiān)控已經(jīng)成為居家必備之良品。監(jiān)控數(shù)據(jù)的收集往往需要侵入到程序的邊邊角角,如何有效的與正常業(yè)務(wù)進(jìn)行區(qū)分,是非常有必要的。

Metric

表示監(jiān)控數(shù)據(jù)。不要用Monitor了,比較丑。

TimelineMetric
HistogramMetric
Metric

Estimator

估計,統(tǒng)計。用于計算某一類統(tǒng)計數(shù)值的計算器。

ConditionalDensityEstimator
FixedFrameRateEstimator
NestableLoadProfileEstimator

Accumulator

累加器的意思。用來緩存累加的中間計算結(jié)果,并提供讀取通道。

AbstractAccumulator
StatsAccumulator
TopFrequencyAccumulator

Tracker

一般用于記錄日志或者監(jiān)控值,通常用于apm中。

VelocityTracker
RocketTracker
MediaTracker

內(nèi)存管理類命名

如果你的應(yīng)用用到了自定義的內(nèi)存管理,那么下面這些名詞是繞不開的。比如Netty,就實現(xiàn)了自己的內(nèi)存管理機(jī)制。

Allocator

與存儲相關(guān),通常表示內(nèi)存分配器或者管理器。如果你得程序需要申請有規(guī)律得大塊內(nèi)存,allocator是你得不二選擇。

AbstractByteBufAllocator
ArrayAllocator
RecyclingIntBlockAllocator

Chunk

表示一塊內(nèi)存。如果你想要對一類存儲資源進(jìn)行抽象,并統(tǒng)一管理,可以采用它。

EncryptedChunk
ChunkFactory
MultiChunk

Arena

英文是舞臺、競技場的意思。由于Linux把它用在內(nèi)存管理上發(fā)揚(yáng)光大,它普遍用于各種存儲資源的申請、釋放與管理。為不同規(guī)格的存儲chunk提供舞臺,好像也是非常形象的表示。

關(guān)鍵是,這個詞很美,作為后綴讓類名顯得很漂亮。

BookingArena
StandaloneArena
PoolArena

Pool

表示池子。內(nèi)存池,線程池,連接池,池池可用。

ConnectionPool
ObjectPool
MemoryPool

過濾檢測類命名

程序收到的事件和信息是非常多的,有些是合法的,有些需要過濾扔掉。根據(jù)不同的使用范圍和功能性差別,過濾操作也有多種形式。你會在框架類代碼中發(fā)現(xiàn)大量這樣的名詞。

Pipeline,Chain

一般用在責(zé)任鏈模式中。Netty,Spring MVC,Tomcat等都有大量應(yīng)用。通過將某個處理過程加入到責(zé)任鏈的某個位置中,就可以接收前面處理過程的結(jié)果,強(qiáng)制添加或者改變某些功能。就像Linux的管道操作一樣,最終構(gòu)造出想要的結(jié)果。

Pipeline
ChildPipeline
DefaultResourceTransformerChain
FilterChain

Filter

過濾器,用來篩選某些滿足條件的數(shù)據(jù)集,或者在滿足某些條件的時候執(zhí)行一部分邏輯。如果和責(zé)任鏈連接起來,則通常能夠?qū)崿F(xiàn)多級的過濾。

FilenameFilter
AfterFirstEventTimeFilter
ScanFilter

Interceptor

攔截器,其實和Filter差不多。不過在Tomcat中,Interceptor可以拿到controller對象,但filter不行。攔截器是被包裹在過濾器中。

HttpRequestInterceptor

Evaluator

英文里是評估器的意思。可用于判斷某些條件是否成立,一般內(nèi)部方法evaluate會返回bool類型。比如你傳遞進(jìn)去一個非常復(fù)雜的對象,或者字符串,進(jìn)行正確與否的判斷。

ScriptEvaluator
SubtractionExpressionEvaluator
StreamEvaluator

Detector

探測器。用來管理一系列探測性事件,并在發(fā)生的時候能夠進(jìn)行捕獲和響應(yīng)。比如Android的手勢檢測,溫度檢測等。

FileHandlerReloadingDetector
TransformGestureDetector
ScaleGestureDetector

結(jié)構(gòu)類命名

除了基本的數(shù)據(jù)結(jié)構(gòu),如數(shù)組、鏈表、隊列、棧等,其他更高一層的常見抽象類,能夠大量減少大家的交流,并能封裝常見的變化。

Cache

這個沒啥好說的,就是緩存。大塊的緩存。常見的緩存算法有LRU、LFU、FIFO等。

LoadingCache
EhCacheCache

Buffer

buffer是緩沖,不同于緩存,它一般用在數(shù)據(jù)寫入階段。

ByteBuffer
RingBuffer
DirectByteBuffer

Composite

將相似的組件進(jìn)行組合,并以相同的接口或者功能進(jìn)行暴露,使用者不知道這到底是一個組合體還是其他個體。

CompositeData
CompositeMap
ScrolledComposite

Wrapper

用來包裝某個對象,做一些額外的處理,以便增加或者去掉某些功能。

IsoBufferWrapper
ResponseWrapper
MavenWrapperDownloader

Option, Param,Attribute

用來表示配置信息。說實話,它和Properties的區(qū)別并不大,但由于Option通常是一個類,所以功能可以擴(kuò)展的更強(qiáng)大一些。它通常比Config的級別更小,關(guān)注的也是單個屬性的值。Param一般是作為參數(shù)存在,對象生成的速度要快一些。

SpecificationOption
SelectOption
AlarmParam
ModelParam

Tuple

元組的概念。由于Java中缺乏元組結(jié)構(gòu),我們通常會自定義這樣的類。

Tuple2
Tuple3

Aggregator

聚合器,可以做一些聚合計算。比如分庫分表中的sum,max,min等聚合函數(shù)的匯集。

BigDecimalMaxAggregator
PipelineAggregator
TotalAggregator

Iterator

迭代器??梢詫崿F(xiàn)Java的迭代器接口,也可以有自己的迭代方式。在數(shù)據(jù)集很大的時候,需要進(jìn)行深度遍歷,迭代器可以說是必備的。使用迭代器還可以在迭代過程中安全的刪除某些元素。

BreakIterator
StringCharacterIterator

Batch

某些可以批量執(zhí)行的請求或者對象。

SavedObjectBatch
BatchRequest

Limiter

限流器,使用漏桶算法或者令牌桶來完成平滑的限流。

DefaultTimepointLimiter
RateLimiter
TimeBasedLimiter

常見設(shè)計模式命名

設(shè)計模式是名詞的重災(zāi)區(qū),這里只列出最常使用的幾個。

Strategy

將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨(dú)立地變化。策略模式。相同接口,不同實現(xiàn)類,同一方法結(jié)果不同,實現(xiàn)策略不同。比如一個配置文件,是放在xml里,還是放在json文件里,都可以使用不同的provider去命名。

RemoteAddressStrategy
StrategyRegistration
AppStrategy

Adapter

將一個類的接口轉(zhuǎn)換為客戶希望的另一個接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些類一起工作。

不過,相對于傳統(tǒng)的適配器進(jìn)行api轉(zhuǎn)接,如果你的某個Handler里面方法特別的多,可以使用Adapter實現(xiàn)一些默認(rèn)的方法進(jìn)行0適配。那么其他類使用的時候,只需要繼承Adapter,然后重寫他想要重寫的方法就可以了。這也是Adapter的常見用法。

ExtendedPropertiesAdapter
ArrayObjectAdapter
CardGridCursorAdapter

Action,Command

將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化,對請求排隊或記錄請求日志,以及支持可撤銷的操作。

用來表示一系列動作指令,用來實現(xiàn)命令模式,封裝一系列動作或者功能。Action一般用在UI操作上,后端框架可以無差別的使用。

在DDD的概念中,CQRS的Command的C,既為Command。

DeleteAction
BoardCommand

Event

表示一系列事件。一般的,在語義上,Action,Command等,來自于主動觸發(fā);Event來自于被動觸發(fā)。

ObservesProtectedEvent
KeyEvent

Delegate

代理或者委托模式。委托模式是將一件屬于委托者做的事情,交給另外一個被委托者來處理。

LayoutlibDelegate
FragmentDelegate

Builder

將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。

構(gòu)建者模式的標(biāo)準(zhǔn)命名。比如StringBuilder。當(dāng)然StringBuffer是個另類。這也說明了,規(guī)則是人定的,人也可以破壞。

JsonBuilder
RequestBuilder

Template

模板方法類的命名。定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。

JDBCTemplate

Proxy

代理模式。為其他對象提供一種代理以控制對這個對象的訪問。

ProxyFactory
SlowQueryProxy

解析類命名

寫代碼要涉及到大量的字符串解析、日期解析、對象轉(zhuǎn)換等。根據(jù)語義和使用場合的區(qū)別,它們也分為多種。

Converter,Resolver

轉(zhuǎn)換和解析。一般用于不同對象之間的格式轉(zhuǎn)換,把一類對象轉(zhuǎn)換成另一類。注意它們語義上的區(qū)別,一般特別復(fù)雜的轉(zhuǎn)換或者有加載過程的需求,可以使用Resolver。

DataSetToListConverter
LayoutCommandLineConverter
InitRefResolver
MustacheViewResolver

Parser

用來表示非常復(fù)雜的解析器,比如解析DSL。

SQLParser
JSONParser

Customizer

用來表示對某個對象進(jìn)行特別的配置。由于這些配置過程特別的復(fù)雜,值得單獨(dú)提取出來進(jìn)行自定義設(shè)置。

ContextCustomizer
DeviceFieldCustomizer

Formatter

格式化類。主要用于字符串、數(shù)字或者日期的格式化處理工作。

DateFormatter
StringFormatter

網(wǎng)絡(luò)類命名

網(wǎng)絡(luò)編程的同學(xué),永遠(yuǎn)繞不過去的幾個名詞。

Packet

通常用于網(wǎng)絡(luò)編程中的數(shù)據(jù)包。

DhcpPacket
PacketBuffer

Protocol

同樣用戶網(wǎng)絡(luò)編程中,用來表示某個協(xié)議。

RedisProtocol
HttpProtocol

Encoder、Decoder、Codec

編碼解碼器

RedisEncoder
RedisDecoder
RedisCodec

Request,Response

一般用于網(wǎng)絡(luò)請求的進(jìn)和出。如果你用在非網(wǎng)絡(luò)請求的方法上,會顯得很怪異。

CRUD命名

這個就有意思多了,統(tǒng)一的Controller,Service,Repository,沒什么好說的。但你一旦用了DDD,那就得按照DDD那一套的命名來。

由于DDD不屬于通用編程范疇,它的名詞就不多做介紹了。

其他

Util,Helper

都表示工具類,Util一般是無狀態(tài)的,Helper以便需要創(chuàng)建實例才能使用。但是一般沒有使用Tool作為后綴的。

HttpUtil
TestKeyFieldHelper
CreationHelper

Mode,Type

看到mode這個后綴,就能猜到這個類大概率是枚舉。它通常把常見的可能性都列到枚舉類里面,其他地方就可以引用這個Mode。

OperationMode
BridgeMode
ActionType

Invoker,Invocation

invoker是一類接口,通常會以反射或者觸發(fā)的方式,執(zhí)行一些具體的業(yè)務(wù)邏輯。通過抽象出invoke方法,可以在invoke執(zhí)行之前對入?yún)⑦M(jìn)行記錄或者處理;在invoke執(zhí)行之后對結(jié)果和異常進(jìn)行處理,是AOP中常見的操作方式。

MethodInvoker
Invoker
ConstructorInvocation

Initializer

如果你的應(yīng)用程序,需要經(jīng)過大量的初始化操作才能啟動,那就需要把它獨(dú)立出來,專門處理初始化動作。

MultiBackgroundInitialize
ApplicationContextInitializer

Feture,Promise

它們都是用在多線程之間的,進(jìn)行數(shù)據(jù)傳遞。

Feture相當(dāng)于一個占位符,代表一個操作將來的結(jié)果。一般通過get可以直接阻塞得到結(jié)果,或者讓它異步執(zhí)行然后通過callback回調(diào)結(jié)果。

但如果回調(diào)中嵌入了回調(diào)呢?如果層次很深,就是回調(diào)地獄。Java中的CompletableFuture其實就是Promise,用來解決回調(diào)地獄問題。Promise是為了讓代碼變得優(yōu)美而存在的。

Selector

根據(jù)一系列條件,獲得相應(yīng)的同類資源。它比較像Factory,但只處理單項資源。

X509CertSelector
NodeSelector

Reporter

用來匯報某些執(zhí)行結(jié)果。

ExtentHtmlReporter
MetricReporter

Constants

一般用于常量列表。

Accessor

封裝了一系列g(shù)et和set方法的類。像lombok就有Accessors注解,生成這些方法。但Accessor類一般是要通過計算來完成get和set,而不是直接操作變量。這適合比較復(fù)雜的對象存取服務(wù)。

ComponentAccessor
StompHeaderAccessor

Generator

生成器,一般用于生成代碼,生成id等。

CodeGenerator
CipherKeyGenerator

End

寫代碼,看源碼,怎么少得了意會和神通?代碼要帶感,命名也風(fēng)騷。命名起的好,代碼會看起來很爽,大家也都喜歡。

說不清楚的事情,給一段代碼,咱就能懂!就是這么神奇!

其實,寫專業(yè)牛b的代碼,并不需要了解太多的英文單詞,大多數(shù)時候用不著英文4級這么了不起的水平。只需要有限的單詞,就能玩出代碼界好萊塢的感覺。

看完本文之后,翻一翻開源軟件的代碼們,看看是不是這個理?

上面這些命名,高頻率存在于各種框架中。你要是搞懂了這些名詞,閱讀大部分源代碼可以說是一點(diǎn)障礙都沒有了。在同一個場景下,優(yōu)先使用這些名詞,已經(jīng)是大家心照不宣的規(guī)范。

有很多名詞來自于設(shè)計模式,但又在特定場合使用了比較特殊的單詞,比如Provider,大家仔細(xì)感受下其中的區(qū)別就可以了。

命名是編碼中非常重要的一環(huán),希望大家找到其中的規(guī)律,讓你的代碼功能上強(qiáng)大,顏值上好看;祝大家的薪資水漲船高,配得上你的這份專業(yè)和工匠精神。


審核編輯 :李倩


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

    關(guān)注

    0

    文章

    212

    瀏覽量

    16252
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2988

    瀏覽量

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

    關(guān)注

    30

    文章

    4899

    瀏覽量

    70594

原文標(biāo)題:新來了個同事,代碼命名規(guī)范是真優(yōu)雅呀!代碼如詩!!

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何讓你的Python代碼優(yōu)雅又地道

    pythonic的代碼簡練,明確,優(yōu)雅,絕大部分時候執(zhí)行效率高。閱讀pythonic的代碼能體會到“代碼是寫給人看的,只是順便讓機(jī)器能運(yùn)行”暢快。這篇文章是網(wǎng)友Jeff Paine整理
    的頭像 發(fā)表于 02-03 12:35 ?4767次閱讀

    代碼里的命名規(guī)則:錯誤的和正確的對比

    的意思(下訂單這個場景中,“customersInOrder” 要比 “l(fā)ist” 好)。清楚的代碼:var allCustomers;var customersInOrder;命名時編碼規(guī)范保持一致,讓
    發(fā)表于 06-13 22:33

    關(guān)于Android命名規(guī)范

    第一家公司是如此的重要,如果開發(fā)流程規(guī)范,對你之后的影響不是一般的大!而我經(jīng)歷的公司大都不成體系,我的習(xí)慣就是我的規(guī)范!哈哈!很多的技術(shù)人員,恐怕都認(rèn)為除了自己的作品外,別人寫的代碼都是“垃圾
    發(fā)表于 10-15 00:11

    關(guān)于Android命名規(guī)范

    第一家公司是如此的重要,如果開發(fā)流程規(guī)范,對你之后的影響不是一般的大!而我經(jīng)歷的公司大都不成體系,我的習(xí)慣就是我的規(guī)范!哈哈!很多的技術(shù)人員,恐怕都認(rèn)為除了自己的作品外,別人寫的代碼都是“垃圾
    發(fā)表于 06-21 09:35

    FPGA的代碼書寫規(guī)范

    代碼書寫規(guī)范本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA設(shè)計實戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 雖然沒有“國際標(biāo)準(zhǔn)”級別的Verilog或
    發(fā)表于 04-16 04:08

    FPGA代碼的信號命名和定義

    在設(shè)計中,我們不斷的給目錄、源代碼、文件、函數(shù)、變量、參數(shù)、類、封包進(jìn)行命名與定義。當(dāng)一件工作需要進(jìn)行的次數(shù)非常之多,足以證明它是不可或缺的基本工作。我們一定要知道一點(diǎn),基礎(chǔ)工作是整個項目的基石
    發(fā)表于 05-07 06:35

    Verilog代碼書寫規(guī)范

    Verilog代碼書寫規(guī)范規(guī)范的目的是提高書寫代碼的可讀性、可修改性、可重用性,優(yōu)化代碼綜合和仿真的結(jié)果,指導(dǎo)設(shè)計工程師使用
    發(fā)表于 04-15 09:47 ?106次下載

    verilog代碼規(guī)范

    verilog代碼規(guī)范,學(xué)會寫代碼還不行,我們需要更加的規(guī)范
    發(fā)表于 03-25 14:43 ?24次下載

    讓你的 Python 代碼優(yōu)雅又地道

    vs NP (pythonic vs non-pythonic)的討論。pythonic的代碼簡練,明確,優(yōu)雅,絕大部分時候執(zhí)行效率高。閱讀pythonic的代碼能體會到“代碼是寫給
    的頭像 發(fā)表于 03-06 10:35 ?3791次閱讀

    如何提高代碼性能、使代碼遠(yuǎn)離Bug、令代碼優(yōu)雅

    背景:如何更規(guī)范化編寫Java代碼的重要性想必毋需多言,其中最重要的幾點(diǎn)當(dāng)屬提高代碼性能、使代碼遠(yuǎn)離Bug、令代碼
    的頭像 發(fā)表于 08-17 09:42 ?1624次閱讀

    怎么樣才能讓Java代碼編寫更規(guī)范

    cars? 忘川如斯,擁有一切的人才更怕失去。 背景:如何更規(guī)范化編寫Java 代碼的重要性想必毋需多言,其中最重要的幾點(diǎn)當(dāng)屬提高代碼性能、使代碼遠(yuǎn)離Bug、令
    的頭像 發(fā)表于 08-27 09:31 ?3881次閱讀

    科普一下Verilog代碼命名規(guī)范

    命名規(guī)范包括模塊命名規(guī)范代碼命名規(guī)范,
    的頭像 發(fā)表于 11-17 09:54 ?4353次閱讀

    代碼編程規(guī)范命名規(guī)范

    標(biāo)識符的命名規(guī)則歷來是一個敏感話題,典型的命名風(fēng)格如unix風(fēng)格、windows風(fēng)格等,從來無法達(dá)成共識。實際上,各種風(fēng)格都有其優(yōu)勢也有其劣勢,而且往往和個人的審美觀有關(guān)。對標(biāo)識符定義主要是為了讓團(tuán)隊的代碼看起來盡可能統(tǒng)一,有利
    的頭像 發(fā)表于 02-15 14:57 ?1853次閱讀

    C語言代碼規(guī)范

    1. 前言 本文是AliOS Things提供的一套C語言代碼規(guī)范,適用的對象為符合C99標(biāo)準(zhǔn)的C語言工程。 2. 命名 本節(jié)內(nèi)容均為建議,不作強(qiáng)制要求。 2.1. 總則 各種命名均使
    的頭像 發(fā)表于 06-22 10:38 ?1381次閱讀

    FPGA的Verilog代碼編寫規(guī)范

      注:以R起頭的是對編寫Verilog代碼的IP設(shè)計者所做的強(qiáng)制性規(guī)定,以G起頭的條款是建議采用的規(guī)范。每個設(shè)計者遵守本規(guī)范可鍛煉命名規(guī)范
    的頭像 發(fā)表于 08-15 16:23 ?2904次閱讀