Time of Update: 2018-12-03
在當前資料庫中建立表 create table person(id integer,name Text);插入兩條資料insert into person values(1,"zhangsan");insert into person values(2,"lisi");查看當前的資料庫內容 select * from person;1|zhangsan2|lisi一、給表添加新列新添加一列 sex alter table person add column sex Text default
Time of Update: 2018-12-03
Time of Update: 2018-12-03
本文已發表在 InfoQ中文站的《持續整合》專欄,關於“持續整合”和“持續傳遞”更多的文章、視頻資源請訪問“持續傳遞中文站”,http://www.continuousdelivery.info/index.php/resources/。在前文《軟體自我識別》中,我們討論了如果使軟體做到自我識別,以促進自動化部署和版本檢測等工作。
Time of Update: 2018-12-03
今天在用ANT編譯項目的時候,在沒有指定字元集的時候,編譯時間一直報不能把某段文字轉成GBK,然後我指定為UTF-8 時,另一些類又報不能指定文字轉成UTF-8,後來看了一下,這些報錯檔案的字元集,發現,這些報錯的檔案都有中文的注釋, 並且都報錯。後來查詢了一些資料,發現在javac執行編譯時間,如果不指定字元集,則預設為系統的字元集,如果指定了則用指 定的字元集。為瞭解決這個問題,我試著統一了一下項目中的字元集,在統一了之後,項目整個編譯都沒有問題。
Time of Update: 2018-12-03
今天看了關於單元測試中關於STUB的一些描述,大致做以下的總結及理解: 在單元測試的過程我們的程式需要一些資源和環境,比如需要WEB環境,需要IO資源,或者一些其他的介面,我們在進行單元 測試時,可能需要頻繁的訪問這些諮源,長時間的依賴這些環境,這導致,我們的測試的獨立不強。在這種情況下,我們使用 STUB技術來類比這些環境,從而使我們的單元測試能夠資訊量較獨立的運行。下面以一個例子來做簡要的描述,比如在我們用 的WEB程式中,需要頻繁的需要HTTP資源及WEB環境,如果我們依賴於TOMCAT來
Time of Update: 2018-12-03
今天收到yahoo group中極限編程組(extremeprogramming@yahoogroups.com)的一封求助信,大意是:“需要自動化構建和持續整合的收益數字,好讓他們的VP能讓他花上一段時間專門最佳化他們的構建指令碼,以便將時間從3、4天縮短到12個小時。因為他們的單元測試已耗用時間太長,而且構建經常因為單元測試的失敗而失敗。”這也沒什麼可笑的,因為這種事在很多公司都常見,但是,當這件事發生在一個號稱“敏捷”,而且是買Scrum管理工具的軟體公司裡,就變得有些可笑了。不過也難怪,
Time of Update: 2018-12-03
好好的,用pb自動的asa建了個資料庫,但千不該萬不該給表取了個名字叫user,結果在pb中用嵌入式sql的時候,怎麼都是語法錯誤,語法錯誤,語法錯誤.....翻來覆去,折騰了一晚上,極度的打擊了我的自信心啊.....結果,當然是bug,已至下,用user,count建的表都是無法正常訪問的,推測是類似保留字一樣的東西,但目前沒有找到明證,我說的是在用嵌入式sql的時候,所以這也提醒了一點,保持好的程式設計風格是多麼的重要,怎麼著當初也該在user前加個t啊,t_user的話,量也沒有出錯的軟體
Time of Update: 2018-12-03
Innovation, not instant perfection/創新不會馬上就完美 Start rough, learn and iterate./開始粗糙,學習和迭代Ideas come from everywhere/點子來自任何地方 Ideas can come from the engineers, managers, users even the financial team.Share everything you can/分享一切 Everything is put on
Time of Update: 2018-12-03
先強調一點,免得以後忘記:通常我們所說的其實是指標變數,而不是指標。指標=變數的地址,指標變數則是存放變數地址的變數。所以要說指標變數,它的首要概念應該是:它本身是一個變數,然後再去理解他的行為與實現。樣本:int a=10;void *b;b=&a;printf("%p/n",b); //*b=20;int *c=(int*)b;*c=a;printf("%p",c);上面一段小練習代碼,說明了一下null 指標變數的基本操作。null 指標變數自然也是指標變數,
Time of Update: 2018-12-03
九個原則: 1. 每個方法只使用一層縮排.2. 不要使用關鍵字“else”3. 封裝所有的原始類型和字串4. 每行最多使用一個“.”操作符5. 命名時不要使用縮寫6. 讓所有的實體類保持小尺寸7. 任何類都不要使用兩個以上的執行個體變數8. 每個collections都是一個類.9. 不要使用 getters/setters/properties. 遵循這九個原則,練習寫一千行代碼,鍛煉物件導向的思考過程。 讀到這裡, 別自以為是(否), 詳細解釋請見《The ThoughtWorks
Time of Update: 2018-12-03
什麼是個人預提交(Personal build)?Personal build簡單來說,就是開發人員在代碼提交之前,先要自己在本地運行一次構建和測試代碼,保證本地沒有測試失敗後,再將其提交到中央代碼倉庫。Personal build的痛處在哪裡?“提交代碼之前,必須在本地運行並通過單元測試”是敏捷團隊的原則之一。而隨著新功能的增加,我們的單元測試越來越多,已耗用時間當然也就越來越長,那麼開發人員等待的時間就長。因此,正如在InfoQ
Time of Update: 2018-12-03
Factory Girl 是專門用來構造類比測試資料的,完美替代Fixture的工具。Fixture的缺點很明顯,經常要處理各種關聯和依賴。如果測試要求的資料量大,還要自己手動製造資料。這些在Factory Girl中都有了好的解決。產生大量資料可以用association來解決對象間的關聯,sequence來解決產生大量測試資料的問題。添加Factory Girl#Gemfilegroup :development, :test do gem
Time of Update: 2018-12-03
Dates, Params and YouDec 3rd, 2008 A not particularly nice area of Rails are the date and time helpers. 3 popups just isn’t a very nice bit of user interface. It’s a lot of clicks when you want to change dates and most people can’t reason in their
Time of Update: 2018-12-03
我去過多個公司,加入過多個團隊,也帶過多個團隊。讓我感覺軟體開發是如此美好的團隊只有一個,那就是我在Thoughtworks工作時,加入並帶領的產品團隊——Cruise。到目前為止,對我來說,那兩年的經曆(2007~2009)的確是最美好的巡遊——正如這個產品的名字。今天在這裡列出所有的Cruiser,以及故事中提及的人。 1. 喬梁(就是我),Delivery manager,中國,(離開Cruise後,值得驕傲的一件事兒是翻譯了《持續傳遞》) 2. Jez Humble ,product
Time of Update: 2018-12-03
過去十年中,一個劃時代的改變就是:基於Web的業務模式對傳統企業業務模式的衝擊。亞馬遜就是曆史最長,也最明顯的例子之一,而越來越多的公司(從航空到金融服務)開始依賴軟體打造其競爭優勢了。依靠軟體來啟動並執行業務有兩個關鍵組件:一是你想如何改變世界的願景,二是儘早收集使用者的反饋。精益創業運動特彆強調反饋的重要性,這不僅僅體現在創業公司。像亞馬遜、NetFlix、和臉譜這樣的公司也持續不斷地對其網站進行小步改進,從而增加收入,並改善網站使用者的體驗。什麼是持續傳遞?想在使用者與項目團隊(包括客戶或
Time of Update: 2018-12-03
極點五筆,搞不好容易遇到下邊兩個問題: 問題1:極點五筆狀態列不顯示了,怎麼辦?解決辦法:同步選取Ctrl+←(左方向鍵)。 問題2:極點五筆候選選字框不見了,怎麼辦?解決辦法:同步選取Ctrl+→(右方向鍵)。 同時提供幾個極點五筆極有用的快速鍵: 剪下板查詢不認識的字:Ctrl + ?加入詞庫:Ctrl + =減除詞庫:Ctrl + -簡體繁體輸入切換:Ctrl + J輸出符號:Shift+Esc
Time of Update: 2018-12-03
1) Visualize the workflow2) Limit the work-in-progress3) Measure and manage flow4) Make process policies explicit5) Implement feedback loops6) Improve collaboratively (using models & scientific method)It is in this last property where through
Time of Update: 2018-12-03
1 簡介現在,即使在IT預算被大幅度地削減的情況下,IT管理員的壓力仍然在不斷增大。同時,業務環境正以非常高的速度持續改變,這使IT艱苦奮鬥,以便能夠跟上這種變化速度。這些變化導致了以“快速發布和靈活而又高品質的維護為承諾”的敏捷式軟體開發 (Agile Software Development)方法論產生了很大的興趣。敏捷方法(XP、SCRUM、Feature-Driven
Time of Update: 2018-12-03
這篇蠻好的,原帖:http://viml.nchc.org.tw/blog/paper_info.php?CLASS_ID=1&SUB_ID=1&PAPER_ID=209這一篇最初的目的,是想來整理一下在 C++ 裡的字串切割的方法。不過寫到一半就發現,其實 Boost 提供的相關工具都可以延伸到其他形式的資料,並不僅限於字串,所以變成內容是著重在 STL containter 的切割,所以後來就決定變成是由字串切割,來帶到split() 這個函式,以及Tokenizer
Time of Update: 2018-12-03
很長時間沒有更新部落格了,一直在上海,上星期剛從客戶現場回Office。在很多剛剛開始實踐Agile的團隊中,有這麼一種想法:“Retrospective太花費時間了,所有成員在那裡開上一兩個小時的會議。在會議上,要麼大家發發牢騷,要麼專案經理講講話,強調一下後續工作中的注意事項。還不如回寫座位上寫代碼來得直接呢。” 其實,如果有這樣的認識,說明團隊還不成熟。如果沒能發揮這一實踐的重要作用,那麼可能比"不會做TDD"有更嚴重的後果。 什麼是 Retrospective ? What is