
最近忙著和Google Maps API奮鬥, 想寫一個跟街景有關的資料庫網站。(好痛苦啊! DOM完全不熟的說!)
不過今天突然心血來潮, 想回顧自己到底寫過幾組完整的PHP+MySQL網站,也一併回顧自己寫程式的來時路。
首先大概是2003年-2006年獵人狩影期間自學自刻 HTML + CSS; 這部份詳細請看獵人狩影三周年誌。
現在回想起來, 那可是個美好又傻又天真的年代啊~ 什麼 SEO 啦, 伺服器效能都不用管, 只要默默的寫。
版型我看的爽就好了!! (回憶真美好~~)
接著2006年連偷帶學了一整套 javascript 語法的 相簿網站, 大概是從這裡開始有了一些文字表述的資料庫結構的概念, 然後配合著 wordpress的開源平台, 開始接觸 PHP, 就這樣一直到 2010 年的夏天。。。

1. 2010年7月 YMDB 攝影資料庫第一版
那年暑假我在 UW-Madison 擔任研究助理, 不太清楚是什麼緣故, 麥大叔開始寫 PHP + MySQL , 然後選擇的第一個案子就是那驚天動地的 ymdb 把我的相片整理成一個大型的資料庫網站。
萬事起頭難啊, 我還硬是挑個最難的。

2. 2010年8月 通訊錄資料庫 (已中止)
大概是完成 YMDB後, 我回頭寫了超小型超簡單的通訊錄的資料庫, 名稱是麥‧名人堂。
想名字的過程可能比寫程式碼還久。

3. 2010年10月 2000-2010年 全球空難事件資料庫 (共504筆) UW-Madison ISyE碩士論文
接著為了衝剌碩士論文畢業, 稍微改寫通訊資料庫整合了十年間的空難事件。
這之中最困難的是讀報告, 輸入資料還有資料分析... 天啊!!!
本來都忘記這段往事了, 今天想起來就覺得頭好痛啊! 幸好已經過去了。

4. 2011年7月 私人筆記本
開始上班後, 在這科技年代, 太多網站的登入資訊需要記錄, 還有一些私人雜項, 所以寫了一個筆記資料庫。
記錄和自己有關的各項亂七八糟的東西, 也把原本的通訊資料庫整合進來。從使用程度來看,
這個開發是蠻重要的一個應用。

5. 2011年11月 公司用資料庫A (已中止)
上面的幾隻程式大概都還在土法鍊鋼的過程, 然後我開始讀了一些關於PHP資料庫安全性的文章後, 開始啟用框架的方式寫資料庫網站。加強網站程式碼的安全性。第一隻框架式的寫法是一個簡單的生產排程管理, 不過弄到後來, 使用者還是覺得 excel 比較好用, 而且由於用戶在中國, 而網站主機是架設在美國還是英國, 所以就在用戶抱怨之後停止了。

6. 2012年2月 DBS框架與檔案資料庫 私用
接著我把私人筆記本以及額外寫的一個檔案資料庫合併為 MDBS (Max DataBase System) 系統。
系統的架構是主程式碼與功能程式碼分開, 功能程式碼php 透過 DB設定權限再用PHP呼叫。簡稱 DBS
這段雖然寫的雖然很複雜, 不過是自己想的, 可能也只有自己看得懂, 但還是寫一下記錄下唄。

7. 2012年11月 攝影資料庫改寫 DBS 架構
這個改寫歷時至少一個月以上才搞定。由於原本的攝影資料庫所有功能和程式碼都只寫在一個php檔裡, 維護不易, 所以就痛下決心改成 DBS 架構, 去無存菁!
把幾個功能後台的功能: 上傳照片、編輯照片、編輯相簿、中英文編碼, 都各自切割。
雖然網站的整體外觀沒什麼改變, 不過內在可是相當於換心手術啊! 幾乎是砍掉重練了!

