Time of Update: 2017-02-27
昨天我為大家介紹了如何去發現壞代碼,如何優雅的去實現一個應用內的監控程式。當然發現了壞代碼之後,我們還是要想辦法來改掉它,也許它會很頑固。今天說說效能最佳化的一個非常重要的部分:sql的最佳化今天要說的不是怎麼來寫優秀的,效能好的sql,這些DBA們會比我更加專業。在我們公司,凡是DBA能最佳化的sql,DBA都在內部消化了,需要反饋給我們的,說明他們可能也束手無策。也是我們該出手的時候了。insert,update這類型的sql,效能一般不會太慢,我把這其中可能出現的問題糅合在一個例子中,組成
Time of Update: 2017-02-27
版本:hadoop2.4+mahout0.9在web程式中調用雲平台mahout的演算法時,有時會遇到找不到路徑的問題,比如org.apache.mahout.clustering.classify.ClusterClassifier這個類中的public void readFromSeqFiles(Configuration conf, Path path) throws IOException { Configuration config = new Configuration()
Time of Update: 2017-02-27
數組:構造二叉樹, 需要使用兩個隊列(queue), 儲存子節點和父節點, 並進行交換;列印二叉樹, 需要使用兩個隊列(queue), 依次列印父節點和子節點, 並進行交換;二叉樹的資料結構:struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pParent; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight; };代碼:/* *
Time of Update: 2017-02-27
GroomingSession這個Session主要Go through我們下一個Sprint需要做的Story,大家都清楚之後,在每個Story最後我們會以 Good Agile 撲克牌來確認它的難度點。在sprint之前,做一個story的評估和規劃,為接下來分story提供難度係數的參照。StoryStory是敏捷的核心。一切task來自story,我們只有制定了story,才能確定task,一切測試工作也是基於story的。Story通常由Product
Time of Update: 2017-02-27
系統重構要求我們對代碼的每一步修改,都不能改變軟體的外部行為,因此在系統重構中的所有方法,都是一種代碼的等量變換。重構的過程,就好像在做數學題,一步一步地進行算式的等量變換。經過一系列等量變換,最終的結果雖然在形式上與原式不一樣,但通過計算可以得到與原式完全相同的結果。這種等量變換對於重構來說非常重要,它使得我們進行重構以後,程式還是那些程式,代碼還是那些代碼。但是,等量變換不等於原地踏步。正如矩陣通過等量變換可以得到方程組的解,微積分可以通過等量變換計算最終的結果,重構通過等量變換,在保證代碼
Time of Update: 2017-02-27
Dynamic Programming | Set 24 (Optimal Binary Search Tree)Given a sorted array keys[0.. n-1] of search keys and an array freq[0.. n-1] of frequency counts, where freq[i] is the number of searches to keys[i]. Construct a binary search tree of all keys
Time of Update: 2017-02-27
理論:如果您編程的時間非常長,就會發現很多的程式之間其實有相當多的重複代碼。每編一個程式就重寫一遍這些代碼既沒必要又浪費時間。在DOS時代,一般的做法是把這些重複的代碼寫成一個個的函數,然後把它們按類別放到不同的庫檔案中去。當要使用這些函數時,只要把您的目標檔案(.obj)檔案和先前存放在庫檔案中的函數進行連結,連結時連結器會從庫檔案中抽取相關的資訊並把它們插入到可執行檔中去。這個過程叫做靜態連結。C執行階段程式庫就是一個好例子。這樣的庫的缺點是您在每一個調用庫函數的程式中都必須嵌入同一函數的拷
Time of Update: 2017-02-27
1.32位環境簡介
Time of Update: 2017-02-27
創造有用的軟體是門工藝。這是沒有非黑即白的成功公式的。但是,卻有一些敏捷工程實踐,實踐證明它已經屢次為企業增加了價值,但前提是要考慮周全之後再使用。在本文中,我將與大家分享5條具體的途徑,你的企業能夠通過這些途徑從敏捷工程實踐中獲益。(假設我們使用Scrum + 極限編程(XP)= 敏捷這條基本公式,那麼在我講敏捷工程實踐時就會談到公式中與XP相關的那一部分,比如測試驅動開發、結對程式設計和持續整合。)James
Time of Update: 2017-02-27
第五節 程式寫作 說了不少,才真正到了寫作程式的時候,運用指令就相當於寫程式。只是,在運用指令前,一定要充份瞭解一應相關的課題。否則,應用指令如同和稀泥一般,堆砌出一團可以運作的成品,我個人不認為那能叫做「寫程式」,充其量只是塗鴉罷了。 一、暫存器安排 因為暫存器不足,必須事先安排妥當,才能有效應用。 再以前例說明,需要安排的因素有:
Time of Update: 2017-02-27
組合複用原則定義:在一個新的對象裡面使用一些已有的對象,使之成為新對象的一部分,新的對象通過向這些對象的委派達到複用已有功能的目的另外一種說法是:盡量使用(對象)組合,而非繼承那麼組合和繼承各自有什麼特點,優缺點,為什麼要有這樣的優先呢!先來比較一下組合和繼承。組合 VS. 繼承組合複用的優點和缺點組合優點:1容器類僅能通過被包含對象的介面來對其進行訪問。2“黑盒”複用,因為被包含對象的內部細節對外是不可見。3 封裝性好。4
Time of Update: 2017-02-27
上面講完序,就開始講開閉原則,有點不太優雅,不過,正如我說的,在學之前,周圍的人和老師,網路上的人都覺得這個不錯,你不太清楚,那麼就學學吧,學完之後,再仔細去整合,思考,去除雜質,保留精華。在學的過程中總是不斷自己停下來仔細思考的方式,我並不推薦學技術的人幹(當然立志科研的人一定要有這種鑽研精神),因為太耗時間。而且有時候你會發現,你疑問的就是後面提到的。嘮叨完畢,開始講講開閉原則。1988年,勃蘭特·梅耶(Bertrand Meyer)在他的著作《物件導向軟體構造(Object
Time of Update: 2017-02-27
1-2 功能價值 絕對價值=採用後效益/未採用前效益 相對價值=各軟體間絕對價值比 任何軟體,如果沒有實用的功能,就不可能有真正的價值。至於軟體的功能價值如何測定,多多少少要看使用者的主觀條件而定。 在這裡,我們提出一個簡單的方法,先要知道在採用軟體的前後,是否真具有效益?這種效益,是絕對的,沒有大、小的比較。 然而,如果一個軟體沒有效益,就不可能成為商品。所以,任何軟體的功能價值,應該是比較性的,在類似軟體中,取其絕對價值之比值即可。
Time of Update: 2017-02-27
在維護和開發通訊類軟體產品的過程中,經常需要處理一些軟體故障問題。在問題剛出現的時候,大家可能顯得手足無措,有一種天都要塌下來的感覺。但在問題原因找到之後,大家又會覺得問題原因非常的簡單,要是當初開發的時候仔細一點,是不會犯這樣的低級錯誤的。最近,本人就遇到了一個斷行符號符引發的問題。近日,在開發某軟體版本時需要對檔案進行操作,在代碼中使用了Linux C語言中的opendir函數,但是該函數始終返回NULL,提示檔案路徑不存在。本人查了一下該函數的具體情況。opendir函數的原型為:DIR*
Time of Update: 2017-02-27
三、利人與利己 任何一種商業產品,當然是以利益為先,利己後而利人。如果是藝術品創造,則剛剛相反,唯有能忽視己利,瀝血泣心地探索,虔誠狂熱地奉獻,才會迸發出人性的光輝,創造不朽的傑作。 藝術家之偉大,在於此,人性之可貴,在於此。
Time of Update: 2017-02-27
在一些有N個元素的集合應用問題中,我們通常是在開始時讓每個元素構成一個單元素的集合,然後按一定順序將屬於同一組的元素所在的集合合并,其間要反覆尋找一個元素在哪個集合中。這一類問題其特點是看似並不複雜,但資料量極大,若用正常的資料結構來描述的話,往往在空間上過大,電腦無法承受;即使在空間上勉強通過,啟動並執行時間複雜度也極高,根本就不可能在規定的已耗用時間(1~3秒)內計算出試題需要的結果,只能用並查集來描述。定義並查集(Disjoint
Time of Update: 2017-02-27
時序圖,英文名曰:Sequence
Time of Update: 2017-02-27
連結:http://acm.hdu.edu.cn/showproblem.php?pid=3038題目:Problem DescriptionTT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, he is always wooing TT to play the following game with him. This is a very humdrum game. To
Time of Update: 2017-02-27
Dos 下的音效卡音量控製程序,以記憶體駐留鍵盤啟用的方式控制CD-Audio,MIDI,Voice以及Master的音量(未作鍵盤的解鎖鎖處理,有興趣可加上)CTRL-F1 -- TURN MASTER VOL UPCTRL-F2 -- TURN MASTER VOL DOWNCTRL-F3 -- TURN CD VOL UPCTRL-F4 -- TURN CD VOL DOWNCTRL-F5 -- TURN FM VOL UPCTRL-F6 -- TURN FM VOL
Time of Update: 2017-02-27
現在我們開始學習一些有關GUI編程的有趣的部分, 即:以對話方塊為主要介面的應用程式。我們將分兩課來講述這一過程理論:如果您仔細關注過前一個程式就會發現:您無法按TAB鍵從一個子視窗控制項跳到另一個子視窗控制項,要想轉移的話只有 用滑鼠一下一下地去點擊。對使用者來說這是不友好的。另一件事是如果您象前一課中那樣把主視窗的背景色從白色改成 灰色,為了子視窗控制項無縫地作相應地改變,您必須細分類所有子視窗。 造成上述諸多不便的原因是子視窗控制項本來是為對話方塊而設計的,象子視窗控制項的背景色是灰色的,