色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

有哪些好的習(xí)慣從一開始就是值得堅(jiān)持的

黃文隆2年前10瀏覽0評論

有哪些好的習(xí)慣從一開始就是值得堅(jiān)持的?

和大家分享一些寫好代碼的習(xí)慣:

一.良好的編碼規(guī)范

編碼規(guī)范我認(rèn)為是考量https://www.b5b6.com是否合格的一個(gè)重要因素,因?yàn)閷懘a不規(guī)范真的會讓團(tuán)隊(duì)的整體效率都降低。好的編碼規(guī)范可以指導(dǎo)開發(fā)人員更加高效、高質(zhì)量地進(jìn)行開發(fā),呈現(xiàn)給用戶體驗(yàn)好、性能優(yōu)、穩(wěn)定性佳、安全性高的產(chǎn)品。

那么說起代碼規(guī)范,代碼規(guī)范具體都指哪些方面的規(guī)范呢?

1.命名規(guī)范

文件、資源、方法、接口、屬性、變量

所有涉及到需要自己定義的部分都需要按照規(guī)范來命名,不然整個(gè)項(xiàng)目長期堆下來就是一團(tuán)糟,維護(hù)起來相當(dāng)?shù)睦щy。

2.格式規(guī)范

縮進(jìn)排版規(guī)范,我給大家推薦一個(gè)工具,checkStyle(AS和Idea都有這個(gè)工具)。

AS checkStyle 插件可以通過自定義配置文件來統(tǒng)一團(tuán)隊(duì)的代碼風(fēng)格和代碼規(guī)范,降低團(tuán)隊(duì)的交流成本,一般配合 save actions Reborn 使用更佳。關(guān)于checkStyle的配置文件網(wǎng)上也不少,大家自行去網(wǎng)上搜索,不單獨(dú)贅述了。

3.邏輯規(guī)范

如:相同方法要抽取到工具類中以供全局調(diào)用、一個(gè)方法不要寫幾千行,方法過于復(fù)雜就要再單獨(dú)抽離方法等。

4.注釋規(guī)范

注釋這部分內(nèi)容文章第二章節(jié)會單獨(dú)說明。

5.其他規(guī)范

如:一行聲明一個(gè)變量、所有的變量必須在聲明時(shí)初始化、for循環(huán)不要調(diào)用線程、項(xiàng)目中禁止使用過多的靜態(tài)變量等等

示例:我自己寫項(xiàng)目遵循的開發(fā)規(guī)范(去華為云開發(fā)者社區(qū)、csdn等優(yōu)秀社區(qū)都可以搜索相關(guān)的開發(fā)規(guī)范)

1)工程包命名

工程包名

com. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).activity 放工程的主Activity 以及BaseActivitycom. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).activity.list 在activity下面建一個(gè)文件夾list放所有的ListActivitycom. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).adapter 放和主activity對應(yīng)的adapter 以及通用adaptercom. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).adapter.item 放和listAcitivity對應(yīng)的Adaptercom. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).bean 放javabean類com. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).util 放各種工具類 (圖片,字符,時(shí)間,dalog 等)com. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).net 放和服務(wù)器交互的類com. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).view 放 自定義view的類com. 公司名稱簡寫.應(yīng)用名稱簡寫(拼音或者英文).db 放 本地https://www.b5b6.com/shujuku/操作相關(guān)的類當(dāng)然 上面的公司名稱可以換成別的 ,盡量用簡寫或者英文 比如qq: 就可以寫成 com.tencent.qq.activity,大家明白這個(gè)意思就好。

2)類文件命名

1. activity

activity 我習(xí)慣分為兩種考慮, 一種是列表數(shù)據(jù)的, 第二種是普通的activity 。這么分有個(gè)好處就是找這個(gè)類的時(shí)候方便。當(dāng)你看到這個(gè)界面時(shí)列表數(shù)據(jù)的時(shí)候 直接搜索listActivity就能過濾掉一大部分,然后再篩選會簡單很多。這個(gè)大家從上面我定義的包名中就看出來了。

所以 activity的命名是 : 功能簡寫+Activity

功能簡寫+ListActivity登錄:LoginActivity用戶列表:UserListActivity2. layout xml

