[心得] 個人前後端開發心得 - 北港迎媽祖網站

作者: Linux (Windows)   2016-04-14 12:17:26
Hi (),
很久沒來版上 PO文章了 >"<
最近忙著幫忙我們家鄉的活動製作網站,
幾本上我是屬於義務性幫忙、非官方、沒盈利的自主服務(XD),
每一年的製作這個網站我算是不斷自我突破吧(疑?),
從後端、系統、設計、切版、上稿,我嘗試一個人完成!
話題扯遠了,回到正題,這個網站我要分享的是前、後端以及系統部分,
如果內容不 OK 可以跟我講一下喔!
http://mazu.ioa.tw/maps/dintao
從設計開始,我參考了 Material Design 的角度去設計版面以及流程,
不過當然的,手機與網頁的表現還是會有些許的差異,
但是整體我仍然盡量參考規範XD
PHP 這次我就使用了很潮的 php7,跑起來貌似有變快,
因為我的爬蟲變快了,所以整體來說算是很滿意,
只是有些 function 需要稍做調整,不過大致上都很健康!
JavaScript 這次主力都在 Google Maps API 的運用,
因為三年前我將此地圖資訊與廟會遶境路線做了結合,
開啟了我對 Google Maps 運用的熱愛,所以今年也是把他當主力,
活動當天沒意外的話,我會結合 GPS 線上定位!
CSS 的部分,我則是使用 compass scss 去實作,
javascript 的話則是使用 jQuery 以及一些其他的 lib 實作!
因為前後端都自己包辦,所以 Framework(CodeIgniter) 我做了一些修改,
讓這些靜態 css、javascript code 上 production 時候自動的 merge 以及 minify。
在靜態檔案的處理,我利用 S3 強大的空間功能,
將網站的圖檔資源、js、css 都上到 S3 以減少 EC2 的 Loading,
所以說,S3 上的 js、css 都是已經 minify 的了,
而圖片檔若是遇到大檔案,則利用 TinyPNG 去對圖片做壓縮,然後再上傳到 S3,
對了,以上當然是用程式跑的:)
再來則是 HTML,基本上網站前台都是使用大量的文章以及簡介,
所以可以做大量的 cache,然後這部分採用 file cache 而已,
雖然我有原本打算使用 Redis 去實作,但是我把記憶體留給 MySQL 了..
(我沒開 RDS,MySQL 是上在與 Server 同一台的 EC2)
因為有作 output 的 cache,所以我也順便將 HTML minify 囉,
因為做 HTML 的 output cache,所以瀏覽人數的紀錄就不能跑 php 做 +1,
所以這部分我使用 Ajax 去實作回傳人氣的紀錄!
最後 SEO,以及相關搜尋的設定,robots.txt、Sitemap 不用講,一定會做,
這次我還加入了一點點的 schema、Google AMP、JSON-LD 的結構,
這些都是去餵 Search Engine 想吃的菜!
其實過程中我學到很多經驗,也嘗試很多架構,這次我使用 AWS 的服務,
主要開了一台東京 t2.micro 的 EC2,以及使用 S3 的服務而已,
網頁流量,據我看 GA 的即時人數,最高曾經落在 1900 多人,
可能有些頁面是使用 S3 吧,所以都撐得住!
這是目前我個人做過最高流量的網站,相對的也是個人里程碑!
以上是我的經驗、心得分享, 回到做網站初衷,我只是個熱愛故鄉的鄉土文化,
想為家鄉盡一分力,利用自己的專長技術,支援這個從小的信仰,如此簡單。
文章有點太長,如果看到這裡的朋友,非常感謝您將它看完,
如果大家有想要來北港玩的,倒是可以看看網站內容喔!
以下是我的 GitHub 資源:https://github.com/comdan66/mazu
網站 Demo:http://mazu.ioa.tw/
若是文章不適合再版上討論的話,可以跟我說一下 >"<
有問題或疑問的話,非常歡迎各位討論喔:)
作者: YahooTaiwan (超可愛南西我老婆)   2016-04-14 12:25:00
不是很喜歡看到控制碼...
作者: aids61517 (奇歐巴肯)   2016-04-14 12:33:00
未看先推大大的作品
作者: rurikaxx (DavidLuo)   2016-04-14 12:45:00
技術面的東西聽起來還不錯 好奇是幾年經驗的工程師?
作者: Linux (Windows)   2016-04-14 12:48:00
我 78年次,沒讀研究所XD我的簡歷 http://ioa.tw
作者: kusozack (hetun)   2016-04-14 13:20:00
網站還不錯 不過怎麼會知道我 我只是默默潛水的小朋友
作者: dnabossking (少狂)   2016-04-14 13:22:00
ㄧ樓的大大說了
作者: yfr   2016-04-14 13:26:00
東西做得不錯,但我也是不喜歡控制碼
作者: vn509942 (如履薄冰)   2016-04-14 13:27:00
挺棒的
作者: kusozack (hetun)   2016-04-14 13:32:00
控制碼?
作者: SoftMen (軟男)   2016-04-14 13:40:00
你看第一頁最下面▲此頁內容會依閱讀者不同,原文未必有您的資料這就是有控制碼
作者: michealking (GG了)   2016-04-14 14:31:00
懷念控制碼~~~~~
作者: racering (賽車手)   2016-04-14 15:28:00
是在叫我?
作者: Ekmund (是一隻小叔)   2016-04-14 15:42:00
我不是前端的 但個人建議 可以的話 盡量不要一堆資訊擠一頁 效果跟滿是字的ppt一樣...
作者: jakert123 (kaka3315)   2016-04-14 15:52:00
作者: coronach (...)   2016-04-14 16:46:00
半個北港人推
作者: xevisu (大綠半糖少冰thx)   2016-04-14 17:34:00
太神啦~~~
作者: storyn26383 (販賣機)   2016-04-14 18:46:00
您怎麼沒有寫到解析別人網站原始碼來取得 GPS 定位資訊的部份呢
作者: bndan (seed)   2016-04-14 18:49:00
如果樓上屬實..這在前端算蠻嚴重的事= =
作者: abc0922001 (中士abc)   2016-04-14 21:01:00
推~~
作者: atpx (秋雨的心情)   2016-04-14 21:06:00
強~~
作者: chrome (老大是Google)   2016-04-14 21:22:00
看這風格和 Google Map, 馬上想到之前的大富翁遊戲沒想到一查 真的示原作 XD
作者: simpleJA (JA)   2016-04-15 00:53:00
感謝分享,推
作者: storyn26383 (販賣機)   2016-04-15 02:05:00
請問樓主怎麼回了文又自刪掉了呢?
作者: dlikeayu (太陽拳vs野球拳)   2016-04-15 06:31:00
不錯,行動派的
作者: polppk (老湯愛老包)   2016-04-15 07:41:00
同為78年北港人工程師推XD
作者: Linux (Windows)   2016-04-15 08:14:00
回s大,因為那問題跟此篇無關啊s大有興趣的話,可自開一篇與版眾討論
作者: storyn26383 (販賣機)   2016-04-15 09:27:00
那不好意思我想請問,您說的上次的事件是指?所謂的已經發表過聲明又是指?
作者: missdian (心誠則靈)   2016-04-15 10:43:00
北港人推!謝謝你為家鄉盡一份心 :)
作者: rurikaxx (DavidLuo)   2016-04-15 15:13:00
js怕被偷就不要寫web 怕熱就不要當廚師
作者: storyn26383 (販賣機)   2016-04-15 15:39:00
回 r 大,原 PO 並沒有偷別人的 JS,請不要誤會原 PO
作者: Linux (Windows)   2016-04-15 17:00:00
回r大,不是故意 minify 而是降低網路傳輸成本你可以使用 http://tinyurl.com/m65jex6 試試連 Google 都會建議你 css、js、img 都壓縮比較好若r大想看我的 js,直接到我的 GitHub 看就好啦~
作者: peterlai (彼得)   2016-04-15 18:25:00
很好奇phpQuery使用上資源消耗會比XPath小嗎?!
作者: rurikaxx (DavidLuo)   2016-04-16 11:12:00
我不是在嗆原PO..我是在嗆正義魔人XD 我覺得原PO很棒棒正義魔人不喜歡js被偷的話 就不要寫web附帶一提..保護js會用js混淆工具 minify只是降低流量XD
作者: storyn26383 (販賣機)   2016-04-16 11:56:00
回 r 大,所以我說了………原 PO 沒有偷別人 JS 啊………而且好像沒有任何地方講到 JS 被偷耶@@
作者: reLINK (戒驕戒躁)   2016-04-16 12:02:00
不喜歡控制碼...
作者: arenda (phantom in my heart)   2016-04-16 12:12:00
minify都不懂的人在那該該叫 看到都笑了
作者: storyn26383 (販賣機)   2016-04-16 12:24:00
minify 之後的 js 丟到格式化工具就回來了啊,只是變數醜了點,所以是沒有任何保護作用的唷
作者: GoalBased (Artificail Intelligence)   2016-04-16 14:54:00
你說的是ugly吧? 樓上
作者: Linux (Windows)   2016-04-16 14:59:00
前端 js 有一個步驟 就是 uglify,基本上都會跟 minify一起實作,minify 是縮成一行,uglify 則是醜化亦或者是說簡化,將不必要的 function name 簡寫,當然還有很多細節但兩這都是在提升前端傳輸效能之類的,有興趣可以查一下XD
作者: storyn26383 (販賣機)   2016-04-16 15:24:00
回 g 大,抱歉我沒有講清楚,不過原 po 幫我補完了
作者: GoalBased (Artificail Intelligence)   2016-04-16 15:52:00
不過感覺好像有推文被刪掉了,印象中有個虛的
作者: Linux (Windows)   2016-04-16 16:29:00
噓的那個,我私下跟他解釋完了,沒事:)
作者: ilovekebi   2016-04-16 19:00:00
push~
作者: lensuper (莫三)   2016-04-16 20:08:00
這 ... 能不推嗎 LoL 最近也在學前後端XD感覺C語言就讓他去了XD
作者: WolfLord (呆呆小狼￾ ￾ N￾ ￾ )   2016-04-17 22:18:00
我喜歡用server side,js只拿來排版面,愛偷就偷去。
作者: bboys1101 (霹靂男孩)   2016-04-20 09:19:00
很棒的作品耶,心得筆記也很值得參考
作者: sliok9520   2016-04-20 10:29:00
作者: roger00 (Stage Column(?))   2016-04-20 20:47:00
推分享!
作者: jiahansu (Jiahan)   2016-05-01 11:27:00
是找我嗎??

Links booklink

Contact Us: admin [ a t ] ucptt.com