Time of Update: 2018-12-08
介面是多態的文法基礎之一。而可測試性是保證軟體品質的標準之一。介面是不涉及具體實現的,而測試是針對具體的實現。那麼介面某種層度上只是屬於文法範疇,而測試是屬於語義範疇。我們不能針對介面來測試,因為介面是沒有語義的(不可測試的)。我們只能針對特定的類實現來測試。<p$1$2$3$4$5$6> 但現實中,我們又傾向於由客戶來提供測試代碼,因為客戶知道自己需要什麼(而不管你用什麼方式提供),這是白盒黑箱測試。而我們也有個傾向,就是客戶基於介面來編程。這就有個矛盾了,因為客戶無法基於介面來開
Time of Update: 2018-12-08
物件導向聲稱自己帶來了革命性的進步,實際卻沒有。並不是說物件導向沒有作用,而是語言在開發中的作用並不如想象中的高。在開發中,除了語言,還有管理,甚至還有人際關係,這些都不是物件導向所能涵蓋的,也就是,不管物件導向多牛,他的作用相對於開發工程來說只是一小部分。物件導向是一組api和狀態,並且有外部介面和內部實現的區別,可以減少第三方調用的複雜度。電腦的基礎理論之一就是狀態機器,也就是一個狀態遷移到另外一個狀態,對象完美的對應了這種基礎理論,因此是高效的。可是最近發現狀態過於複雜,導致並行度難以提升
Time of Update: 2018-12-08
將用戶端登陸介面的公司資料放在CompanyData.xml中儲存,在smartclient/clickonce的部署模式下,直接將該xml檔案從服務端下載至用戶端,這個思路解決了在系統登入前訪問服務端資料的需要,又避免了在用戶端將部分資料hardcode的問題。但是在clickonce下,用戶端安裝完成後,發現CompanyData.xml檔案不見了。我檢查了manifest檔案,用mageui開啟,可以看到該檔案確實在裡面。其中一個細節是,CompanyData.xml是被作為Data
Time of Update: 2018-12-08
由於需要做自動整合測試,所以需要做到自動部署,而由於ci server和test server是區域網路內的兩台不同的伺服器,所以需要遠程執行,因此我想到了用微軟的一款免費工具PSTools中的PSExec(目前最新版本為1.98)。在Jenkins中使用PSExec,碰到了一系列的問題,我也在嘗試解決,這個過程中解決了部分問題,但仍然有關鍵性問題沒有解決,但是我先把這些過程記錄下來。 *.遠程執行一個批處理指令碼出錯,提示:"MSBUILD : error MSB1009: Project
Time of Update: 2018-12-08
通訊,在社會生活中是非常重要的一環。比如城市化的原因是什嗎?很大程度上就是為了縮短人與人之間的物理距離,提高通訊效率。可見通訊二字,對社會發展的影響何其大。 隨著資訊化技術的發展,通訊得到的突發猛進的發展,某種程度上,超越了物理世界的限制,比如城市化再高,樓房建到208層,註定還是有一點點空間距離,但是如果有個電話,你隨時隨地就可以聯絡到對方,不用10秒鐘,這才是通訊的最終形態。資訊化的發展,其目的就是將物理世界的東西轉化為資訊表示,以便通過電子通訊手段實現最高效率的交流。 電話是一個很好的通
Time of Update: 2018-12-08
物件導向的習慣思維是把形象的個體作為對象,這叫有形。和有形相對的是,形體內部的執行特性,比如演算法,流程,這叫無形。從無形到有形,這裡的哲學是,無形是有形的基礎。一條魚和一個人在形體上差別很大,但是從無形的角度去看,兩者都有生老病死。在建立這個無形的基礎後,有形的對象就可以順理成章的建立起來。具體的例子,比如unix裡面的file概念,就是一個無形的對象,他可以是具有鮮明形象的磁碟片,硬碟,也可以是通訊裝置,甚至是記憶體。
Time of Update: 2018-12-08
軟體天才與技術民工——薛湧《天才是訓練出來的》讀後感金旭亮http://www.cnblogs.com/bitfan/archive/2010/12/30/1921291.html看了上面的文章,我也想說說我對這個問題的看法。第一個問題是:是否存在天才?這個問題似乎是不證自明的,但是我覺得有必要明確一下問題的相關概念,否則只是從感性出發不利於我們分析問題。所謂天才,是天生資質比常人優秀的人。什麼又是資質呢?資質不等於知識,沒有人一出生就會被乘法口訣。資質是一種潛能,是一種容器,或者可以說是(關於
Time of Update: 2018-12-08
剛才碰到一個前同事,談到了專案計劃及風險,如何規避項目風險,他提到:1)專案計劃要做到2-3天的粒度,2)維護遺落工作清單,3)在每個迭代結束做回顧和改進。其實這也是流程改善的不二法門。但是存在下列無奈和不確定性:不確定的任務難以一次性收尾的任務日常任務排程的變化個人評估的不同品質的把握當時間和品質呈一定的反相關,在時間,功能已經確定,如何讓團隊的交付物能夠保持穩定的品質,這是難題。
Time of Update: 2018-12-08
很多人學外語的方法是翻譯成中文。這無可厚非,但是翻譯其實也有很多種的。一種是音譯。第二種是直譯。第三種是意譯。對於文學作品,甚至通常的作品來說,意譯是非常合適的。但是意譯對學習外語沒有任何協助,反而會產生負面效果。用意譯的作品去學習英文,就等於去看一篇很地道的中文,然後寄望能學到地道的英語,這是不可能的。所謂語言差異,在於其固有文化思維獨特之處,印度人搖頭是點頭的意思,如果意譯過來,我們根本就不知道原來還有這種奇特的文化。直譯能最大限度的保留一個語言的思維和文化形態,雖然短時間會產生極為怪異的
Time of Update: 2018-12-08
作為一個程式員,習慣和電腦打交道,對什麼指令之類的相當熟悉。這個時候可能會出現一個毛病,就是喜歡什麼事情都用電腦的思維去看。但是我不贊成這種習慣。我們是人,不是機器。這句話的意義是什嗎?你可以把人看作一個超級電腦,相對你的微機來說他解決問題的速度,和能力要高一萬倍。如果你只是將自己局限於電腦的範疇,習慣用他的思維去想問題,只會制約你的思路。正確的做法是:第一步,用你的人腦去分析,解決問題第二部,用你學過的關於電腦的知識去把問題轉化為電腦演算法 很明顯的一點是,如果你自己都理解不了問題,無論如何也
Time of Update: 2018-12-08
在WIN7/2008中,WCF服務host到IIS上如果需要用到X.509認證,那麼首先要用makecert產生認證到指定的憑證存放區地區,一般有CurrentUser和LocalMachine兩種。在瀏覽WCF服務的時候,如果報"Keyset does not exist."錯誤,那麼可以確定這是private keys的存取權限問題。可以通過MMC開啟憑證嵌入式管理單元,找到使用的認證後,右鍵-所有任務-管理私密金鑰,會彈出一個private
Time of Update: 2018-12-08
CREATE TABLE [User](ID int, Name nvarchar(50), PRIMARY KEY(ID));CREATE TABLE [Department](ID int, ParentID int, Name nvarchar(50), LeaderID int, PRIMARY KEY(ID));INSERT INTO [User](ID, Name)SELECT 1, 'G'UNION ALL SELECT 2, 'C'UNION ALL SELECT 3,
Time of Update: 2018-12-08
方向性的東西,有時還是必要關心一下。比如近期silverlight和HTML5之爭。但是說到底,我們身為程式員(專業或者業餘的,比如本人),究竟做這個程式有什麼意義?既不能當飯吃,又似乎無關要緊,和其他“實業”比起來,高技術的有點虛無縹緲。我們崇拜的技術偶像,都是極具開拓性的天才人物,他們能將一件不可能完成的事情做成了。但是自問我們大多數人都沒有這個能耐。這就是讓人無奈的事實,要開拓前沿技術,談何容易。但也不需要那麼失落,因為技術是一個產業,而不只是屬於某些天才們的玩意。技術這個產業在社會中的意
Time of Update: 2018-12-08
設計編程的時候,往往根據具體的問題具體實施,而缺少提煉共性的動力。為什麼會這樣,我想主要是提煉共性是一個複雜的腦力勞動,在人們追求按時完成工作之餘,是否有精力去做這個複雜繁重的腦力勞動呢?為此,我認為,一味去指責人們不去提煉複用,是沒有意義的。要改善這方面的問題,可以培養一種可以提高複用性的編碼習慣,這種習慣一旦養成,就可以不費勁的編寫一些複用性相對較高的代碼出來。1.基於介面編程。制定一個良好的介面規範(根據調用方的需求制定),再來完成內部編碼。這個隔離可以避免對實現的過多猜測,減少調用方對具
Time of Update: 2018-12-08
最近,我發表了一篇大作《java和.net的理念之別》,寫得實在不咋地,不過居然還是有很多人評論了。發現一個怪現象,就是人身攻擊的很多,並且他們並不覺得這樣有啥問題,因為這類人通常是這樣的說:沒看內容,樓主SB了吧。不知道是樓主SB,還是這些人有點偏執性格,也就是認定一件事情後,就把它作為符號化,臉譜化,但凡討論這個的,都一概用無差別的評論。不過這樣確實很簡便,可以節省很多時間去“鑽研“技術,可惜為什麼這些人又要逢帖必回,這是一種怎樣的偏執啊。技術人的心魔是什麼,就是這樣,只看標題的標題黨,不看
Time of Update: 2018-12-08
現在國家的稅收非常繁複,一般人很難搞得懂。這無疑是不夠傻瓜的,我認為國家的稅收最好統一為一種,然後減少行政收費,盡量把所有的財政收入都歸為一種稅收。這樣便於統一管理。 現在的稅收,比如個人所得稅,是每個月從個人收入中按比例來收取的,這樣無疑有一定的代表性。有錢人賺得多,當然要交多點,窮人賺得少,就可以教少點。問題是實施起來很麻煩,因為“賺錢”是回報-投資,有時候投資出去了,還沒有回報,那國家就一分錢也拿不到,有時候回報回來了,但是下一輪投資還沒開始,納稅人就需要把下一輪的投資金額也按比例貢獻個
Time of Update: 2018-12-08
曾幾何時,我對網路上的資訊異常豐富這點是很崇拜的,但是後來我得到了別人這個觀點:互連網的資訊過多,容易讓人產生超載現象,也就是根本派不上用場,迷失在資訊的海洋中去了;提倡大家多運用資訊,而不是無止盡的吸取資訊。這個觀點對我很有價值,相信對各位也同樣很有價值。這個思想可以擴充開來,不限於互連網範疇,其實我們生活中很多資訊是無法利用的,有很多貌似很有價值的東西根本一文不值。堅持觀看新聞的人,認為不看新聞是不可思議的,但是我在一篇文章中發現一個人,從來不去看什麼新聞,他說:不看新聞,一樣過得好好的,為
Time of Update: 2018-12-08
看什麼書不是重點,重點是知道怎麼去看書.我想說說我的看法:1.語言不要太沉迷,不要玩語言遊戲,不要懂得茴香豆的茴字有幾種寫法。關鍵你要明白,這是用來作事情的,不是用來搞研究的。當然,高手可能都很深入語言的特性,但是那個不是初學者應該關注的地方。②。多想想編程可以用來解決什麼問題。編程的目的比編程的技巧更加重要,失去目的的技巧是無意義的,是沒有生命力的,是專牛角尖的。多看一些解題思路之類的演算法書,掌握一些分析問題的方法。三。編程是一個精細的活兒,一個字元寫錯,運行就出錯。任何時候都應該培養自己精
Time of Update: 2018-12-08
看了諸葛亮在劉備死後凡事鞠躬盡瘁、死而後已的做法,深知作為領導者用人的重要性。否則自己累死,也一事難成。諸葛一生唯謹慎,劉禪非不可輔之人,而他將相權與將權集於一身,空有趙雲、魏延、薑維而不能用,自己事必躬親,累死五丈原,嗚呼哀哉。若將權放出,自己專心治理內政,內外相輔,興許光複漢室之志可圖也。反觀我們項目,有各路好手不能用,自己累死累活去理需求,做設計,看代碼,跑測試,不是重蹈諸葛覆轍嗎?作為PM,不能人盡其才,才盡其用,該做而不做,隨心所欲,恐有失職之嫌。項目成功是第一目標,如果不能將第一目標
Time of Update: 2018-12-08
《.net, 哥已心灰意冷》,這位哥哥說了那麼多,其實也沒有能證明他所面對的問題是.net帶來的。其實,每一段時間都有人討論這個問題,有些人是真的討論了.net和java之類的技術上的差別,但是我發覺人們關心的並不是這個。我覺得大家是對自我提升遇到瓶頸這個問題去渲泄而已,因為大家都知道行行出狀元,.net也有很多值得自己佩服的人,不是麼。說到自我提升,很多人覺得是自己所接觸到的工具什麼的影響了自己的發揮。要是我學c就會怎樣怎樣,就是有這種想法。但是如果你真的去學c,你會發覺c也有讓你鬱悶的瓶頸,