全部小寫,用_隔開 xml命名 分為幾種

主Activity用到的xml : activity_activity名稱簡寫.xml activity_login.xml

include的xml:include_功能簡寫.xml include_top_search.xml

adapter中用到的xml:item_adapter名稱簡寫.xml item_user_list.xml

dialog用到的xml:dialog_功能簡寫.xml dialog_show_tips.xml

自定義view用的xml :view_view名稱簡寫.xmlview_header.xml 這個(gè)就是共用的view 也可以用common_view名稱簡寫.xml替換

xml中 控件id命名:

模塊名稱_view的邏輯名稱_view縮寫

用戶名EditText : login_username_et

登錄確認(rèn)Button: login_confirm_btn

LayoutView lvRelativeView rvEditText etTextView tvButton btnImageButton imgBtnImageView ivCheckBox cbxRadioButton rbtn

其他的類似,不一一列舉了。這些都不是規(guī)定死的 ,大家自己定義,前提能區(qū)分開不同的控件并且能讓別人看懂。

3.工具類等

工具類功能簡寫+Util : DialogUtil.java 、 TextUtil.java

3). 圖片等資源文件命名

背景圖片: bg_功能_說明 bg_login_commit圖標(biāo)圖片: icon_功能_說明 icon_tab_set

功能也可以換為 acvitiy名稱簡寫

共用的圖片 前面都加 common

4).程序中變量 常量命名

在說這個(gè)之前要給大家補(bǔ)充一下 標(biāo)識符命名。就是變量和常量名字

我一般就用兩種:

1 駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其余所有單詞的第一個(gè)字母大寫。protected TextView mWatchCountInfoTv;protected TextView mNicknameTv;protected TextView mLocationTv;protected TextView mVideoTopicTv;protected TextView mVideoTitleTv;

2.下劃線命名法:單詞與單詞間用下劃線做間隔。

private static final int MSG_SHOW_GIFT = 20;private static final int MSG_SHOW_EXPRESSION = 21;private static final int MSG_SHOW_RED_PACK = 22;private static final int MSG_SHOW_JOIN_USER = 23;

靜態(tài)常量

名稱都是 功能說明_類別 統(tǒng)一下劃線命名法

private static final int MSG_SHOW_GIFT = 20;private static final int MSG_SHOW_EXPRESSION = 21;private static final int MSG_SHOW_RED_PACK = 22;private static final int MSG_SHOW_JOIN_USER = 23;

變量

這個(gè)分為兩種全局變量、局部變量,全局變量 以m開頭,局部變量不用。

全局變量:

protected VideoEntity mCurrentVideo;protected int mShareType;protected MyHandler mHandler;protected int mLikeCount;protected int mCommentCount;

局部變量:

TextView tview = new TextView();

Button button = new Button();

上面已經(jīng)介紹過 xml中id命名的方法了

所以變量和那個(gè)規(guī)則基本一致: 功能邏輯名稱簡寫+view 簡寫

private ImageView mPhoneVerifyIv;private Button mConfirmBtn;private EditText mPhoneNumberEt;private TextView mSelectCountryNameTv;private TextView mSelectCountryCodeTv;

之前寫的一篇文章【軟件開發(fā)規(guī)范六】《Android開發(fā)編碼規(guī)范》

二.寫好代碼注釋

代碼注釋我認(rèn)為是很有必要的,這里說的代碼注釋是那些必要的,一些簡單的功能沒有必要加太多的注釋說明。

舉個(gè)簡單的例子:某項(xiàng)目中有一個(gè)項(xiàng)目重點(diǎn)工程列表功能,后來又新增了在施項(xiàng)目列表功能,再后來又新增了停工項(xiàng)目重點(diǎn)列表功能,這個(gè)時(shí)候一般的開發(fā)人員都會考慮復(fù)用,就是用一個(gè)類,不用寫三個(gè)類,因?yàn)榱斜韮?nèi)字段都很類似,這個(gè)時(shí)候開發(fā)人員直接用的一個(gè)類,然后我貼一下代碼大家感受下有注釋和無注釋兩者區(qū)別:

無注釋:

有注釋:

