導航:首頁 > 程序命令 > 程序員代碼一看就會

程序員代碼一看就會

發布時間:2023-03-30 23:26:36

Ⅰ 如何學習別人的程序代碼

如何學習別人的程序代碼



只要是個程序員就會看代碼,但是很多人,包括我在內,在看一些開源代碼的時候往往一頭霧水,不知從何看起。

越是結構好的代碼,如果不理解它的思想越是難得看懂,例如Qt、Agg、CryptPP等。這里我將我的一些經驗寫在這里,留個記錄吧。

完善的開源工程都會有文檔,即使沒有文檔也應當有api-guid,那麼我們先找到它們,這時我們不要管它是怎麼設計的,先編譯一個,照著例子寫個程序廳枝帆運行一下吧,再試試一些高級功能。這時我們在心中先猜猜它應當是怎樣設計的(大多數情況是沒有想法)。好吧,我們再來看文檔,文檔中一般有靜態結構的說明扮雹,如模塊劃分、類列表、每個類的成員列表。嗯,還是一頭霧水啊,沒辦法,我們打開源碼所在的文件夾,看看源碼的組織方式。嗯,有點頭緒了,大多數情況下,目錄結構與工程結構是一致的,而我們編寫例子程序的時候使用的介面一般在源碼的include目錄下。那好吧,我們根據頭文件名和目錄結構去找相應的實現文件吧,但這往往相當困難,因為你會發現它根本就不是你所想的那樣。一個類或一個外部變數,你想找到它往往會動用Windows的搜索。看了幾個小時還沒有太大的進展,仍然不知道它的頭(高層的入口)在哪,尾(底層的具體實現)在哪,不過你至少對那些地方有哪些文件都熟悉了,那些零星的注釋也被你看了一遍。這時該把你寫的例子程序拿出來了,我們單步跟進去,跟的同時我們也注意一下所跟到的文件的物理位置、它附近都有哪些文件、哪些類或結構。一直跟下去,這樣我們往往會順藤摸瓜找到最底層的實現,並發現一條執行路徑(太變態的或用了一堆模板的除外)搭敬。由於你已經對工程的結構有了一定了解,這時你可以從頭和尾一起開始看代碼(前提是你已經找到了一個頭和一個尾),將一條線弄清楚,那麼這個工程的其他線也應該是差不多的設計思路。

有些開源工程裡面的宏特別多,那你要當心,首先搞清楚這些宏吧。

用C寫的工程往往比用C++寫的容易懂,因為它最多有很多函數指針和extern變數,而後者則令人頭疼得多,如果你實在沒有辦法,那麼上網搜吧,很多著名的開源工程一般會有一些人將其研究心得放到blog上,看一看,說不定一下豁然開朗。

好吧,就寫這么多,真是亂七八糟。

Ⅱ C#中throw new Exception是什麼意思,這么使用

這句話的原意:我們已經知道有一個錯誤存在,然後用這個拋出錯誤的原因讓使用這個代碼的人知道這是為什麼,這一般是做基礎部分的人用的。

Ⅲ 北大青鳥設計培訓:java程序員編寫代碼的技巧

java程序員編寫代碼的技巧有哪些呢?Java程圓賣序員必須努力編寫完美的代碼,因此,為了編寫干凈的代碼,必須知道如何編寫才是真正的好方法,下面鄭州鄭州java軟體開發為大家總結了一些幫助編寫代碼的小漏逗方法。
1、編寫之前進行思考首先花10分鍾,20分鍾甚至30分鍾的時間來思考你需要什麼,以及哪些設計模式適合你將要編碼的內容。
這個時候鄭州鄭州IT培訓認為你會很高興你花費的這些時間,當你必須改變或添加一些代碼時,你不會擔心花費的幾分鍾,而是會花更多的時間去琢磨。
2、代碼橘搜逗進行注釋沒有什麼比兩個月後檢查你的代碼並不記得它被用來做什麼更糟的了。
重要的都注釋一下,如果是自己非常了解的內容,鄭州北大青鳥建議這些可以選擇不進行注釋。
3、不要復制粘貼代碼最後自己手寫代碼,復制粘貼代碼會出現代碼塊重復的情況,並且不利於代碼的解讀。
4、學會測試代碼測試、測試、測試你的代碼。
不要等到你完成了程序才測試它,否則當你發現一個巨大的錯誤時,你會後悔之前的決定。
因為鄭州計算機培訓學校發現如果你沒有進行每段代碼測試,最後出現問題是很難找到的。

