Time of Update: 2018-12-07
規則 1:弄清楚將要開發的應用程式是什麼性質的(OLTP 還是 OPAP)?規則 2:將你的資料按照邏輯意義分成不同的塊,讓事情做起來更簡單規則 3:不要過度使用 “規則 2”規則 4:把重複、不統一的資料當成你最大的敵人來對待規則 5:當心被分隔字元分割的資料,它們違反了“欄位不可再分”規則 6:當心那些僅僅部分依賴主鍵的列規則 7:仔細地選擇衍生的資料行規則 8:如果效能是關鍵,不要固執地去避免冗餘規則 9:多維資料是各種不同資料的彙總規則
Time of Update: 2018-12-07
最近突然之間變得非常忙碌,工作和生活上的各種事情都奔襲而來,差一點招架不住!今天我們來繼續分享《程式猿的執業修養》系列。寫部落格時間不長,但在和大家互動的過程中發現了一個細微的現象,原本可能是要反駁我觀點的點評,結果字裡行間又站回我這邊兒,顯得有些自相矛盾(這裡不去追究誰是對的誰是錯的)。其實這種現象是因為自己還沒有思考透徹就倉促表態造成的,這種現象並不可怕,端正心態、多思慎言基本上就可以了!對人對事不要輕易表態對人評頭論足是一種缺乏素質的表現,即使是私下裡說說也是一樣。成熟之人是不會輕易談論他
Time of Update: 2018-12-07
瀏覽參數的方式輸入方法的時候,我們已經習慣了由IDE提供給我們的參數提示,極大了方便了我們選擇重載方法。在沒有Resharper的環境下,Visual Studio已經做到了。那麼為什麼Resharper還要增強這個功能並大獲好評的。試問,Visual
Time of Update: 2018-12-07
插入代碼Resharper的Alt+Insert快速鍵提供給你插入代碼的功能。由於這兩個鍵非常難按(這是我的感受),真正在使用的時候,我用的是Alt-R-C-G,意指開啟Resharper菜單——Code——Generate,都只需要你的左手,這樣你可以右手一邊比劃,一邊還在寫代碼,多酷啊。產生的程式碼中最常用的是建構函式和屬性,當你沒有私人欄位的時候,只會產生一個空的預設建構函式,而且沒有產生屬性的功能。在你有私人欄位的情況下,產生之前會讓你選擇哪些私人欄位需要作為建構函式的參數,並產生初始化
Time of Update: 2018-12-07
“請對My Code指手劃腳”是我們群內搞的一個不週期性常規性活動,以代碼審閱和細節重構為主線,大家可以自由發表自己的意見和建議,也算得上是一種思維風暴。感覺到這個活動很有意義,有必要總結並記錄下來。目標代碼 1 public static string _ComputeFileMD5Hash(string file) { return _ComputeMD5Hash(_OpenFile(file)); } 2 3 private static byte[] _OpenFile(string
Time of Update: 2018-12-07
重構是一種精神,證明你在致力於提供高效的、精鍊的、健壯的代碼,而不是淩亂的、晦澀的、漏洞百出的代碼。在Visual Studio 2005中,微軟第一次提供了重構工具。但是不夠,遠遠不夠。我們需要的重構是非常廣義的,我們想要對代碼進行快速的調整,快到我在想什麼我的工具就能做什麼。這才是追求重構的境界。所以在這個意義上,幾乎Resharper為你提供了巨大的生產力。Visual Studio
Time of Update: 2018-12-07
通過我之前介紹過的Alt+F7和Ctrl+B,你可以很快的在一個代碼檔案中知道函數的調用情況。但是有的時候,代碼檔案非常複雜,裡頭有幾十個函數都算是小兒科,甚至一個建構函式就有N多個重載。這時你想清楚的瞭解檔案中各個函數,屬性,欄位,事件等等,就不是那麼輕而易舉事情了。在Visual Studio中,你可以通過這些方式組織或審視你的代碼:用region,這是最常使用的,我最喜歡的分法是:Field, Property, Event, EventHander,
Time of Update: 2018-12-07
萬能的Alt+Enter能夠幫你完成很多編寫代碼過程中的dirty work,總結起來大概是這麼些:幫你實現某個介面或抽象基類的方法;提供你處理當前警告的一些建議;為你提供處理當前錯誤的一些建議(不一定是真的錯誤);為你簡化當前的臃腫代碼;幫你實現某個介面或抽象基類的方法這個功能Visual
Time of Update: 2018-12-07
常常寫代碼的人,應該都對Visual Studio的智能感知有一定的好感,通過它,在輸入比較長的對象名稱時不覺得吃力了。恐怕這是.net平台比其他平台的代碼更加易讀的一個因素,因為每個變數名稱都比較有意義,而不是晦澀的varIdx,pElemDisp之類了。儘管這樣看起來很酷。在沒有Resharper之前,Visual Studio的自動完成功能就很強大了。只是它定義的快速鍵實在是讓人不順手。Alt+右方向鍵,我怎麼都無法不低頭按它倆。於是我把快速鍵改成了Ctrl+;(分號)這樣按起來方便多了。
Time of Update: 2018-12-07
今天碰巧遇到這這兩個問題,自己百度了下答案五花八門,因此寫下這篇雜記,一是自己做個加深,而是分享給給位博友,當你遇到的時候,提供個解決方案。問題一:1.TabControl控制項中某一個選項卡的影藏我在Winform
Time of Update: 2018-12-07
摘要快速代碼定位的核心就是三個功能: 轉到定義:Ctrl+B; 尋找所有使用:Alt+F7;
Time of Update: 2018-12-07
private、protected、public和internal的區別private是完全私人的,只有在類自己裡面可以調用,在類的外部和子類都不能調用,子類也不能繼承父類的private的屬性和方法。protected雖然可以被外界看到,但外界卻不能調用,只有自己及自己的子類可以調用(protected的屬性和方法都可以被子類所繼承和調用)。private和protected的共同點:外部都不可以訪問。private和protected的不同點:在同一類中可視為一樣,但在繼承中就不同了,pri
Time of Update: 2018-12-07
面對這樣一個問題:為什麼.net能夠比java更加快速的完成開發?恐怕最大的優勢在於Microsoft提供了一個無比強大的IDE。它的強大在於適用於各個層次的開發人員。當你還是一隻小小鳥的時候,可以學會drag&drop,當你開始寫代碼的時候,你會發現設計器產生的程式碼是多麼愚蠢和臃腫。當你自己能夠寫出乾淨的代碼時,可能再也不想切換到設計器中去了(切換/F7)。我相信我們中的大部分人,即使是最資深的Windows開發人員,用VS寫代碼比用記事本的效率要高很多,因為我們畢竟需要IDE的協助
Time of Update: 2018-12-07
LINQ to XML是一個比較大的主題,在這篇博文中,DebugLZQ不想也沒有必要依次講述譬如用Linq to XML 建立刪除...XML檔案,lz想講述的是在實際應用中linq to SQL 如何展現我們需要的資料,即XML檔案擷取以後如何進行查詢想要的項目,展現在UI上。在前一段時間開發的護士站項目中,我是for迴圈XMLReader的方式遍曆XML檔案的。也能完成相關的需求,且函數封裝好了以後,可以直接調用,也挺方便。下面用LINQ to
Time of Update: 2018-12-07
在進入解釋型模版引擎的探討之前,我決定先分享一下這篇部落格。因為在解釋型引擎裡將會引入反射的概念來實現更多、更複雜的功能。可能大家談到反射面部肌肉都開始抽搐了吧!因為在託管語言裡面,最臭名昭著的就是反射!它的效能實在是太低了,甚至在很多時候讓我們無法忍受。不過不用那麼糾結了,老陳今天就來分享一下如何來最佳化反射!概述本文涉及到的反射最佳化的途徑有如下兩種:通過Delegate.CreateDelegate()建立委託進行最佳化通過.NET4的動態運行時進行最佳化如果您還知道其他更加有效最佳化途徑
Time of Update: 2018-12-07
使用 Entity Framework 最要小心的效能殺手就是 —— 不正確的查詢代碼造成的資料庫全表查詢。我們就遇到了一次,請看下面的範例程式碼://錯誤的代碼Func<QuestionFeed, bool> predicate = null;if (type == 1){ predicate = f => f.FeedID == id && f.IsActive == true;}else{ predicate = f =>
Time of Update: 2018-12-07
前面的博文My First MVVM Demo,DebugLZQ用MVVM實現了一個簡單的Demo。下面來用Prism架構重新實現,來感受Prism帶來的方便!關於Prism可以參考DebugLZQ前面的博文Prepare for
Time of Update: 2018-12-07
Managed 程式碼中的字串是一類特殊的對象,它不可被改變的,每次使用 System.String 類中的方法之一或進行運算時(如賦值、拼接等)時,都要在記憶體中建立一個新的字串對象,也就是為該新對象分配新的空間。這就帶來兩個問題:1:原來的字串是不是還在記憶體當中?2:如果在記憶體當中,那麼機密資料(如密碼)該如何儲存才足夠安全? 先來看第一個問題: 代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http:
Time of Update: 2018-12-07
一直想找一個系統的WCF入門提高的書籍,卻未能如願;閱讀了MSDN的有關章節,發現寫的很好---深入淺出,言簡意賅,Programmer to Programmer,固寫下此文,方便個人索引。下面是MSDN的WCF文檔的目錄連結:Windows Communication Foundation閱讀從"文檔指南"開始,它提供有關 Windows Communication Foundation (WCF)
Time of Update: 2018-12-07
1. sealed——“斷子絕孫” 密封類不能被繼承。密封方法可以重寫基類中的方法,但其本身不能在任何衍生類別中進一步重寫。當應用於方法或屬性時,sealed修飾符必須始終與override一起使用。 即:密封類不會有子類,所以是“斷子絕孫”。2. new——“你是我的,我是我的” new關鍵字用於顯式隱藏從基類繼承的成員。也就是在使用衍生類別時調用的方式方法是new關鍵字新定義出來的方法,而不是基類的方法。