很明顯加上注釋以后,大家一眼就能看出這個(gè)類的作用,三個(gè)功能列表都是這個(gè)類的代碼,后期維護(hù)起來會非常方便,如果不加注釋,可能只有開發(fā)這個(gè)功能的開發(fā)人員清楚,其他人或者后期進(jìn)入公司維護(hù)這個(gè)項(xiàng)目的開發(fā)人員只能通過讀代碼分析出三個(gè)功能是復(fù)用的一個(gè)類,很明顯效率就會降低很多,所以在開發(fā)過程中一定要養(yǎng)成一個(gè)寫注釋的習(xí)慣,代碼注釋相當(dāng)于產(chǎn)品說明書,太重要了。

寫代碼注釋要注意的幾個(gè)問題:

盡量減少不必要的代碼注釋,說的直白點(diǎn)就是大家都知道的東西就沒必要加注釋,加了就是畫蛇添足

類似這種的就屬于畫蛇添足,我看代碼能很直觀的知道這是點(diǎn)擊登錄后調(diào)用的邏輯,不需要解釋,寫了感覺一點(diǎn)意義沒有。

注釋一定寫清楚作用,對于特殊處理的邏輯,要注釋這樣處理的原因

代碼的注釋不是越詳細(xì)越好,概況的說清楚這段代碼的作用即可。

三.review重構(gòu)代碼

review代碼剛?cè)胄械臅r(shí)候就聽別人說過,但是在前兩家公司的時(shí)候,基本都是各做各的,每個(gè)人分工不同,也就是說自己寫的代碼自己維護(hù),也不涉及到其他人,真正讓我知道review代碼的是在第三家公司的領(lǐng)導(dǎo)。

當(dāng)時(shí)我在第三家公司工作的一年多時(shí)間,從入職第一天寫的代碼到我離職的前一天,我寫的所有的代碼,我的領(lǐng)導(dǎo)都會幫我review一遍,每次review完我寫的代碼,他都會把我叫過去和我說哪里寫的不行、哪里需要改、怎么改、參照哪處的代碼。也是在那家公司項(xiàng)目組領(lǐng)導(dǎo)的指導(dǎo)下,我開發(fā)水平有了很大的提升,到現(xiàn)在回想起來,內(nèi)心非常感謝他。

可以說是那個(gè)領(lǐng)導(dǎo)幫我養(yǎng)成了review代碼的習(xí)慣,剛?cè)サ臅r(shí)候被他說過幾次,我每次寫完也會review一遍,最開始我僅僅是不想再被他吐槽寫的爛,因?yàn)榇蠹叶级模琱ttps://www.b5b6.com就怕別人說自己菜,后來時(shí)間長了發(fā)現(xiàn)寫完功能后review一遍代碼,然后修改一下會讓代碼規(guī)范整潔很多;其次有些功能會加深理解。后來我離職去了下一家公司也一直保留寫完代碼后再重新review一遍的習(xí)慣。

review代碼幾點(diǎn)小的建議:

做完一個(gè)小功能后或者發(fā)布一個(gè)版本后review一遍,這個(gè)時(shí)間點(diǎn)比較適合,新功能還在討論需求中,會有空余時(shí)間可以用來review。

代碼review都看哪些東西,我其實(shí)一般主要就看三方面:

代碼規(guī)范 命名、格式、易讀性等

代碼涉及到的一些算法或者邏輯等

代碼是否可整合,比如同一類的方法是否可以增加參數(shù)復(fù)用、自定義組件是否可以重新封裝增強(qiáng)擴(kuò)展性。

當(dāng)然如果系統(tǒng)性的review代碼不僅僅這三點(diǎn),大家根據(jù)自己實(shí)際情況來做。

四.多學(xué)習(xí)優(yōu)秀的源碼

如何讓自己的代碼寫的看起來很高大上、有水平、很規(guī)范。很多老菜鳥一般都會脫口而出:看源碼啊...

