內容簡介:🎯 對程式設計好陌生,想學卻不知道從何開始 🎯 學習Python時,無法有效地應用所學或缺乏實作經驗 🎯 想運用AI技術和現代工具加速學習,卻不得其門而入 🎯 對程式碼除錯感到困擾,需要更有效的除錯策略 那這本書就是你的絕佳選擇! 本書結合了清晰的教學方法、精心設計的練習,讓讀者能即時應用、強化概念,無縫結合理論與實踐,確保讀者真正掌握技能。有效運用現代AI技術來加速學習、提示撰寫、程式碼測試與除錯,一步一步帶領你如同電腦科學家般思考的學習過程。 --------------------------------------------------------- 「這本指南非常出色!透過實際的練習(也是唯一真正有效的方式),引導有興趣的成人從零開始學習程式設計。這本第三版更棒的是,能讓讀者熟悉Jupyter Notebook和AI程式設計助理等現代工具的使用。」 —Luciano Ramalho 《流暢的Python》作者 「這是一本絕佳的Python程式設計入門書,沒有任何多餘的文字或程式碼。第三版尤其令人興奮與期待,因為它會教你如何使用大型語言模型來加深你對程式設計的理解,即使是初學者也能輕鬆上手。」 —Sam Lau 《資料科學學習手冊》共同作者 Python是進入程式設計世界的最佳選擇,而這本書以清晰、簡潔的方式,帶領你循序漸進地掌握這門語言——從基礎的程式設計概念開始,再逐步深入探討函式、資料結構以及物件導向程式設計。這本經過全面修訂的第三版,為了因應AI在程式設計領域日益重要的角色,特別納入大型語言模型(LLM)的相關應用,並新增有效提示(prompting)、程式碼測試與除錯的練習題。 每章的練習都會讓你在學習過程中即時應用所學,強化技能。作者Allen Downey聚焦於那些在工具不停演變下依然很重要的基本程式設計概念。透過這本深受歡迎的實踐指南,你將學會: • Python語言的語法與語意。 • 每個程式設計概念的清楚定義,並強調重要技術詞彙。 • 如何操作變數、述句、函式與資料結構。 • 讀寫檔案與資料庫的技巧。 • 物件、方法及物件導向程式設計的基礎。 • 語法錯誤、執行時期錯誤和語意錯誤的除錯策略。 • 運用LLM加速學習,包含有效的提示、程式碼測試與除錯。
內容簡介:「建構可擴展的分散式系統很困難,這本書讓它容易多了。」 -Mark Richards 軟體架構師,DeveloperToArchitect.com創始人 「透過生動的例子和不拖泥帶水的風格,Gorton教授介紹並討論了可擴展分散式系統設計基本的原則、架構和技術,對於學生和從事實際工作者而言,都是一本必備的現代教材。」 —Anna Liu,Amazon網路服務高階經理 🎯現代應用架構的實戰之選 🚀從理論到實務,一站掌握可擴展系統的必要基礎! 🚀內容專業,搭配豐富圖解與幽默文字,輕鬆易讀好吸收。 🚀AWS資深經理與CMU教授聯名推薦,適合初學者,也適合專業架構師與工程師。 🚀帶你看穿大型系統設計背後的核心原理,打造具備規模、又能持續演進的架構。 隨著用戶數激增、資料量不斷膨脹,組織如何在設計決策與技術債之間取捨? 《建構可擴展系統》由分散式架構專家Ian Gorton撰寫,為軟體架構師和開發人員全面剖析可擴展系統的關鍵原理與實務做法。 本書深入說明複製、狀態管理、負載平衡及快取的設計技巧,結合NoSQL、微服務與事件串流處理,全面展現現代分散式系統的進階架構思維。適合所有專注於雲端、微服務、資料庫和事件驅動系統設計的技術工作者,是新手入門、中階進修與架構師深度學習的最佳參考。 適合對分散式併發系統毫無經驗、或需要加深對理論和實務設計知識的軟體工程師和架構師。 ------------------------------------- 在許多系統中,可擴展性成為使用者群體增長的主要驅推動力量。吸引人的特徵和高實用性造就了成功,這也帶來了更多需要處理的請求和更多需要管理的資料。但是,當在輕度負荷下合理的設計決策突然變成了技術債務的時候,表示組織也達到一個改變的轉折點。這本實用的書涵蓋了能夠用於快速且符合成本效益地擴展應用程式的設計方法以及技術。 作者Ian Gorton帶領著軟體架構師和開發者了解分散式系統的基本原則。你將會探索包括複製、狀態管理、負荷平衡和快取等可擴展解決方案的基本要素,對於資料庫、微服務和基於事件串流系統所涉及的可擴展性,皆有特定的章節探討。 你會專注在: ‧可擴展系統的基礎:學習可擴展性的基本設計原則,成本、併發性和架構權衡取捨 ‧設計可擴展的服務:探索服務設計、快取、異步訊息傳遞、無伺服器處理和微服務 ‧設計可擴展的資料系統:學習資料系統的基礎、NoSQL資料庫以及最終一致性與強烈一致性 ‧設計可擴展的串流系統:探索串流處理系統和可擴展的事件驅動處理
內容簡介:帶你升級Java實力的必備加速器⚡ 🛠️增強技能 🚀專案提效 📈職涯升級 「這是開發人員都該人手一本的好書,清楚呈現Java程式設計的運作原理,及其多年來與時俱進的樣貌。」 —Achyut Madhusudan 軟體開發人員,任職於Red Hat 這本經典的Java指南,內容已完整涵蓋至Java17,不論是想徹底發揮最新語言特性的資深開發者,還是渴求清晰學習脈絡的入門新手,都能在這本書中找到答案。 -------------------------------------------------------------- 這本最新版的《Java技術手冊》,不僅幫助有經驗的Java程式設計師充分運用Java17的各項特性,也為新進開發人員提供了清晰的學習路徑。本書內容經過徹底修訂,加入了豐富的程式範例,示範如何善用現代Java API的完整優勢,最佳開發實務,並介紹Java物件模型強化的最新特性,這些都是每位開發人員必備的知識。 全書分為兩大部分:第一部份的內容節奏明快,簡潔扼要,介紹Java程式語言的用法和Java開發平台的核心概念。第二部分的章節則聚焦於Java核心觀念和API引用,解釋如何使用Java語言實際完成程式設計的工作。 本書學習目標有: * 徹底掌握至Java17的語言特性與核心函式庫。 * 學習Java語法和物件導向程式設計的模型。 * 探索泛型、列舉、標註和Lambda表達式。 * 探討並行性與記憶體之間密不可分的關係。 * 深入學習Java最新的輸入/輸出API,包括非同步管道。 * 熟悉OpenJDK內建的開發工具。
內容簡介:從現代網頁爬取資料 爬取×解析×轉換──讓資料收集快、準、全,告別繁瑣工作! 從HTML到API、從圖片到文字,使用Python做網頁爬取,能廣泛應用於市場預測、機器翻譯甚至是醫學診斷,實用性極高。因此,無論在哪一個領域,網路爬蟲都可以更有效地應用於商務、分析、提升生產效能,開創新機會。 「本書是內容豐富的傑作,可幫助讀者有意識地、有效地抓取網頁資料,值得推薦給想從網站爬取資料、打算建立網站和分享資料的每一個人。」 —Michael Hopkins P.Geo., PMP 如果說程式設計像魔法一樣,那麼「網站擷取」無疑就是一種巫術,只要寫一個簡單的自動程式,就可以用它來查詢網頁伺服器、請求資料、解析資料,並提取所需資訊。本書第三版經過徹底翻新,不僅介紹網路爬取,也全面性地教你如何從現代網頁抓取幾乎每一種類型的資料。 本書的第一部分專門討論網路爬取機制,包括使用 Python 從網頁伺服器請求資訊、初步處理伺服器的回應,以及自動和網站進行互動。第二部分則探討更具體的工具和應用,以應對可能遇到的各種網頁爬取情境。 本書教你如何: •解析複雜的HTML網頁 •使用Scrapy框架來開發爬蟲 •儲存你抓到的資料 •從文件中讀取和提取資料 •清理格式不嚴僅的資料,以及將之正規化 •讀寫自然語言 •爬取表單與登入網站 •爬取JavaScript和 API •使用和編寫「圖片轉文字」軟體 •避免爬網陷阱和反機器人封鎖 •使用爬蟲來測試自己的網站
內容簡介:🏆 來自業界專家推薦與讀者好評 「《Go 學習手冊》不但教你Go,還教你寫出符合慣例的Go程式。這本書對已經熟悉其他語言的程式設計師來說,是學習Go 的完美讀物。」 —Chris Hines,Comcast 資深首席軟體工程師 「Go是獨特的語言,即使是經驗豐富的程式設計師也必須捨棄一些既有的思維,並以不同的方式來思考軟體開發。這本書詳細介紹了這種語言的主要功能,並展示了它的慣用語法、陷阱,與設計模式。」 —Aaron Schlesinger,微軟資深工程師 「最棒的Go語言概覽!如果想學Go的精髓,想確保程式碼慣用且易懂,這本書最適合。」 「第一版已經很棒,第二版又更出色了!章節末的練習題讓學習更扎實。」 —Amazon讀者評論 「這本書教我如何寫出『像Go的Go程式碼』,解釋清晰,程式碼範例很實用。」 —Goodreads讀者評論 「最好的Go語言書!更現代,解釋更清楚,適合想快速上手的人。」 —Reddit使用者回饋 🚀新版升級!深度解析Go泛型與實務練習,打造符合慣例的高效Go程式! 改版全面擴充升級: ✔內容升級,涵蓋Go語言近年重大變革與實務進展。 ✔深入解析Go泛型(Generics),從語法到實應用完整整合,掌握現代Go必備技能。 ✔強化實務開發與效能調校技巧,深入工具鏈、專案架構、團隊協作實務。 ✔融匯設計理念與最佳實踐,理解Go思維,寫出絕佳的GO程式。 ✔新增章後練習題,吸收→練習→內化,學習效果更有感。 ------------------------------------------------------ Go語言迅速成為設計web服務的首選語言。市面上有許多教學資源,為具備其他程式語言經驗的開發者講解Go的語法,但那些課程仍然不夠全面,通常不會教導Go語言的慣用寫法,導致開發者在Go的環境中反覆使用不合適的模式。這本實用的指南將提供所需的基本知識,協助你寫出清晰且符合Go語言慣例的程式碼。 無論您是新手還是具備經驗的開發者,都能學會如何以Go開發者的思維進行程式設計。作者Jon Bodner介紹了許多資深Go開發者所採用的設計模式,並深入探討使用這些模式的理由及其背後的邏輯。在本次全新改版中也會展示Go語言的泛型功能,及其如何融入整體語言架構中。 本書將協助你: •寫出符合慣例的Go程式碼,並設計Go專案。 •瞭解Go語言的設計決策背後的理由。 •為個人開發者或開發團隊設置Go語言開發環境。 •學習如何使用reflection、unsafe與cgo,及其使用時機。 •明白Go的功能如何讓這種語言高效運行。 •知道哪些功能應盡量少用,甚至完全避免。 •改善效能、將記憶體的使用量最佳化,以及減少記憶體回收次數。 •瞭解如何使用Go的進階開發工具。
內容簡介:架構思維學習手冊 「這本書巧妙地將複雜的軟體架構概念提煉成容易理解的內容。它有令人渾然忘我的練習,採用易讀的寫作風格,是適合學生和專業老手的理想資源。」 —James Erler,Medtronic嵌入式軟體工程師 軟體架構很難,所以你的大腦會騙你無法學會它。你的大腦會這樣想:「最好把注意力放在更重要的事情上,比如午餐要吃什麼,或白海豚會不會轉彎」。好消息是,你可以欺騙大腦,讓它以為軟體架構是非學會不可的重要技術,我們將告訴你該怎麼做。 你可以從這本書學到什麼? 如果你是想要學習軟體架構的軟體開發者,這本「深入淺出」指南是很好的起點。這是一本充滿風趣文字和實作練習的精彩資源,由《深入淺出 Git》和《軟體架構原理|工程方法》的作者們教你如何運用架構思維。你將學到軟體架構的兩大定律,以及定義架構的四個維度,並深入瞭解架構特性、學會辨識系統的邏輯組件,以及深入瞭解各種架構風格。我們將幫助你完全認識軟體架構,看完這本書之後,你將順利進入軟體架構的領域。 本書為何如此與眾不同? 曾經讀過《深入淺出》系列的讀者一定知道,這本書充滿了專為大腦設計的視覺化風格,好玩、好讀又好吸收;尚未看過的讀者也別擔心,翻開書就是讓你欲罷不能的沉浸式學習!本書跳脫讓人眼睛酸澀又昏昏欲睡的技術文字,用圖像和情境打造多重感官的閱讀饗宴,帶你一口氣讀懂軟體架構。學習原來可以這麼有趣又有感!
內容簡介:更快速!更安全!更高效! 讓你的Python Web開發體驗全面升級 🚀 用FastAPI打造現代化的Web API與後端服務! FastAPI極速、簡潔、強大的特性,成為現代Python Web開發的首選框架。本書將帶你從基礎入門到進階應用,掌握FastAPI 的最佳實踐,打造高效、可擴展、符合標準的Web API。 不論是初學者還是資深開發者,本書都能幫助你快速上手並發揮FastAPI的最大潛力! 「FastAPI變簡單了!本書在簡化FastAPI概念方面表現出色,展現了作者的精湛功力。讀者將獲得能立即上手應用的實用知識。」 —Ganesh Harke資深軟體工程師,花旗銀行 「本書全面概述了FastAPI框架及其周邊生態系統,讓讀者能夠快速並全面地了解現代網頁開發。」 —William Jamir Silva資深軟體工程師,Adjust GmbH FastAPI是個誕生沒多久就開發穩定的框架,在簡潔的設計中充分利用了Python的新特性。正如其名所示,FastAPI確實運行快速,可與Golang等語言中的類似框架相媲美。透過這本實用的書籍,熟悉Python的開發者將學習如何使用FastAPI,在更短時間內用更少的程式碼完成更多工作。 作者Bill Lubanovic深入介紹了FastAPI開發的細節,提供了各種主題的操作指南,如表單、資料庫存取、圖形、地圖等進階的概念。本書還能讓你快速掌握RESTful API、資料驗證、授權和效能最佳化等知識。由於與Flask和Django等框架的相似性,你會發現FastAPI很容易上手。 透過本書,你將: .學習如何使用FastAPI建立網路應用程式。 .了解FastAPI、Starlette和Pydantic之間的差異。 .學習使用FastAPI與眾不同的兩個特性:非同步函式以及資料型別檢查和驗證。 .探索Python3.8+的新特性,特別是型別註解。 .理解同步和非同步Python之間的差異。 .學習如何連接外部API和服務。
內容簡介:來自Amazon讀者的好評📢 「這本書是LLM新手的理想入門書,簡單易懂的 Python範例,幫助我輕鬆學會在應用程式中運用GPT技術。」 「書中提供很多實用的OpenAI API使用建議,並包含清晰的範例和經驗分享。讓我節省了大量搜尋和試錯的時間,是學習GPT開發的絕佳資源。」 來自業界專家的推薦📢 「透過實用範例與逐步指南,作者為前沿應用開發鋪設了清晰的道路。」 ——Tom Taulli,《Generative AI》(Apress)作者 「完美結合理論與實作,讓GPT-4和ChatGPT的技術細節變得易於理解。」 ——Lucas Soares,Biometrid機器學習工程師 🌟 AI正在改變開發世界,準備好加入這場革新了嗎? 本書帶你掌握ChatGPT與LLM的強大功能,從文字生成、智慧問答到提示工程、模型微調。 用Python就能讓AI成為你最棒的開發夥伴! 本書提供: ✅ 從零開始:快速理解 LLM 原理,掌握 ChatGPT 應用開發核心技術 ✅ 實戰導向:使用 OpenAI API,打造各種 AI 功能,包括智能助理與問答系統 ✅ 進階技巧:提示工程、RAG、LangChain、LlamaIndex,優化AI效能 ✅ 完整範例:GitHub 程式碼+逐步指引,動手實作 AI 應用 🎯 不論你是開發者、數據工程師,還是 AI 愛好者,本書都是你進入AI應用開發領域的最佳幫手! ---------------------------------------------- 「透過實用範例與逐步指南,作者為前沿應用開發鋪設了清晰的道路。」 ——Tom Taulli,《Generative AI》(Apress)作者 「完美結合理論與實作,讓GPT-4和ChatGPT的技術細節變得易於理解。」 ——Lucas Soares,Biometrid機器學習工程師 這本書是Python開發者的理想指南,可為學習如何使用大型語言模型來開發應用程式提供協助。作者Olivier Caelen和Marie-Alice Blete詳細介紹了GPT-4和GPT-3.5模型的主要功能與優勢,並深入解釋這些模型的運作原理。此外,書中還提供了使用OpenAI的Python函式庫進行應用程式開發的步驟指南,包括文本生成、問答系統和智慧助裡等應用。 本書以清晰易懂的敘述方式撰寫,搭配簡單易學的範例,幫助讀者理解概念並將其應用於實際專案。書中提供的Python程式碼範例皆可在GitHub上取得,並附有關鍵術語的詞彙表。準備好在應用程式中釋放大型語言模型的威力了嗎?這本書是您的必備之選! 您將於本書中學習到: .GPT-4與GPT-3.5模型的基本概念、核心特性與運作方式。 .如何將這些模型整合至基於Python的應用程式中,並充分發揮自然語言處理能力,解決LLM相關的挑戰。 .在Python中使用OpenAI API進行文本生成、問答、內容摘要、分類等實作應用。 .進階的LLM主題,如提示工程、特定任務的模型微調、檢索強化生成(RAG)、插件、LangChain、LlamaIndex、GPTs和智慧助理。
用於協同軟體開發的強大工具與技術 想真正掌握Git的強大力量嗎?本書絕對是你不可或缺的最佳選擇! 循序漸進的教學×清晰易懂的圖表×實用的進階技巧 本書由Git領域的資深專家Prem Kumar Ponuthorai和Jon Loeliger精心撰寫,不只是一本普通的Git操作指南,更是深入Git核心原理的權威之作。透過大量清晰易懂的圖表來剖析Git的運作邏輯,從基礎概念到進階技巧,完整涵蓋各種真實開發場景。 無論你是剛踏入程式開發的新手,還是希望精進技術的資深開發者,都能從本書汲取寶貴知識,迅速提升Git技能,讓你輕鬆應對版本控制,在軟體開發過程更加得心應手。現在就開啟你的高效開發新篇章吧! 「本書從介紹最基本的Git概念逐步深入至高階用法,因此既能滿足新手讀者,也適合經驗豐富、尋求技巧和訣竅的使用者需求。」 —Jeff King,Git貢獻者,開源開發者 迅速掌握Git的追蹤、分支、合併和管理程式版本的技巧。 這本實用指南透過一系列漸進式的內容,將帶領你從Git的基礎迅速引導到高階技巧,並提供友善但嚴謹的建議,使你能輕鬆地使用這個開源版本控制系統的眾多功能。 作者Prem Kumar Ponuthorai和Jon Loeliger根據熟練程度分解Git的概念。本次全面修訂的新版更深入探討樹狀結構的操作技巧、對reflog和stash擴充涵蓋範圍,以及對GitHub的完整介紹。一旦了解如何善用系統的靈活性,Git能讓你以幾乎無窮的方式管理程式開發。本書將引導你深入理解並善用Git的強大功能。 • 充分發揮分散式版本控制系統的優勢。 • 學習在多種實際開發場景中使用Git。 • 深入了解Git的常見案例、初始任務和基本功能。 • 學習管理合併、衝突、補丁和差異。 • 應用高階技巧,如rebase和hooks。 • 將專案從不同版本控制系統遷移到Git。 • 使用基於輕量級分支的工作流程,在GitHub上瀏覽、使用和貢獻儲存庫。
讓程式碼重獲新生 一大堆凌亂的程式碼,我應該要直接修改,還是《先整理一下?》...... 凌亂的程式碼是每位開發者的挑戰與痛苦根源,新手與資深工程師都曾在複雜結構面前無從下手。而程式碼的清晰與結構優雅,卻是軟體可維護性與可擴展性的關鍵。 有了這本書,你將不再懼怕那些讓人抓狂的程式碼,學會如何以安全又有效的方式處理它們,同時改變你看待軟體設計的方式。 程式設計大師 Kent Beck 將其深厚的開發經驗,梳理成簡單明瞭的範例,讓我們在不改變系統功能的前提下,逐步學會清理程式碼、優化結構,進而提升整體設計水準。 這本書,不只是為了「整理」,更是為了讓每位開發者重新找回創作的信心與樂趣。 -------------------------------------- 「設計就是我們用程式碼所繪製出來的形狀,Kent則幫助我們繪製出更好的形狀。 這是一本談論重要主題的重要書籍。」 ——Dave Farley / Continuous Delivery有限公司創辦人兼董事 「本書針對各種不同程度的開發人員,提供了許多實用的技巧,可協助大家改進手邊正在處理的各種程式碼。」 ——Sam Newman / 獨立顧問、技術專家,同時也是《建構微服務》和《單體式系統到微服務》這兩本書的作者 「《先整理一下?》這本書裡的想法其實都很簡單,但當你讀到這些想法時,心裡一定很想知道,為什麼這麼多想法自己從來都沒想過。 我要推薦這本書,給所有在意程式碼乾不乾淨、可讀性好不好的人。」 ——Gergely Orosz / The Pragmatic公司的工程師 亂七八糟的程式碼,處理起來最麻煩了。為了讓程式碼更容易讀懂,「整理」程式碼時經常要把程式碼切成好幾塊。在這本實務指南中,身為極限程式設計創造者與軟體模式先驅者的作者Kent Beck 建議我們,可以在何時何地去整理程式碼,以提高程式碼的品質,同時兼顧系統的整體結構。 本書並不會一下子就要你掌握所有的整理技巧,而是讓你先去嘗試一些對你的問題很有意義的範例。 如果你有一個很大的函式,其中包含許多行的程式碼,你要先學會如何把它合理切分成許多比較小的程式碼片段。在閱讀本書的過程中,你就能學會軟體設計背後的理論:耦合、內聚、現金流的折現效應以及選擇性等概念。 本書將會協助你: .瞭解軟體設計的基本原理,以及各種會影響軟體設計的力量。 .針對系統在行為上與架構上的改變,探索這兩者之間的差異。 .改善你的程式設計體驗:有時可以先做整理,有時可以後做整理。 .學會如何把一些比較大的改變,拆解成比較小、比較安全的好幾個步驟。 .把軟體設計當成人類關係的一種課題。
✨《Being Geek晉身怪傑》作者的最新續作,帶你穿越職涯迷霧的絕佳導航 ✨ 在某些時候,我們會忽然意識到,職涯中有許多人事物比寫程式碼更重要...... 這是一個改變的SIGN嗎?該突破現狀嗎?要如何選擇更好的決策呢? 與其在尋找方向時迷航打轉無法定錨,不妨先來看看別人的故事怎麼發展。 超過40篇獨立且引人入勝的職涯故事,陪你一起思考每個重要時刻的選擇,無論是面試、離職還是人際互動,助你在步步為營的職場中成長,同時做出更好的職涯決策,實現人生和職業的雙重成功! ----------------------------------------- 「能與Michael Lopp成為朋友的人,甚至他就是你的頂頭上司,那我要說你真的有夠幸運。我們其他人也別傷心,我們手上有這本書就夠了。本書內容堪比無價之寶,只要花一點時間閱讀,必能獲得數倍回饋。」 ──Seth Godin 《這才是行銷》作者 軟體工程師在職涯發展的某些時刻,終將意識到自己在工作上不僅僅是撰寫程式碼,還需要面對更多其他面向的挑戰,像是我現在該成為管理者嗎?還是我應該加入新創團隊?本書作者Michael Lopp以饒富興味的內容帶出其個人見解,分享他多年來在Apple、Slack、Pinterest、Palantir、Netscape和Symantec等多家矽谷頂尖企業工作的經歷,回顧那些曾經攸關成敗與否的決策瞬間,並提供寶貴洞見,幫助讀者在職涯的每個十字路口做出更明智的抉擇。 作者Michael Lopp以40多篇獨立而精彩的故事,帶領讀者完整經歷一份工作的生命週期,從面試入職開始談起,一直到最後意識到自己或許該離職,尋找下一份工作。作者以真摯且實用的建議,帶領讀者從書中學到如何處理工作中各種令人費解的情況、了解自己希望從職涯中獲得什麼成果,以及探尋如何在職場上脫穎而出。 ‧除了撰寫程式碼,還要學習如何摸索出工作中其他範疇的發展方向。 ‧確認自己會如何享受工作中的各種面向,日後將影響職涯發展的下一步。 ‧在社群內建立核心關係與互動,並且投注心力長久維繫。 ‧針對「縝密規劃的職涯」做出有利的選擇。 ‧理解主管關切的重點,致力於真正重要的工作事務。
設置和操作現代化的可觀測性系統 「Ted和Austin對OpenTelemetry充滿熱情。若您尋找的不僅是操作指南,更希望理解此新興標準在雲端原生可觀測性中的核心價值,那麼這本書將是您的不二之選。」 Daniel Gomez Blanco,首席軟體工程師,Skyscanner OpenTelemetry引領了觀測資料的革命。它不再是多個孤立的分散系統,而是將追蹤、指標和日誌整合成一個連貫的資料流,為您提供前所未有的精確洞察。這本實用指南將帶您深入學習如何設置、操作並排查 OpenTelemetry 可觀測性系統中的各種問題。 作者Ted Young和Austin Parker是OpenTelemetry項目的領導者和創始貢獻者,書中涵蓋了每一個 OpenTelemetry 元件,以及許多流行的雲端服務、平台和數據服務(如 Kubernetes、AWS 和Lambda)的可觀測性最佳實踐。您將了解到 OpenTelemetry 如何賦能開源軟體(OSS)套件與服務,提供嶄新的原生工具,開創業界先河。本書適合軟體開發人員、OSS 維護者、維運和基礎設施團隊,以及管理者和團隊領導者。本書內容包括: •現代可觀測性的原則。 •各類OpenTelemetry元件以及整合方式。 •對平台和應用程式進行檢測的實用方法。 •基於OpenTelemetry的可觀測性解決方案的安裝、操作和故障排除指南。 •在大型組織中推出和維護端到端可觀測性的方法。 •如何開發和維護一致的、高質量的檢測工具、進而減少額外的工作量。
提升程式設計與品質的訣竅 推薦給堅持寫出優質軟體的你 無論技術如何發展,程式碼的簡潔仍然至關重要。 程式碼的簡潔度和明確度,不僅是程式設計師的責任,也影響資源分配、開發策略、專案管理等面向,甚至關乎整個軟體產業的發展。 雖然 AI 可以自動生成程式碼,但目前仍存在基本錯誤、理解問題和維護困難等缺陷。現階段,人機合作還是主流,程式設計師需要監督、修正和改善 AI 生成的程式碼。 因此無論技術如何演進,程式碼的可讀性和維護性仍然十分重要。 「這是一本資訊豐富的著作,它用深入的理論和豐富的實例來說明如何寫出clean code。強烈推薦給堅持寫出優質軟體的你。」 —Daniel Moka 軟體工匠,Moka IT 「Maxi是位應用科學家,本書充分展示出他在軟體開發領域深厚的專業知識。」 —Alex Bunardzic 軟體開發者和教育者 負責龐大且複雜的code base軟體工程師和架構師必須高效擴展和維護程式碼。在本書中,Maximiliano Contieri將以clean code(簡潔程式碼)的理念為基礎,帶你瞭解如何快速辨識改善的機會,並評估它們對產品程式碼的影響。這些技術為系統的可靠性和演進帶來的好處會隨著時間推移而逐漸實現。 本書使用JavaScript、PHP、Python、Java等程式語言的實際範例來提供經過驗證的祕訣,幫助你擴展和維護大型系統。本書的每一個章節皆涵蓋許多基本概念,包括易讀性、耦合、易測試性、安全性和易擴展性,還有程式碼異味及其處理方法。 隨著本書的進展,重構的祕訣和它們想解決的問題將變得更加複雜。您將從中: ‧瞭解clean code的好處,學會辨識改善的機會 ‧逐步學習重構技巧 ‧瞭解clean code背後的理論 ‧從多種現代程式語言的實際案例中學習 ‧全面瞭解各種程式碼異味、它們的影響和可能的解決方案 ‧寫出直接、易讀和易學的程式碼
「對於那些參與系統開發或關注如何降低系統風險的人,這是一本必看的書籍」 -Alyssa Miller, 駭客暨資訊安全傳教士 「對於專注交付安全性設計的讀者,本書將威脅建模方法與現代軟體的開發方式保持一致,是一本全方面比較威脅建模技術的書籍。」 -Brook S.E. Schoenfield, 《Securing Systems: Applied Security Architecture and Threat Models》作者,資訊安全架構師 在軟體開發生命週期中,威脅建模往往是最基本但卻容易被誤解的一環。無論您是資訊安全從業人員或開發團隊成員,本書將幫助您更好地理解如何應用威脅建模的核心概念,在實務上保護您的系統免受威脅。 威脅建模技巧旨在編寫代碼之前,以具有成本效益的方式發現和解決潛在問題。使用威脅建模技術並不需要高階資安知識,也不需要付出鉅額維護成本。本書作者Izar Tarandach和Matthew J. Coles在本書中介紹了可以在您的組織中處理和執行威脅模型分析的各種方法。 ‧探索用以保護資料和系統功能的威脅建模基本特性及機制 ‧了解保護機制、隱私性、和安全性之間的關係 ‧識別評估系統安全性的關鍵特徵 ‧深入認識用於威脅模型分析系統的流行和專業技術 ‧眺望威脅建模、敏捷開發(Agile development methodologies)和開發維運自動化(DevOps automation)的未來發展 ‧查找常見問題的答案,包括如何避免常見的威脅建模陷阱
忘東忘西該怎麼辦?有沒有人可以主動提醒我? 不如設計程式來幫忙解決吧! 程式設計可以讓你與電腦相處愉快,讓生活更便利,就像神奇的魔法一樣。 但是…… 該怎麼開始? 為什麼我必須這樣寫? 我寫的程式為什麼無法讓電腦理解我想要它做的事? 嗚…程式設計怎麼這麼難…… 這是一本適合所有想了解程式設計的人(不僅只是兒童)的入門書籍。 作者鳥井雪女士本身是程式設計師,也是育有兩寶的媽媽。 鳥井女士規劃過許多程式設計的課程,特別是為女性及初學者打造的課程,擁有相當豐富的經驗。 她以過往規劃和教授課程的經歷來打造本書,在初學者容易碰到的思維門檻上,精心打造了能以生活經驗幫助思維遷移的方式,希望讓所有初學者能安心踏入程式設計的世界。 ---------------------------------------------- 不久的將來,人手一台小型電腦、與電腦一起生活的日子將成為常態。 優羽十歲生日時,得到了一台小型電腦「minio」,可是她一直無法讓minio搞懂她想做的事。 此時,隔壁的姊姊送她一本「魔法筆記本」。 當優羽拿起這本筆記本時,筆記本開始自動翻頁,原本一個字都沒有的頁面,逐漸浮現出文字…… 「接下來,我將幫助你和你的電腦變成好朋友。」 藉由魔法筆記本的引導,優羽逐步解決了很多生活中「有點麻煩」的事,減少了不少困擾! 不用再擔心搞錯上學該準備的用品 可以弄清楚媽媽也記不住的獎勵點數 也不再錯過和朋友一起活動的時光 …… 這些好的轉變,讓優羽再遇到「有點麻煩」、「想偷懶」的時候,會開始思考能讓事情變得更順利、更方便的方法,也讓優羽逐漸對自己充滿自信! ----------------------------------------------- 「程式設計」就是把想法和問題轉換成可執行的程式碼的方法。 學會如何設計程式之後,就可以把電腦的能力變成自己的力量。 本書可以讓你模擬程式設計的過程。 不論是可以按照預期順利執行,或無法成功執行而煩惱地嘗試各種方法,都能從設計程式的過程中,透過與電腦互動,整理問題,一點一滴累積解決方法的能力,發現真正的樂趣。 就從動腦解決生活中的大小麻煩事開始吧! 本書的特色 ‧著迷於故事情節的同時,瞭解程式設計的思考方法 ‧包含程式設計的基本元素(變數、條件分歧、重複、陣列、函數) ‧可以了解程式設計與現實生活中發生的事情的關聯性 本書從人物設計、世界觀、對話和情節設計,乃至於詳細又容易理解的文字表達,鳥井女士都以獨有的視角,做了完整且細膩的安排。 故事從再平凡不過的日常場景為開端,對話和事件都能在你我的日常生活中找到相似的一幕,尤其是那些曾在腦海中閃過「好麻煩,真希望有人可以幫我……」的念頭,讓人立刻就和主角產生共鳴,想繼續看下去主角要如何解決這些「小麻煩」。 鳥井女士在角色的設定用了許多小細節去破除性別印象,處處顯示著她為全齡讀者設想的溫柔。讀者可以很容易將自己或身邊的任何一個孩子帶入主角視角,這些不時就能與自身經驗重疊的安心感,正是讓人欲罷不能地讀完一本程式設計書的關鍵。 而本書繪者鶴谷香央理女士,也以慵懶恬靜的畫風來呼應這份溫柔。將抽象的設定忠實地化為具體的圖像,呈現給每位讀者。兩人的合作可說是一時之選。一起來發現作者與繪者的各種巧思安排吧! 為計算機科技領域的讀者提供優質叢書,一直以來都是歐萊禮圖書的理念,近年也逐步為年輕讀者打造接軌科技脈動的讀物。日本歐萊禮與作者鳥井女士以這個想法為匯聚點,量身訂做了這本適合初學者的入門書,希望不論是誰都能順利接軌光速變化的資訊時代。
讓架構師了解如何將系統架構視為靈活的推進器,以因應快速變化的需求。 提供最新技術、知識和訣竅,以確保軟體架構敏捷且跟上時代變遷。「隨著對軟體能做什麼的期望加速改變,我們必須想方設法演化我們的架構,以適應這一事實。這本手冊將幫助你了解如何將系統架構視為可塑的推進器,而非難以撼動的障礙。」 —Sam Newman 架構師,《Building Microservices》作者 「本書第二版將為你提供最新的技術、知識和訣竅,以確保軟體架構足夠敏捷,能夠跟上不斷的變化。」 —Mark Richards developertoarchitect.com 隨著新工具、框架、技術和典範的不斷湧現,軟體開發生態系統也在持續變動。僅在過去五年間,軟體開發核心工程實踐方面的逐步進展就促使業界認識到架構本身也必須演化才能滿足不停變化的使用者需求。在這個全面更新的版本中,作者Neal Ford、Rebecca Parsons、Patrick Kua和Pramod Sadalage提供現實世界中的案例研究,其中考量到了近來對軟體開發的演化日益增長的支援。 本書分為三個部分: ‧機制:第一部包括了定義演化式架構機制的章節,說明團隊如何使用技術和工具來建置適應性函數、部署管線,以及其他用來治理和演化軟體專案的機制。 ‧結構:第二部涵蓋的架構風格和設計原則針對耦合、重複使用,以及為了實現更乾淨俐落的長期演化而必須考慮的其他結構因素。 ‧影響:第三部則探討第一部介紹的工程實務做法與第二部分的結構考量之間的交集。
適合程式設計新手,迅速進入資料科學領域。 資料匯入、整理、變換、視覺化與模型建立。 使用R和RStudio進行資料科學研究,利用tidyverse套件使工作更高效、流暢。 這一版介紹Tidyverse的最新功能和最佳實務做法,並新增章節介紹從不同來源獲取資料,進一步實踐所學。 「這本書更新了世界首屈一指的R資料科學實務指南,優秀程度令人驚歎,凡是與資料打交道的人都應該閱讀此書!」 —Emma Rand University of York, UK 運用R將資料轉化為洞察力、知識和理解。透過這本實用的書籍,有志於成為資料科學家的讀者將學會如何使用R和RStudio進行資料科學研究,並利用tidyverse這組專為協同工作而設計的套件,讓資料科學實務變得更快速、流暢且有趣。即使沒有程式設計的經驗,本書最新版也能幫助你迅速進入資料科學的領域。 你將學會如何匯入、變換和視覺化資料,並傳達結果。你還將獲得資料科學流程的整體理解,以及管理細節所需的基本工具。這一版針對最新的tidyverse功能和最佳實務做法進行了更新,有新的章節示範如何從試算表、資料庫和網站獲取資料。其中的習題也將幫助你實踐所學。 你將學到如何: ‧視覺化:為資料探索和結果的交流創建圖表 ‧變換:找出變數型別及處理它們的工具 ‧匯入:將資料匯入R並轉換為方便分析的形式 ‧程式設計:學習R語言的工具,以更清晰的方式輕鬆解決資料問題 ‧溝通:使用Quarto整合說明、程式碼和分析結果
「《程式設計守則》結合了各種對於初學者絕佳的引導,還有許多精妙的內容,甚至連專家都能受用。Zimmerman讓本書一直維持很好玩的感覺。他用事實證明,想保持有趣又兼具教育性,確實是做得到的。」 —Mark Cerny PlayStation 4/5首席系統架構師 「《程式設計守則》針對初出茅廬以及有點經驗的程式設計者,提供了許多深刻的見解。Zimmerman的個人風格確實讓本書成為一本很有趣的讀物;在各種技術逐漸滲透到商業與社會各個層面的這個時代,該如何做出更好的軟體,本書的21條守則確實做出了很重要的貢獻。」 —Paul Daugherty Accenture集團首席技術執行兼首席技術長 這本關於程式設計哲學的指南,對於如何思考「程式設計」這件事,提出了獨特而有趣的觀點。本書集合了21個實用的守則,每個守則都用一個獨立的章節來呈現,道出每位程式設計菜鳥一定要瞭解的重要智慧,同時也為一些經驗豐富的程式設計者提供了發人深省的見解。 作者Chris Zimmerman是電玩工作室Sucker Punch Productions的聯合創始人,他透過一些令人難忘的格言,還有一些從真實程式碼裡提取出來的範例,教導大家程式設計的基本真理。這本實用指南也可以協助管理者,找出一些訓練團隊新成員的方法。 本書所列出的守則包括: ‧越簡單越好、但也不能太過於簡單 ‧讓程式碼自己講故事 ‧把複雜性局限在局部範圍內 ‧先找出三個例子,才能改用通用的做法 ‧要從結果往回推,別從程式碼往後推 ‧最佳化的第一課:別去做最佳化 ‧取個好名字的本身就是最好的說明 ‧Bug是會傳染的 ‧消除掉各種會出問題的狀況 ‧沒在執行的程式碼,就是會出問題 ‧有時你就是得去做一些打釘子的工作
邊緣AI正轉變著電腦與現實世界的互動方式,讓物聯網裝置能夠重拾先前因成本、頻寬或電力限制而被捨棄的99%感測器資料,進而做出決策。透過嵌入式機器學習等技術,開發者就能精煉人類直覺並將其部署到各種目標上,涵蓋了超低功耗微控制器到嵌入式Linux裝置。 這本實用指南為專業工程人士,包括產品經理和技術主管,提供了一個運用邊緣AI技術來解決實際工業、商業和科學問題的端對端框架。你將有機會探索從資料收集、模型最佳化再到調校測試的所有階段,學習如何設計和支援邊緣AI和嵌入式機器學習產品。邊緣AI必定會成為系統工程師的標準工具,本書中的高階路線圖可幫助你快速上手。 .奠定關於邊緣裝置的AI和ML專業知識 .了解哪些專案最適合使用邊緣AI來解決 .探索邊緣AI應用的關鍵設計模式 .學習開發AI系統的迭代工作流程 .打造一支能夠解決實際問題的團隊 .遵循負責任AI過程來製作有效的產品 「本書針對如何結合現今的AI智慧技術和嵌入式系統做了完美的介紹」 —Elecia White 《Making Embedded Systems》書籍作者與Embedded數位廣播節目主持人 「任何剛踏入這個新興領域的人都會受益於本書所提供的深刻見解和清晰思緒」 —Aurélien Geron 曾任YouTube自動影片分類小組主管與暢銷書作家 「我可以想像這本書被大家當作參考書來反覆查找」 —Fran Baker Arm永續與社會影響力部門主任
提升指令操作技巧 「本書保證讓讀者能更有效率地與Linux互動,而非僅僅做資料的輸入。我強烈推薦讀者閱讀並使用其中技巧,每天都將會從中獲益。」 —Michael Hausenblas, AWS解決方案工程主管 「這本實用的書籍,其中充滿了命令列的智慧,讀者可以從現在就開始使用,並在往後的職業生涯中延續下去。第一章本身的價值,就超過這本書的價錢。」 —Ken Hess, 系統管理員 這本書將我們的Linux技巧提升到另一個新的水平!其中的內容相當實用,一步一步幫助大家快速、聰明、更有效率地完成工作,因此無論是系統管理員、軟體開發人員、網站可靠性工程師,還是狂熱的愛好者,都很適合閱讀。我們將學習如何建立、執行解決實際的工作問題,處理、檢索相關資訊,以及自動執行一般手動的複雜命令任務。 此外還將分析在shell提示符號背後,真正發生的事情,因此無論我們執行哪些命令,都可以在日常Linux使用中獲得更大的成效,並在就業市場中更具競爭力。 在建構中級到進階命令列技巧的過程中,我們將學習如何: ‧選擇或建構快速完成工作的命令 ‧高效執行命令並輕鬆瀏覽Linux檔案系統 ‧從簡單的命令到建構強大、複雜的命令 ‧轉換文字檔案,並如同資料庫一樣操作查詢,達成任務目標 ‧從命令列來控制Linux的點選功能
快速參考指南 涵蓋Python 3.7到3.11 「深入介紹Python,是最新、易懂且實用的指南。一本優秀的現代參考書,有大量的洞見和建議,將滿足從初級中階使用者到專家級的每個人。」 —Mark Summerfield Qtrac Ltd總監 Python最近在TIOBE index中被列為當今最流行的程式語言,特別是由於它在設計、原型開發、測試、部署和維護方面的廣泛適用性。透過本書最新的第四版,你將學會如何最大限度地利用Python,無論你是專業的程式設計師,還是需要這種語言來解決特定領域問題的人士。 由公認的Python專家精心策劃,這個新版本側重於3.10版本,讓這本關於Python語言的開創性作品完全包含了Python五個發行版的最新資訊,包括對最近剛釋出的Python 3.11之報導。 這本便捷的指南將幫助你: ‧學習Python如何將資料和程式表示為物件 ‧理解型別注釋(type annotations)的價值和用途 ‧檢視哪些語言功能出現在哪個最近版本中 ‧探索如何透過慣用語掌握現代Python ‧學習如何適當地設置Python專案的結構 ‧了解如何測試、除錯和最佳化Python程式碼
「一本清晰明瞭的指南,適合任何想要了解軟體系統可觀測性真正含義的人。對於業內所有人來說,這都是一本重要的讀物!」 -Alex Hidalgo Nobl9的首席可靠性倡導者,以及《Implementing Service Level Objectives》作者 可觀測性對於現代複雜軟體系統的構建、變更和理解是非常重要的。採用可觀測性的團隊能更快速自信地發布程式碼、識別異常行為和異常值,並了解每個使用者的體驗。本書詳細解釋了可觀測系統的價值,並向你展示如何實踐以可觀測性為驅動的開發。 作者Charity Majors、Liz Fong-Jones和George Miranda都是來自Honeycomb團隊,為你介紹了良好可觀測性的標準,展示如何改進你目前正在進行的工作,並提供從傳統工具(如指標、監控和日誌管理)遷移的實用技巧。你還將學習到可觀測性如何影響組織文化,以及組織文化如何反過來影響可觀測性。 本書將探索以下內容: ‧可觀測性的概念如何適用於大規模軟體管理 ‧在交付複雜的雲端原生應用和系統時實踐可觀測性的價值 ‧可觀測性對整個軟體開發生命週期的影響 ‧不同的功能性團隊如何使用可觀察性來達成服務水平目標 ‧如何為你的程式碼測量,以幫助未來的工程師理解你今日編寫的程式碼 ‧如何編寫優質的程式碼,以進行具有前後因果知識系統的除錯和維護 ‧如何使用豐富的數據分析來幫助你除錯棘手的問題
「這本書幾乎會提升每位C++程式設計者的技能,書中充滿了實用的設計模式和引人入勝的想法,我從這本書中學到的東西遠遠地超過了我的預期。」 -Mark Summerfield Qtrac有限公司負責人 好的軟體設計是專案成功的要素,但設計軟體很難。你需要深刻的理解設計決策的後果,並對可用的設計選擇有很好的概觀。透過這本書,有經驗的C++開發者將獲得使用這種現代程式語言進行軟體設計全面、實用和無與倫比的概觀。 C++培訓師和顧問Klaus Iglberger說明了如何管理依賴性和抽象化,提升軟體實體的可改變性和可擴展性,以及應用和實作現代設計模式,以幫助你利用現今可以選擇的方法。軟體設計是軟體專案最不可少的面向,因為它影響著軟體最重要的屬性:可維護性、可改變性和可擴展性。 ‧學習如何就軟體設計而言評估你的程式碼 ‧理解什麼是軟體設計,包括像是可改變性和可擴展性等設計目標 ‧探討每種設計方法的優點和缺點 ‧學習設計模式如何幫助解決問題和表達意圖 ‧選擇設計模式的正確形式,以充分利用它的優勢
使用pandas、NumPy和Jupyter進行資料整理 「Wes更新了這本新版本的內容,確保它是學習Python和pandas資料分析知識的首選資源。再多的言語都無法形容我是多麼推薦這本書。」 —Paul Barry 講師及O’Reilly《深入淺出Python》作者 這本權威的手冊將教你如何在Python中操作、處理、清理、整理資料組。第三版配合Python 3.10和pandas 1.4進行更新,用豐富的案例研究教你如何有效地解決廣泛的資料分析問題。在過程中,你將學會最新版的pandas、NumPy和Jupyter。 作者Wes McKinney是Python pandas專案的創始人,在這本書中,以實用和現代化的方式介紹Python資料科學工具組,本書非常適合剛接觸Python的分析師,以及剛接觸資料科學和科學計算的Python程式設計師。本書在GitHub提供資料檔案與相關素材。 ‧使用IPython shell和Jupyter Notebook進行探索性計算 ‧學習NumPy基礎和進階功能 ‧認識pandas程式庫的資料分析工具 ‧使用靈活的工具進行載入、清理、轉換、合併與重塑資料 ‧用matplotlib製作資訊豐富的視覺化圖表 ‧運用pandas的groupBy工具對資料進行切割與彙總 ‧分析與處理正規和非正規的時間序列資料 ‧透過詳盡的範例學習如何解決真正的資料分析問題
「當我尋找Python功能的詳細說明和用法時,我一定會看這本書。Luciano的教學和演說都很出色。對希望增加知識的進階初學者來說,這是一本好書。」 —Carol Willing Python指導委員會成員(2020-2021) 「這不是枯燥乏味的程式書,它充滿有用的、經過測試的範例,而且有恰如其分的幽默感。我和同事們用這本神奇的佳作把我們的Python程式設計水準提升到下一個等級。」 —Maria McKinley 資深軟體工程師 別再浪費時間把Python程式硬寫成其他語言的模式了。雖然Python的簡單性質可以迅速提升你的工作效率,但這往往意味著你沒有善用它所提供的一切。在這本最新版的實踐指南中,你將學會如何運用Python 3的最佳理念,寫出高效、現代化的程式。 你將超越過往的經驗,發現並應用道地的Python 3功能。作者Luciano Ramalho將引導你瞭解Python的核心語言功能和程式庫,並教你如何讓程式更簡短、更快速、更易讀。 新版經過全面翻新,書中包含五個部分,可視為五本較薄的書籍: ‧資料結構:序列(sequence)、字典(dict)、集合(set)、Unicode與資料類別 ‧函式即物件:一級函式、相關的設計模式,以及用型態提示來宣告函式 ‧物件導向慣用法:組合、繼承、mixin、介面、運算子多載、協定,及其他靜態型態 ‧控制流程:環境管理器、產生器、協同程序、async/await與執行緒/程序池 ‧超編程:property、屬性描述器、類別修飾器、取代或簡化metaclass的新類別超編程機制
「《Fluent C》提供豐富的實務案例,是讓程式碼更加簡潔、易於維護的絕佳參考。」 ──David Griffiths 《Head First C》作者 「本書引領新手寫出超強的C語言程式。」 ──Robert Hanmer 軟體架構師 在C語言中,專業的程式設計建議往往難尋,儘管有諸多物件導向程式語言的設計模式可供利用,但C語言的相關資源卻相對匱乏。這本實用指南為初學者及有經驗的C程式設計師提供設計決策的相關指引,以書中示例說明設計模式的應用概念,進而逐步建置出大型程式。 作者Christopher Preschern是設計模式社群的主要成員,透過本書闡釋:如何讓C程式結構化、錯誤處理、設計有彈性的介面等問題。無論您是想尋找具體的模式,或是想了解特定主題的設計抉擇概觀,本書都會為你指點迷津。 第一部分介紹C語言的設計模式,學習專屬C程式的實務設計知識。第二部分以案例說明如何運用C程式設計模式實作大型程式,透過良好的設計決策,您將能體會設計模式如何讓生活更輕鬆。 本書所介紹的設計模式包括: ‧錯誤處理 ‧回傳錯誤資訊 ‧記憶體管理 ‧C函式的回傳資料 ‧資料生命期與擁有權 ‧有彈性的API ‧有彈性的迭代器介面 ‧模組化程式的檔案組織 ‧脫離#ifdef地獄
「《Efficient Go》是一本很棒且充滿洞見的書籍,可以改變您對Go軟體效能的看法。您將學習如何透過資料驅動的評估來優化程式碼庫,並辨識出可優化的程式碼模式。這本書將使您感到輕鬆自在,並且當您開始編寫程式碼時,會更關心程式碼的效能!」 —Saswata Mukherjee, Red Hat工程師 隨著技術的進步、市場的快速變化以及系統複雜度的提高,軟體工程師往往會忽略軟體效率這個令人不安的問題。然而,以可觀察性驅動的戰術性效能優化對每個產品都至關重要,它可以節省資金並確保業務成功。 這本書提供了任何工程師所需的工具和知識,以有效、專業且無壓力的方式提高軟體效率。作者Bartłomiej Płotka提供讓您的系統可以更快並且消耗更少資源所需的工具和知識,以及如何使用Go達成更好效率。此外,大多數內容與語言無關,您可以將小而有效的習慣帶入程式設計或產品管理週期中。 本書會向您展示如何: ‧釐清並協商效率目標 ‧在各種等級上優化效率 ‧有效地使用CPU和記憶體等公共資源 ‧透過Prometheus、Jaeger和Parca等開源專案,使用度量、日誌記錄、追踪和(持續)效能分析等可觀察性信號來評估效率 ‧應用go test、pprof、benchstat和k6等工具來建立可靠的微觀和宏觀基準測試 ‧有效率地使用Go及其特性,例如切片、泛型、goroutine、配置語意、垃圾收集等
完整認識Git的學習指南 「工欲善其事,必先利其器。如果只有一定程度的知識是很危險的。雖然Git入門只需要幾小時,但Git的微妙、強大及深度需要經年累月才能透徹。《深入淺出Git》每一頁都有你本來以為已經了解的資訊或解說。不論你對Git有多熟,Raju絕對能讓你變得更會使用Git。」 ──Nate Schutta VMware軟體架構師與開發人員後援 你將從本書學到什麼 很多Git使用者都是使用「食譜」(recipe),就是靠網路上找到的指令並複製、貼上,但並沒有真正了解Git怎麼使用。但如果遇到難題的時候怎麼辦呢?不可能輕輕鬆鬆就迎刃而解。透過本書的動手操作練習,可以學習使用Git的各種方式並快樂學習。Raju Gandhi透過一層一層的抽絲剝繭幫你解密Git背後強大卻很單純的引擎,不只能學會「怎麼用」,還能了解「背後的原理」。本書會讓你真正學會分支、合併、提交等指令,同時學會團隊協作的最佳做法,並將Git的能力發揮到極致。 本書為何如此與眾不同 曾經看過《深入淺出》系列的讀者應該猜想得到,本書充滿專為大腦運作而設計的視覺化風格;尚未看過的讀者,內容保證包君滿意。不同於令人昏昏欲睡的厚重文字,本書透過多重感官的閱讀饗宴,帶領大腦沉浸在Git的學習世界裡。
「Gayathri的書能為團隊帶來測試的全面性觀點。」 -Neal Ford Thoughtworks總監/架構師/Meme Wrangler,《軟體架構:困難部分》作者 「Gayathri的書應該出現在所有寫軟體(以及測軟體)的人桌上。」 -Saleem Siddiqui 《Test-Driven Development學習手冊》作者 對任何想產出高品質軟體的組織而言,測試都是不可迴避的課題,本書中,我們提供了10種不同類型的測試工具,為軟體開發與品質工程師帶來一站式的測試指南,您將會了解到測試的策略、概念、實踐等知識,並將這些知識使用在網頁或手機應用的開發與測試階段。 作者Gayathri Mohan為讀者準備了40種以上可以立即上手的測試工具,不論是測試新手或老手,都可以將這些技巧應用在測試工作上,藉此增進軟體的性能、安全性、與可用性(accessibility)。本書涵蓋的測試手法包括探索性測試、自動化測試、跨功能測試(cross-functional testing)、資料測試、手機端測試等,此外讀者還可以認識到該如何將這些測試整合進CI(continuous integration)流程中。透過本書,您將能以品質為中心去處理軟體開發過程中的各種挑戰。 您可以透過本書獲得下列知識: ‧學習如何部署各種測試方案,讓手上的專案獲得高品質的產出 ‧透過書中介紹的策略與概念探索出新的測試方法 ‧從範例學習到該如何將測試工具應用到實際的工作中 ‧藉由廣泛的最佳測試實踐來增進自身的測試技巧能並推動職涯發展
「無論是C的新手或IoT開發人員,《Smaller C》的讀者都能在數小時內為微控制器編寫出精實、乾淨、高效率的C程式。」 —Tony Crawford 《C in a Nutshell》的合著者 「《Smaller C》提醒了我,當程式設計回歸到最基本的時候,確實是非常有趣的。」 —Alex Faber 軟體開發人員 對於希望從最小型到較大型微控制器中獲得最高效能的製造商來說,C語言仍然是最佳選擇。這本實用書籍為任何從事微控制器程式設計的人提供了C基礎知識的堅實基礎。您將探索C如何讓開發人員和製造商能夠從微型裝置中獲得巨大成果的多種方式。 作者Marc Loy向您展示了如何從頭開始編寫乾淨、可維護的C程式碼。這種語言及其同類語言C++仍廣泛被用於為裝置驅動程式或作業系統編寫的低階程式碼。透過理解C的語法及其怪癖,您將獲得持久的電腦語言素養,這將幫助您更輕鬆地掌握新的語言和風格。 ‧學習C的基礎知識,例如資料型別、流程控制和函數 ‧探索記憶體管理,包括程式是如何在小型裝置上執行的 ‧理解Reddit或Stack Overflow等線上論壇中所提供的答案 ‧編寫既可讀又可維護的高效率客製化C程式碼 ‧分析程式碼的效能並進行是否優化的取捨 ‧評估在您自己的專案中使用的第三方程式庫 ‧建立您自己的程式庫並與他人分享