8. 2014年2月 公司用資料庫B (已停止更新)
後來我又幫公司寫了一個資料管理的網站, 有供應商和訂單和報價之類的, 不過後來公司 MRP 升級後, 有cover到我寫的部份, 所以這個資料庫也就停止更新了...
哭哭~ 幫公司寫程式的經驗告訴我, 吃力不討好, 而且沒人感謝你...

9. 2015年7月 Snowforest 相片發佈用程式 http://snowforest.co/
這組程式碼也是花了很多心力在研究前端 Javascript 和 DOM 的部份, 說到底還是需要好好學習前端啊!!
原本是擔當 Snowforest 的主力產品, 只是叫好不叫座, 很是遺憾。
不過用來擔當版面的 JSSOR 已經是 mobile friendly 的完成品, 期許未來有天還能大放異彩!

10. 20015年8月 縮網址與QR Code生成站 http://g.ymc2.com/
在讀QR Code的相關資源時, 爬到PHP就能有將字串直接轉成QR Code的函式, 這麼好用怎麼能不用呢!
就開發了一個縮網址的功能站, 只不過目前還是只有我在用啦~

11. 2015年11月 文字資料庫上線
文字資料庫是取代原有的 wordpress部落格, 而說到這個變動呢, 我也是突然被 wordpress 氣到吐血, 太多次突然死掉或是被入侵, 想想程式碼也不是自己刻的, 一怒之下就把這用了很久的 wordpress 給摘了。
把資料庫轉成自用, php重寫, 這就是目前看到的文字版本囉~
這個功能也是整合在 MDBS底下, 與攝影資料庫目前為公開的應用版本。

http://www.streetview.cc/
12. 2016年03月 街景資料庫上線 (店家內部實景) See-Inside
開發 StreetView.cc 的過程, 相當的痛苦啊! 不過痛苦過後的成果總是美好的,
目前網站還未正式公開, 不過相關的功能大致已完備, 在完善相關的UI之後, 就可以突破天際線啦!
這次開發學習了相當多的經驗(與血淚)啊, 想到這肩膀就好酸...
第一個是JSON:
由於大量的引用 Google Maps API v3 的語法, 也透過 Google Place API 理解了 JSON 的應用,
這JSON其實是很強的東西, 在做跨站別的應用時可以簡單的傳遞資料, AJAX好像也能用?
總之我順道改寫了縮網址g.ymc2.com, 擴充json的機能, 也應用json在自動化的項目上。
接著是所謂的"自動化測試":
一句話, 吃足了苦頭!
由於麥大叔的開發環境只是 Windows 下的 wamp 虛擬伺服器, 一堆什麼 composer, solenium...
光是安裝, 我就搞了老半天還搞不定... 只能直接放棄, 後來玩了一下 solenium IDE,
可行性是可以, 但是沒有流程控制, 只好靠腦袋去拼出一個自動化測試的方案, 簡單而言還不錯。
最後就是 curl 這功能:
原本是想在抓圖筆記本去好好了解這個功能, 不過這次開發需要 curl 很多 google 的頁面,
也就硬著頭皮上了, 還好其實不是很難了解。

http://ip.ymc2.com/
13. 2016年08月 IP地理位置資料庫上線
這個資料庫網站其實不難寫,
最困難的部份是把幾百萬筆的資料匯入MySQL資料庫裡。
第二困難的部份是等待 主機MySQL 處理的時間。
因為 Host 有上傳限制的關係, 所以資料庫需要分割, 用程式寫了自動分割之後, 再等待...
有一種多麼痛的領悟的感覺。
不過匯入完畢之後, 就簡單多了。
--
2016.02.18 心得: 沒想到這麼一回顧也寫了十個以上的資料庫網站了,
雖然說老實話都只是班門弄斧那幾套, 不過還是頗有成就感的~
腦子裡還有幾個點子要去實現, 之後再補完!!
開發中 店家內部實景資料庫擴充 & JSON留言模式 & 抓圖筆記本