這個(gè)看源碼沒毛病,看源碼肯定會有所收獲,源碼基本都是標(biāo)準(zhǔn)規(guī)范化的模板,但是說實(shí)話,我真的沒咋認(rèn)真讀過那些底層源碼,除了剛學(xué)習(xí)java那會老師說必須仔細(xì)看API,去源碼找方法,后來基本沒咋看過源碼,因?yàn)槲艺娴目床幌氯ァ?/p>我一般都喜歡帶著問題或者有一定目的去做事情,你就直接讓我看一堆源碼,我容易犯困。我個(gè)人習(xí)慣是看那些大廠的DEMO,比如我做云直播,我就看XX團(tuán)隊(duì)的DEMO的代碼是怎么寫的;我做推送我就看某推送團(tuán)隊(duì)的API文檔說明,學(xué)習(xí)文檔說明里面附帶的DEMO源碼是如何寫的。所以個(gè)人習(xí)慣看大廠發(fā)布的最新版本的DEMO源碼,因?yàn)槭紫任夷芸炊浯文苤苯訋臀医鉀Q問題。再后來我就看github上面主流的一些開源DEMO,都是star高的開源項(xiàng)目,這些項(xiàng)目都有一個(gè)共同點(diǎn),就是代碼都寫的很規(guī)范。學(xué)習(xí)代碼規(guī)范的同時(shí)還能順便了解項(xiàng)目中都依賴了哪些新的框架、采用了哪些新的技術(shù),總而言之就是找適合自己的優(yōu)秀的項(xiàng)目去學(xué)習(xí)。

五.保持平和的心態(tài)

https://www.b5b6.com這個(gè)職業(yè)其實(shí)對個(gè)人的心態(tài)要求很高,控制不好自己的心態(tài)真的不太適合做這行工作。

因?yàn)槊刻於紩鎸Ω鞣N復(fù)雜的問題,做不完的功能,改不完的BUG...

描述一個(gè)場景:你正在改一個(gè)特別難處理的bug,但是開發(fā)環(huán)境卻在這時(shí)候出問題了,配置了半天還是解決不了,開發(fā)環(huán)境還是一直有問題,恰好這時(shí)候產(chǎn)品經(jīng)理突然過來和你說之前另外一個(gè)功能模塊的需求設(shè)計(jì)需要推翻重新做并且需要盡快加班改完。產(chǎn)品經(jīng)理通知所有相關(guān)人員參加新需求討論交底會議,會上研發(fā)經(jīng)理要求大家晚上留下來加班討論改版后的系統(tǒng)架構(gòu)設(shè)計(jì)和https://www.b5b6.com/shujuku/相關(guān)改動設(shè)計(jì),此時(shí)你的內(nèi)心想必是有很多神獸飄過...

很多開發(fā)的小伙伴碰到這種情況,心態(tài)就發(fā)生變化了,bug也改不下去,功能也不想做,即便硬著頭皮去改去做也會有很多問題,因?yàn)樾膽B(tài)沒調(diào)整好,邏輯沒有梳理清晰,做出來的功能一定是問題一大堆。

調(diào)整心態(tài)的方法:

1.站起來活動活動,讓自己冷靜冷靜。

2.去各種摸魚群里面吹吹水、吐槽吐槽,都可以緩解我們緊張煩躁的情緒。

3.去各種技術(shù)社區(qū)去瀏覽瀏覽文章或者寫寫文章。

總之就是做一些事情,先轉(zhuǎn)移一下注意力,先把自己心態(tài)調(diào)整好,這樣才能高效的投入到工作中。

總結(jié)

代碼是一環(huán)扣一環(huán)的,從邏輯、可讀、簡潔、效率、維護(hù),這些標(biāo)準(zhǔn)都決定了代碼的好壞。

從看到學(xué)再到寫,在提升自己代碼能力的同時(shí),還要注意代碼的質(zhì)量優(yōu)化,一個(gè)好的程序,是由好的代碼模塊組合而成的,而在我們寫程序的時(shí)候就應(yīng)該多加考慮和設(shè)計(jì),這樣不僅是對代碼負(fù)責(zé)也是對自己負(fù)責(zé),寫好優(yōu)質(zhì)代碼是一個(gè)https://www.b5b6.com應(yīng)盡的責(zé)任。

本文分享自華為云社區(qū)《【云駐共創(chuàng)】為了寫好代碼,你堅(jiān)持了哪些好習(xí)慣?》,作者:再見孫悟空_。

java check,有哪些好的習(xí)慣從一開始就是值得堅(jiān)持的