發表文章

讀書心得 約耳趣談軟體

圖片
以下是節錄一些這本書覺得還不錯的點 激勵是有害的, 主要是說考績制度對程式設計師是不通的 工作切換有害無益, 讓程式設計師只專注一件事情 絕對不能把程式碼重寫(這裡不是指重構) 冰山一角理論, 冰山有90%是在水面下, 大部分的軟體, 那些漂亮的使用者介面通常只占10%的工作, 而背後90%的程式設是看不到的, 如果再考慮一半時間都在抓蟲, 那使用者介面就只剩5%, 如果只計算介面中的視覺部分, 那客戶真正看到的, 只有1%......, 這並不是秘密, 真正的秘密是非程式人員根本不知道這件事...... 約耳測試: 你有使用原始碼控制系統嗎?  SVN, CVS, Git, Mercurial... 你能用一個步驟建出所有結果嗎? 準備一個Script擋, 只要執行這個腳本, 就能一次搞定從最新原始碼快照到自動建立釋出產品的過程 你有進行每日編譯嗎? 提交原始碼到版本控制系統前, 一定要編譯並且沒有出現錯誤, 因為別人也想下班 你有沒有問題資料庫? 記錄已知的Bug清單, 每筆Bug需記錄: 1.重現問題的完整步驟 2.應該看到的結果 3.實際看到的結果 4.被指派的負責人 你會先把問題都修好之後,才寫新的程式嗎? 愈晚修正問題, 之後付出的代價成本愈高 你有一份最新的時程表嗎? 程式設計師討厭排時程, 但牽扯到業務人員的決策規劃, 擁有時程可以強迫自己決定要作哪些功能, 並剔除不重要的功能, 以避免過度膨脹 1.使用一些PMS工具 2.時程表簡單就好 3.每個功能應該包含多項任務(Task) 4.只有實際要寫該程式的程式設計人員,才能排出該項目的時程 5.要把任務分的很細(以小時為單位) 6.紀錄最初和目前的估計 7.每天更新已消耗時間 8.把休假時間算進去 9.把除錯時間算進去 10.把整合時間算進去 11.把緩衝時間算進去 12.絕對不讓經理縮短估計時間 你有寫規格嗎? 例如: GDD TDD 又是一件程式設計師討厭的事情, 設計初期的階段還看不出來, 愈後期程式碼一多修正的代價就愈高, 應貫徹沒有規格就不寫程式的原則 程式設計人員有沒有安靜的工作環境? 需要讓程式設計師進入沈浸狀態(in the zone), 因為這時候是最能全神貫注, 生產力最高的狀態, 所以, 要有安靜的環境!!! 你有沒有用市面上...

App Center Tutorial

本篇翻譯自 Facebook 開發者頁面  的 App Center Tutorial Facebook App Center 是一個大型的社交應用程式中心。App Center 是協助你的  Facebook Apps 、 手機 apps 和使用 Facebook Login 的網站  的管道。Facebook 鼓勵所有開發人員在這個 App Center 建立您的 app 細節內容頁面。 這篇文章將引導開發者配置 apps 的過程: 建立一個 App 細節頁面 上傳圖片 網站和手機網頁的特別注意事項 提交您的 app 到 App Center 如果你還沒有在 Facebook 平台上建立一個應用程序,你應該參考 Apps on Facebook , Facebook Mobile 或 Facebook for Websites 開發指南。 本篇假定您已經熟悉 Facebook App Dashboard 的操作及基本設置,並且已閱讀 App Center Guidelines 。以確保 App Center 審查上市後,用戶在使用上有一個良好的體驗。

How to list the properties of a javascript object

筆記 本篇參考 stackoverflow 的 How to list the properties of a javascript object 要如何知道Javascript物件擁有哪些proerty? ex: var dog = { name : ' Lucky' , age : 3 , breeds : 'Shiba Inu' }; 上面是一個小狗的物件,裡面有一些自訂的屬性'name','age','breeds' 等等... 那要怎麼在程式中知道這些屬性呢? 比較新的瀏覽器(IE9, FireFox, Chrome...)可直接使用 Object.keys 這個方法 var keys = Object . keys ( dog ); 或者自己寫 var getKeys = function ( obj ){     var keys = [];     for ( var key in obj ){       keys . push ( key );     }     return keys ; } var keys = getKeys ( dog ); 這樣 keys 就會是一個有所有屬性的陣列 keys = [ "name" , "age" , "breeds" ]; 參考文章: How to list the properties of a javascript object

