依賴注入(Dependency Injection)優缺點
在實際開發中,只要內容開始複雜,使用到的類別越來越多,就會慢慢發現,為什麼我只是要抽換或更改其中的類別,卻會限制這麼多以及需要大量改動。這時我才注意到這個主題的重要性,但是在了解依賴注入之前讓我們先談談甚麼是控制反轉(IoC)。 控制反轉控制反轉(Inversion of Control,簡稱 IoC),它指的是將應用程式的控制權轉移到外部元件或框架,以實現更大程度的可配置性和可擴展性。IoC強調的是將依賴管理的責任從應用程式內部移出,通常透過依賴注入來實現。IoC有助於改善軟體架構,降低耦合性,提高可測試性,並使系統更容易配置和調整。 依賴注入依賴注入(Dependency Injection,簡稱...
抽象(abstract)與介面(interface)差異
前言為了讓自己更能理解各種觀念,因此寫文章來讓自己加深印象,並使用PHP來說明範例。 抽象簡單來說就是嚴格版的父類別,因為父類別有的功能他幾乎都有,但是有以下四點差異: 不可實例化 使用abstract關鍵字定義類別 可以加入抽象方法,並且子類別必須實作,否則子類別會被標記為抽象類別 抽象方法可以只定義方法的簽名,也就是方法的名稱與參數,或是也可以定義具體方法 介面簡單來說就是閹割版抽象類別,並且更加嚴格,因為功能少了很多,使用上多了不少的限制,如以下幾點: 不可加入具體方法與屬性,方法只能定義簽名,但是可以使用常數 不可有建構函式 不可有public以外的定義方式 子類別不可隨意實作方法,必須全部實作 但是介面也多了一點只有它才有的功能,可支援多重繼承,也就是子類別可同時實現多個介面。至於兩者的詳細差異請參考以下表格: 兩者差異 差異點 抽象(Abstract) 介面(Interface) 定義 使用 abstract 關鍵字定義 使用 interface...
《原子習慣》個人極力推薦的勵志書,不只勵志更是工具書
買了這本書到現在,至少讀過3次,書中充滿各種標籤與筆記,時不時會回來翻閱來提醒自己,對這本書有很深的感情,因此想把這本書分享大家,就讓我簡單的介紹一下這本葵花寶典,以及我自己認為相當重要的幾個重點與自己的心得吧 ! 什麼是”原子”習慣?相信很多人看到書名後一頭霧水,原子是啥 ? 國中化學好像有學到…阿忘了拉 ! 之類的反應XD。 其實”原子”就是非常細小、細微的意思,從化學角度來說的話它是細胞中最小的單位。也就是說原子習慣的意思是”細微的”習慣,那為什麼作者要以這個名字為書名呢 ? 書中不斷強調每一個微小改變都會造就龐大的改變,所謂複利的力量不可小看,開頭便提到「每天進步1%,持續一年你能獲得37倍成長;每天退步1%,持續一年你會弱化,甚至倒退到零;你的一點小改變、一個好習慣,都會產生驚人的加乘效應」,就像投資一樣,短時間因為成長幅度甚小沒有實感,但經過時間不短累積加成,成果便會有超越自己所想像的成果。 那要如何養成好習慣呢?...
如何使用PDO連線資料庫
這周因為工作比較忙,就來分享個人常使用的PDO連線範例吧! 這邊分享兩種寫法,一種是單純PDO,一種是有使用Class的PDO分享給大家,那我們下篇文章見 ! 普通寫法 : 1234567891011121314151617<?php$hostname = '127.0.0.1';$username = 'root';$password = '';$db_name = 'test';$dsn = "mysql:host=$hostname;port=3306;dbname=$db_name;charset=utf8";try { $conn = new PDO($dsn, $username, $password); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); echo...
唐鳳也說讚的工具,番茄鐘工作法
說到番茄鐘,很多人可能沒有聽過這個東西,番茄時鐘? 食物嗎? 可以吃嗎? 大家第一個聽到的反應可能會是這樣,但是它當然不是,那它到底是什麼呢? 番茄鐘是什麼?最簡單的說明就是,把將要做的任務進行切割,分成數個片段,並在每個片段穿插短暫休息,而達到提升工作效率方法。 當我們要專注的時候需要消耗大腦的”專注力”,而專注力會隨著時間逐漸下降,導致注意力渙散,無法持續專注。因此番茄鐘使用了每工作二十五分鐘休息五分鐘的循環(我們常說一個循環為一個番茄),讓我們專注二十五分鐘開始分心時,休息5分鐘讓專注力恢復,使工作保持專注狀態。 番茄鐘聽起來很單純,它真的那麼厲害嗎?先說結論,它有非常多的細節需要注意,才能讓使用番茄鐘達成自己所期望的成果,以下列出幾點使用說明和注意事項供大家參考...
我是如何用一年半自學成為後端工程師
你好 ! 很高興你點進這篇文章參與我的故事,謝謝你 ! 首先當然先要恭喜自己成為一個小小的部落客 ! \(^0^) / ,既然開始了就要做到最好 ! 所以目標當然是成為有品牌的部落客XD,好啦 ! 話不多說我們開始吧 ! 開始寫程式了,那要走前端還是後端 ?講到這個話題就要從我大學四年級時開始說起,當初對自己興趣迷茫的我因緣際會下開始對網頁程式有興趣,因此我得知了原來網頁有分”前端”與”後端”兩種領域,我也了解到,前端主要的工作為切版,那切版可能會比較需要一點”設計”的底子,後端大多為邏輯思考和數理運算,所以身為機械系的我,果斷選擇了”後端”。 那要選甚麼語言呢 ?起初我只知道自己想要學網頁後端,但是卻不清楚自己要學甚麼,光是後端就有很多主流語言 PHP, Node.js, ASP.NET, Java 等等的語言,那要選甚麼呢 ? 因為個人沒有甚麼資源和經驗,因此最後以”市佔率最高”的 PHP 下手。 選擇好語言了,那要怎麼學...