發表文章

目前顯示的是 11月, 2019的文章

PHP 也有 Day #50:處理前人的遺產 - 聊 legacy code | 活動心得記錄

圖片
第一次參加 PHP 也有 Day 的活動,這次報名的主題是談談 legacy code。活動地點在三創,邀請的講者是 Recca Chao。 這次談論的議程有三大點: 定義什麼是 legacy code 重構和重寫的選擇,如何提議重構及評估時程 如何避免自己產生新的 legacy code 什麼是 legacy code 一個專案中有符合以下 4 點,可以被定義為 legacy code 年代久遠 結構龐大 歷經多次迭代 沒有文件 其中沒有文件算是我覺得蠻有感的問題,剛接觸專案時碰到之前處理的工程師已經不在,又沒有文件可以參考時,就只能慢慢 trace code,也造成重構上的不易,容易改 A 錯 B。 如何評估重構和重寫 講者建議除非遇到像是專案要整個換成新的語言,或者換成相異度很大的框架時,再來考慮重寫。原因是重寫會遇到像是市場的風險(被競爭者淘汰)、開啟專案的時間及人力成本等。有時技術上可行,但卻會在商業上失敗。 如果是重構的話,講者建議在重構前要先 寫測試:可以先功能測試,再拆成單元測試 補文件:避免寫完後,後續接手也無法快速了解(包含自己) 重構的話可以逐步改進,在保持實作新需求後,再漸漸修改 legacy code。 如何避免產生新 legacy code 講者有提到,既然開始重構了,也要避免自己又產生出新的「 遺產 」,可以依照下列四個方向努力: 時常與同事討論文件內容 和同事做 code review,有機會讓更多人對程式碼有印象 建立方便修改的小專案 花時間維護文件 ( legacy code 的要素之一就是沒有文件 ) 總結 今天課程上講者提到很多觀念,我自己也沒有完整落實,另外我覺得此次內容脈絡很有條理、方法也很具體。很感謝講者的分享,下次也會想再參加 PHP 也有 Day 的活動。 如果喜歡我的文章,想隨時收到最新行銷、技術分享,歡迎按 fb 粉專讚   或加入 LINE 官方帳號,即時接收最新文章通知

CodeIgniter 查詢生成器 - update_batch 介紹

圖片
CodeIgniter 是一個 php 的 framework,最近使用的心得,我覺得是一套輕巧、容易上手的framework,今天想來介紹 CodeIgniter ( 以下簡稱 CI ) 查詢生成器的 function - update_batch。 CodeIgniter 是一個 php 的 framework,最近使用的心得,我覺得是一套輕巧、容易上手的framework,今天想來介紹 CodeIgniter ( 以下簡稱 CI ) 查詢生成器的 function - update_batch。

2019年度整理 | 工作 2 年的職涯歷程、心得記錄

圖片
雖然標題下了 「 工作 2 年 」,但打開 Linkedin 發現我已經快工作兩年半 ...... 不過還是想記錄一下這兩年職涯心得以及一些心態上的變化,也希望跟大家一同分享~ 圖片來源: pixabay 雖然標題下了 「 工作 2 年 」,但打開 Linkedin 發現我已經快工作兩年半 ...... ,之所以會想記錄工作後 2 年的職涯心得,主要是看到了兩年前寫的 2017年度整理 — 學生接軌社會的過渡期  ,想再趁這個時機點做個記錄。 這次我想分成 3 個重點來做記錄,主要是依據相較於之前學生初入職場時,發生的一些新改變來: 第一次當 Mentor 大三時參加 「 資訊種子培訓計畫 」,當了一年學員、再當一年課務。我覺得這兩年,佔多數的比例我都是一位學習者。而在畢業後剛好有機會,回去成為專案的 Mentor 、驗收官,分享過往在執行或引導專案的經驗。也開始能提供一些在職場上學習到的技能及 know how。 提一下令我印象最深刻的兩件事: 1. 帶領職涯專案: 提案向公司爭取開放實習機會讓資種學弟妹參與,自己也在帶領的過程中了解要去回饋、引導專業上的項目、執行的技巧是很不容易的。 2. 引薦學員進公司實習: 跟職涯專案不同,這次是當 TUV mentor 時帶的學弟主動想爭取實習的機會。因為在專案中看見學弟積極的表現,所以當然全力幫忙,也很開心他也靠自己的表現爭取到實習機會。 轉換職涯跑道 剛畢業時我從醫務管理學系踏入資訊產業,一開始做的是數位行銷的工作。過程中碰到了許多行銷、營運分析、數位廣告投放,也常常加入思考產品規劃的任務,總體來說我覺得很有趣。但後來我找到了另一個新的方向:寫程式。從一開始用程式來解決問題,到後來投入超多心力學習。( 可參考: 【14天解完新手村任務】我的爬蟲初心者心得 、 非本科生程式自學心得 — PHP、Laravel  )。 而最後,我也下定決心轉換職涯跑道,成為一名 Web 工程師,在轉職的過程中其實很感謝之前公司幫助我的主管、工程師同事,在學習程式的路上指導我非常多有用的知識。 養成主動學習的習慣 離開學校後,很大的不同是再也沒有人幫你安排好哪些是必修、哪些是選修。主動學習成為了非常重要的事。雖然我認為大學時就需要培養好的主動學習的習慣,慚愧的