Javascript and this

筆記一個 javascript 的特性。 通常在使用一些 method 的時候參數都帶有 Callback Function, ex: click(callbackFunction) 如果在這個 Callback Function 裡面直接使用 this 是沒有辦法的, ex: callbackFunction = function() {   this.doSomethiing(); // undefined } 必須先在在外層定義 this 為一個變數才可以, ex: var self = this; callbackFunction = function() {    self.doSomethiing(); // OK!! } 參考文章 : Javascript - 淺談this與Closure

Use getPixelRatio for HTML5 on retina

如果用 HTML5 配 WebView 來作 App 的話, 在 iPhone4 跟一些 Android 手機會碰到的解析度問題 , iPhone4 的 Retina 是 960 x 640, 但是在 WebView 底下會以 480 x 320 來顯示, 所以須要利用到 javascript 的 getPixelRatio() 來作調整, /** * Return current device resolution pixel ratio, Default is 1. * @return {number} */ function getDevicePixelRatio() { if (window.devicePixelRatio === undefined) { return 1; } return window.devicePixelRatio; } 這裡寫一支 function 來取得裝置的 PixelRatio,一般通常都 return 1, 解析度較大的手機才會回傳其他數值,例如 iPhone4 則回傳 2, 最後寫一支 initDeviceViewport 的 function 來塞值給 viewport metadata tag, 例如這裡 iPhone4 會將 viewport 的 scale 全部縮放為 0.5 倍。 /** * Initialize device viewport meta tag to full screen size. * @author http://jsway.se/?p=150 */ function initDeviceViewport() { var scale = 1; var ratio = getDevicePixelRatio(); if (ratio !== 1) { scale = 1 / ratio; scale = scale.toFixed(1); } var viewport = document.getElementById("viewport"); ...

Javascript message on Facebook post feed

之前在使用Facebook API的時候碰到的問題,,筆記一下。 如果在 沒有登入Facebook 的情況下開啟 Feed Dialog 發佈訊息, 會被導到一個莫名其妙的頁面,上面只有一串 javascript 如下 <script type="text/javascript"> window.location.href="fbconnect:\/\/success? post_id=XXXXXX; </script> 這個問題我碰到兩次, 一次是在網頁版直接使用  Graph API call  的方式開啟 Feed Dialog, 一次是在 iOS Facebook SDK 中使用 Feed Dialog, iOS好像是在4.0以下才會發生,不太確定, 解決方法: 找到呼叫 Graph API 的地方 ( iOS SDK 應該在 Dialog 相關的檔案裡) 將 https:// m .facebbok.com/dialog/feed?xxxxxx 的  m  改成  www 還是不行的話就把 https 改成 http 試試,應該可以解決~ 參考: Javascript message on Facebook Connect post to feed in iPhone/iPad app undefined

Hello PureMVC !

第一次聽到 PureMVC 的時候大概是兩年前,那時候就對這套 MVC Framework 很感興趣,不過當時對於它的架構是有看沒有懂,就一直拖到了現在。 最近因為工作需要用到的關係,所以又再次學習它,經過閱覽無數前輩分享的文章之後,終於初步了解它的運作模式了,因此分享這邊學習心得筆記。 什麼是 MVC ? 一個設計方法(Design pattern 也稱設計模式)。 想初步了解的朋友可以參考 維基百科的說明 。 網路也有許多相關文章,大略內容就是將程式開發架構分為 Model、View 和 Controller 三個部份的開發方式,建議可以閱讀 深入淺出設計模式 這本書。 什麼是 PureMVC ? 一個跨多語言的 MVC Framework,其中我們要用到的是 Actionscript 3.0 版本,這是他們的 官方網站 。 下圖是他的架構圖,除了 MVC 外,它也用到不少其他 design pattern,第一次看可能會霧煞煞,沒關係,我們下面慢慢介紹。