1. 設計演算法
2. 思考漂亮的Design Pattern
3. 解決困難的問題
Github: https://github.com/wemee
技術部落格: http://wemee.blogspot.tw/
我喜歡解決困難的困難的問題,以目前公司的專案為例,我喜歡從頭參與,並非只是一個完成程式的人。
了解專目標,研究如何達成,思考使用哪些技術,克服困難,找資源解決。
1. 生活便利通,http://opendata.ecnow.tw/
功能:可檢索全台灣的公司
技術:使用Ruby on Rails,全文檢索使用Solr。
網站關鍵:SEO,讓搜尋引擎大量Index本網站資料
專案結束後,本網站轉型為Content Farm,目前每月page view約30萬
2. 智慧校園儀表板,http://dashboard.hi178.tw/hpsh1?room=a
功能:展示智慧插座送回的電力資料
技術:展示畫面是Dashing(Ruby的一個套件)
關鍵:後端使用NodeJS進行類似物聯網的資料搜集與推播,以及製作API,供以後活用擴充
因後端需收集大量資料,故後端選擇使用物聯網常用的NodeJS
也因規畫往物聯網走,所以資料庫使用MongoDB
我比較常做網站,但我的特點是解決問題
若問題並非製作網站可以解決,譬如若要製作手機APP
3. 學習測驗通APP
功能:出題考試
技術:Objective-C。(若日後有需求會改用Swift)
APP目前已下架(因Apple Store需每年付年費,且當時的寫的Code已不支援iOS7.0以上手機)
本APP關鍵在後方的題庫,因目前各校教科書分不同版本,各年級每年內容又會不同,所以資料庫的關聯設計非常棘手
我並不侷限於開發網站或APP,我喜歡學習新的技術,有空就會去到各個技術部落格,看看最近的發展。
我曾經對網路機器人非常著迷,因此有以下網站
4. Apple整修品追蹤網,http://itrace.twbbs.org/
功能:偵測Apple的整修品,是否有設定目標中的型號上架
技術:架構是Ruby on Rails,爬蟲原本是用PHP curl,後來因Apple網站並無防護,故改用NodeJS,網站字串解析是最原始的XPath
5.1 遊戲小屁王,http://gamekid.hi178.tw/
5.2 Buzz,
因前公司發現Content Farm似乎好賺,所以請我用網路機器人製作這種Content Farm
不過因公司怕著作權法,皆以已中斷開發
製作此類網站的關鍵在,各Content Farm網站,彼此也是使用網路爬蟲互相抄襲,故多有防護機制
(譬如連結藏在Javascript,或文章中間插入該站宣傳文字)
故此網站後面的爬蟲並非NodeJS簡單製作,而是使用PHP curl隱藏機器人的行為,並對防護破解
因為目前工作專案需求量大,開發時程短,故我目前最強的技術為Ruby on Rails
但並非我面對製作網站的問題,就只有Ruby on Rails這一項技能
例如當初前公司給壓力,一個月內作出一個部門官網
我使用PHP+CodeIgniter
6. 國眾關鍵字官網, http://adwords.leosys.com/
功能: 部門官網
技術: PHP+CodeIgniter
本網站的關鍵在與美術設計人員的合作,把他們的想法,呈現在網頁裡頭
最後,我想特別強調我解Bug的能力,前公司因接下,台北 新北與桃園企業雲的案子
需大量使用Open soruce開設網站給各企業使用
7. 台北企業騰龍雲, http://www.taipei-cloud.com/
門面用的網站我主要只是架構完成,就交給美術人員維護
關鍵在於開設大量的Open soruce網站,後端跟外國買cPanel做PaaS管理
本專案關鍵是客戶會回報許多在Open soruce的Bug
為避免客戶投訴市政府,所以由我來解這些Bug
因此對我解PHP, HTML, CSS, Javascript的Bug非常上手
1. 網站架構:依熟練程度 Ruby on Rails, NodeJS +Express, PHP+CodeIgniter
2.網頁技術:AngularJS(HTML,CSS,jQuery)
3. 一般語言:依照個人偏好 Ruby, C, NodeJS, Java, Python, PHP
4. 資料庫:依使用頻率 MySQL, SQLite, MongoDB, PostgreSQL
5. OS:偏好Linux系統,Centos,Debian其次
6. 習慣使用虛擬機,方便搬移系統,或部署上線,流量大了Load Balance分流複製出去。目前偏好使用Docker,XEN其次
7. 使用git版本控制