① 頂級的程序員是怎麼樣的
頂尖程序員常說:「這個我以前寫過一個模塊,我找找,很快。「簡直是沒有對比就沒有傷害!
有人認為,普通程序員用復雜的代碼解決簡單的問題;而高級程序員能把復雜的問題簡單化並用簡潔的代碼去實現。在w3cschool看來,頂尖程序員和普通程序員至少在以下6個方面大有區別。
1、文檔能力
「文檔是第一生產力」,這一點在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。
如果要獲得更高的報酬,文檔是絕對關鍵的因素。有文檔就有溝通,就有交易。搞技術的容易忽視文檔的力量,也因為寫文檔十分困難,更多程序員選擇舒適區,習慣寫下代碼,但正因為如此,妨礙了不少程序員的進階。
2、解決BUG的效率差別
普通程序員可以利用搜索引擎(網路)尋找答案,經常性找不到好的解決辦法,然後更換技術方案!頂級程序員也利用搜索引擎(Google)尋找答案,一般bug都順利解決(其實跟前期框架選擇等關系非常大)。
3、表達能力
表達能力決定了你所做的技術的影響范圍,決定了你的影響力,決定你的威信,決定了你的報酬。普通程序員和頂尖程序員的表達能力差別非常大,這主要還是取決於他們格局的不同。良好的溝通能力讓你理解產品經理的設計思路,讓你更好的展現自己的特長。
對於累積人脈,當你的閱歷越來越豐富,人脈對你的幫助也越來越明顯。
4、優雅和美觀的抽象能力
普通程序員和頂尖程序員之間的區別在於優雅和美觀的抽象能力。好的系統通常是要做到兩個方面才合格,其一是好用,其二是好看。但是令人遺憾的是,普通程序員僅僅從實現的角度進行堆砌。頂尖程序員往往能夠更進一步,經常會去思考用戶在操作這個功能的時候,到底還會做什麼事情。
所以,頂尖程序員和普通程序員區別就是是否擁有用戶意識,是否敢於直面用戶。好用,好看一直是軟體能夠被普遍採用的前提,因此,我們有必要學會抽象優雅。
5、面對如何開源社區態度
普通程序員幾乎沒有在開源社區混,這也導致經常對新技術發展關注度低。而頂尖程序員則是擁抱開源社區。
6、面對功能點
普通程序員:立馬開始構思自己如何實現腦海里出來一個方案。
頂尖程序員:發現功能點很普通github上面早已經有非常多的解決方案,著手根據業務選擇一個最適合最優的方案
② 作為程序員,最常上的網站有哪些
推薦十二個值得程序員和想成為程序員的你,每天一看的網站:
1. GitHub — 開發者最最最重要的網站:https://github.com
這個不用多說了吧,代碼託管網站,上面有很多資源,想要什麼輪子,上去搜就好了。並且呢,上面有很多優秀的程序員,你可以在這里交到很多好朋友喔。
2. 掘金 — 幫助開發者成長的技術社區:https://juejin.im
現在國內優質的開發者交流學習社區,可以去看大佬們寫的文章,也可以自己分享 學習心的 ,與更多開發者交流。認識更多的小夥伴兒,提升個人影響力。
3. 演算法學習 LintCode:https://www.lintcode.com/
演算法學習網站,上去每天刷兩道演算法題,走遍天下都不怕。
4. 演算法學習 LeetCode:https://leetcode.com/
也是演算法題網站,同上。
5. 演算法學習 LeetCode 中文站:https://lingkou.com/
這個是上面演算法題網站的中文站點,英文不好的可以刷這個,英文好的推薦去刷英文網站的題目,還能提升英語能力。
6. 牛客網 — 面經和刷面試題:https://www.nowcoder.com
各個公司的面試題和面經分享,找工作前認真刷一刷,一定會有很大收獲!拿到心儀的 offer!
7. Web 開發練習題:https://www.freecodecamp.org/
這是國外發起的一個 Web 開發學習的網站,從簡單到深入,一步一步帶你學習 Web 開發。就像一本練習冊,並且當你完成相應的內容後,會得到相應的資格認證。
8. 網路前端技術學院 — 前端開發項目庫:http://ife..com
學前端的看這里,網路官方推出的前端開發學習技術學院,題目從簡單到困難,如果你把裡面的題都做會了,找個 BAT 的前端工作不成問題的。
9. Stack Overflow — 解決 bug 的社區:https://stackoverflow.com/
開發過程中遇到什麼 bug,上去搜一下,只要搜索的方式對,百分之 99 的問題都能搜到答案。在這里能夠與很多有經驗的開發者交流,如果你是有經驗的開發者,還可以來這兒幫助別人解決問題,提升個人影響力。
10. 程序員客棧:https://www.proginn.com/
程序員客棧是領先的程序員自由工作平台,如果你是有經驗有資質的開發者,都可以來上面注冊成為開發者,業余的時候做點項目,賺點零花錢。當然,如果你想成為一名自由工作者,程序員客棧也是可以滿足的。只要你有技術,不怕賺不到錢。
11. v2ex:https://www.v2ex.com/
V2EX 是一個關於分享和 探索 的地方,上面有很多各大公司的員工,程序員。你想要的應有盡有。
12. CSDN:https://www.csdn.net/
老牌專業 IT 技術社區,有很多厲害的開發者,當然也有很多小白。在上面可以寫文章,分享看法,也可以閱讀學習別人分享的內容。
想要成為一名厲害的,有影響力的程序員,一般平時要多分享自己的學習記錄和感悟,讓更多人認識你。同時你也多看看別人的分享,了解一下別人正在做什麼,別人是怎樣學習的,是怎樣解決問題的,多主動與大家溝通交流,多交一些相關方向的朋友。
③ 程序員遇到百度不出來的bug都是怎麼解決的
筆者不同意下面網友的回答。程序員如果解決bug的水平停留在網路,那麼本質上只是一個「面向搜索引擎的代碼搬運工」,是不合格的程序員。
程序員對面bug,正確的「打開方式」是像福爾摩斯和柯南那樣,尋找線索、運用邏輯推理來縮小問題可能的根因范圍,最終精準定位。
常用的方法有:
1. 壞境上下文變換法
2. 工具調試法
3. 版本回溯對比法
4. 代碼審計法
……
沒有編程問題是stack overflow和Google解決不了的,假設你在編程中遇到了問題,你自己解決不了、你周圍的的人都解決不了的時候,我覺得stack overflow、Google是你最好、也是最後的幫手。
作為一個程序員,我覺得Google、stack overflow是你必須要學會使用的兩個工具,這兩個工具本身並沒有使用門檻,只不過因為一些眾所周知的原因,很多人不能使用Google和stack overflow這兩款工具。
Google主要還是方便,而且很多編程問題都需要用到英文搜索,當然現在網路在專業能力上也提升明顯,不過跟Google也還是有比較大的差距,因此我還是強烈建議要學會使用Google,這會幫你在工作、學習上事半功倍。假設Google確實因為某些原因沒辦法很好的使用,我也建議你至少要會使用Bing搜索。
現在可以說stack overflow上沒有你找不到的問題了,從IDE環境安裝問題,到各類編程語言問題。演算法問題,數據結構問題,調試,重構等等,幾乎這里就沒有你找不到的答案,可以說在stack overflow上你可以找到任何解決方案,並且上面的回答者基本上都是非常有經驗,而且都是實際中遇到的問題分享出來的,這個工具一定要會使用。同理,除了stack overflow這個專業的垂直程序員問答社區,你也可以使用Quora這個綜合問答社區,這上面也能找到很多問題的答案。
一些比較優秀的文本編輯器: Emacs/Vim,Visual Studio Code,Sublime Text,Atom,Ultraedit,Hbuilder等。
一些比較非常出色的IDE集成開發環境: visual studio,IntelliJ IDEA,phpStorm,Haskell for Mac ,eclipse,WebStorm,GoLand,CLion,Android Studio,Xcode,QT等。
macOS平台比較好的第三方包管理工具: Fink,Macports,Homebrew等。
一些比較好的終端工具: Zoc7,iTerm2,Cmder,terminus,hyper等。
一些比較好的筆記軟體、markdown工具、效率工具: Evernote,有道雲筆記,為知筆記,Ulysses,MWeb,FileZilla,Snipaste,Kantu等。
虛擬機軟體、容器軟體: Parallels Desktop,VMWare Fusion,Virtual Box,Docker等。
我是個程序員,職務是linux底層驅動工程師。平時的主要工作是調試驅動,但產品遇到諸如死機、重啟、不開機之類的問題時,也要參與查找原因。一部分問題,確實可以查看相關的log,然後網路這些log的關鍵字來解決;但更多的問題,牽扯的條件太多,並不是簡單的網路就能解決的。
觀察了周圍同事們的做法,我總結出以下幾種解決方法:
網路因為競價排名的原因,搜索出來的結果有很多廣告的成分,所以有時候要翻好幾頁才能看到一條相關的答案,有些甚至要翻幾十頁。
因為網路搜索使用的是SEO技術,即普通用戶可以通過優化網站內容來提升關鍵詞排名。
而這就會導致一個問題:你搜索關鍵詞後展現出來的結果是有人想要讓你看到的,並不是質量最好的。
也就是說,網路搜索結果被人為干預了。所以網路一直被網民所詬病。
但網路搜索不出結果,未必是網路的原因,也有可能是自己輸入的搜索詞不準確造成的。所以對於網路,我們要做到如下幾點:
除此之外,網路搜索還有點小技巧,粥左羅《萬字干貨,徹底講透搜索技巧,10倍提升你的搜索力(免費教程)》這篇文章寫得非常好,我整理幾點,僅供參考:
01 過濾目標內容
命令:「+」「-」
用法:通過「+」和「-」來對搜索結果進行過濾
比如在關鍵詞後加上「-推廣 -推廣鏈接」就可以排除搜索結果中包含相應字樣的鏈接。如果你發現廣告還沒有排除干凈,你也可以再加上「-廣告」通常就能徹底的消滅廣告。
02 搜索包含某關鍵詞的內容
命令:「intitle」
用法:通過「intitle」命令指定搜索結果中要包含的關鍵詞,注意「intitle」後邊連接的冒號是英文狀態下的。
03 搜索某一個格式的文件
命令:「filetype」
用法:通過「filetype」命令可以限制我們要搜索文件的類型,注意「filetype」後邊接的冒號也是英文狀態下的。
04 搜索特定時間范圍的內容
命令:「時間..時間」
用法:通過「時間..時間」命令可以限制我們要搜索的文件的時間,注意兩個時間的中間頓號沒有空格。
相對網路,谷歌、必應對於技術搜索,就相對准確許多,所以當你網路搜索不到時,嘗試下別的搜索引擎,說不定會有新發現。
現在程序員使用的機器語言,都是國外的,更准確的說,都是美國的。所以很多論壇、資料等,都是英文。如果你只會用中文來搜索,某些小眾的問題,當然搜不到啦。
所以,要學會使用英文關鍵字來搜索。
有時候甚至要去國外的一些論壇來搜索想要的答案,這就要求要有一定的英語閱讀能力,不能一看到英文帖就放棄。
有時候不管你如何搜索,都找不到自己想要的答案,該怎麼辦呢?這種情況下,就只能硬著頭皮嘗試自己解決了。
或者,尋求同事或朋友的幫助,尋求大腦風暴,說不定就會有思路。
如果有些問題是因為新器件帶來的,還可以找到器件供應商,讓他們安排技術支持幫忙查找原因。
除此之外,還可以把問題整理好,寫清發生的條件、復現步驟、測試方法、相關的LOG截圖等資料,去一些技術論壇發求助帖,尋找大牛的幫助。
做技術時間久了,發現有些問題確實無解,根本沒有辦法去解決它。
這時候,我一般會嘗試把它繞過,就是說,想辦法讓它無法復現,雖然問題還是存在,但是能把它掩蓋過去。
比如有些驅動在開機啟動時會載入不正常,那麼就讓它晚點啟動,或者手動載入。這也不失為一種解決問題的方法。
以上就是我的建立,希望對你有幫助。
首先作為一個程序員,一個優秀的程序員最最最重要的能力就是解決問題的能力。這里解決問題的能力當然就包含了解決 bug 能力了
畢竟,程序員這一生,可能會寫無數個 bug ,沒有說哪個程序員敢保證自己寫的程序沒有 bug 。 所以,寫了 bug ,遇到 bug 並不可怕,可怕的是你沒有解決 bug 的能力 。
作為一個程序員,解決 bug 的途徑有哪些呢?我們來一起聊一聊!
其實,每個程序員在學習編程的時候,都會使用編程工具,而現在的開發工具,其實功能都很強大。如果你自己合理利用編程工具,都了解和懂得開發工具的一些技巧,其實不僅僅能夠提高開發效率,而且還能夠幫助你解決很多編程中的實際問題。
debug 調試,大部分你常用的開發工具,都會有調試模式的,簡而言之,就是你編程的時候,遇到了不是自己所想的結果的時候,你可以使用 debug 模式,來一步一步的調試,在調試模式下一般每一步都會顯示所執行的結果,你可以看看在哪一步出錯了,執行的結果與你預想的結果不對,那麼你就能夠找到問題所在了。
還有就是,開發工具的控制台,都會提示出報錯信息的,現在的開發工具,都會直接告訴你哪一行,報了什麼錯。其實,很容易定位到錯誤的。你只需要在編程的過程中積累經驗,知道報什麼錯,用什麼方法來解決就行啦。
可是,提示的報錯信息,我不知道用什麼方法來解決的時候,該怎麼辦呢?這就是你需要積累的,也是問題中所描述的,就是通過搜索引擎來找答案。
不對,這里不應該是合理使用搜索引擎,應該是學會正確使用搜索引擎。比如:網路,你就不要用了,搜出一堆重復的信息,而且廣告也多。作為程序員,建議你使用谷歌搜索。
其實,你在編程中所遇到的幾乎所有的問題和 bug ,別人也同樣遇到過,因為不管是經驗豐富的老程序員,他技術再牛逼,也是初學者過來的,也都踩過你踩的坑。所以,互聯網是個好地方,裡麵包含了你想要的問題的答案。
你只要把報錯信息往搜索引擎上一放,回車一下,很多關於這個 bug 的答案就出來很多,你只需要找到跟你一樣的 bug ,就能找到答案了。
在這里必須提一下這個網站,所有的程序員有必要學會使用這個網站,其實,你編程中所遇到的問題,這個網站上幾乎都是由解答的。
Stack Overflow 可以說是最好的軟體程序類問答網站了,給軟體開發人員工作和學習提供了非常大的便利,以至於像小白,離了 Stack Overflow 簡直都不會寫程序了。
所以,建議大家一定要學會使用這個網站,對你編程肯定會有非常大的幫助的。
通過上面的方法,幾乎應該能夠解決到你所遇到的問題,但是,實在找不到答案的話,你可以問經驗比你豐富的老程序員,實在解決不了,那就換種方法吧!
網路,谷歌,debug,斷點調試,業務上的bug就需要問下同事或者產品。如果能知道大致范圍,哪一部分錯了,就換一種方法唄,一般都不會只有一種方法。
1.reload
2.restart
3.rewrite and then goto 2 or 4
4.reboot
5.rm -rf /
6.原諒我編不下去了[捂臉][捂臉][捂臉][捂臉][捂臉][捂臉][捂臉]
找bug跟醫生看病的思路是一樣的,要對症下葯。得先把問題的根源找到,找到根源以後問題就容易處理了。搜索引擎找不到的問題,說明這個問題不是一個常見的問題,具有獨特性,那麼從bug出現的路徑上一步一步去排查。必要時可以用排除法,盡可能的縮小排查范圍。另外,當軟體的業務邏輯比較繁多復雜的時候,一個結構清晰的架構能為你節省不少找bug的時間。還有,充分的單元測試能夠幫你減少出bug的機會。以上均為個人看法,歡迎討論!
一般程序員能碰到的bug無外乎其他上遊程序員寫庫時手抖留下些不匹配或者容易溢出的問題,搜一下差不多能解決問題。如果是自己寫的,那無非就是時序錯誤類型錯誤之類的,用break point一行行的調就好了。
再復雜點的bug就是程序員拿高薪的根本了,只可意會,不可言傳~
僅僅靠搜索引擎、其他網站那必然無法解決大量問題,因為很多問題是跟業務邏輯相關的,是沒有直接答案的。比如 游戲 開發有個界面一直無法顯示,這個問題就不是網路可以解決的。問題需要調試分析,這和破案非常像,但在開發過程中更有利的是問題有機會可以重現。破案是逆向工程,需要反推。解決代碼問題不僅僅可以反推,也可以通過閱讀代碼正向分析。下面說說如何debug一個業務邏輯問題。回到剛剛的例子,有個界面一直出不來,我們如何快速去定位:
1.思考這個問題發生的可能性。比如 游戲 內大量界面都是正常的,那麼可以對比正常界面代碼和異常界面代碼的區別,這是對比法。
2.假設創建正常界面和這個異常界面的邏輯代碼是一樣的,那麼問題就落到了這兩個界面內部,繼續在內部重復上面的對比法進行判斷,直到鎖定最終位置。
上面說的方法基本上可以杜絕卡在一個簡單問題上,這是擺脫新手的一個過程。選擇使用對比法或者其他方法的前提都是基於觀察和對項目的認識,所以,搜集「案發現場」是最關鍵的。
其他的問題,不屬於邏輯的,像其他網友說的那樣,有些通過到github、stackoverflow等地方解決的。這些問題也不是直接就去查找的,它通常也有個分析過程。比如你使用了一個庫,但是目前它不支持你的模塊。對於新手,就是直接網路或者google了。實際上這樣的問題也是有「案發現場」的。對於作者提供的api介面的統一性和便捷程度去推斷作者在相關支持模塊的位置以及命名以及拓展,再嘗試在文件夾中搜索。如果都找不到,再去Google上獲取更多的信息。重復推斷、分析,決定如何拓展或者繞過。
綜合上面的幾種問題,可以看到的是都離不開對現場的觀察和推理分析。這種能力也被稱為經驗。但是一般情況下你看不到它們這個分析過程,你能做的就是在實際環境中反復逼迫自己去思考,去訓練。這個推理的培養,不僅僅是對事情,也是對人。
我在入行 游戲 開發的前期,也是類似的情況。卡在不同種類的問題上,有些在簡單邏輯,有些在別人的代碼支持上。後面解決的問題多了,就會發現裡面共通的思維方式。常用的一些方法如下:
1.對比法,比較正常與異常代碼區別
2.二分查找法。分段注釋找問題,也會用在很多方面。比如最近版本突然出了一個奇怪bug,可以通過svn還原來定位。這個還原不是一個一個版本還原,而是用二分法去還原。
3.增加信息。在懷疑的位置或者過程添加日誌或者打斷點輔助自己更好的推理。
4.相似推理。比如一個引擎在api、性能使用程度上都非常友好,那麼它在別的地方也有可能相對表現比較好。這時候如果有個功能我們的實現需要很復雜才能完成,那麼就有可能是我們用錯了。相似推理不一定都能正確,但會提供一些幫助。
以上。
④ 除了stackoverflow外還有什麼比較好的程序員的論壇
近期遇到技術問題在各個技術社區找方案,偶然發現雲+社區有同步Stack Overflow的技術問答,並將Stack Overflow的內容翻譯成中文,例如這些:https://cloud.tencent.com/developer/ask/sof/296970、https://cloud.tencent.com/developer/ask/sof/304956近期體驗了下,翻譯的質量還行,好像是用了專門的翻譯技術,總體上比谷歌翻譯好很多。對於國內開發者來說簡直是福音,畢竟中文閱讀起來更容易理解。如果遇到翻譯不準確的,還可以查看英文原文對照著看,能幫助開發者提升不少效率
⑤ 我在c#中遇到了問題,想問一下怎麼找答案
我是一個使用.NET 已經4年多的軟體工程師,下面是我剛開始的學習方法,希望對你有幫助。導師雖然可以讓你少走彎路,但是我建議你還是自學為主,這樣即使是走了些彎路,但是你思維方式在這個過程中會得到很大鍛煉
第一個階段
選擇一本好書,系統完整地至少閱讀一遍。每個示例都親手一行行輸入,運行,驗證,思考為什麼,這個時期千萬不能心急,因為是為以後你事業的高樓打下堅實的基礎,一旦你浮躁了,跳過某些重要的東西,以後你可能會為此付出十倍的時間來查找資料。
當然,如果你覺得你基礎已經夠好,那麼從網上找一份大公司的C#筆試題自測一下,你就會知道你的基礎到底是不是夠好。
第二個階段
學習設計模式。同時從網上下載幾個優秀的開源項目,自己剖析。
第三階段
實踐,可以為自己想些課題,然後做一兩個項目。剩下的就等在工作當中慢慢積累了。
總之,想學好C#,耐心+興趣就夠了。也許任何其他語言也是一樣的。
還有,像樓上的朋友說的,搜索引擎的確非常重要,作為程序員,英語也相當重要。
好了,以上的個個字都是自己敲的,也是你未來同行的肺腑之言,希望能幫到你。
⑥ 八個程序員常用的接單平台推薦
推薦8個程序員常用的接單平台,不管做兼職、副業,還是全職自由職業,都可能會用到下面幾個網站,特別推薦第一個。
飛援
地址鏈接: https://www.freetalen.com/
程序員遠程靈活用工平台,聚集了高質量的兼職和全職自由職業開發者,會對開發者的開發經驗有一定要求(會有測評和面試流程),但是結算會比較有保障,平台也會協助跟客戶溝通,比較靠譜。
豬八戒
地址鏈接: https://beijing.zbj.com/?fr=header
國內老牌威客網站,但是需求魚龍混雜,單子的金額也較小,交付比較困難。
開源眾包
地址鏈接: https://zb.oschina.net/
開源中國旗下平台,需要交保證金,平台服務相對較弱,不提供平台顧問、項目咨詢、後期驗收維護等服務。
程序員客棧
地址鏈接: https://www.proginn.com/
開發者數量較多,但是質量良莠不齊,更傾向於信息撮合,服務交付缺少保障。
Toptal
地址鏈接: https://www.toptal.com/
國外一個相對高端的自由職業者平台,適合比較有經驗、英語溝通能力強的遠程工作者。
Freelancer
地址鏈接: https://www.freelancer.com/
國外從程序開發到市場營銷、廣告、會計、法務等一系列的可以遠程的工作平台。
Fiverr
地址鏈接: https://www.fiverr.com/
總部位於以色列的自由職業服務平台,網站的理念是讓買家以最低5美元的價格來買到一些高質量的成果,例如圖片設計、視頻製作等,但服務的費用無上限。
Upwork
地址鏈接: https://www.upwork.com/
總部位於矽谷的自由職業獨角獸平台,主要幫助公司尋找和管理自由職業者,小到個人或是創業公司,大到世界500強都會用來招聘自由職業者,任何個人或企業都能在平台找到合適的項目機會。
還有通過熟人關系介紹的單子,一般信任度比較高,相對較為有保障。
⑦ 我是一名程序員剛剛參加工作,總遇到問題,不能總去問前輩,有什麼好的平台可以解決問題的那種謝謝了!
我剛工作的時候也這樣,給你說下我經常使用的,看能不能幫到你。
我一般都去,segmentfault、csdn有很多問題別人已經問過,直接就能查到答案了。
還有一款APP,叫問啊,我在上面問過,回答速度挺快的,還不耽誤我工作,如果你著急就推薦你去問啊,如果你想等那你就去上面那些網站。
像是你剛畢業,也可以去知乎、博客園轉一下,會有一些文章,可以擴充下自己知識量。
希望能幫到你,不要忘記採納啊!
⑧ 程序員學習一般去哪些網站
學習網站大體分兩類,一類國內網站,一類國外網站,國內的網站有w3c網,學習網頁前端知識,python,php,java官網,mysql數據官網,當然也有綜合類網站比如:菜鳥,最後就是論壇,官網都有友情鏈接過去。國外網站需要翻過去訪問。下面是部分知識點
1.確保堆棧上至少有 n 個額外空位。如果不能把堆棧擴展到相應的尺寸,函數返回假。失敗的原因包括將把棧擴展到比固定最大尺寸還大 (至少是幾千個元素)或分配內存失敗。 這個函數永遠不會縮小堆棧;
void lua_close (lu a_State *L);
2.銷毀指定 Lua 狀態機中的所有對象 (如果有垃圾收集相關的元方法的話,會調用它們),並且釋放狀態機中使用的所有動態內存。 在一些平台上,你可以不必調用這個函數, 因為當宿主程序結束的時候,所有的資源就自然被釋放掉了。 另一方面,長期運行的程序,比如一個後台程序或是一個網站伺服器, 會創建出多個 Lua 狀態機。那麼就應該在不需要時趕緊關閉它們。
int lu a_compare (lua_State *L, int index1, int index2, int op);
比較兩個 Lua 值。 當索引 index1 處的值通過 op 和索引 index2 處的值做比較後條件和叢滿足,函數返回 1 。 這個函數遵循 Lua 對應的操作規則(即有可能觸發元方法)。 反之,函數返回 0。 當任何一個索引無效時,函數也會返回 0 。
3.連接棧頂的 n 個值, 然後將這些值出棧,並把結果放在棧頂。如果 n 為 1 ,結果就是那個值放在棧上(即,函數什麼都不做); 如果 n 為 0 ,結果是一個空串。 連接依照 Lua 中通常語義完成()。
void lu a_ (lua_State *L, int fromidx, int toidx);
從索引 fromidx 處復制一個值到一個有效索引 toidx 處,覆蓋那裡的原有值。 不會影響其它位置的值。
void l ua_createtable (lua_State *L, int narr, int nrec);
4.創建一張新的空表壓棧。 參數 narr 建議了這張表作為序列使用時會指棚嫌有多少個元素;參數 nrec 建議了這張表可能擁有多少序列之外的元素。 Lua 會使用這些建議來預分配這張新表。 如果你知道這張表用途的更多信息,預分配可以提高性能。 否則,你可以使用函數
lua_mp
把函數導出成二進制代碼塊 。 函數接收棧頂的 Lu a 函數做參數, 然後生成它的二進制代碼塊。 若被導出的東西被再次載入, 載入的結果就相當於原來的函數。 當它在產生代碼塊的時候, lua_mp 通過調用函數 writer (r ) 來寫入數據,後面的 data 參數會被傳入 writer 。
5.如果唯手 strip 為真, 二進制代碼塊將不包含該函數的調試信息。
最後一次由 writer 的返回值將作為這個函數的返回值返回; 0 表示沒有錯誤。
該函數不會把 Lua 函數彈出堆棧。
希望能幫到你,謝謝!
⑨ 普通程序員和大神級程序員有什麼差別
六點區別:
1、文檔能力
「文檔是第一生產力」,這一點在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。
如果要獲得更高的報酬,文檔是絕對關鍵的因素。有文檔就有溝通,就有交易。搞技術的容易忽視文檔的力量,也因為寫文檔十分困難,更多程序員選擇舒適區,習慣寫下代碼,但正因為如此,妨礙了不少程序員的進階。
2、解決BUG的效率差別
普通程序員可以利用搜索引擎(網路)尋找答案,經常性找不到好的解決辦法,然後更換技術方案!頂級程序員也利用搜索引擎(Google)尋找答案,一般bug都順利解決(其實跟前期框架選擇等關系非常大)。
5、面對如何開源社區態度
普通程序員幾乎沒有在開源社區混,這也導致經常對新技術發展關注度低。而頂尖程序員則是擁抱開源社區。
6、面對功能點
普通程序員:立馬開始構思自己如何實現腦海里出來一個方案。
頂尖程序員:發現功能點很普通github上面早已經有非常多的解決方案,著手根據業務選擇一個最適合最優的方案。
但是優秀的程序員一開始都是普通程序員,所以加油吧!