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

學習編程難嗎?有哪些好的建議和需要注意的問題?

錢諍諍2年前9瀏覽0評論

和大家分享一些寫好代碼的習慣:

一.良好的編碼規范

編碼規范我認為是考量程序員是否合格的一個重要因素,因為寫代碼不規范真的會讓團隊的整體效率都降低。好的編碼規范可以指導開發人員更加高效、高質量地進行開發,呈現給用戶體驗好、性能優、穩定性佳、安全性高的產品。

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

1.命名規范

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

所有涉及到需要自己定義的部分都需要按照規范來命名,不然整個項目長期堆下來就是一團糟,維護起來相當的困難。

2.格式規范

縮進排版規范,我給大家推薦一個工具,checkStyle(AS和Idea都有這個工具)。

AScheckStyle插件可以通過自定義配置文件來統一團隊的代碼風格和代碼規范,降低團隊的交流成本,一般配合saveactionsReborn使用更佳。關于checkStyle的配置文件網上也不少,大家自行去網上搜索,不單獨贅述了。

3.邏輯規范

如:相同方法要抽取到工具類中以供全局調用、一個方法不要寫幾千行,方法過于復雜就要再單獨抽離方法等。

4.注釋規范

注釋這部分內容文章第二章節會單獨說明。

5.其他規范

如:一行聲明一個變量、所有的變量必須在聲明時初始化、for循環不要調用線程、項目中禁止使用過多的靜態變量等等

示例:我自己寫項目遵循的開發規范(去華為云開發者社區、csdn等優秀社區都可以搜索相關的開發規范)

1)工程包命名

工程包名

  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).activity放工程的主Activity以及BaseActivity
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).activity.list在activity下面建一個文件夾list放所有的ListActivity
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).adapter放和主activity對應的adapter以及通用adapter
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).adapter.item放和listAcitivity對應的Adapter
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).bean放javabean類
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).util放各種工具類(圖片,字符,時間,dalog等)
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).net放和服務器交互的類
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).view放自定義view的類
  • com.公司名稱簡寫.應用名稱簡寫(拼音或者英文).db放本地數據庫操作相關的類
當然上面的公司名稱可以換成別的,盡量用簡寫或者英文比如qq:就可以寫成com.tencent.qq.activity,大家明白這個意思就好。

2)類文件命名

1.activity

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

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

  • 功能簡寫+ListActivity
  • 登錄:LoginActivity
  • 用戶列表:UserListActivity
2.layoutxml

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

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

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

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

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

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

xml中控件id命名:

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

用戶名EditText:login_username_et

登錄確認Button:login_confirm_btn

LayoutViewlv
RelativeViewrv
EditTextet
TextViewtv
Buttonbtn
ImageButtonimgBtn
ImageViewiv
CheckBoxcbx
RadioButtonrbtn

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

3.工具類等

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

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

背景圖片:bg_功能_說明bg_login_commit
圖標圖片:icon_功能_說明icon_tab_set

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

共用的圖片前面都加common

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

在說這個之前要給大家補充一下標識符命名。就是變量和常量名字

我一般就用兩種:

1駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其余所有單詞的第一個字母大寫。
protectedTextViewmWatchCountInfoTv;
protectedTextViewmNicknameTv;
protectedTextViewmLocationTv;
protectedTextViewmVideoTopicTv;
protectedTextViewmVideoTitleTv;

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

privatestaticfinalintMSG_SHOW_GIFT=20;
privatestaticfinalintMSG_SHOW_EXPRESSION=21;
privatestaticfinalintMSG_SHOW_RED_PACK=22;
privatestaticfinalintMSG_SHOW_JOIN_USER=23;

靜態常量

名稱都是功能說明_類別統一下劃線命名法

privatestaticfinalintMSG_SHOW_GIFT=20;
privatestaticfinalintMSG_SHOW_EXPRESSION=21;
privatestaticfinalintMSG_SHOW_RED_PACK=22;
privatestaticfinalintMSG_SHOW_JOIN_USER=23;

變量

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

全局變量:

protectedVideoEntitymCurrentVideo;
protectedintmShareType;
protectedMyHandlermHandler;
protectedintmLikeCount;
protectedintmCommentCount;

局部變量:

TextViewtview=newTextView();

Buttonbutton=newButton();

上面已經介紹過xml中id命名的方法了

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

privateImageViewmPhoneVerifyIv;
privateButtonmConfirmBtn;
privateEditTextmPhoneNumberEt;
privateTextViewmSelectCountryNameTv;
privateTextViewmSelectCountryCodeTv;

之前寫的一篇文章【軟件開發規范六】《Android開發編碼規范》

