色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

程序員需要學(xué)習(xí)哪些技巧

工程師人生 ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師吳畏 ? 2018-11-13 10:04 ? 次閱讀

在過去的七年半中,我在Ronimo游戲公司指導(dǎo)過十幾個程序員實習(xí)生,審閱了數(shù)百份簡歷。我發(fā)現(xiàn)他們中的大多數(shù)都需要學(xué)習(xí)一件事情。你可能以為這是某一技術(shù)、算法、數(shù)學(xué),或其它形式的某方面知識。當(dāng)然,他們的確需要彌補(bǔ)這些知識,但是在我看來,這些都不是最重要的。他們要去學(xué)習(xí)的最重要的一件事是:自律。這種自律體現(xiàn)在:編寫盡可能清晰的代碼;重構(gòu)代碼以消除因后續(xù)開發(fā)中的變化所造成的混亂;移除從未用過的代碼并且添加注釋。

我指導(dǎo)實習(xí)生的大部分時間不是在高級技術(shù)或引擎細(xì)節(jié)的解釋上,而是讓他們寫出更好的代碼。我總是會問實習(xí)申請者:要成為一名優(yōu)秀的程序員,你們認(rèn)為哪些是重要的?他們的回答通常是:代碼要清晰,易懂,便于維護(hù)。這當(dāng)然是我想聽到的,但是很少有年輕的程序員能從一而終地去實踐。

做到這些需要自律,因為這意味著代碼不能停留于“實現(xiàn)了功能”。假設(shè)所有的變量都被隨意地命名,代碼依然能夠完美運行,但是閱讀性很差。從短期看,從“功能型代碼”到“清晰型代碼”帶來的回報很少:代碼原本就可以運行,對其清理之后代碼仍然可以運行。這就是為什么需要自律來完成這一步,這也是為什么參加實習(xí)會很有幫助:一個好的導(dǎo)師會非常注重代碼的質(zhì)量(盡管不同的人對“好的代碼”有不同的定義),從而要求實習(xí)生進(jìn)一步改進(jìn)完善,走到下一個階段。

下面給出幾個例子,這些是我在新手程序員所寫的代碼里經(jīng)常看到的問題:

名不副實的函數(shù)/變量/類

這些函數(shù)、變量、類所做的事情并不是他們名字所暗示的那樣,這些名字具有欺騙性。顯然名字應(yīng)該反映真實的內(nèi)容,但讓我吃驚的是,名不副實這種情況常常出現(xiàn)。

舉個例子,我最近偶然看到以前一個實習(xí)生寫的兩個類:EditorGUI 和 EditorObjectCreatorGUI,這代碼本是用來處理編輯器里的界面。令我吃驚的是,創(chuàng)建新對象的按鈕的代碼放在了 EditorGUI 里面,而EditorObjectCreatorGUI則是處理不同對象間的操作,這都跟名字所暗示的完全相反!盡管代碼比較簡單,但我花了好大一會兒才弄明白,因為我基于類名稱作出了完全錯誤的假設(shè)。這個案例的解決辦法很簡單:重命名為 EditorObjectCreatorGUI和 EditorObjectNavigationGUI,僅僅做一小步就可以大大提高閱讀性。

命名不準(zhǔn)確這種情況我見到很多。之所以頻繁發(fā)生,是由于代碼在不斷地演變。最初選擇那個命名時可能是正確的,但一到代碼完成之后,命名可能就變得不準(zhǔn)確甚至錯誤的了。這個陷阱提醒我們應(yīng)該始終把命名記在心上,在你添加一段代碼的時候就要弄清楚,這與函數(shù)或類的名稱是否相稱。

推薦閱讀:《程序員最頭疼的事:命名》

混淆不清的類

