2013年11月10日 星期日

工程師身份

要產出一個產品, 工程師的身份固然重要.

但, 更多時候, 我們可能花了太多時間在執行這個工程師的身份.

(花很多時間寫code, 思考code要怎麼寫比較好, 單純以功能和效能的觀點出發)

2013年11月7日 星期四

Android版 & iOS版 (白做工篇)

當初開發iOS版第一版時, 很自然地就把Android版對事件處理的模式直接轉換成Object C語法搬了過去...

搬過去後...發現簡直是場災難...

因為底下運作的不同, 所以整個Performance差到連自己都不會想用...

仔細看了一下官方文件對那部分的 develop guide 就發現我用了官方不建議的做法去做...

好吧, 為了Performance, 整個架構從新設計了一次, 總算用起來不會卡卡的了, 但同時也跟Android版的做法完全不同了.

關於這點, 其實我並不是很喜歡, 因為版本差異越大. 之後有所變更時, 要找到對應的地方就越麻煩, 也就是對於軟體維護上, 這並不是我想要的現況...

另外, 雖然這中間多花了一點時間(其實是很多時間Orz), 但同時也想出了一些“理論上”不管在Android版 或 iOS版 對 Performance 應該都有好處的對應處理模式...所以我又想不開的...想把Android版也改成如 iOS版一樣...而這, 或許該算是另一場災難的開始...

其實再動工之前, 也猶豫了一段時間, 畢竟,

第一,目前Android版多數運作上並沒太大的問題, 所以冒然去改動, 實際上不太是一件明智的事情.

第二, iOS版的做法, 就我以往的認知來說, 實際上是用 resource 換 performance 的做法...在iOS上沒問題, 不代表換到Android版後不會有side effect...

但Android舊型的機種中, 規格很差的爛機子實在也蠻多的(不管是三爽/中國品牌/或最近才感覺比較不會有問題的日本品牌), 而使用那些機子的使用者現在雖然不多, 但也還沒少到可以完全忽略...所以, 好吧, 就改改看吧...

花了一個多星期, 整算勉強搬了一版到Android來了...接著拿出傳說中的爛機子一試...

很好, 有差, 但差別不大...大到不仔細看...還真的不知道差在哪...囧rz

這一個多禮拜...若要以產出成品來看績效...只能算是做白工了...Orz.

不過...不真的去試過...又怎麼知道沒用呢 ?! 是吧?

//=======================================

[題外話篇]

以Android和iOS這兩個目前行動裝置的主流語言來說, 有很多處理相似部分, 但不同的部分也不少. 一般來說, 如果同一產品是由不同兩組人來各自開發對應的版本. 那相對簡單, 只要 整個產品功能Plan好, 所需的圖檔&UI設計好, 接著要怎麼實作, 就是各自兩個team自己去處理就好.

但如果是同一組人, 甚至只是同一個人來做, 為了maintain方便, 可能會希望兩邊的做法能統一一點(至少就我個人來說是這麼希望), 那可能就真的要對這兩個系統都有一定的了解, 一開始就要先想好, 設計好整個處理的模式要怎麼取捨...這部分真的有點難...而且因為語言本身的限制可能有時候根本是無法做到的...