Ⅳ 為什麼阿里工程師代碼寫的好看看他的代碼規范就知道了


曾經與一位從阿里出來的Java工程師一起工作過一段時間,他的技術說不上非常厲害, 但是,他的代碼寫的的非常好,凡是他做的功能很少出現Bug 。我就很好奇,於是經常向他請教一些代碼設計的原則,然後他告訴了我阿里Java手冊。並且,他將這個手冊進行了修改,也成為了我司Java程序員的開發手冊。 這篇文章就讓我們看一看這個手冊中比較重要的原則。




【消櫻強制】 代碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束。

反例:_name / __name / $name / name_ / name$ / name__


【強制】 類型與中括弧緊挨相連來表示數組。

正例:定義整形數組 int[] arrayDemo; 反例:在 main 參數中,使用 String args[]來定義。


【強制】 POJO 類中布爾類型變數都不要加 is 前綴,否則部分框架解析會引起序列化錯誤。

說明:表達是與否的值採用 is_xxx 的命名方式,所以,需要在 設置從 is_xxx 到 xxx 的映射關系。

反例:定義為基本數據類型 Boolean isDeleted 的屬性,它的方法也是 isDeleted(), RPC 框架在反向解 析的時候,「誤以為」對應的屬性名稱是 deleted,導致屬性獲取不到,進而拋出異常。


【推薦】 在常量與變數的命名時,表示類型的名詞放在詞尾,以提升辨識度。



【推薦】 介面類中的方法和屬性不要加任何修飾符號(public 也不要加),保持代碼的簡潔 性,並加上有效的 Javadoc 注釋。盡量不要在介面里定義變數,如果一定要定義變數,肯定 是與介面方法相關,並且是整個應用的基礎常量。

正例:介面方譽神法簽名 void commit();

介面基礎常量 String COMPANY = "alibaba";

反例:介面方法定義 public abstract void f();

說明:JDK8 中介面允許有默認實現,那麼這個 default 方法,是對所有實現類都有價值的默認實現。


【參考】 枚舉類名帶上 Enum 後綴,枚舉成員名稱需要全大寫,單詞間用下劃線隔開。

說明:枚舉其實就是特殊的類,域成員均為常量,且構造方法被默認強制是私有慶橋虧。

正例:枚舉名字為 ProcessStatusEnum 的成員名稱:SUCCESS / UNKNOWN_REASON。


【參考】 各層命名規約:

1) 獲取單個對象的方法用 get 做前綴。

2) 獲取多個對象的方法用 list 做前綴,復數形式結尾如:listObjects。 3) 獲取統計值的方法用 count 做前綴。

4) 插入的方法用 save/insert 做前綴。

5) 刪除的方法用 remove/delete 做前綴。

6) 修改的方法用 update 做前綴。

1) 數據對象:xxxDO,xxx 即為數據表名。

2) 數據傳輸對象:xxxDTO,xxx 為業務領域相關的名稱。

3) 展示對象:xxxVO,xxx 一般為網頁名稱。

4) POJO 是 DO/DTO/BO/VO 的統稱,禁止命名成 xxxPOJO。



【強制】 不允許任何魔法值(即未經預先定義的常量)直接出現在代碼中。

【強制】 避免通過一個類的對象引用訪問此類的靜態變數或靜態方法,無謂增加編譯器解析 成本,直接用類名來訪問即可。


【強制】 相同參數類型,相同業務含義,才可以使用Java的可變參數,避免使用Object。

說明:可變參數必須放置在參數列表的最後。(提倡同學們盡量不用可變參數編程)


【強制】 所有整型包裝類對象之間值的比較,全部使用equals方法比較。

說明:對於 Integer var = ? 在-128 至 127 范圍內的賦值,Integer 對象是在 IntegerCache.cache 產 生,會復用已有對象,這個區間內的 Integer 值可以直接使用==進行判斷,但是這個區間之外的所有數 據,都會在堆上產生,並不會復用已有對象,這是一個大坑,推薦使用 equals 方法進行判斷。


關於基本數據類型與包裝數據類型的使用標准如下:

說明: POJO 類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進行賦值 ,任何 NPE 問題,或 者入庫檢查,都由使用者來保證。

正例:資料庫的查詢結果可能是 null,因為自動拆箱,用基本數據類型接收有 NPE 風險。

反例: 比如顯示成交總額漲跌情況,即正負 x%,x 為基本數據類型,調用的 RPC 服務,調用不成功時, 返回的是默認值,頁面顯示為 0%,這是不合理的,應該顯示成中劃線 。所以包裝數據類型的 null 值,能 夠表示額外的信息,如:遠程調用失敗,異常退出。



【強制】 POJO 類必須寫 toString 方法。

使用 IDE 中的工具:source> generate toString 時,如果繼承了另一個 POJO 類,注意在前面加一下 super.toString。

說明: 在方法執行拋出異常時,可以直接調用 POJO 的 toString()方法列印其屬性值,便於排查問題。


【強制】 關於hashCode和equals的處理,遵循如下規則:

說明:String 已覆寫 hashCode 和 equals 方法,所以我們可以愉快地使用 String 對象作為 key 來使用。


【強制】 線程資源必須通過線程池提供,不允許在應用中自行顯式創建線程。

說明:線程池的好處是減少在創建和銷毀線程上所消耗的時間以及系統資源的開銷,解決資源不足的問 題。 如果不使用線程池,有可能造成系統創建大量同類線程而導致消耗完內存或者「過度切換」的問題。


【強制】 線程池不允許使用Executors去創建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓寫的同學更加明確線程池的運行規則,規避資源耗盡的風險。



以上規范在設計代碼中,是比較重要的原則。如果編寫代碼的過程中,可以依照以上原則,那代碼的可讀性和可維護性將大大提升

Ⅳ 正在工作的程序員,生活狀態什麼樣

首先說一下目前日常的生活工作安排,每天7點40的鬧鍾,起來洗漱吃飯(如果起不來就不吃了,8點半差不多出門)上班。
因為距離公司比較遠在北京要橫穿半個市區才能到公司,大概10點左右刷公司卡,然後買早飯買水。