另一個問題是混淆不清的類,即一個類做了很多不相關(guān)的事情。當(dāng)你長時間專注于同一塊代碼時,就可能這個問題。新功能用最簡單的方法實現(xiàn),到了某種程度,類就會變得臃腫,做了很多不相關(guān)的事情。有時候類變得臃腫不在于代碼規(guī)模的大小:一個類可能只有幾百行,但它卻包含了不屬于本類功能的代碼。

舉個例子,如果一個GUI類需要“分析哪些紋理可供使用”(設(shè)想有個按鈕用于選擇紋理),如果GUI類是唯一一個需要這種分析結(jié)果的類,那么在GUI類里實現(xiàn)它是很合理的。但是,這時一個完全不相關(guān)的gameplay類也需要這種分析結(jié)果的信息,因此你將GUI類傳遞給gameplay類來查詢紋理信息。這個時候GUI類就多出一種東西了:它是GUI類,同時也是TextureAnalyser類。這個案例的解決方案很簡單:從TextureAnalyser類分割出一個獨立的類,這個類可同時被GUI類和gameplay類使用。

避免這種問題的最好方法是在每次寫代碼前三思:我在這里添加的功能跟類的名稱符合嗎?如果不符合,那么就要對類重命名,或者將其分割成獨立的類,或者把這段代碼放到其他的類中。

如果想不出來一個跟類非常匹配的名字,這通常是代碼異味(Bad Smell)。如果找不到合適的名字描述這個類,可能因為它所做的事情太混雜了。這時可以將它分割成幾個部分,并且每個部分用一個恰當(dāng)?shù)拿謥砻枋觥?/p>

體積龐大的類

這問題跟上面所說混淆不清的類很相似:隨著時間的推移,越來越多的代碼被添加到一個類里,使得其變得臃腫。在這種情況下盡管放在一個類是很合理的,但是類的體積變得很大。超大的類處理起來是很麻煩的,當(dāng)很多代碼對同一個私有成員變量進(jìn)行操作時,bug就很容易出現(xiàn),并且人也很容易忽略很多細(xì)節(jié)。

分割一個超大的類是件相當(dāng)無聊的工作。當(dāng)代碼高度交錯時,這也具有很大的挑戰(zhàn)性。分隔代碼需要高度的自律,因為這只是對已有的代碼進(jìn)行增加或修改而保持原有的功能不變。

Ronimo公司有一個規(guī)定,保持類的代碼在500行以下,函數(shù)的代碼在50行以下。有時候這是不可行也不合理的,但是通常來說,不管哪一個類或函數(shù)超出了這個規(guī)定,我們都會尋找辦法將其重構(gòu)或者分割成更小的,更易于管理的片段。(這讓我很好奇:你覺得這個限制應(yīng)該是多少行?可以在評論中留言。)

代碼注釋

實習(xí)申請人給我們發(fā)過來的樣本代碼幾乎都有一些被注釋的代碼塊,但并沒有說明為什么會做這個注釋。是代碼存在錯誤需要修改嗎?還是代碼過舊需要更新?注釋掉的代碼為什么會在這里?當(dāng)我們問起申請人時,他們對這些被注釋的代碼也顯得很疑惑,但是奇怪的是,總會有一些原因不明的被注釋的代碼。

代碼重復(fù)

另一個我經(jīng)常看到的問題是有相似功能的代碼重復(fù)出現(xiàn)。

舉個例子,從紋理名字也許可以看出這東西的用途,如TreeBackground.dds。為了知道這個紋理是否可以用于一棵樹,我們檢查以Tree開頭的文件名。也許當(dāng)使用SDK后我們能很快找到,使用beginsWith(”Tree”)就行了。這個代碼很短,如果需要用到它,直接粘貼到那兒就可以了。這就是代碼重復(fù),并且人人都知道代碼重復(fù)是應(yīng)該避免的,如果重復(fù)的代碼很短,那么最吸引人的做法是直接復(fù)制粘貼。在這兒的問題很明顯:以后如果要檢查這個紋理是否適用于別的東西,我們就要進(jìn)行散彈式修正,一個地方一個地方修正了。

