寫程式碼要有風險意識之二
上次寫到關於寫程式碼要有風險意識,其中是關於透明度alpha值的範圍限制。下面談到的是:當我們獲取某個物體時,這樣的程式碼有沒有風險?要不要給它限制條件?
比如:
particle_star_E.rateOverTime=1.0f;這行程式碼是關於粒子的發射值為零,往往我們寫到這一步就不管了,通常也不會報錯。但是我們通常需要在其他地方銷燬這個粒子,這時就會報一個空指標錯誤,因為上面那條程式碼仍在執行。
因為為了避免這樣的低階錯誤,我們應該給它一個限制條件,就是判斷:當物體為空時,就不執行上述程式碼。
這樣就會避免後面在其他地方銷燬物體時報空指標錯誤了。if(stars!=null){ particle_star_E.rateOverTime=1.0f; particle_star_E01.rateOverTime=1.0f; }
相關推薦
寫程式碼要有風險意識之二
上次寫到關於寫程式碼要有風險意識,其中是關於透明度alpha值的範圍限制。下面談到的是:當我們獲取某個物體時,這樣的程式碼有沒有風險?要不要給它限制條件?比如: particle_star_E.rateOverTime=1.0f;這行程式碼是關於粒子的發射
寫程式碼要追求低耦合與高內聚
寫程式碼追求的是低耦合和高內聚,一直這麼說,但具體是什麼呢? 耦合就是多個模組之間的依賴關係,而低耦合指的就是多個模組之間的依賴要儘可能的低。。耦合度越低,那麼意味著對其他模組依賴度越低,儘量在其他模組出問題的時候,自己開發的模組不會出問題,少依賴別人。 內聚,指的是專案各個模組之間做的事情
程式碼要有美感
使用好的留白,對齊及順序可以上程式碼更加養眼。有以下三個原則可以參考: 使用一致的佈局,讓讀者很快就習慣這種風格。 讓相似的程式碼看上去相似。 把相關的程式碼分組,形成程式碼塊。 1、使用一致性風格 編程式碼過程中要做過程式碼風格一致,而如果是在新增或者改程式
成長總歸要有風險,欲戴其冠,必承其重
Jeff是一個未來主義者,企業家和軟體工程師,他是領先的區塊鏈科技公司Bloq的聯合創始人和執行長以及Metronome的首席設計師。Jeff在Coin Center擔任董事,並擔任BitFury、BitPay、Chain.com、Netki和WayPaver Labs的顧問。他曾在TEDx、State of
200行Go程式碼實現一個區塊鏈之二——區塊生成與網路通訊
在上一篇文章中,我們向大家展示瞭如何通過精煉的Go程式碼實現一個簡單的區塊鏈。如何計算每個塊的 Hash 值,如何驗證塊資料,如何讓塊連結起來等等,但是所有這些都是跑在一個節點上的。文章釋出後,讀者反響熱烈,紛紛留言讓我快點填坑(網路部分),於是就誕生了這第二篇文章。這篇文章
寫給自己的平時寫程式碼要注意的地方
這些程式碼都是自己平時寫程式碼的時候犯過錯誤的: // User u = new User(); 在這寫就錯了 while (rs.next()) { User u = new User(); // 在這寫就對了 u.setId(rs.getInt("id"));
《碼農經驗手冊》-拿到需求寫程式碼前,要思考的問題有哪些?
1.在開始寫每行程式碼之前,先把問題徹底理解並理清所有的邏輯判斷。寫出虛擬碼。 2.對需求進行分析,想清楚最終執行的目標結果是什麼,輸入輸出,以及最終要執行的環境。 3.我開始用文字寫出過程的樣子。例如
寫C++程式碼時頭腦中要有觸發器
新建class時:考慮物件的拷貝語義(copyable?)新建member function時:如果不改變物件狀態,在聲明後面加const(和ruby的!開頭的方法一樣)新建function parameter時:如果是傳值的,而且是複雜物件,儘量使用const ValueT
寫一個dup2功能同樣的函數,不能調用 fcntl 函數,而且要有出錯處理
make argc exit post pre con version returns imp 實現的時候用到系統原來的dup函數 // mydup2.c // 2015/08/17 Lucifer Zhang version1.0 // write
LeetCode 167. Two Sum II - Input array is sorted (兩數之和之二 - 輸入的是有序數組)
point find leetcode algorithm 個數 tar div solution runtime Given an array of integers that is already sorted in ascending order, find two
Aways on故障系列之二:從數據庫中有一臺無法同步
系列 意思 ip地址 pin 啟動服務 阿裏雲服務 無法連接 聯通 狀態 服務器用的阿裏雲服務器,自己做的非域Aways On主從同步。 故障描述:某臺從數據庫無法同步主數據庫的數據,查看Aways On的服務器狀態,該服務器已離線。 故障排查: 1.檢查同步面板,
fatfs-SDIO的寫檔案時間耗費在哪裡了(之二)?
在《fatfs-SDIO的寫檔案時間耗費在哪裡了?》文章裡面我們分析了f_write的執行時間,如下: f_open(); while(1) { f_write(); } 本文將分析open write&nbs
TensorFlow入門之二:tensorflow手寫數字識別
一、基礎知識 基礎知識可以跳過,可以直接看後面的程式碼實現 MNIST資料集 MNIST資料集的官網是Yann LeCun’s website。可以使用下面的python程式碼自動下載資料集。 #已經下載input_data.py #import input_data #沒有
少說話多寫程式碼之Python學習034——其他語句01(pass,del)
pass語句 pass就是什麼都不做,和C#中的一個分號語句很像。 一般用作佔位符,比如,這種情況,就是什麼都不處理。 name=input('請輸入姓名') if len(name)<3: print('做什麼') elif len(name)==3: &
少說話多寫程式碼之Python學習033——迴圈語句03(列表導式)
列表導式是利用列表建立新的列表,比如,下面建立一個列表 a=[x*x for x in range(10)] print(a) 輸出 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 建立列表過程中也可以增加條件,比如,只要能被2整除的數。 b=[x*
少說話多寫程式碼之Python學習032——迴圈語句02(如何迭代-排序和反轉)
引入兩個函式,排序和反轉,它們作用於序列上,並不修改原序列的值,只是返回排序後或反轉後的值。 下面看看具體的使用, 對序列排序,可以根據指定條件升序和降序排序。具體函式使用可自行查詢。 s=[23,17,31,7,11] sa = sorted(s,reverse=False) print(
少說話多寫程式碼之Python學習028——條件語句05(斷言)
斷言的工作方式可用如下偽程式碼表示, if 條件不滿足 讓程式崩潰 斷言,關鍵為assert,因為如果程式後面會崩潰,不如在錯誤條件開始出現時就讓其崩潰。一般斷言用作程式測試和除錯過程中。 比如, 如下年齡變數,設定必須為0-150之間。 age=10 assert 0&l
少說話多寫程式碼之Python學習027——條件語句04(同一運算子、字串序列比較、布林運算子)
同一性運算 前面看多鏈式賦值,這裡主要說明一下鏈式賦值後,關於值相同物件不用的有趣問題。 看一下比較結果, x=y=["東","西","南","北","中"] z=["東","西","南","北","中"] print(x==y) print(x==z) print(x is y) pri
少說話多寫程式碼之Python學習026——條件語句03(比較運算子)
條件語句中基本的運算子就是比較運算子。常用的運算子如下: ==, <, >, <=, >=, !=, is , is not, in, not in。 具體用法如下, x=1 y=1 if x==y : print('x等於y'