精準追蹤有效曝光數!利用GTM設定「元素可見度」事件追蹤

圖片
不知道大家有沒有遇過這種狀況?今天遇到一個需求是:行動版網頁採用瀑布流的頁面,第一屏上有一個廣告版位,往下滾動載入後會再出現另一個廣告版位 。問題來了:如果想知道這兩個版位是否確實曝光(出現在使用者眼前 )該怎麼做計算呢?其實過往不知道怎麼解決這個問題時,只要瀏覽這個頁面,我就會計算曝光,但也發現越下方的版位的點擊率是會被低估的。 圖片來源:pixabay 大家有遇過這種狀況嗎….? 不知道大家有沒有遇過這種狀況?今天遇到一個需求是:行動版網頁採用瀑布流的頁面,第一屏上有一個廣告版位,往下滾動載入後會再出現另一個廣告版位 。問題來了:如果想知道這兩個版位是否確實曝光(出現在使用者眼前 )該怎麼做計算呢?其實過往不知道怎麼解決這個問題時,只要瀏覽這個頁面,我就會計算曝光,但也發現越下方的版位的點擊率是會被低估的。 利用GTM設定元素可見度解決有效曝光難題 後來發現 GTM 上提供「元素可見度」這個觸發條件,可以解決上面的問題。其實過往我自己在追蹤活動頁上按鈕的點擊率,也常會發生最下方的按鈕點擊率被低估的狀況,利用此觸發條件追蹤也能再更精準的計算成效。接下來簡單簡介該如何進行設定: 第一步驟:設定代碼類型及事件追蹤參數 首先因為我們要將此觸發事件記錄在GA上,故代碼類型選擇GA 接著選擇事件,並填上事件類別、動作、標籤,並記得設定要紀錄的GA追蹤編號。之類記錄到的事件將會寫在 GA 的「行為>事件」報表中。 第二步驟:設定觸發事件 在觸發條件類型選擇「元素可見度」 接下來要設定兩個步驟: 1. 設定選取的元素,可以用 ID 或 CSS 選擇器,我是使用 CSS 選擇器,設定方式假設元素標籤上的 class 為 btn_c1ass 就寫 .btn_c1ass ,若有 ID 為 btn_id 則寫 #btn_id 2. 設定觸發的時機,分別有三種: *每個網頁一次:如果有多個符合CSS選擇器條件的元素在頁面上,則只會在首次元素被看見時觸發一次。 *每個元素一次:只會對符合選定條件的元素觸發一次,如果有多個符合條件元素,則在第一次被看見時觸發一次。若是有多個相同 ID 元素,則只會在第一次符合時觸發一次。 *每次元素在畫面上顯示時:這個就比較容易理解,只要被看見時就會觸發,一直來回

3 步驟獲取Google Play 中APP數據 - Python 爬蟲

圖片
這是我利用 Python、Selenium 去獲取 Google play store 上 APP 資訊,目前想到的使用情境是可以分析一些使用者反饋,與大家分享是如何實作~ 圖片來源: flickr 本文重點結論: 1. 利用 Python、Selenium 獲取 Google play store 上 APP 資訊 2. 可針對 APP 做用戶反饋調查 ( 目前想到的 ) 3. 附上程式碼:https://github.com/AlanSyue/google-play-crawler ※ 專案 forked from ranjeet867/google-play-crawler

非本科生程式自學心得 — PHP、Laravel

圖片
我畢業於私立大學醫務管理學系,出社會第一份工作是做數位行銷。求學時算是有兩個接觸程式的時機點:第一次是高中電腦課教C++,第二次是大四的時候,修了通識課教 Java,不過大概都是學到迴圈而已。基本上跟資訊相關科系是扯不上邊。憑藉著熱忱,踏上 Web 開發 >>> 為什麼會有這篇文章? 1. 目前學習達到自己設立的階段性目標 2. 總結這些日子學習心得、使用資源 3. 藉機感謝 David、ZhgChg、Nick、Ron 的幫忙 背景介紹 首先定義標題提到的,我這位「非本科生」。畢業於私立大學醫務管理學系,出社會第一份工作是做數位行銷。求學時算是有兩個接觸程式的時機點:第一次是高中電腦課教C++,第二次是大四的時候,修了通識課教 Java,不過大概都是學到迴圈而已。基本上跟資訊相關科系是扯不上邊。

2019 年 11 月熱門電子書推薦 | 精選書籍推薦