通常比較好的做法是,如果代碼功能特殊,不要去復(fù)制,而是把它放到一個函數(shù)里。盡管代碼很短很短,并且調(diào)用一個函數(shù)比粘貼需要寫更多的代碼,但是你要學(xué)會這么做,這也需要高度的自律。

本文所討論的主題很淺顯,大多數(shù)人在上大學(xué)一年級的時候已經(jīng)學(xué)過了。難就難在從知道這些東西到實際花時間遵循它們,再到把它們記在心里。這就是為什么所有在Ronimo實習(xí)過的人學(xué)到的最重要的東西不是知識,而是自律。

聲明:本文內(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

    文章

    4786

    瀏覽量

    68548
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    952

    瀏覽量

    29799
收藏 人收藏

    評論

    相關(guān)推薦

    TMS320C6000程序員指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000程序員指南.pdf》資料免費下載
    發(fā)表于 12-24 17:19 ?0次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補(bǔ)充

    電子發(fā)燒友網(wǎng)站提供《TMS320C55x DSP CPU程序員參考補(bǔ)充.pdf》資料免費下載
    發(fā)表于 12-21 11:36 ?0次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補(bǔ)充

    UCD3138A64/UCD3138128程序員手冊

    電子發(fā)燒友網(wǎng)站提供《UCD3138A64/UCD3138128程序員手冊.pdf》資料免費下載
    發(fā)表于 12-09 14:42 ?0次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊

    機(jī)械革命發(fā)布CODE AI程序員

    近日,英特爾新質(zhì)生產(chǎn)力技術(shù)生態(tài)大會在成都舉行,機(jī)械革命作為重要參展商帶來了多款明星產(chǎn)品引爆全場!其中更是在AI PC軟件生態(tài)產(chǎn)品發(fā)布分論壇上,Intel、智譜、機(jī)械革命三方聯(lián)合發(fā)布了專為程序員設(shè)計的CODE AI程序員本,成為本次大會的一大亮點。
    的頭像 發(fā)表于 11-30 10:34 ?377次閱讀

    Linux驅(qū)動程序程序員指南

    電子發(fā)燒友網(wǎng)站提供《Linux驅(qū)動程序程序員指南.pdf》資料免費下載
    發(fā)表于 11-22 15:53 ?0次下載
    Linux驅(qū)動<b class='flag-5'>程序</b><b class='flag-5'>程序員</b>指南

    AI編程工具會不會搶程序員飯碗

    AI編程工具可輔助編程,減少手動編碼,提升效率,對程序員有積極影響也有挑戰(zhàn)。程序員需深化技能、拓寬知識應(yīng)對。長遠(yuǎn)看,AI與人類程序員將共生共榮。
    的頭像 發(fā)表于 11-08 10:17 ?163次閱讀

    第五屆長沙·中國1024程序員節(jié)開幕

    據(jù)官方媒體報道,10月24日;? 第五屆長沙·中國1024程序員節(jié)在湖南湘江新區(qū)開幕;本次中國1024程序員節(jié)以“智能應(yīng)用新生態(tài)”為主題。設(shè)置有岳麓對話、技術(shù)英雄會、主題峰會及賽事、展覽等活動,一場
    的頭像 發(fā)表于 10-25 15:42 ?198次閱讀

    程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-08 10:38 ?72次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎

    程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    10月24日,程序員專屬的節(jié)日里,我們盛大開啟“程序員節(jié)視頻創(chuàng)意大賽”特別活動!這不僅是一場視覺的盛宴,更是智慧與創(chuàng)意的璀璨碰撞。我們誠摯邀請每一位程序員及編程愛好者,拿起你的鏡頭,記錄下那些平凡日子中的不凡瞬間,讓編程的魅力與
    的頭像 發(fā)表于 07-04 09:00 ?67次閱讀
    <b class='flag-5'>程序員</b>節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

    適者生存,程序員最終會流向哪……

    程序員沒有永遠(yuǎn)的護(hù)城河!!就目前的互聯(lián)網(wǎng)大環(huán)境來看,it行業(yè)已經(jīng)是……
    的頭像 發(fā)表于 03-11 17:11 ?409次閱讀
    適者生存,<b class='flag-5'>程序員</b>最終會流向哪……

    薪資高、青春飯,是不是程序員=青樓?

    進(jìn)入裁員階段。所以我們程序員要做的只能是與時俱進(jìn)。 適者生存,程序員亦是如此 順應(yīng)時代發(fā)展,是我們必須跟緊的。就好比技術(shù)更迭我們就要學(xué)習(xí)更新。而現(xiàn)在我們程序員最好的賽道出路在哪? 目前
    發(fā)表于 03-06 21:32

    感覺我國的程序員前景一片灰暗,是這樣嗎?

    程序員也分為好幾等,在現(xiàn)在看來大部分的Android、Java、前端等等開發(fā)。已經(jīng)看不到希望了,很多人都在邊緣掙扎;剛看到一位Android開發(fā)者,過完年回公司就通知被裁;可見每年都會有很多互聯(lián)網(wǎng)
    發(fā)表于 02-20 20:52

    瑞薩Flash程序員V3 發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash程序員V3 發(fā)布說明.pdf》資料免費下載
    發(fā)表于 02-19 09:37 ?1次下載
    瑞薩Flash<b class='flag-5'>程序員</b>V3 發(fā)布說明

    2024程序員的未來方向如何走?還看今朝

    這幾年的IT行業(yè)想必大家已經(jīng)感受到了,Android、Java、前端等等程序員都經(jīng)歷了大廠……
    的頭像 發(fā)表于 02-02 09:45 ?817次閱讀
    2024<b class='flag-5'>程序員</b>的未來方向如何走?還看今朝

    1月18號“純鴻蒙”千帆啟航,程序員預(yù)備!

    。 如何正確看待鴻蒙? 我作為程序員來說,首先是看鴻蒙的發(fā)展、市場開發(fā)崗位、薪資以及前景。 這幾年對鴻蒙的發(fā)展情況來分析,從2019年開始鴻蒙的出來今天,華為鴻蒙取得了很大的成就。從“不兼容
    發(fā)表于 01-16 22:13
    主站蜘蛛池模板: 国产看黄网站又黄又爽又色| 在野外被男人躁了一夜动图| 午夜宅宅伦电影网| 性色无码AV久久蜜臀| 亚洲精品123区在线观看| 亚洲精品色情婷婷在线播放| 欲乱艳荡少寡妇全文免费| 中文字幕亚洲乱码熟女在线| 99在线国产视频| 福利社影院| 国产亚洲精品久久久久小| 久久re这里精品在线视频7| 老头狠狠挺进小莹体内视频| 欧美午夜精品一区二区蜜桃 | 果冻传媒完整免费网站在线观看| 精品国产麻豆AV无码| 扒开女生尿口| 伊人久久大香线蕉综合色啪| 国产99在线视频| 国产99久久久国产精品免费看 | 芳草地社区在线视频| 国内精品偷拍在线观看| 伦理片 qvod| 十分钟在线观看免费视频高清WWW| 亚洲AV综合99一二三四区| 中文免费视频| 高H纯肉NP 弄潮NP男男| 久久99免费视频| 欧美高清vivoesond在线播放| 脱jk裙的美女露小内内无遮挡| 亚洲一区二区免费看| acg全彩无遮挡口工漫画网址| 纯肉高H啪短文合集| 国产在线自天天人人| 免费精品国偷自产在线| 桃花色影院| 在线看无码的免费网站| 俄罗斯性xxxx| 老司机亚洲精品影院在线观看| 色婷婷综合久久久久中文一区二区 | 亚洲人成电影网站色2017|