相信有在開發網站並且使用版控的大家,多多少少都有遇過需要同時測試不同feature、不同branch的情況。但可能測試環境又只有一台或是只有一個database,在切換環境的同時可能就影響了資料庫,導致問題發生時不確定是否是另一個branch修改了資料庫所造成;或是直接多個branch merge起來測試卻不知道出問題的是哪一個branch。最理想的解決辦法就是配合CI/CD, 當發出PR時就建立起一台完全獨立的機器以及基本的sample data,這樣就可以單獨的測試該feature的branch,但上述作法會有相當的成本考量。跟著歐斯瑞學習使用docker 及 traefik這個服務的docker來達成差不多的目的。
什麼是Singleton Singleton的道理很簡單,就是確保只有一個instance在記憶體之中。 當我們在使用一個物件的時後,就需要使用new class的方式讓物件實體化再使用它,但如果很多程式都在使用這個class、就會造成很多個instance存在記憶體中,但很多時候我們並不需要一直new獨立instance,像是db的connection,為了避免過度浪費connection,必須確保只會有一個connection存在。其實用static的方式就可以解決這個問題了,但是下static就表示程式再被initialize的時後全部會被放進記憶體,不管它是有被使用或沒有被使用的情況下,如此一來變會造成記憶體的浪費、所以最好的狀態就是要被使用到的時後、再被new出來,並且確保只有一個instance被實體化而已,這樣後我們就需要使用到singleton。 圖片來源:https://www.concretepage.com/design-pattern/example-singleton-design-pattern-java
為什麼會想連接Magento資料庫? Magento作為一個電商管理系統,當然內建了資料匯出/入的功能,也有相對應的介面進行操作,但大型電商通常由不同部門透過Magento,負責管理不同的業務,光是客戶、產品與訂單與稅務等等,可能就分由三個或更多部門分別處理。 假想一下,行銷部門想針對特定產品的追蹤分析;或者您的客戶來源並不一定來自於網站前台等等,這些因素都會使得在Magento中的權限控管,成為一個十分重要卻也相對複雜的議題。若再加入系統管理人員的教育訓練成本等外部因素,資料的交換與分析報表的過程或許會是導入電商系統的一大痛點。 可能適用的情境? 由於Excel作為統計分析工具,有很高的市占率,我們先做出這樣的假設:
因為網路安全性越來越受重視,當然各種網路服務也都為了加強而增加各式各樣的防護,就例如二階段驗證。 過去上網只要登入帳號密碼,後來為了防止被暴力破解登入,多出了驗證碼;而最近很多網站服務又多了大家都已經很耳熟的二階段驗證,簡單來說就是登入後再透過手機簡訊或是撥免費電話號碼解鎖的方式,讓帳號安全更多一層保障。 只是問題是,二階段驗證的模式是增加了安全性,可是有很多時候,帳號會有別的功能用途,技術上是無法透過二階段驗證的方式來使用的,就例如今天的例子,Github版本控制。 Github的帳號如果設定二階段驗證,想要推送版本時,會出現驗證不通過的錯誤: 要想解決問題,繼續更新,就需要去帳號裡設定“personal