圖片
2019 年11 月推薦書籍:一起來閱讀增進知識吧,挑戰看看這個月能看幾本!或是有其他推薦書籍也歡迎分享~ 王可樂的日文超圖解!抓出自學最容易搞混的100個核心觀念,將單字、助詞、文法分好類,超好背! (電子書) 出版日期:2019/06/06 作者:王可樂日語 推薦指數:⭐⭐⭐⭐⭐ 英文文法有道理!:入門版 (電子書) 出版日期:2019/10/04 作者:劉美君,呂佳玲,徐志良 推薦指數:⭐⭐⭐⭐⭐ 給自己的10堂外語課(系列突破100000本激勵人生版) (電子書) 出版日期:2019/10/12 作者:褚士瑩 推薦指數:⭐⭐⭐⭐⭐ 英文文法有道理!:重新認識英文文法觀念 (電子書) 出版日期:2012/09/24 作者:劉美君  推薦指數:⭐⭐⭐⭐⭐ 英文寫作有訣竅!:三句話翻轉英文寫作困境 (電子書) 出版日期:2014/10/02 作者:劉美君 推薦指數:⭐⭐⭐⭐⭐ 你不是胖,是壓力大:林蓁醫師與朋友的享瘦生活 (電子書) 出版日期:2019/09/16 作者:林蓁 推薦指數:⭐⭐⭐⭐⭐ 抗癌大突破:革命性免疫療法!拆穿癌細胞騙過免疫系統的伎倆,重新啟動人體內建的抗癌機制(特別收錄:2018年諾貝爾醫學獎得主訪談實錄) (電子書) 出版日期:2019/10/15 作者:查爾斯‧格雷伯 推薦指數:⭐⭐⭐⭐ 中醫師也想學的25形人養生攻略:算體質!來自黃帝內經的零死角全息調理法 (電子書) 出版日期:2019/08/09 作者:紫林齋主 推薦指數:⭐⭐⭐⭐ 神奇西芹汁:醫療靈媒給你這個時代最有效、療癒全球數百萬人的靈藥 (電子書) 出版日期:2019/10/01 作者:安東尼‧威廉 推薦指數:⭐⭐⭐⭐ 肌筋膜‧經絡穴位‧激痛點,對症手療身體疼痛地圖全書 (電子書) 出版日期:2019/08/28 作者:石垣英俊 推薦指數:⭐⭐⭐⭐ 如果喜歡我的文章,想隨時收到最新行銷、技術分享文章,歡迎按 fb 粉專讚

自動將 Blogger 文章發佈到 facebook 粉絲專頁 (上)

圖片
超實用自動化工具!如何用 Python 來實現將 Blogger 的文章自動發佈到粉絲專頁,就不用自己動手,省時又省力,非常的方便! 最近開始將多數文章經營在 Blogger 內,但在初期 SEO 沒做好,所以流量一直都不高,於是我開始思考是不是要透過一些社群媒體的渠道來導流,於是我開始整理一個 facebook 粉絲專頁來使用。 碰到了一些問題 在我開始把文章連結加上追蹤碼,想一下貼文的文案,貼文縮圖呈現等 ...,卻忽然想到,該不會我剩下的十幾篇文章都要重複上面的流程吧?如果之後每寫一篇文章不就都要做一次。身為一位工程師實在是很討厭重複性的工作,於是就萌生出:那就給程式做吧! 這次的文章我想採用上、下兩集做呈現,上集想分享如何設計機制,下集會著重在程式碼的實踐。 第一步、文章內容規格化 在開始寫程式碼前,我看了一下前面幾篇文章規格都不盡相同,有些有首圖、有些沒有;有些有標籤、有些沒有。還有一個問題是:如果我想自動產生貼文內容,那我要怎麼取內容,而且以行銷的角度,我會希望貼文內容是可以客製化,不會是固定的文案或只抓文章前面幾段的內容。 於是我開始整理了以下文章規格: 1. 文章必須有首圖( 讓 Blogger 和 facebook 抓來當縮圖 ) 2. 文章前面插入一段 html 代碼,是白色且無大小的文字,我會在上面寫下希望在 facebook 貼文呈現的內容 3. 定義文章連結格式,到時候加 utm 追蹤,在 GA 查看數據時增加易讀性 第二步、使用 Blogger API Google 有提供 Blogger 的 API ,於是我便利用 Blogger API 去進行以下的步驟: 1. 撈出目前 Blogger 所有文章 id 2. 比對靜態的 json 檔案 ( 用來儲存已經發過的文章 id ),並篩選出沒在檔案的 id 3. 發到 facebook 粉絲團後,將這些 id 存到 json 檔案 第三步、使用 facebook API 最後一步就是使用 facebook 提供可以操作粉絲專頁發文的 API,在 Blogger API 撈出文章id 的同時,也會有文章標題、文章內容、文章網址 ... 等資訊。於是我便利用這些內容產出以下內容: 1. 貼文