上圖是公司大門,那天去的很早(
我不喜歡喝白水,基本每天一瓶快樂水或者氣泡水。然後10:30大概正式開始工作。
上午的工作時間是到12:00整,基本上有1個多小時的時間可以專注工作,上午基本是處理昨天的任務,做當天的工作安排,小本本上列出來一天要乾的事,如果跨部門合作就盡量上午處理完,寫一下郵件之類的。
到了12:00准時去食堂吃飯,12:30吃完,我有午睡的習慣一直睡到1:30,就在工位上。(下面是一般的食堂餐食

1:30到6點整個時間段都是寫代碼的時間,目前因為人不多基本也就沒什麼管理的職責,基本上IM就能解決不用開會,所以下午可以開開心心的喝著快樂水寫自己喜歡的代碼了。
這里就要說一些題外話,因為我個人是非常喜歡寫代碼的那種程序員,是真心的可以從中獲得成就感和樂趣的人,所以我整個下午會覺得時間飛快,一般3點多有個節點就是去上廁所或者打水,基本上就可以紋絲不動的寫到6點吃飯。

下午快樂水喝完就換枸杞養養生…

Ⅵ 一個標準的程序員,它的代碼應該是怎樣分層次的

每個代碼的層次都是不一樣的,都是非常縝密的,除此之外,不光是要會寫代碼,還要成為一個好的程序員才是最重要的。

程序員,隨著計算機和軟體行業的發展,基數越來越大。如何在茫茫的程序員中脫穎而出呢,來看看作為一個好的程序員的標准你都佔了幾條?

1.經常和其他的人交流

什麼時間做什麼事情,做事情按照一定步驟來,好的程序員從來不會在時間緊任務多的時候手忙腳亂。

7. 保持謙虛

技術永無止境,技術范圍很廣,技術水很深。即使在一個領域是專家,到了其他領域還是需要其他人的指點。好的程序員總是把姿態放低,虛心請教。

Ⅶ 程序員敲代碼的時候盲打能力很重要嗎

不太會用到這些符號,但cpp會用,寫多了自然就不用反復看了,會有記憶。盲打是大量編程後的必然結果,可以作為參考。盲打的速度越快,就說明你操作電腦越熟練,編程和打字越多。當你很難將腦中思路轉化為代碼

Ⅷ 網站被掛馬了怎麼辦

一般都是網站程序存在漏洞或者伺服器存在漏洞而被攻擊了
網站掛馬是每個網站最頭痛的問題,解決辦法:1.在程序中很容易找到掛馬的代碼,直接刪除,或則將你沒有傳伺服器的源程序覆蓋一次但反反復復被掛就得深入解決掉此問題了。但這不是最好的解決辦法。最好的方法還是找專業做安全的來幫你解決掉
聽朋友說 SineSafe 不錯 你可以去看看。

清馬+修補漏洞=徹底解決

所謂的掛馬,就是黑客通過各種手段,包括SQL注入,網站敏感文件掃描,伺服器漏洞,網站程序0day, 等各種方法獲得網站管理員賬號,然後登陸網站後台,通過資料庫 備份/恢復 或者上傳漏洞獲得一個webshell。利用獲得的webshell修改網站頁面的內容,向頁面中加入惡意轉向代碼。也可以直接通過弱口令獲得伺服器或者網站FTP,然後直接對網站頁面直接進行修改。當你訪問被加入惡意代碼的頁面時,你就會自動的訪問被轉向的地址或者下載木馬病毒

清馬

1、找掛馬的標簽,比如有<script language="javascript" src="網馬地址"></script>或<iframe width=420 height=330 frameborder=0
scrolling=auto src=網馬地址></iframe>,或者是你用360或病殺毒軟體攔截了網馬網址。SQL資料庫被掛馬,一般是JS掛馬。

2、找到了惡意代碼後,接下來就是清馬,如果是網頁被掛馬,可以用手動清,也可以用批量清,網頁清馬比較簡單,這里就不詳細講,現在著重講一下SQL資料庫清馬,用這一句語句「update 表名 set 欄位名=replace(欄位名,'aaa','')」, 解釋一下這一句子的意思:把欄位名里的內容包含aaa的替換成空,這樣子就可以一個表一個表的批量刪除網馬。

在你的網站程序或資料庫沒有備份情況下,可以實行以上兩步驟進行清馬,如果你的網站程序有備份的話,直接覆蓋原來的文件即可。

修補漏洞(修補網站漏洞也就是做一下網站安全。)

1、修改網站後台的用戶名和密碼及後台的默認路徑。

2、更改資料庫名,如果是ACCESS資料庫,那文件的擴展名最好不要用mdb,改成ASP的,文件名也可以多幾個特殊符號。

3、接著檢查一下網站有沒有注入漏洞或跨站漏洞,如果有的話就相當打上防注入或防跨站補丁。

4、檢查一下網站的上傳文件,常見了有欺騙上傳漏洞,就對相應的代碼進行過濾。

5、盡可能不要暴露網站的後台地址,以免被社會工程學猜解出管理用戶和密碼。

6、寫入一些防掛馬代碼,讓框架代碼等掛馬無效。

7、禁用FSO許可權也是一種比較絕的方法。

8、修改網站部分文件夾的讀寫許可權。

9、如果你是自己的伺服器,那就不僅要對你的網站程序做一下安全了,而且要對你的伺服器做一下安全也是很有必要了!

閱讀全文

與程序員代碼一看就會相關的資料

熱點內容
食嬰鬼整部電影 瀏覽:360
印度電影愛經 瀏覽:642
搜播比神馬更好看的影視 瀏覽:82
特警力量同人小說 瀏覽:253
葉天明柳韻為主角的小說全文免費閱讀 瀏覽:929
比愛戀尺度大的電影 瀏覽:135
主人公叫楊凡的小說 瀏覽:860
在船上做皮肉生意的電影 瀏覽:655
倫理電影飛在天上的船 瀏覽:224
求個網址能在線看 瀏覽:549
美國古埃及電影 瀏覽:78
韓國電影成人學院演員有誰 瀏覽:957
美國大胸電影 瀏覽:140
主角重生老北京的小說 瀏覽:199
邵氏100部恐怖影片 瀏覽:101
青春期2裡面的跳舞的歌 瀏覽:37
國產動作愛情片 瀏覽:420
韓國有部特種兵與護士的電影 瀏覽:662
《貪婪》中的日本女演員 瀏覽:477
男主得艾滋病的電影 瀏覽:807