Time of Update: 2018-12-07
2.反射 (Reflect) 反射是Java1.5開始出現的特性,反射是通過名稱訪問類、方法、域、聲明的方法。反射方法的出現為Java增加了更多的特性。 a.訪問private類型的屬性和方法 由於不能訪問private的域和方法而無法對相應的功能進行xUnit的測試。但是反射提供了訪問private方法的途徑,所以,對於private的方法可以進行xUnit測試。1 public class Testee {2 3 private void execute(){
Time of Update: 2018-12-07
綜述Cg是在DX和OpenGL上再次封裝的一門語言,用來編寫GPU程式的語言。所以,以DX或者OpenGL開發的3D程式,都可以用Cg來開發Shader程式,並載入上來用。一下是在OpenGL中載入Cg程式的過程,其中使用了GLUT庫來協助完成。載入過程:第一步: 包含標頭檔我使用了先行編譯頭, #include "targetver.h"#include <tchar.h>#include <iostream>#include <stdlib.h>
Time of Update: 2018-12-07
我們在研究自表達代碼之前,首先要先弄明白代碼的本質。在研究代碼的本質之前,我們看一下音樂裝置的發展:留聲機 -> 磁帶 -> CD -> Mp3不論裝置怎麼變化,有一點沒有變化的是:這些裝置都是用來記錄聲波資訊的——不管記錄的形式是塑料還是磁介質。那麼代碼是如何發展的呢?紙帶打孔 -> 組合語言 -> 解釋語言(BASIC) -> 進階語言(C) -> 物件導向語言(C++)
Time of Update: 2018-12-07
3.Regex a. 白名單 下列代碼是用來進行白名單校正的,即如果輸入的文字元合條件的話就返回true,否則返回false。 1 private static final String[] ENABLED_TEXTS = new String[]{"a", "b", "c", "d", "e"}; 2 3 public boolean isEnabled(String input) { 4 for (String text : ENABLED_TEXTS) { 5
Time of Update: 2018-12-07
文章目錄 概覽:詳細步驟:概覽:詳細步驟:概覽:詳細步驟: Shader 程式在OGRE中的應用1. 綜述本文主要闡述在OGRE程式中使用可程式化管線來實現對實體的渲染具體過程。主要是從以OGRE使用shader的方式,並發散shader的渲染基礎知識,提供需要研究的方向。本文組織是以stepBystep方式展開,共包括1.著色程式定義2.著色程式聲明3.著色程式在材質指令碼中的應用2. 第一步: 定義shader著色程式概覽:
Time of Update: 2018-12-07
假設有一個文字框,需要校正輸入內容是否是電子郵件,那麼應該測試多少種用例呢?1. 英文的電子郵件地址 abc@gmail.com2. 帶底線,點號的電子郵件地址 a.b.c@gmail.com a-b-c@gmail.com a-b.c@gmail.com a.b-c@gmail.com a.b@gmail.com a-b@gmail.com a_b@gmail.com a.b_c@gmail.com a-b_c@gmail.com
Time of Update: 2018-12-07
為了能夠更好地改進軟體項目,Team Dev往往會統計一些資料,用以分析總結,並作為下次開發改進的依據。那麼在軟體開發中,你的團隊會統計哪些資料呢?這些資料又如何為下次項目改進提出協助呢?本文通過對軟體開發過程中統計的一些資料進行分析,讓讀者能夠從本質上重新理解統計資料的方法和意義。1. 生產率 統計生產率是為了能夠瞭解Team Dev的生產效率在整個行業中處於何種水平。長期統計之後可以為下次工時估算提供依據。 單位:每人月可以生產的千行代碼數,KLOC/MM
Time of Update: 2018-12-07
好了,代碼已經寫到這裡,準系統都具備了,下面來進行一些收尾工作吧。1. GameOver的判定。首先在每次消除以後都進行GameOver判定。1 if (game.isOver()) {2 EventDispatcher.send(Event.GAME_OVER);3 }然後實現GameOver判定演算法。 1 public boolean isOver() { 2 for (int x =
Time of Update: 2018-12-07
今天又寫了一個遊戲 ——連連看,這個是個很經典的遊戲,我也想來試試看,如何?它。關鍵區段在於如何判定兩個選中儲存格是可以相連的。經過分析,可以看到,串連的方式為一下幾種模式不管上述的哪種模式,都可以總結為如下的公式:沿著x方向的所有x進行遍曆,對於任何一個x來說,y1-y2之間的連接線如果是可以串連的,而且,x1,y1~x,y1和x2,y2, x, y2之間都是可以連通的,那麼這兩個點就是可以串連的。具體演算法實現如下: 1 package
Time of Update: 2018-12-07
以前用該工具部署老是出錯,而且還不提示錯誤發生的地方,嘗試了幾次,就放下了,這幾天又想拿過來弄弄,花了我將近一天的功夫,終於弄好了(編碼問題,無奈),現在拿出來和大家分享,希望能幫到和我有一樣的問題的同學們。該教程主要介紹如何使用Sencha SDK Tools來部署寫好的ExtJS
Time of Update: 2018-12-07
什麼是錯題本?
Time of Update: 2018-12-07
接前文,我們繼續分析OpenWnn的注釋問題1. 為了注釋而注釋 嚴重程度:中 注釋就是把方法或者變數的名稱再重寫一遍,這種工作純屬是浪費時間,可以不用花費這種工時。/** Current key-mode */ protected int mCurrentKeyMode; 這種情況在OpenWnn中特別多。2. 囉嗦的注釋 嚴重程度:低 本來可以很短就能夠寫完的注釋,卻要寫很長的注釋,結果也沒有因為寫的長對於理解產生有益的協助。
Time of Update: 2018-12-07
ISO/IMC 9126對於軟體的品質進行了定義,其中包括如下幾項: 可理解性(Understandabiliy)、可維護性(Maintainability)、可擴充性(Extensibility)、容錯性(Fault Tolerance)和可測試性(Testability)。
Time of Update: 2018-12-07
假設書寫一個網上售書系統,其中一個圖書編輯頁面,如果可以寫成這樣,你會怎麼感覺? 1 <HMTL> 2 <head> 3 #{title 'BookEdit.Edit'/} 4 </head> 5 <body> 6 #{form action='BookEdit.save()'} 7 #{EditBar title='book.edit.isbn', text=${Book.isbn} /} 8 #{EditBar
Time of Update: 2018-12-07
最後我們來講一下代碼風格的問題1. 魔法數字,也有叫數字常量的 總之,就是一個數字戳在那,誰也不知道這是什麼意思, 這種代碼還會導致一個問題就是代碼的值發生變化的時候,無法確保所有的相關代碼都得到修改。 OpenWnn裡這種情況太多了,就不一一列舉了。 同樣的字串常量也是一個問題。 對於這種情況,定義成常量並不是解決問題的唯一辦法,還有很多更好的辦法,比如,拆分類。2. 靜態表
Time of Update: 2018-12-07
為了能夠減少二次Bug率,一般組織都有一套Bug跟蹤流程用來確保Bug修改的正確性。下面是一個典型的Bug跟蹤流程。登記Bug -> 原因分析 -> 修改方案 -> 影響性分析 -> 修改 -> 測試 -> 測試組再測試這個Bug跟蹤流程基本上會有一個較高的Bug率,我的經驗顯示,這個流程的二次Bug率在20%左右,即每修改10個Bug,其中有2個可能沒修改完全或者是引起新的Bug。於是,一個改進的Bug跟蹤流程出現了。登記Bug -> 原因分析
Time of Update: 2018-12-07
轉的:http://egamesir.blog.163.com/blog/static/188096088201191225258163/?suggestedreading&wumii過癮啊!Debuggers Debugging Tools for Windows http://www.microsoft.com/whdc/devtools/debugging/default.mspx/源碼控制
Time of Update: 2018-12-07
金額轉人民幣大寫是一種常見的要求,但是這一看似簡單的要求,實現起來卻並不容易。前不久,我被問到了這樣一道題,當時寫了個演算法,昨天晚上又和BJDP的人們討論了一下,覺得很有必要把這個演算法寫下來。總共37行,去掉空行還不到30行,就不多囉嗦解釋了。 1 public class ChineseCurrencyConverter { 2 3 private static final String[] UNITS = {"億","仟","佰","拾","萬","仟","佰","拾",""
Time of Update: 2018-12-07
今天我要跟大家講講最近關於我對於逞能模式和免打擾模式的體會。 逞能模式 開始我把這個寫成英雄模式,是因為來自於英語Hero
Time of Update: 2018-12-07
產生劣質代碼的另外一個原因是對編程員的知識掌握的不夠充分。很多特性如果得到正確的利用,會讓代碼變得更為簡練易懂。但是由於對這些特性不夠瞭解或者根本就不知道。只好寫出不太好的代碼。本文以Java語言為例,將一些進階特性列出來以饗讀者。1.聲明 (Annotation) 在Java5中就開始引入了Annotation概念。這個概念協助 a. 編譯用聲明 例如:@Deprecated, @Override b.