怎樣編程生存游戲,編程對你來說有什么樂趣?
和大家分享一些寫好代碼的習慣:
一.良好的編碼規(guī)范
編碼規(guī)范我認為是考量程序員是否合格的一個重要因素,因為寫代碼不規(guī)范真的會讓團隊的整體效率都降低。好的編碼規(guī)范可以指導開發(fā)人員更加高效、高質量地進行開發(fā),呈現(xiàn)給用戶體驗好、性能優(yōu)、穩(wěn)定性佳、安全性高的產品。那么說起代碼規(guī)范,代碼規(guī)范具體都指哪些方面的規(guī)范呢?1.命名規(guī)范
文件、資源、方法、接口、屬性、變量所有涉及到需要自己定義的部分都需要按照規(guī)范來命名,不然整個項目長期堆下來就是一團糟,維護起來相當?shù)睦щy。2.格式規(guī)范
縮進排版規(guī)范,我給大家推薦一個工具,checkStyle(AS和Idea都有這個工具)。AS checkStyle 插件可以通過自定義配置文件來統(tǒng)一團隊的代碼風格和代碼規(guī)范,降低團隊的交流成本,一般配合 save actions Reborn 使用更佳。關于checkStyle的配置文件網(wǎng)上也不少,大家自行去網(wǎng)上搜索,不單獨贅述了。3.邏輯規(guī)范
如:相同方法要抽取到工具類中以供全局調用、一個方法不要寫幾千行,方法過于復雜就要再單獨抽離方法等。4.注釋規(guī)范
注釋這部分內容文章第二章節(jié)會單獨說明。5.其他規(guī)范
如:一行聲明一個變量、所有的變量必須在聲明時初始化、for循環(huán)不要調用線程、項目中禁止使用過多的靜態(tài)變量等等示例:我自己寫項目遵循的開發(fā)規(guī)范(去華為云開發(fā)者社區(qū)、csdn等優(yōu)秀社區(qū)都可以搜索相關的開發(fā)規(guī)范)1)工程包命名
工程包名com. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).activity 放工程的主Activity 以及BaseActivitycom. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).activity.list 在activity下面建一個文件夾list放所有的ListActivitycom. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).adapter 放和主activity對應的adapter 以及通用adaptercom. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).adapter.item 放和listAcitivity對應的Adaptercom. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).bean 放javabean類com. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).util 放各種工具類 (圖片,字符,時間,dalog 等)com. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).net 放和服務器交互的類com. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).view 放 自定義view的類com. 公司名稱簡寫.應用名稱簡寫(拼音或者英文).db 放 本地數(shù)據(jù)庫操作相關的類當然 上面的公司名稱可以換成別的 ,盡量用簡寫或者英文 比如qq: 就可以寫成 com.tencent.qq.activity,大家明白這個意思就好。2)類文件命名
1. activityactivity 我習慣分為兩種考慮, 一種是列表數(shù)據(jù)的, 第二種是普通的activity 。這么分有個好處就是找這個類的時候方便。當你看到這個界面時列表數(shù)據(jù)的時候 直接搜索listActivity就能過濾掉一大部分,然后再篩選會簡單很多。這個大家從上面我定義的包名中就看出來了。所以 activity的命名是 : 功能簡寫+Activity功能簡寫+ListActivity登錄:LoginActivity用戶列表:UserListActivity2. layout xml全部小寫,用_隔開 xml命名 分為幾種主Activity用到的xml : activity_activity名稱簡寫.xml activity_login.xmlinclude的xml:include_功能簡寫.xml include_top_search.xmladapter中用到的xml:item_adapter名稱簡寫.xml item_user_list.xmldialog用到的xml:dialog_功能簡寫.xml dialog_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_btnLayoutView lvRelativeView rvEditText etTextView tvButton btnImageButton imgBtnImageView ivCheckBox cbxRadioButton rbtn其他的類似,不一一列舉了。這些都不是規(guī)定死的 ,大家自己定義,前提能區(qū)分開不同的控件并且能讓別人看懂。3.工具類等工具類功能簡寫+Util : DialogUtil.java 、 TextUtil.java3). 圖片等資源文件命名
背景圖片: bg_功能_說明 bg_login_commit圖標圖片: icon_功能_說明 icon_tab_set功能也可以換為 acvitiy名稱簡寫共用的圖片 前面都加 common4).程序中變量 常量命名
在說這個之前要給大家補充一下 標識符命名。就是變量和常量名字我一般就用兩種:1 駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其余所有單詞的第一個字母大寫。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;變量這個分為兩種全局變量、局部變量,全局變量 以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命名的方法了所以變量和那個規(guī)則基本一致: 功能邏輯名稱簡寫+view 簡寫private ImageView mPhoneVerifyIv;private Button mConfirmBtn;private EditText mPhoneNumberEt;private TextView mSelectCountryNameTv;private TextView mSelectCountryCodeTv;之前寫的一篇文章【軟件開發(fā)規(guī)范六】《Android開發(fā)編碼規(guī)范》二.寫好代碼注釋
代碼注釋我認為是很有必要的,這里說的代碼注釋是那些必要的,一些簡單的功能沒有必要加太多的注釋說明。舉個簡單的例子:某項目中有一個項目重點工程列表功能,后來又新增了在施項目列表功能,再后來又新增了停工項目重點列表功能,這個時候一般的開發(fā)人員都會考慮復用,就是用一個類,不用寫三個類,因為列表內字段都很類似,這個時候開發(fā)人員直接用的一個類,然后我貼一下代碼大家感受下有注釋和無注釋兩者區(qū)別:無注釋:有注釋:很明顯加上注釋以后,大家一眼就能看出這個類的作用,三個功能列表都是這個類的代碼,后期維護起來會非常方便,如果不加注釋,可能只有開發(fā)這個功能的開發(fā)人員清楚,其他人或者后期進入公司維護這個項目的開發(fā)人員只能通過讀代碼分析出三個功能是復用的一個類,很明顯效率就會降低很多,所以在開發(fā)過程中一定要養(yǎng)成一個寫注釋的習慣,代碼注釋相當于產品說明書,太重要了。寫代碼注釋要注意的幾個問題:盡量減少不必要的代碼注釋,說的直白點就是大家都知道的東西就沒必要加注釋,加了就是畫蛇添足類似這種的就屬于畫蛇添足,我看代碼能很直觀的知道這是點擊登錄后調用的邏輯,不需要解釋,寫了感覺一點意義沒有。注釋一定寫清楚作用,對于特殊處理的邏輯,要注釋這樣處理的原因代碼的注釋不是越詳細越好,概況的說清楚這段代碼的作用即可。三.review重構代碼
review代碼剛入行的時候就聽別人說過,但是在前兩家公司的時候,基本都是各做各的,每個人分工不同,也就是說自己寫的代碼自己維護,也不涉及到其他人,真正讓我知道review代碼的是在第三家公司的領導。當時我在第三家公司工作的一年多時間,從入職第一天寫的代碼到我離職的前一天,我寫的所有的代碼,我的領導都會幫我review一遍,每次review完我寫的代碼,他都會把我叫過去和我說哪里寫的不行、哪里需要改、怎么改、參照哪處的代碼。也是在那家公司項目組領導的指導下,我開發(fā)水平有了很大的提升,到現(xiàn)在回想起來,內心非常感謝他。可以說是那個領導幫我養(yǎng)成了review代碼的習慣,剛去的時候被他說過幾次,我每次寫完也會review一遍,最開始我僅僅是不想再被他吐槽寫的爛,因為大家都懂的,程序員就怕別人說自己菜,后來時間長了發(fā)現(xiàn)寫完功能后review一遍代碼,然后修改一下會讓代碼規(guī)范整潔很多;其次有些功能會加深理解。后來我離職去了下一家公司也一直保留寫完代碼后再重新review一遍的習慣。review代碼幾點小的建議:做完一個小功能后或者發(fā)布一個版本后review一遍,這個時間點比較適合,新功能還在討論需求中,會有空余時間可以用來review。代碼review都看哪些東西,我其實一般主要就看三方面:代碼規(guī)范 命名、格式、易讀性等代碼涉及到的一些算法或者邏輯等代碼是否可整合,比如同一類的方法是否可以增加參數(shù)復用、自定義組件是否可以重新封裝增強擴展性。當然如果系統(tǒng)性的review代碼不僅僅這三點,大家根據(jù)自己實際情況來做。四.多學習優(yōu)秀的源碼
如何讓自己的代碼寫的看起來很高大上、有水平、很規(guī)范。很多老菜鳥一般都會脫口而出:看源碼啊...這個看源碼沒毛病,看源碼肯定會有所收獲,源碼基本都是標準規(guī)范化的模板,但是說實話,我真的沒咋認真讀過那些底層源碼,除了剛學習java那會老師說必須仔細看API,去源碼找方法,后來基本沒咋看過源碼,因為我真的看不下去。我一般都喜歡帶著問題或者有一定目的去做事情,你就直接讓我看一堆源碼,我容易犯困。我個人習慣是看那些大廠的DEMO,比如我做云直播,我就看XX團隊的DEMO的代碼是怎么寫的;我做推送我就看某推送團隊的API文檔說明,學習文檔說明里面附帶的DEMO源碼是如何寫的。所以個人習慣看大廠發(fā)布的最新版本的DEMO源碼,因為首先我能看懂,其次能直接幫我解決問題。再后來我就看github上面主流的一些開源DEMO,都是star高的開源項目,這些項目都有一個共同點,就是代碼都寫的很規(guī)范。學習代碼規(guī)范的同時還能順便了解項目中都依賴了哪些新的框架、采用了哪些新的技術,總而言之就是找適合自己的優(yōu)秀的項目去學習。五.保持平和的心態(tài)
程序員這個職業(yè)其實對個人的心態(tài)要求很高,控制不好自己的心態(tài)真的不太適合做這行工作。因為每天都會面對各種復雜的問題,做不完的功能,改不完的BUG...描述一個場景:你正在改一個特別難處理的bug,但是開發(fā)環(huán)境卻在這時候出問題了,配置了半天還是解決不了,開發(fā)環(huán)境還是一直有問題,恰好這時候產品經(jīng)理突然過來和你說之前另外一個功能模塊的需求設計需要推翻重新做并且需要盡快加班改完。產品經(jīng)理通知所有相關人員參加新需求討論交底會議,會上研發(fā)經(jīng)理要求大家晚上留下來加班討論改版后的系統(tǒng)架構設計和數(shù)據(jù)庫相關改動設計,此時你的內心想必是有很多神獸飄過...很多開發(fā)的小伙伴碰到這種情況,心態(tài)就發(fā)生變化了,bug也改不下去,功能也不想做,即便硬著頭皮去改去做也會有很多問題,因為心態(tài)沒調整好,邏輯沒有梳理清晰,做出來的功能一定是問題一大堆。調整心態(tài)的方法:1.站起來活動活動,讓自己冷靜冷靜。2.去各種摸魚群里面吹吹水、吐槽吐槽,都可以緩解我們緊張煩躁的情緒。3.去各種技術社區(qū)去瀏覽瀏覽文章或者寫寫文章。總之就是做一些事情,先轉移一下注意力,先把自己心態(tài)調整好,這樣才能高效的投入到工作中。總結
代碼是一環(huán)扣一環(huán)的,從邏輯、可讀、簡潔、效率、維護,這些標準都決定了代碼的好壞。從看到學再到寫,在提升自己代碼能力的同時,還要注意代碼的質量優(yōu)化,一個好的程序,是由好的代碼模塊組合而成的,而在我們寫程序的時候就應該多加考慮和設計,這樣不僅是對代碼負責也是對自己負責,寫好優(yōu)質代碼是一個程序員應盡的責任。本文分享自華為云社區(qū)《【云駐共創(chuàng)】為了寫好代碼,你堅持了哪些好習慣?》,作者:再見孫悟空_。
大數(shù)據(jù)需要學編程嗎?
這是一個非常好的問題,也是很多大數(shù)據(jù)初學者比較關心的問題之一,作為一名大數(shù)據(jù)從業(yè)者,我來回答一下。
首先,當前的大數(shù)據(jù)技術體系已經(jīng)非常龐大了,涉及到數(shù)據(jù)的采集、整理、傳輸、存儲、分析、呈現(xiàn)和應用,對應的崗位包括大數(shù)據(jù)運維、大數(shù)據(jù)開發(fā)、大數(shù)據(jù)分析等,不同的崗位需要掌握不同的技術,所以初學者在學習大數(shù)據(jù)的時候,應該根據(jù)自身的知識結構和能力特點來選擇一個學習方向。
從大數(shù)據(jù)領域涉及到的崗位來看,大數(shù)據(jù)開發(fā)對于編程能力的要求比較高,所以如果要從事大數(shù)據(jù)開發(fā)崗位,應該重點掌握一下編程知識。目前大數(shù)據(jù)開發(fā)分為兩大類崗位方向,其一是大數(shù)據(jù)平臺開發(fā),其二是大數(shù)據(jù)應用開發(fā),大數(shù)據(jù)平臺開發(fā)主要致力于大數(shù)據(jù)平臺的搭建,而大數(shù)據(jù)應用開發(fā)則致力于大數(shù)據(jù)的行業(yè)應用。
大數(shù)據(jù)平臺開發(fā)對于從業(yè)者的技術要求比較高,需要具備豐富的開發(fā)經(jīng)驗,同時也要有較強的研發(fā)能力,近兩年不少大數(shù)據(jù)方向的研究生比較愿意從事這一類崗位。大數(shù)據(jù)平臺開發(fā)崗位往往集中在大型科技(互聯(lián)網(wǎng))公司,在產業(yè)互聯(lián)網(wǎng)時代,大型科技公司會把大數(shù)據(jù)平臺、物聯(lián)網(wǎng)平臺和人工智能平臺等,作為重點的戰(zhàn)略布局,在人才需求量上也會比較大。
從崗位附加值上來看,大數(shù)據(jù)平臺開發(fā)崗位的附加值還是比較高的,不僅體現(xiàn)在較高的薪資待遇方面,同時也會有廣闊的發(fā)展空間。按照傳統(tǒng)的崗位級別來劃分,大數(shù)據(jù)平臺開發(fā)類崗位往往屬于研發(fā)級崗位,職業(yè)生命周期也會相對比較長。對于初學者來說,如果自身的知識結構比較健全,數(shù)學基礎比較好,而且有一定的場景支撐(數(shù)據(jù)中心),那么完全可以走大數(shù)據(jù)平臺研發(fā)路線。對于沒有開發(fā)場景支撐的初級程序員來說,通過讀研來走向大數(shù)據(jù)平臺開發(fā)崗位,往往是比較現(xiàn)實的選擇。
相對于大數(shù)據(jù)平臺開發(fā)崗位來說,大數(shù)據(jù)應用開發(fā)崗位的技術門檻要相對低一些,主要的開發(fā)任務是基于大數(shù)據(jù)平臺來展開。目前Java、Python、Scala、R等編程語言在大數(shù)據(jù)應用開發(fā)領域有比較廣泛的應用,相關的開發(fā)案例也越來越多,所以初學者會有一個比較好的學習體驗。對于初學者來說,如果基礎比較薄弱,可以從Java開始學起,然后大數(shù)據(jù)平臺可以從Hadoop開始學起。
相對于大數(shù)據(jù)開發(fā)崗位來說,大數(shù)據(jù)分析崗位對于編程的要求要相對弱一些,但是也是需要具備一定編程能力的,尤其是采用機器學習的方式進行數(shù)據(jù)分析。當然,大數(shù)據(jù)分析崗位的重點在于算法的設計,所以大數(shù)據(jù)分析崗位(算法崗)對于數(shù)學基礎的要求比較高。另外,大數(shù)據(jù)分析崗位對于行業(yè)知識的要求也相對比較高。
大數(shù)據(jù)運維崗位涉及到的細分崗位比較多,這些崗位對于編程的要求會比較少,但是掌握編程也能夠在很大程度上提升工作效率。
總之,在大數(shù)據(jù)領域不論是從事何種崗位,掌握編程知識都具有一定的必要性。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計算機專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領域,我會陸續(xù)寫一些關于互聯(lián)網(wǎng)技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區(qū)留言,或者私信我!
喜歡打游戲可以學游戲開發(fā)嗎?
首先我要回答你的問題,答案是沒那么簡單。玩游戲與游戲開發(fā)其實不是同一個概念,游戲開發(fā)是一個非常復雜的過程,并沒有想象的那么簡單,開發(fā)游戲需要很高的智商,需要足夠的想象力,最重要的是,需要足夠的學歷。
學識可以說是這個領域的敲門磚,如果你沒有足夠的學歷,游戲公司就不會聘用你。而不是僅僅喜歡玩游戲就足夠的,如果你喜歡玩游戲,你可以去當一個游戲主播,如果你小有名氣,月入幾萬是沒有問題的。同時你也可以當一個游戲視頻創(chuàng)作者,他們的薪水不低于游戲主播。
而開發(fā)游戲是需要你精通計算機領域、精通編程的。并不是你所想的精通游戲,開發(fā)游戲的人員可以游戲玩的不好,但是不能計算機不好。
如果你想要當一個游戲開發(fā)者,你就應當認真學習計算機,從現(xiàn)在開始認真學習,上課認真聽,下課認真完成作業(yè),考上一個好大學,這才是你開發(fā)游戲的條件。而且你如果想要賺錢你必須讓這個游戲火。
總得來說,開發(fā)游戲不是那么容易的。
以上就是關于怎樣編程生存游戲和編程對你來說有什么樂趣的相關問題解答,希望對你有所幫助。