《觸動人心的柔話術》讀後心得感想
「在家中吵架的目標是什麼?大部分人認為是要吵贏,但如果你這樣想的話,那你就是頭殼壞了。」這是本書中令我印象最深刻的一段話。
這句話讓我回想起以往不只在家裡還有生活中的各種紛爭,現在仔細回想就會發現,其實不少紛爭的目的都是為了證明自己是對的或是嚥不下這口氣而已,而不是為了解決問題。這樣的吵架是毫無意義的,只會讓雙方更加固執,最終可能導致關係的破裂。
前言個人在溝通上比較不善長,而且會直接表達自己的想法,導致有時候會與人發生衝突,並且傷害到他人,事後才懊悔,當初如果這樣…講的話會不會比較好,但說出去的話,就像覆水難收,因此我開始尋找一些書籍來幫助我改善這個問題,這本《觸動人心的柔話術》就是我在網路上看到推薦後,便立刻購買的,希望這本書可以幫助我改善這個問題。
什麼是「柔話術」?在說介紹書之前,我想先介紹什麼是「柔話術」,簡單來說就是用柔道的方式溝通,而不是像是空手道一樣直接對抗,柔道是一種運用對方的力量來制服對方的技巧,而柔話術也是一樣的道理,化解對方的話語與情緒,來達到溝通的目的。具體來說就是,透過柔和的語氣、選擇適當的字眼,讓對方感受到你的關心與尊重,進而達到溝通的目的。柔話術不是 ...
認識 SQL JOIN 關聯查詢
在資料庫查詢中,JOIN操作是一個非常重要的技術,可以幫助我們從多個表中擷取所需的數據,並實現數據的關聯查詢。在本文中,會以MySQL方法為主,介紹什麼是JOIN操作,以及如何在SQL查詢中使用它。
什麼是JOIN?在資料庫中,我們通常會有多個表,每個表中包含不同的數據。當我們需要從多個表中擷取數據時,就需要使用JOIN操作。JOIN操作是一種關聯查詢的技術,可以幫助我們將兩個或多個表中的數據進行關聯,並返回符合條件的數據。通過JOIN操作,我們可以實現數據的關聯查詢,從而獲取更全面的數據信息。
JOIN的種類在SQL語言中,JOIN操作有多種不同的種類,主要包括以下幾種:
INNER JOIN:內連接,返回兩個表中符合條件的數據(交集的概念)。沒有符合條件的數據將不會返回。
LEFT JOIN:左外連接,返回左表(SQL語句中先寫的表)中所有的數據,以及右表中符合條件的數據。如果右表中沒有符合條件的數據,則返回NULL。
RIGHT JOIN:右外連接,返回右表(SQL語句中後寫的表)中所有的數據,以及左表中符合條件的數據。如果左表中沒有符合條件的數據,則返回NULL。
FU ...
認識 SQL 子查詢(Subquery)
在資料庫查詢中,子查詢(Subquery)是一個非常有用的技術,可以幫助我們編寫更複雜的查詢,並從多個表中擷取所需的資料。在本文中,會以MySQL方法為主,介紹什麼是子查詢,以及如何在SQL查詢中使用它。
什麼是子查詢?子查詢是一個SQL查詢,它嵌套在另一個查詢中。子查詢可以返回一個值、一個列或一個資料集,並且可以用於WHERE、FROM、SELECT、JOIN等子句中。子查詢通常用於從多個表中擷取資料,或者在查詢中使用聚合函數。
如何使用子查詢?以下是一個簡單的例子,展示如何在SQL查詢中使用子查詢:
123SELECT column1, column2FROM table1WHERE column1 = (SELECT column1 FROM table2 WHERE column2 = 'value');
在這個例子中,我們在table1中查詢column1和column2的值,並使用子查詢從table2中擷取column1的值。子查詢的結果將用於WHERE子句中,以過濾table1的結果。
子查詢的優點子查詢有以下幾個優點:
提高查詢的靈活性:子查詢可 ...
單一登入(SSO):簡化您的網路體驗
在今天的數位時代,我們每天都要處理多個在線平台和網站,包括社交媒體、電子郵件、雲端存儲等等。這樣的多重登入程序不僅繁瑣,還容易導致安全問題。但是,有一種名為單一登入(Single Sign-On,SSO)的技術可以解決這些問題,並為用戶提供更簡單、更安全的網路體驗。
什麼是單一登入?單一登入(SSO)是一種身份驗證技術,允許用戶通過一組憑證(例如用戶名和密碼)登入多個相關的網站或應用程式。換句話說,一旦您登入了其中一個服務,您就可以無需再次輸入憑證,自動訪問其他相關的服務,無縫地進行切換。
SSO的工作原理SSO的工作原理相對簡單,它基於一個名為「權威方」的服務來管理用戶身份驗證。當用戶嘗試登入一個相關的服務時,該服務將請求傳送給權威方進行身份驗證。如果用戶已經在權威方登入,它將通過,並將授予訪問該服務的權限,而無需再次輸入憑證。
SSO的好處用戶便利性:最明顯的好處是提高了用戶的便利性。用戶無需記住多個不同的登入憑證,大大簡化了登入程序,節省了時間和精力。
提高安全性:雖然有人可能認為將所有憑證集中在一個位置會增加風險,但實際上,SSO可以提高安全性。透過SSO,管理者可以實施更強大 ...
Laravel Blade Component 簡單介紹
前言關於 Laravel Blade Component 的介紹,官方文件寫得很清楚,這邊簡單的介紹常見用法,並且提供一些實際的使用案例。
簡介Laravel Blade Component 是在 Laravel 7.0 版本中新增的功能,主要是用來取代原本的 Blade include,讓我們可以更方便的將重複的 HTML 結構抽出來,並且可以透過 Blade Component 的方式來使用,以下分別介紹兩種元件元件與匿名元件。
元件標準的元件形式,相較匿名元件複雜一點,但是可以更好的管理元件的參數與HTML結構。
建立元件1php artisan make:component Input
建立元件後,會在 app/View/Components 中建立一個 Input.php,並且在 resources/views/components 中建立一個 input.blade.php。接著我們就可以在 Input.php 中定義元件的參數,並且在 input.blade.php 中定義元件的 HTML 結構。
12345678910111213141516171819202122/ ...
Laravel Blade用法筆記
Blade簡單介紹在Laravel中,Blade是一個模板引擎,可以用來將PHP原始碼和HTML混合在一起,並且可以使用一些簡單的語法來處理資料,讓程式碼更加簡潔。
Blade基本語法
{{ }}用於輸出變數,例如{{ $title }},此用法會自動把輸出的內容做HTML轉義,例如{{ $title }}輸出<h1>title</h1>會變成<h1>title</h1>
{!! !!}而這語法不會做其他動作,直接輸出原始值,例如{!! $title !!}
@php用於寫原生PHP,例如@php echo $title; @endphp,也可以使用@php($title)來簡化
@if、@elseif、@else、@endif用於處理if的情況,用法如下:1234567@if (count($records) === 1) I have o ...
Laravel Validator介紹與用法
Validator簡單介紹在Laravel中,Validator是一個驗證器,可以用來驗證使用者輸入的資料是否符合規定。在認識這個之前,很常需要針對請求過來的各欄位資料特別處理,導致專案變大時,重複的驗證方法四散各地,難以維護。而Validator就是為了解決這個問題而生的,它可以將驗證的規則寫在一個地方,並且可以重複使用,讓程式碼更加簡潔。
Validator基本上有分兩種驗證:以下兩種功能基本上相同,只是第一種自動幫你做了不少事情;第二種則是完全客製化,可以自己定義錯誤行為,但是要自己處理跳轉、錯誤訊息等等。
Request物件中的驗證:
可以直接從request物件中使用驗證方法,並且會自動把request資料帶入驗證,其中第一個參數可以填入各欄位的驗證規則,第二個參數可以填入自訂錯誤訊息,範例如下:123456789101112131415use Illuminate\Http\Request;// rqeuest物件中的validate方法function index(Request $request){ $validated = $request->v ...
Laravel ORM用法筆記
ORM簡單介紹在Laravel中,ORM的主要工具是Eloquent。Eloquent提供了一種直覺式的方法來操作資料庫,讓資料表和模型之間建立了一對一或一對多的映射關係。以下是一些ORM操作的基本用法。
ORM資料種類
Laravel撈資料幾種類型:
ORM:Eloquent 模型,可以$data->$field和$data[$field],有getter,setter
QueryBuilder:關連數組(ArrayAccess),只能$data->$field,也有getter,setter(僅限一維以下才有,因為是stdClass)
Laravel兩種常用特別的資料格式:
Collection: Laravel內建物件,有很多內建用法,但是存取資料基本上以陣列索引訪問為主 12$a = ['a' => 123];$a = collect($a);
StdClass: PHP原生的物件,簡單來說就是讓資料可以對象屬性訪問 12$a = ['a' => 123];$a = (object) ($a); ...
物件導向必備知識-SOLID
當我們開始設計和撰寫程式碼時,我們經常遇到的挑戰之一是如何創建易於維護和擴展的程式碼。為了解決這些問題,軟體工程師們引入了SOLID原則,這是一組五個基本原則,用於指導物件導向設計。在這篇部落格中,我們將深入探討每個原則,提供錯誤和正確的程式碼示例,以及相關的解釋。
單一職責原則 (Single Responsibility Principle, SRP)原則: 一個類別應該只有一個單一的職責。
錯誤範例:
123456789class User { public function createUser($userData) { // 創建新使用者 } public function sendEmail($userEmail, $message) { // 發送郵件 }}
在上面的錯誤範例中,User 類別負責創建使用者和發送郵件,這違反了單一職責原則。
正確範例:
1234567891011class User { public function creat ...
依賴注入(Dependency Injection)優缺點
在實際開發中,只要內容開始複雜,使用到的類別越來越多,就會慢慢發現,為什麼我只是要抽換或更改其中的類別,卻會限制這麼多以及需要大量改動。這時我才注意到這個主題的重要性,但是在了解依賴注入之前讓我們先談談甚麼是控制反轉(IoC)。
控制反轉控制反轉(Inversion of Control,簡稱 IoC),它指的是將應用程式的控制權轉移到外部元件或框架,以實現更大程度的可配置性和可擴展性。IoC強調的是將依賴管理的責任從應用程式內部移出,通常透過依賴注入來實現。IoC有助於改善軟體架構,降低耦合性,提高可測試性,並使系統更容易配置和調整。
依賴注入依賴注入(Dependency Injection,簡稱 DI)是一種軟體設計模式,主要用途於解決程式碼中的相依性問題。在傳統的程式設計中,一個類通常負責創建和管理其所需的相依物件。然而,這種方式容易導致高耦合的程式碼,難以測試和維護。
從以上兩點說明可以知道,控制反轉是一種解除依賴降低於耦合性的概念,至於依賴注入則是實現該概念其中一種方法。
範例說明有一個紀錄Log的服務,以下為具體實現服務的類別FileLogger和DatabaseLog ...