星期四, 6月 30, 2011
星期二, 6月 28, 2011
建立index的準則
- 具有特定鍵值足以識別特定資料
如Primary key, Alternative key或user視為key拿來查詢的欄位 - table資料少
不到50筆或不到一個Data block,則建立的價值不大 - join過程在where中會出現的欄位
join過程大都以Primary key及Foreign key為條件,因此最好針對 Foreign key建立Index - 如果update或Delete程度超過20%,index價值不大
因為系統必需同時I/O索引與實體資料 - 不要太多索引
太多的索引會造成資料異動過程要花很多時間調整索引 - 查尋條件不明確
考慮建立複合索引
Reference
Oracle 10g 資料庫管理實務, 林存德
星期六, 6月 18, 2011
JavaScript debug工具、技巧
寫入快顯視窗
- 測試視窗
var debug = window.open('','newWin',[arguments]);
function addDebugginMessage(msg){
debug.document.write(msg + '<br>');
}
無侵入腳本程式設計 unobtrusive scripting
意思即將html中的view(css),結構(html),行為(js)分開
不要把3者都摻在html裡
css就很明確的利用class name從html分離了
js見下例
將html與js分開
不要把3者都摻在html裡
css就很明確的利用class name從html分離了
js見下例
//html夾了javascript
<a href="#" onclick="showPopuup('niceimage.jpg')">Nice image!</a>
將html與js分開
<a href="niceimage.jpg" id="nice">Nice image!</a>
document.getElementById('nice').onclick = function(){
showPopup(this.href)
};
利用JavaScript跳過中間轉頁處理
html中,利用href的效果,如同click連結,會開啟新頁面
如果js中,判斷條件後轉頁
利用href轉頁,將會在history多一個歷史記錄
將造成使用者click上一頁會回到判斷頁,
而判斷頁又馬上轉到下一頁
解決方法,利用replace
Reference:
pp]{ on JavaScript
如果js中,判斷條件後轉頁
利用href轉頁,將會在history多一個歷史記錄
將造成使用者click上一頁會回到判斷頁,
而判斷頁又馬上轉到下一頁
解決方法,利用replace
//javascript
var isSupported = [check JavaScript support];
if (isSupported){
locaiton.href = 'scriptpage.html'; //如果使用者按上一頁,就會再回到此判斷頁
locaiton.replace('scriptpage.html'); //將回到真的上一頁
}
Reference:
pp]{ on JavaScript
星期一, 6月 13, 2011
CentOS 5.5升級PHP至最新版
PHP 5.3 on CentOS 5.5
#To install, first you must tell rpm to accept rpm’s signed by me, then add the yum repository information to yum:
rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm
#Now you can install php by doing:
yum --enablerepo=webtatic install php
#update an existing installation of php
yum --enablerepo=webtatic update php
後記
好像失敗,原因還沒查出來
似乎是升級php後,部份套件沒升到相同版本
例如php 5.3,但php-common停在5.1
先remove重灌試試
而yum install php-common 會停在5.1
所以要用上面的方法 改變安裝的來源
yum --enablerepo=webtatic install php-common
安裝php-pear
因為centos的pear版本為1.4.9 需與php-devel 5.1搭所以如果更新php後,就會裝不了
簡單點的方法就 ...
- 先降回5.1
yum remove php php-* - 再安裝pear
yum install php-pear - 最後升級php最新版
星期五, 6月 03, 2011
軟體開發書單
初階
- 態度
心態最重要... 一切從心開始...
- 自慢 1
- 自慢 4
- 打不破的人生 30 個定律
- 學徒模式 優秀軟體開發者的養成之路
- Programming
- 編程創藝:編寫出卓越的程式碼 Code Craft: The Practive of Writing Excellent Code
- 重構:改善現有程式碼的設計 Refactoring: Improving the Design of Existing Code, Martin Fowler
- 程式碼大全 Code Complete
- 程式開發心理學 The Psychology of Computer Programming
- 程式師修煉之道 The Pragmatic Programmer
- 程式設計實踐 The Practice of Programming
- Woking Efficiency with Legacy Code
- Design Pattern
- 設計模式:可重複用的物導向軟體的基礎 Design Patters: Elements of Reusable Object-Oriented Software
- Design Pattern於java語言上的實習應用, 結城浩
- Coding Sytle
- 物件觀念
- Streamlined Object Modeling
- Object Modes: Strategies, Patterns, and Applications (2/e) - by Peter Coad
- Java Modeling in Color with UML: Enterprise Components and Process - by Peter Coad, Eric Lefebvre, Jeff De Luca
- Software Architecture
- Expert One-on-One J2EE Design and Development
Spring Framework的創始人Rod Johnson對於J2EE 2.x的反思
- Expert One-on-One J2EE Development without EJB
- Software Development
- 專案管理
- 人月神話 (The Mythical Ma0Month)
- 溫伯格的軟體管理學, 溫伯格
- 與熊共舞:軟體專案的風險管理
- UML Distilled, Martin Fowler
- 讓事情發生--專案管理之美學
- 人件 (Peopleware:Productive Projects and Teams)
- 深入淺出軟體開發
- Ship it
- 一些老梗的私房推薦書…
- Hibernate 3.x 附錄 參考資料 by 樹頭孤鳥
- Java程式師的推薦閱讀書籍
- 一個合格的程序員應該讀的30本書
軟體開發時間估計
怎麼估計軟體開發的時間
References
Code Craft: The Practice of Writing Excellent Code
我向來不猜想。猜想是很不好的習慣,它有害邏輯的推理 ~ 夏洛克.福爾摩斯實用的估計方法
- 將任務盡可能地分解成最小的單位,高效地通過首次系統設計
- 當得到一個不錯的解決方案,並且它的各個組成部份都可以得到正確理解的時候,為每一個小任務塊提供一個時間範圍估計,「人時」或「人天」為單位
- 當你完成所有時間範圍估計之後,將這些時間放在一起,加總即得到一個整體的時間範圍估計
關鍵概念:徵求別人的意見來幫助你進行估計
交付軟體所需的所有活動
- 執行考慮充分的設計
- 所有必要的試驗性工作和原型設計
- 實際的程式碼實作工作
- 除錯
- 編寫單元測試
- 整合測試
- 編寫文件
- 期間需要開展的任何研究或培訓
懶惰的人只有靠運氣才能做出成功的估計
References
Code Craft: The Practice of Writing Excellent Code
訂閱:
文章 (Atom)