二.寫好代碼注釋

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

舉個簡單的例子:某項目中有一個項目重點工程列表功能,后來又新增了在施項目列表功能,再后來又新增了停工項目重點列表功能,這個時候一般的開發人員都會考慮復用,就是用一個類,不用寫三個類,因為列表內字段都很類似,這個時候開發人員直接用的一個類,然后我貼一下代碼大家感受下有注釋和無注釋兩者區別:

無注釋:

有注釋:

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

寫代碼注釋要注意的幾個問題:

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

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

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

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

三.review重構代碼

review代碼剛入行的時候就聽別人說過,但是在前兩家公司的時候,基本都是各做各的,每個人分工不同,也就是說自己寫的代碼自己維護,也不涉及到其他人,真正讓我知道review代碼的是在第三家公司的領導。

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

可以說是那個領導幫我養成了review代碼的習慣,剛去的時候被他說過幾次,我每次寫完也會review一遍,最開始我僅僅是不想再被他吐槽寫的爛,因為大家都懂的,程序員就怕別人說自己菜,后來時間長了發現寫完功能后review一遍代碼,然后修改一下會讓代碼規范整潔很多;其次有些功能會加深理解。后來我離職去了下一家公司也一直保留寫完代碼后再重新review一遍的習慣。

review代碼幾點小的建議:

做完一個小功能后或者發布一個版本后review一遍,這個時間點比較適合,新功能還在討論需求中,會有空余時間可以用來review。

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

代碼規范命名、格式、易讀性等

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

代碼是否可整合,比如同一類的方法是否可以增加參數復用、自定義組件是否可以重新封裝增強擴展性。

當然如果系統性的review代碼不僅僅這三點,大家根據自己實際情況來做。

四.多學習優秀的源碼

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

這個看源碼沒毛病,看源碼肯定會有所收獲,源碼基本都是標準規范化的模板,但是說實話,我真的沒咋認真讀過那些底層源碼,除了剛學習java那會老師說必須仔細看API,去源碼找方法,后來基本沒咋看過源碼,因為我真的看不下去。

我一般都喜歡帶著問題或者有一定目的去做事情,你就直接讓我看一堆源碼,我容易犯困。我個人習慣是看那些大廠的DEMO,比如我做云直播,我就看XX團隊的DEMO的代碼是怎么寫的;我做推送我就看某推送團隊的API文檔說明,學習文檔說明里面附帶的DEMO源碼是如何寫的。所以個人習慣看大廠發布的最新版本的DEMO源碼,因為首先我能看懂,其次能直接幫我解決問題。再后來我就看github上面主流的一些開源DEMO,都是star高的開源項目,這些項目都有一個共同點,就是代碼都寫的很規范。學習代碼規范的同時還能順便了解項目中都依賴了哪些新的框架、采用了哪些新的技術,總而言之就是找適合自己的優秀的項目去學習。

五.保持平和的心態

程序員這個職業其實對個人的心態要求很高,控制不好自己的心態真的不太適合做這行工作。

因為每天都會面對各種復雜的問題,做不完的功能,改不完的BUG...

描述一個場景:你正在改一個特別難處理的bug,但是開發環境卻在這時候出問題了,配置了半天還是解決不了,開發環境還是一直有問題,恰好這時候產品經理突然過來和你說之前另外一個功能模塊的需求設計需要推翻重新做并且需要盡快加班改完。產品經理通知所有相關人員參加新需求討論交底會議,會上研發經理要求大家晚上留下來加班討論改版后的系統架構設計和數據庫相關改動設計,此時你的內心想必是有很多神獸飄過...

很多開發的小伙伴碰到這種情況,心態就發生變化了,bug也改不下去,功能也不想做,即便硬著頭皮去改去做也會有很多問題,因為心態沒調整好,邏輯沒有梳理清晰,做出來的功能一定是問題一大堆。

調整心態的方法:

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

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

3.去各種技術社區去瀏覽瀏覽文章或者寫寫文章。

總之就是做一些事情,先轉移一下注意力,先把自己心態調整好,這樣才能高效的投入到工作中。

總結

代碼是一環扣一環的,從邏輯、可讀、簡潔、效率、維護,這些標準都決定了代碼的好壞。

從看到學再到寫,在提升自己代碼能力的同時,還要注意代碼的質量優化,一個好的程序,是由好的代碼模塊組合而成的,而在我們寫程序的時候就應該多加考慮和設計,這樣不僅是對代碼負責也是對自己負責,寫好優質代碼是一個程序員應盡的責任。

本文分享自華為云社區《【云駐共創】為了寫好代碼,你堅持了哪些好習慣?》,作者:再見孫悟空_。