全部文章 AI 讓生成程式碼變得簡單,卻無法解決軟體開發的本質困難:「你不知道你不知道的事」。在大量使用 AI 的未來,了解背後原理、權衡取捨,並保持獨立思考,才是工程師真正的核心價值。
深思自己在 ASTRO Camp 畢業後兩年的職業旅程。著重於我如何在轉職後面臨並克服技術和職業挑戰,強調了基礎技能的重要性,如 SQL、Ruby on Rails 和 Redis。也分享了從實際問題中學習的經驗,如何透過 Side Projects 挑戰自己,以及如何在 AI 時代保持技術敏銳度。不僅是對技術深入的剖析,也是關於個人成長和職業發展的反思。
跟著 30 天的 Elasticsearch 學習之旅,從基本架構設定、資料處理技巧、運作機制原理,到多樣搜尋策略,一步步建立 ES 知識地圖。這不僅是一個技術分享,更是一個學習的冒險,一起探索 ES 的秘密,並找出更多你可以深入探討的方向。
介紹 Elasticsearch 的結果該如何控制!從改變回傳格式( YAML 或 JSON )、精確的結果過濾,到實現靈活的分頁效果,文章中會介紹 ES 的實用查詢技巧。不只如此,還會一起看看如何優雅地處理大量數據的分頁問題,並在效能與查詢靈活性之間找到最佳平衡點。
介紹 Elasticsearch 的模糊搜尋!本文深入介紹如何使用 fuzziness 和 fuzzy_transpositions 來優化搜尋結果,即使使用者打錯字也能找到想要的資料。從基本的模糊搜尋到進階的 transposition 技巧,我們一起來看看如何讓 Elasticsearch 的搜尋更靈活、更貼近使用者的需求,並在精確度和使用者體驗之間找到完美的平衡點!
介紹 Elasticsearch 的 Phrase Search!文章中將帶你了解如何進行更精確的全文搜尋,確保單字的順序也被考慮在內。從基本的 match_phrase 搜尋到使用 slop 提高搜尋的靈活性,一起來看看怎麼讓 ES 的搜尋結果更符合使用者的期待,並在搜尋結果的精確度與靈活度之間找到平衡點!
介紹 Elasticsearch 的 multi_match 搜尋!本文將帶你了解如何在多個欄位中進行搜尋,並透過範例教你如何使用 boosting 和 tie_breaker 來優化你的查詢結果。從基本的 multi_match 使用到進階的排名策略,一起探索 ES 的多欄位搜尋的祕密,並優化你的搜尋結果!
介紹 Elasticsearch 中的神秘分數 score 與資料相關性的秘密!本文深入探討搜尋引擎中的評分概念,從 TF-IDF 到 BM25,我們一起理解它們如何影響搜尋結果的排序,並透過範例探討詞彙評分與 boosting 的運用。
介紹 Elasticsearch 的全文搜尋!本文將帶您了解 Full Text Query 的運作原理及使用技巧,從 Analyzer 到 Inverted Index,一起探討如何精準搜尋非結構化資料,並透過範例展示 match 查詢的靈活性與強大功能。一起來發掘 Elasticsearch 的秘密,讓資料查詢更精確、更便利!
解析 Elasticsearch 的 Term Level 和 Range 搜尋技巧!本文深入解析 term level 搜尋的精準度與大小寫敏感性,並示範如何使用 ids 和 range 進行靈活搜尋。透過範例和圖片來解釋,還有探討 ES 的搜尋機制和常見問題,讓你的搜尋更精準、更靈活!
探討 ES 的兩種主要搜尋方式:URI Searches 和 Query DSL。一起來理解它們的優缺點,並學習如何理解搜尋的 Response 內容,讓我們一起探索 Elasticsearch 為何被譽為地表最強搜尋引擎!
探索 Elasticsearch 中如何更改已存在的 index 欄位資料類型!從直接更新的挑戰到使用 reindex 和 alias 的策略,一步步指引你如何靈活地管理和更新你的 ES index
介紹 Elasticsearch 的 type coercion 功能!從 JavaScript 的型別轉換到 Elasticsearch 的實驗,了解如何優雅地處理資料型態。還有,知道如何關閉自動轉換了嗎?一起來看看 Elasticsearch 的小技巧和建議!
解釋 Elasticsearch 中有關於 Mapping 的秘密!從 Dynamic 到 Explicit Mapping,再到資料類型的運用,一起來深入了解 ES 是如何管理和儲存資料的。不懂 nested 和 flattened 的差別?沒問題,這裡解釋得很清楚!
深入了解 Elasticsearch 的 Analyze API 和 Inverted Indices。從如何使用 Analyze API 分析文字,到 Inverted Indices 的工作原理。
介紹 Elasticsearch 的 Analyzer!從 dynamic mapping 到 character filter、tokenizer 和 token filter,了解 ES 如何分析和處理文字資料,以提供高效的全文搜尋。不僅是技術,更是藝術,快來學習 ES 的魔法!
想知道如何一次處理大量資料嗎?來試試 Elasticsearch 的 bulk API 吧!從 NDJSON 格式到實際操作,再到樂觀鎖的機制,一次告訴你。不只教學,還有實用小技巧等你發掘!
詳細介紹 Elasticsearch 中的 update_by_query 功能,解釋如何根據查詢結果批量更新 documents。文章還探討了背後的工作原理、版本衝突的處理方式,以及如何使用 delete_by_query 進行批量刪除
介紹 Elasticsearch 中的 _version 欄位,解釋背後的意義和用途。文章還詳細介紹了如何使用 version 以及 primary term 搭配 sequence number 來解決 race condition 問題,並比較了這兩種方法的優缺點。
介紹 Elasticsearch 在寫入資料時的運作原理,包括 primary shard 的選擇、資料的一致性保證,以及錯誤恢復機制。文章還詳細介紹了 Primary Term、Sequence Number 和 Check Point 的概念,並解釋了它們在確保資料一致性中的重要性
介紹 Elasticsearch 中的 upsert 操作、如何取代和刪除 document,以及 Elasticsearch 如何透過 routing 策略定位到正確的 shard。文章還解釋了為何在建立 index 時需要預先設定 primary shard 數量,並介紹了 Adaptive replica selection (ARS) 的概念。
本文探討 Elasticsearch 中使用 script 進行資料更新的策略。從基本的值更新到複雜的條件判斷,如何在更新時結合商業邏輯,以及如何利用 ctx.op 改變更新後的回傳結果
本文深入探討 Elasticsearch 中 Index 的 CRUD 操作。從建立帶有特定設定的 index,到 document 的新增、讀取、更新,以及 ES 的 auto_create_index 機制和不可變的 document 更新策略。
了解 Elasticsearch 叢集中如何透過新增節點將狀態從 YELLOW 轉為 GREEN。了解節點的加入、移除以及 Elasticsearch 的自動分配和錯誤處理能力。深入了解在安全模式下的節點加入方法以及如何在本地使用 HTTPS 的 ES
深入探索 Elasticsearch 的 Replica shard 機制,了解其與 Primary shard 的區別、如何提高 Elasticsearch 的可用性和資料的吞吐量,以及與 Snapshot 的差異。學習如何有效地使用複製分片以確保資料的安全和高效能。
深入探討 Elasticsearch 的分片 (Sharding) 機制,包括 primary shard 和 replica shard 的差異。了解為何需要分片、如何視覺化和管理 shard,以及如何選擇最佳的 shard 數量以優化效能和成本
本文介紹如何使用 Elasticsearch 的 Dev Tools 和 REST API 進行資料探索,包括查看叢集健康狀態、節點資訊和索引狀況。透過詳細的步驟和圖片,幫助讀者更深入了解 Elasticsearch 的操作和管理。
本文深入探討 Elasticsearch 的基本架構,包括節點、叢集、document 和 index 的概念。透過詳細的解釋和例子,幫助讀者理解 Elasticsearch 如何組織和儲存資料。
本文詳細介紹如何在本地環境使用 Docker 安裝 Elasticsearch 和 Kibana。從基本的 Docker 指令到成功啟動和訪問 Elasticsearch 和 Kibana 的界面,提供了簡單且實用的步驟。
Elasticsearch 作為一個非常熱門的應用程式,安裝的方式有好多種,今天會分別介紹一下不同的安裝方式,像是 Elastic 原生的雲端、Linux 以及 macOS 的解壓縮安裝應用程式,或是使用方便又簡潔的 Docker 都可以讓你在學習 Elasticsearch 上跨過第一個門檻。
探索 Elastic Stack 的全面指南,涵蓋 Elasticsearch、Kibana、Logstash、Beats 和 X-Pack。了解如何實現數據可視化、資料處理、安全性、監控和更多。
本文介紹 Elasticsearch,一個開源的大數據分析和搜尋引擎。文章探討其在搜尋功能的應用,並強調其在大數據分析、性能和易用性方面的優勢。還提到市場上的接受度和實際案例,如 GitHub、Facebook 和 Netflix 的使用情況。最後,文章也簡單提及 Elasticsearch 的認證考試和即將涵蓋的主題。
了解了 Docker Volume 的概念後,接著就是要實際的使用才會更理解整體的想法以及產生出如何應用的想法。
我們將圍繞在使用容器時,如何保存資料,以及保存資料為什麼會成為一個問題呢?
使用 ignore 檔案在執行程式時忽略某些檔案是常見的一種做法,Docker 當然也不例外,但要什麼時候用?怎麼用?以及如何清理本地的硬碟空間呢?
使用多階段的方式來建置映像檔是一件很常見的事情,可以大幅度地縮小映像檔的大小。
建置映像檔所耗費的時間不容小覷,而 Docker 為了加速建置的時間也引入了快取的機制,可以提升使用者體驗,也能節省硬碟的空間
我們將要開始製作屬於自己的映像檔,這也是將前面學習到的理論學以致用的時候,快一起來建置你的映像檔吧!
Dockerfile 是構築映像檔的根基,也可以說是映像檔的設計圖,但在開始撰寫之前,我們需要理解很多基本的文法
映像檔有更完整的名字,提供更完整的資訊,是我們需要了解的,以及儲存庫 Registry 是什麼?該怎麼使用呢?
映像檔除了放在本地之外,當然還有地方可以儲存,程式碼有 GitHub,映像檔就有所謂的 DockerHub 囉!
映像檔是唯讀的,這代表什麼呢?代表我們沒辦法從外部修改映像檔,每一次建立的容器都是原始的面貌
映像檔的檔案大小不一,且時常需要透過網際網路來傳輸,是什麼樣的方式讓傳輸的速度變快了呢?和許多設計策略一樣,使用快取會是第一種方式
現在對於映像檔有一些概念了之後,我們就需要進一步的理解常見的 Image 的標籤到底是什麼作用,以及該如何使用它呢?
Docker 的映像檔對於剛開始學習的人是一個非常抽象的東西,它就像是一個神秘的檔案,可以製作出可以用的容器,怎麼說呢?就像是把一切的細節都壓縮在一個檔案中,在解壓縮的概念吧
DNS 是網際網路中很基本的一個概念,常見的 google.com 就是一個 DNS,而在 Docker 的虛擬網路中,DNS 是如何運作呢?是不是和我們所想的不一樣呢?
現在對於 Docker Network 有一些基礎的認識,就可以開始學習如何使用,Docker 的許多指令都很相像,讓我們快速地來操作 Docker Network 吧!
容器本身的 IP 位置竟然和電腦本身的不同,這是怎麼回事?這和防火牆以及整個網路基礎是有關係的。
在使用過容器之後,對於 Docker 有了更進一步的了解,但網路可以說是 Docker 的核心之一,我們一定要搞清楚它。
昨天單純地介紹了如何使用終端機和容器內部進行溝通,而這篇文章將會介紹容器的初始化狀態以及相關指令。
Docker Container 的基礎指令已經熟悉了之後,我們需要更深入地理解我們是如何和 Container 連線的。
這樣的討論是層出不窮的,到底 Container 和虛擬機有什麼不同呢?我們該從什麼角度思考?以及不同作業系統又有什麼不一樣?
刪除掉一個 Docker 容器才算是完整的結束一個生命週期,試著刪除掉自己建立起來的容器,感受一下容器的生命週期
除了列出所有的容器之外,我們還可以替 Docker 的容器進行命名以及重新啟動停止的容器
除了基本的 run 之外,Container 還有許多操作可以使用,讓我們拆分成三個篇章來解釋一些指令之間的作用
啟動了一個 nginx 容器,在網頁上看到了 nginx 的頁面,這是怎麼回事,一個容器啟動時到底發生了什麼事?
啟動一個容器在 Docker 中是一個最基本的操作,也可以說是打開 Docker 的第一扇門,就如同程式語言的 HelloWorld 一樣,運行一個容器也是 Docker 的敲門磚
對於不理解虛擬機器的人來說,Docker 又是更抽象的存在,所以它到底是什麼?拿來做什麼?好處是什麼?
Docker 本身透過各個不同的部件所組成,不同的部件本身具備不同的任務,如何讓整個 Docker 組織運作起來,則是 Daemon 本身的任務
因為 Docker 本身需要和作業系統打交道,所以安裝的版本也進一步地劃分為不同的作業系統
在開始學習 Docker 之前,我們需要安裝一些必要的軟體或是註冊相關的網站。
Docker 的橫空出世以及電腦科學 30 年的演進,到底帶給我們什麼?
你知道輸入網址之後發生了什麼事嗎?國外網友做了一張有趣的圖片,試著來從頭走一次看看,自己到底知不知道發生什麼事?
當你在猶豫是否要寫自動化測試的時候,可以參考一下這五個好處,或許可以替你帶來意想不到的效果
在寫 Rails 時,主要建立假資料有 Factories 以及 Fixtures 兩種方式,這篇文章會就兩種不同方式進行解釋,以及如何使用。
表徵測試 ( Characterization Test ) 的目的是幫助工程師驗證對應用程式所做的修改不會造成不期望的改變,大部分是替一個沒有足夠單元測試的應用程式架起的保護網。
對我來說 Mock、Stub 都是很難一言以蔽之的概念,決定挽起袖子,認真的來梳理一下這之間的差別到底是什麼?
在 Rails 的測試分成很多種類型,但時間卻是固定的,我們該權衡什麼樣的測試是重要的,什麼樣的測試可以被更重要的測試給 Cover 到
WebMock 以及 VCR 是當 Rails 需要測試第三方 API 時常見的手段,透過錄下整個 Request 以及 Response 的過程來模擬呼叫 API 的真實模樣
利用瀏覽器自動化測試也是一種很常見的手段,在 Rails 中,Capybara 就是內建的瀏覽器自動化測試套件,可以幫助你測試網頁的行為是否符合預期
FactoryBot 是在撰寫 RSpec 時不可或缺的一個套件,製造假的資料是一件很浪費時間的事情,但 FactoryBot 提供很好的介面和方法讓我們快速建立假物件來進行測試。
RSpec 是一個獨立的測試框架,但最常應用的場景還是和 Rails 做結合,所以有另一個 Gem 叫做 rspec-rails,算是為了可以更好地相容 Rails 而出現的特規版
RSpec 中的 mock 也是核心函式庫的一員,在測試的時候,常常會有依賴不同方法回傳值得情況發生,spy 是除了 double 以及 instance double 之外的另一種用法
RSpec 中的 mock 也是核心函式庫的一員,在測試的時候,常常會有依賴不同方法回傳值得情況發生,除了基本的 Double 之外,更實際的 instance double 也非常實用
RSpec 中的 mock 也是核心函式庫的一員,在測試的時候,常常會有依賴不同方法回傳值得情況發生,為了方便測試,我們需要假裝一下
Matcher 除了 eq, eql, equal 之外,還有更多特殊的使用方式,這篇文章將會介紹常見的 include, raise_error 這些一定會寫到的 RSpec matcher
Matcher 除了 eq, eql, equal 之外,還有更多特殊的使用方式,這篇文章將會介紹你如何判斷陣列中所有的值,以及更優雅的測試結果的改變過程
Matcher 除了 eq, eql, equal 之外,還有更多特殊的使用方式,這篇文章將會介紹判斷大小以及布林值的 matchers
Matcher 可以說是測試中最重要的一環,測試意味著我們要匹配某些結果是否相同,而 matcher 正是把這件事做好的 X 因子
程式碼需要共用,測試的程式碼當然也不例外,使用 shared_example 可以重複利用相同的測試區塊
思考變數是一件很痛苦的事情,而 RSpec 的 subject 可以讓你不需要想那麼多,快速地進入測試
Hooks 是軟體中一個很常見的概念,放在 RSpec 中也不例外,當然替範例提供了各式各樣的 Hook 做使用
Context 的中文可以解釋成脈絡,利用脈絡來組織 RSpec 的程式碼是很常見的一種做法
let 方法是整個 RSpec 的靈魂,我們會不斷地使用這個方法來建立實用的測試物件
隨著測試越來越多,是時候該把界線劃清,整理一下測試了
隨著測試的數量增加,範例越來越多,這時候讓一個範例保持一個期望是很重要的
從測試的錯誤訊息來找到原因,並嘗試通過測試,完成一個完整的循環
RSpec 是 Ruby on Rails 中最常被使用的測試框架,本文將介紹基礎的語法,讓讀者可以更進一步理解並運用
TDD 是一個廣為人知的測試開發方式,但實際上是如何運作的?以及帶來的好處是什麼呢?
當 rspec --init 後,會得到一些自動生成的檔案,今天這篇文章將介紹這些檔案的用處以及設定
使用 RSpec 之前,基本的環境設定是必要的,這篇文章會手把手帶您把 RSpec 的環境設定好
測試是一種統稱,而測試又分做很多不同類型的測試,在使用 RSpec 時,我們也要清楚地知道,自己在寫什麼樣的測試
RSpec 可以說是 Rails 工程師最常使用的測試框架,撰寫起來就像寫英文一樣優雅,又不會因此而失去測試的目的,一定要試試看
JavaScript ES6 多了很多實用的語法糖衣,來試試看
載入更多