2013年7月17日 星期三

Typescript初體驗-認識



目前還沒有用他寫過東西、網路上看到一些資料先玩一下、做個筆記
首先可以參考
在開始碰之前原本認為這是跟Cs[Coffeescript]一樣的東西、都是用來產生有規範的js code
初步玩了之後發現還是不一樣、就語法來說ts[TypeScript]好寫很多、Cs就看得很不習慣
Ts目的是開發大型Javascript的工具、Cs是用來寫出符合規範、JSlint的工具、並且簡化輸入繁瑣的code的工具
兩者一樣的地方就是如果整個team都用TsCs來開發的話、最後產生的code基本上都會符合各自的規範
也就是不會出現每個人coding風格不一樣的問題、且應該也會避免掉一些開發時沒注意到的小細節、導致日後很難debug
例如該用===的地方只用==

安裝
TypeScrip : 要另外下載安裝檔的、且安裝完後要重開機= =
CoffeeScript : 需要安裝node.js、必須由npm中下載安裝
指令為npm install –g coffee –script

操作
TypeScrip : 支援vs2012、可以用command下指令轉譯、或用vs2012安裝Web Essential、支援intellisense(很強大)、可以用線上版編輯器編輯,Windows開發環境限定
CoffeeScript : sublime可以支援、或用vs2012安裝Web Essential、當然sublime也可以寫TypeScript、不過肯定是沒有用vs2012寫來的輕鬆、vs2012真是最強大的IDE,可以運作在Windowslinux等作業系統。

日後有心得在一一補上、畢竟兩種都沒實際用過

參考資料

2013年7月13日 星期六

Try抓不到的錯誤

以前在寫asp.net時只要把程式包在try中、就算command有問題也是可以在catch中抓到錯誤 但是方法在PHP就行不通了、必須要另外去抓stmt的錯誤訊息才有辦法 可能是對PHP來說這不算是會讓程式終止的錯誤、所以不會丟出exception、要去抓stmt的錯誤才有辦法

$dbh = new PDO($dns, $userId, $password);
$query = 'select customername from customers where cusstomername like :name';
try {
    $sth = $dbh->prepare($query);
    $sth->execute(array(':name' => 'a%'));
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
        printf('customername : %s<br/>', $row['customername']);
    }
} catch (PDOException $exc) {
    echo 'error';
}

沒有這個cusstomername、但是抓不到錯誤

$dbh = new PDO($dns, $userId, $password);
$query = 'select customername from customers where cusstomername like :name';
try {
    $sth = $dbh->prepare($query);
    if ($sth->execute(array(':name' => 'a%'))) {
        while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
            printf('customername : %s<br/>', $row['customername']);
        }
    } else {
        $stherr = $sth->errorInfo();
        echo $stherr[2];
    }
} catch (PDOException $exc) {
    echo 'error';
}

這樣才有錯誤"Unknown column 'cusstomername' in 'where clause'"