物聯網雲端系統開發(基礎入門篇)
本書是「雲端系統開發系列」的第一本書,專為新手和初階使用者設計,主要介紹ESP32開發板的應用。書中涵蓋從雲端系統伺服器的安裝、建置到管理的完整流程,並以溫溼度感測器為例,逐步指導讀者如何開發和建置網際網路的物聯網雲端系統,最終實現雲端應用和資料視覺化等功能。 本雲端系統開發系列的書籍,乃是筆者在物聯網系統開發研究與產業實務下,多年建立的一個有效且便利的系統架構,本書一步一步從雲端系統伺服器之建立、管理到雲端系統開發,一步一步漸進學習,並透過比者早已把雲端系統開發的架構拆解成一個一個可重複利用的模組或標準介面,在書中一一介紹這些可重複利用的模組或標準介面之標準範例程式與設計技巧來提供讀者的模仿學習,來降低系統龐大產生大量程式與複雜程式所需要了解的時間與成本,透過固定需求對應的程式攥寫技巧模仿學習,可以更快學習物聯網應用系統的開發與雲端系統與網頁語言程式設計,進而有能力開發出有效可運作之物聯網應用系統雛形,隨著讀者不斷成長與磨練,進而改進、加強、創新其原有產品固有思維與架構。如此一來,因為學子們進行「重新開發產品」過程之中,可以很有把握的了解自己正在進行什麼,對於學習過程之中,透過實務需求導引著開發過程,可以讓學子快速有效的開發出產業上可以穩定運作之物聯網應用系統,成為這一領域的高手,然後有機會成為這一領域的個中翹楚。
「演算法×數學」圖解學習全指南:從基礎開始,一次學會24種必懂演算法與背後的數學原理及應用
2018、2019、2020連續三年國際資訊奧林匹亞競賽(IOI)金牌得主日本天才年輕程式設計師米田優峻為所有程式設計者而寫的演算法×數學學習全指南從入門者、進階程式設計師到競賽選手都該具備一口氣學會「必學經典演算法」+「支撐演算法的必要數學知識」獲得能真正徹底活用演算法的扎實程式設計力!「要理解程式設計中演算法與基礎數學之間的密切關係,這本書應該是最適合的了。」──日本國立資訊學研究所副所長 河原林健一 專業推薦|要真正理解、活用演算法,就得同步從數學下手——|第一本同時講解「演算法×數學×競賽題型」的程式必備基礎學習書,讓你事半功倍,一步到位!現代社會中,從電腦、智慧型手機,再到最前端的AI人工智慧等,無一沒有程式語言的參與。而在電腦強大的功能與計算能力背後,為了以最有效率的方式運算、解決問題,「演算法」扮演了關鍵角色,讓我們得以用更少的計算資源來解決各種問題。因此不論資歷深淺,演算法是所有程式設計者必得萬分熟悉的工具與知識。而要掌握演算法,背後的數學知識更是關鍵,但坊間的演算法學習資源時常忽略了學習者對於相關數學的掌握。觀察到此點的本書作者米田優峻,因而撰寫了本書,從演算法和數學同步下手,讓我們能夠真正掌握演算法的精髓。出生於2002年、現就讀東京大學四年級的米田優峻,在中學一年級時迷上程式設計,於2018、2019、2020連續三年奪得國際資訊奧林匹亞競賽(IOI)金牌,創下驚人紀錄。2023年,他再度於國際大學生程式設計競賽(ICPC)獲得全球第九名佳績。透過本書,他將深入淺出為讀者介紹各種經典演算法,並同時介紹必要的數學知識,幫助讀者扎實理解演算法的原理與提升應用能力。本書共有三大特色:1.&& &使用簡單易懂的圖解和方法,讓初學者也能輕鬆掌握。2.&& &提供了200道例題和演練題,幫助讀者鞏固所學知識。3.&& &從中學到大學程度的數學知識,僅選取與演算法相關的重要部分進行講解。不論你是剛接觸演算法學習的程式設計入門者,或者希望在已有的數學與演算法知識基礎上更深入理解,抑或者希望為程式設計競賽做準備,本書提供具體實用的知識和技巧,為你帶來莫大幫助,在閱讀過程中帶給你無窮樂趣。
C++程式設計:教學與自習最佳範本
作者以30多年的豐富教學經驗,列舉日常生活中的範例進行解說, 讓你有效率的抓住學習重點,是一本絕佳的教學與自學範本!■ 本書除了涵蓋程式設計的基本主題,還包括物件導向程式設計的特性,如封裝、繼承、多型、多載函式與運算子、函式樣板、類別樣板以及標準樣板函式庫。 ■ 範例貼近生活,如:猜猜你的生日、猜猜1~100的數字、菜單的選擇、九九乘法表、大樂透電腦選號、威力彩電腦選號…等。 ■ 各章皆有提供練習題和程式實作,讓你做中學,並測試你對本章的了解程度。 ■ 附有練習題解答,讓你學習沒有盲點,並可加以驗證你的答案。
快速學會物件導向設計技術:活用C++ × ChatGPT掌握程式設計能力的14堂課
融合傳統程序式語言及物件導向設計, 藉由範例實作導入變數、函數、運算子多載等, 配合ChatGPT的輔助查詢及驗證, 有效學習程式設計 本書強調理論與實作並重,依照C++功能循序漸進介紹物件導向程式設計的實務及進階活用的議題。書中的上機程式測驗單元,亦能強化撰寫與除錯能力,而為了幫助讀者利用AI輔助學習,也提供由ChatGPT生成的程式碼,以及由人工編寫的程式碼作為參考。大綱重點如下: 1.基礎語法 包括C++程式撰寫、編譯、執行與除錯,接著再導入變數、常數與資料型態介紹,並進而了解各種運算子及流程控制指令。 2.進階語法 包括陣列與字串綜合運用,再介紹指標與位址的觀念與實作,並示範自訂函數、參數傳遞與函數進階應用,最後則提到前置處理指令、巨集及自訂資料型態。 3.物件導向 以生活化的案例說明物件導向程式設計基礎常識,再介紹類別的進階應用、運算子多載、繼承與多型,完整呈現物件導向程式設計精華。 4.AI輔助學習 為了進一步幫助讀者學習,我們將提供由ChatGPT生成的程式碼,以及由人工編寫的程式碼作為參考。 本書實務經驗分享 ➯設計大量程式範例,正確無誤執行 ➯安排上機程式測驗,強化撰寫能力 ➯精心設計各章習題,驗收教學成果 ➯進階應用ChatGPT,加速程式設計
資料視覺化:用Python為星空作畫
ChatGPT竟然還可以教你用Python取得並視覺化公開的天文觀測資料!這是全台第一本透過ChatGPT問答創作而成的天文科普書你對星空有什麼好奇呢?太陽怎麼變化?水星逆行是什麼?如何發現系外行星?有哪些不同種類的星系?星體位於何方、有多遠、有多亮、有多重?如何繪製全天空星圖、星座圖、恆星的生命軌跡圖、星體在不同電磁波段下的樣貌?本書提供豐富的問答範例和開源程式碼,讓你隨著故事,透過公開的天文觀測資料,解答這些問題,體驗探索天文的樂趣ChatGPT等生成式AI的出現,降低了大眾接觸天文研究的門檻。例如,任何人都可以用它來生成Python程式碼,以取得並視覺化公開的天文觀測資料。本書以故事形式將兩大主軸交織而成。其中一個主軸是示範如何透過與ChatGPT的問答,學會用Python來探索各種星體的觀測資料。這個部份的內容涵蓋:藉由太陽觀測資料來了解它有何變化、追蹤太陽系天體的軌道位置以解開行星逆行之謎、分析系外行星的繞行週期來看出它們遮擋所屬恆星的凌日現象,以及一窺韋伯太空望遠鏡所拍攝的星系影像和光譜。另一個主軸則示範如何運用創造力來遊玩ChatGPT上的角色扮演遊戲《獵星者旅店》。你可以在旅店的圖書館翻閱「Colab天文魔法書:掌握Python套件」,也能參與旅店中的天文社社課,了解如何用Python查詢星體的座標、距離及亮度。或是你想用Python繪製出全天空星圖及星座圖,那就詢問旅店老闆哪一位獵星者能幫忙。如果你玩心更重的話,不妨在這遊戲中創造出遊戲,藉此學習用Python繪製出星體的質量分佈圖、恆星的生命軌跡圖,以及星體在不同電磁波段下的樣貌。生成有趣體驗的魔法皆來自你的想像。
Rust最佳入門與實戰
★☆★國內第一本介紹Rust實戰的專書★☆★【本書特點】☆Rust重要觀念介紹:泛型(Generics)、特徵(Trait)、巨集(Macro)、閉包(Closure)、並行處理(Concurrency)、所有權(Ownership)。☆Rust實戰:機器學習、WebAssembly、區塊鏈(Blockchain)、跨語言整合(FFI),包括Python、C、JS…等。☆常見應用實作:資料庫存取、網站開發、桌面程式、檔案系統存取…等。【本書目標對象】1. 熟悉C語言的學生或工程師:可學習到最新的程式語言設計理念,改寫或升級舊系統(Legacy system)。2. 熟悉Python語言的學生或工程師:可學習到如何開發安全與高效能的應用系統。3. 同時熟悉C與Python語言的學生或工程師:可學習到如何整合Python與Rust,提升系統開發的生產力。4. 機器學習工程師:可學習如何利用Rust建立高效系統,以提升模型訓練(Training)與推論(Inference)的速度。
演算法導論(第四版)
暢銷經典,全球銷售超過百萬本 Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest和Clifford Stein所著的《演算法導論》受到世界各地許多著名大學廣泛採用,作為演算法課程的主要教科書。 本書即是大家耳熟能詳的CLRS。歷經數個版次,同時受到廣泛選用所造就的不可替代性,在該領域的社群和學術界,常以作者姓氏的首個英文字母「CLRS」,作為這本經典著作的代稱。 這本書因幾個關鍵特點而備受讚譽: ‧內容全面:本書涵蓋了從基本到進階的演算法主題,適合各個程度的讀者,無論是大學生、研究生或業界人士,都能從中受益。 ‧清晰的講解:書中以清晰詳細的方式解釋各種演算法,並搭配虛擬碼,幫助讀者理解演算法的實作過程。 ‧嚴謹的數學分析:本書提供了演算法的數學分析,幫助讀者深入理解演算法的效率和複雜度,對於希望深入研究演算法理論的讀者很有幫助。 ‧豐富的練習題:每章結尾都有大量的練習題,這些題目設計巧妙,有助於對學習內容的強化和加深理解。 ‧現實應用:書中展示了多演算法在實際問題中的應用,增加了學習的趣味性和實用性。 這些特點使得《演算法導論》成為計算機科學領域的經典教材,廣受學術界和業界人士的推崇。 有些演算法書籍雖然嚴謹卻不夠完整,有些則包羅萬象卻嚴謹不足,獨樹一幟的《演算法導論》既嚴謹且全面,不僅深入探討廣泛的演算法,也透過自成一體的章節及演算法虛擬碼,讓各種程度的讀者皆能理解演算法的設計和分析。 《演算法導論》自第一版問世以來,已成為全球大學的主要演算法教材,以及專業人士的標準參考書。 本書的第四版做了全面的更新,採用更清晰的文筆、更個人化且性別中立的表達方式,並透過顏色來增進視覺表現。我們根據讀者的回饋改進問題,讓注釋和參考文獻反映這個領域的最新發展,並且在本書的網站提供新的補充教材。 第四版的新內容 ‧關於二部圖、線上演算法與機器學習的新章節 ‧探討遞迴方程、雜湊表、勢能函數及後綴陣列等主題的新內容 ‧新增140道新習題和22道新問題 本書提供超過900道習題與162個問題,讀者可以在本書網站上找到大部分的解答。適合大學或研究所的演算法或資料結構課程使用;此外,由於本書探討演算法設計的工程問題和數學層面,所以也適合專業技術人員用來自學。
Hello!Python程式設計
想從 0 基礎開始學會程式設計?快來閱讀本書 想看 2 行程式解 APCS 的例子?快來閱讀本書 本書著重解題方法,使用大量實例與圖示,協助您快速學會程式設計!本書由資深教師編撰,針對初學程式設計的困難,提供以下秘笈: *從 0 開始,讓您按部就班學會程式設計。 *超過 100 個範例可供動手練習。 *著重解題方法設計,範例皆提供解題方法設計、程式碼、執行結果、程式解說等。 *使用大量圖形說明解題方法。 *搭配 APCS 基本實作題,協助跨過門檻。
演算法 圖解原理 x Python實作 x 創意應用 王者歸來
演算法 圖解原理 x Python實作 x 創意應用 王者歸來 (全彩印刷) 本書內容 ★★★★★【國內第1本演算法 + 創意實作】★★★★★ ★★★★★【彩色圖解演算法】【Python創意程式】★★★★★ ★★★★★【約700張彩色圖片+ 296個創意應用】★★★★★ 這是一本使用Python從零開始指導讀者的演算法入門書籍,閱讀本書內容,讀者可以學會下列知識的創意與潛在應用: ◎演算法基本觀念 ★ 主要內容:時間複雜度、空間複雜度 ☆ 創意應用:一個要計算8411億年的程式 ◎陣列與鏈結串列 ★主要內容:陣列、單向(雙向)鏈結串列、循環鏈結串列 ☆創意應用:客戶資料管理、庫存管理系統、瀏覽器歷史記錄管理系統、音樂播放管理、醫療排隊系統 ◎佇列(Queue) ★主要內容:插入、讀取、串列模擬佇列 ☆創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理 ◎堆疊(Stack) ★主要內容:堆入push、取出pop、認識堆別在函數呼叫的角色 ☆創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理 ◎二元樹(Binary Tree) ★主要內容:建立、讀取、前序(中序與後序)遍歷二元樹 ☆創意應用:表達式樹、家譜樹、網頁導航樹、遊戲AI決策樹 ◎堆積樹(Heap Tree) ★主要內容:建立、取出、刪除、最小(最大)堆積樹 ☆創意應用:線上遊戲得分排行榜、物流中心的貨物調度、醫院緊急情況處理系統、電商平台推薦系統設計、多任務處理最短作業優先調度 ◎雜湊表(Hash Table) ★主要內容:雜湊表與陣列、效能分析、模組 ☆創意應用:電影評分系統、電子郵件垃圾過濾器、社交媒體標籤系統、網頁瀏覽記錄、簡單的快取系統 ◎排序 ★主要內容:泡沫、雞尾酒、選擇、插入、堆積樹、快速與合併排序 ☆創意應用:社交媒體貼文按讚數排序、任務排序、KTV點播次數排序、影評排序、旅館價位排序 ◎數據搜尋 ★主要內容:順序、二分搜尋、搜尋最大值 ☆創意應用:順序搜尋商品庫存、二分搜尋法查詢書籍、順序搜尋電子郵件黑名單、書籍搜尋使用二分搜尋法 ◎回溯演算法 ★主要內容:走迷宮、迷宮設計與堆疊 ☆創意應用:排列組合、密碼生成、圖的著色、任務分配、走迷宮 ◎從遞迴看經典演算法 ★主要內容:河內塔、八皇后、碎形、VLSI設計費波納契數列 ☆創意應用:費波納契數列、排列組合、密碼、最少著色、數獨 ◎圖形(Graph)理論 ★主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal ☆創意應用:走迷宮、社交網路中的最短關係鏈、網路爬蟲、航班路徑查找、檢測圖中的環、拓撲排序、島嶼數計算、金融與經濟分析 ◎圖形理論之最短路徑演算法 ★主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal ☆創意應用:GPS導航實例、金融市場套利檢測、專案管理中的最短時間計算、機器翻譯、機器人路徑規劃、電信網路費用計算、太空探測器的導航 ◎貪婪演算法(Greedy Algorithm) ★主要內容:局部最佳解、霍夫曼(Huffman)演算法、認識NP-Complete ☆創意應用:找零錢問題、選課分析、背包裝滿最高價值商品、購買廣告與電台選擇、業務員旅行之最短路徑、工作排程問題 ◎動態規劃演算法 ★主要內容:思維與步驟、弗洛伊德(Floyd-Warshall)演算法 ☆創意應用:找零錢問題、背包問題、旅遊行程的安排、挖金礦問題、最長共用子字串 ◎資料加密到資訊安全演算法 ★主要內容:資料安全與資料加密、摩斯密碼、凱薩密碼、文件加密技術 ☆創意應用:訊息鑑別碼、數位簽章、數位憑證 ◎常見職場面試的演算法 ★主要內容:基數轉換、質數、回文、歐幾里德演算法、最小公倍數、網頁排名PageRank ☆創意應用:文學創作、製造業同步生產週期、物流管理、網路路由週期性檢查 ◎精選LeetCode考題演算法 ★主要內容:爬樓梯、強盜搶劫、粉刷房子、粉刷籬笆、棒球比賽得分、判斷矩形是否相交、分糖果、機器人路徑、小孩分餅乾、賣檸檬汁找錢 ☆創意應用:財務規劃投資、最佳股票買賣時機、最佳資源分配、遊戲計分系統、迷宮探險
API設計模式|簡化整合的訊息交換技術
「本書綜合了理論與實務,包含許多深度見解但不失大局觀。這些見解基於豐富的實務經驗,並以嚴謹的學術方式撰寫,同時結合從業人員的回饋。我深信本書會為社群帶來幫助。」 —PROF. DR. DR. H. C. FRANK LEYMANN, MANAGING DIRECTOR, INSTITUTE OF ARCHITECTURE OF APPLICATION SYSTEMS, UNIVERSITY OF STUTTGART 適用於任何領域、技術或平台的API設計模式 API為各組織及生態系帶來突破性創新及數位轉型。架構師、設計師及開發者們需要專業設計指南,以建立友善、可信賴且高效的API。本書解決複雜的API通訊及內容,介紹可用於任何技術或平台的API設計方針。 集結五位作者撰寫的專業內容,從專案啟動、設定目標,到定義需求、細化設計、規劃演進以及建立實用文件,涵蓋整個API生命週期。本書將眾多實務者的集體智慧整合為44個API設計模式,使用背景、優缺點、概念解決方案及具體範例來解釋,並以兩個不同產業的專案,就領域模型、執行案例、決策敘事及套用模式作一致性解釋,使這些設計模式更易理解。 ‧以設計模式識別及克服API設計挑戰 ‧合理擴增API端點及服務 ‧設計請求和回應訊息的形式 ‧提升訊息設計品質 ‧API演進計畫 ‧API文件撰寫及溝通 ‧結合設計模式以解決實際問題,並做出最佳取捨 撰寫本書的團隊是架構師和開發人員的黃金組合,由經驗豐富的產業專家、模式社群領導者,以及學界研究員與講師所組成。作者們忠實地運用模式概念,將從包含設計力的問題情境中帶往概念性解決方案,包括具體的範例以及相關的模式建議。 許多模式都透過模式會議的指導與寫作者研討會,漸進且反覆地改善與加強,從中凝聚眾人知識得到結論。 本書提供多種API設計空間觀點,從規模與架構到訊息表現結構和品質屬性驅動設計,再到API演進。其模式語言可透過不同的途徑來瀏覽,包括專案階段和結構元素。全書分以五種類別共介紹44種模式,每個模式都有專屬的圖示幫助表達其本質,用作為助記符號及描繪API與其元素。 本書在提供決策模型中採取了獨特且新穎的一步,蒐集關於應用程式的重複出現問題、選項及標準,提供逐步、容易遵循的設計指南,且不會過度簡化API設計固有的複雜性。 本書結合理論與豐富的實務經驗為基礎,包含大量有價值的深刻建議而不失大局,並以學術性的嚴謹和從業人員社群的回饋方式記錄。不論是現在或是未來,與API設計與演進有關的研究、開發及教育的API設計人員,都將從模式中獲益。
掌握Java程式設計:使用長期支援版本JDK11/17
自從Oracle接手Java的發展之後,Java開始了天翻地覆的變化,加入了許多新功能,這些新功能都是為了跟上最新流行的程式語言與新型態的發布、維護架構。其中最重要的就是SE8的Lambda運算式與SE9的模組(module)。 自SE9開始,Oracle就採取敏捷開發的精神,每半年就發布一個新版本,不過這些大多是非長期支援版本,新版本一旦發布,舊的非長期支援版本就無法下載JDK了。所以開發與學習的首選通常以長期支援版本為主。依據Oracle的規劃,長期支援版本會在三年左右的時間發布,其中,SE11及SE17都是長期支援版本(LTS),本書的改版政策也跟隨此政策,只會推出適用於長期支援版本的書籍。 Java的新功能眾多,如何將這些新功能完美融入原有功能的講解是本書的重點,例如本書將Lambda運算式放在第十五章,讓讀者可以於學習過內部匿名類別後才學習如何利用Lambda運算式來取代內部匿名類別,並應用於視窗程式(事件傾聽處理)。本書將模組(module)放在第十一章的類別庫(package)之後,讓讀者理解如何透過模組來保護類別庫。至於SE10新增的小功能:var型態推斷宣告更是被不露痕跡地加入到第三章與第十五章,因為在SE11時,var型態推斷宣告已經被推廣至Lambda運算式,免除了程式設計師為了回傳值型態還需查閱手冊的麻煩。 本書改版自暢銷數萬本的《初學指引》系列,從SE8版開始更名為《掌握》系列。這是因為作者認為本書已經不再適用於只想學些皮毛的讀者,而是期望將讀者由初學者導引成為Java初級工程師,要做到這一點,就應該在第一本學習書籍當中,充分掌握Java的設計精隨以及關鍵基礎技術,故重新命名為《掌握》系列。 本書以細心規劃的進度,培養讀者在十六周的學習中,成功變身為Java初級工程師,同時釐清一些對於初學者容易產生困擾的技術。同時本書也搭配精心設計的累積式習題,讓讀者能夠循序漸進地真正成為一位Java程式設計師。 本書特色 .長支援版 .內容由淺入深 .整合模組與類別庫 .釐清複雜的泛型等語法 .Java SE7到SE11/17的無縫接軌 .釐清函數式介面與抽象類別的差異 .釐清匿名類別與Lambda運算式的適用場合 .釐清Java只有傳值呼叫,沒有如同C#的傳參考呼叫 .透過「Coding偷撇步、注意事項」加強讀者的程式設計實務經驗 .透過「延伸學習」明確引導讀者,未來的學習之路 .透過「筆者的話」向讀者傳遞正確的基本觀念 .探討浮點數變數為何不適合做為比較條件 .探討編譯器為何加入final的this參數? .探討高鐵為何會重複賣票 .累積式習題培養功力 .其他………… &
遞迴演算法大師親授面試心法:Python 與 JavaScript 解題全攻略
「無論你想在程式設計面試中獲得優勢, 想創造美麗的數學藝術, 還是頑固地非得理解這個概念的有趣特性, 這本書都將成為你深入遞迴這個兔子洞的指南(兔子洞裡還有兔子洞)。」 遞迴程式設計技術可以產生優雅的程式解決方案,然而更常見的是,它讓程式設計師感到困惑。這並不代表程式設計師可以(或應該)忽略遞迴;儘管遞迴以具有挑戰性而聞名,但它是一個重要的電腦科學主題,並且可以對程式設計本身產生敏銳的洞察力。至少,了解遞迴可以幫助你順利通過程式設計工作面試。 如果你是對電腦科學感興趣的學生,遞迴是你要理解許多流行演算法所必須克服的必要障礙。如果你是程式設計訓練營的畢業生或自學而成的程式設計師,並且順利跳過了更具理論性的電腦科學主題,但在「白板程式設計面試」中肯定還是會遇到遞迴問題。如果你是一位經驗豐富的軟體工程師,以前從未接觸過遞迴演算法,你可能會發現遞迴是你知識中一塊尷尬的缺口。 ❑ 本書目標讀者 本書適合那些對遞迴演算法感到恐懼或感興趣的人。對於新手程式設計師或電腦科學系的大一新生來說,遞迴主題就像難以理解的黑魔法一樣。大多數遞迴課程都很難理解,使得這個主題不但讓人覺得挫敗,甚至令人心生恐懼。對於這些讀者來說,這本書的直接解釋和充足的例子應該能幫助他們最終理解這個主題。 閱讀本書的唯一先決條件是具備 Python 或 JavaScript 程式語言的基本程式設計經驗,因為各章的程式碼範例使用了這兩種語言。本書的程式已被精簡到核心的基本結構; 如果你知道如何呼叫和建立函數,以及理解全域變數和局部變數之間的區別,那麼你就足以應付這些程式設計範例了。 本書使用 Python 和 JavaScript 範例來教授遞迴的基礎知識,揭示了遞迴的教學方法,並闡明了所有遞迴演算法的基本原理。你將學習何時使用遞迴函數(最重要的是,何時不使用它們),如何實現工作面試中經常提到的經典遞迴演算法,以及遞迴技術如何幫助解決有關樹走訪、組合學等等許許多多的問題,以及其他棘手的話題。 這個以專案為主的指南包含了完整的、可運行的程式,將能幫助你學習: ☑︎ 遞迴函數如何使用呼叫堆疊,這是一種在遞迴課程中幾乎從未討論過的關鍵資料結構 ☑︎ 「頭尾」與「信仰飛躍」技巧如何簡化遞迴函數的編寫 ☑︎ 如何使用遞迴為你的檔案系統編寫自訂搜尋腳本、繪製碎形藝術、生成迷宮等 ☑︎ 優化和記憶如何使遞迴演算法更有效率 &
【最新ITS認證第二版】Python零基礎入門班(含ITS Python國際認證模擬試題)
Python程式設計入門必修 國際認證考試必備 銜接職場應用 提高競爭力 Python是目前最熱門的程式語言,執行功能強大,但語法卻簡潔優雅、易於學習,更方便應用在許多專案實作上。它也沒有複雜的結構,程式易讀,且易於維護。 Python的應用範圍相當廣泛,無論是資訊蒐集、大數據分析、機器學習、網站建置,甚至是遊戲開發等,都能看到它的身影。本書以零基礎學習者的視角進行規劃,從最基本的認識程式語言與環境架設切入,再進到程式設計流程的完整學習,輔以觀念圖解、表格歸納,以及流程圖,並提供國際認證考試模擬練習,深入淺出一窺Python程式語言與設計的奧妙! ■適合無程式設計經驗或想打好Python基礎者,從中了解運算思維精神,扎根程式設計學習,培養邏輯運算能力。循序漸進的內容涵蓋:認識運算思維、程式語言與設計、環境建置、變數、運算式、判斷式、迴圈、串列與元組、字典、函式與模組、演算法,以及檔案與例外處理…等,讓初學者無痛學習,輕鬆打好基本功。 ■除了提供在本機建置開發環境的方法,更新增運用熱門Google Colab雲端開發環境的技巧,不需安裝設定即可撰寫並執行Python程式。 ■精心設計100題實作範例,輔以130題綜合演練,從做中學,快速學會每個學習重點,並能應用於實際專題中。範例大小適合讀者平時的學習,或每週固定時數的教學課程。 ■融入精彩的情境實例,貼近生活應用,也讓練習更有趣,如:數學運算、密碼判斷、成績評等、電影分級、百貨公司折扣戰、數字比大小、薪資計算表、成績單與業績報表列印、日期時間格式與溫度轉換、擲骰子遊戲、大樂透抽獎、搜尋中獎者、彩券對獎,以及血型個性、四季天氣、成績輸入、產品銷售、電費、世大運獎牌數與家庭支出查詢…等運用。 ■提供更完整的演算法運作實例搭配流程圖,有利理解運作思路與規則,讓程式開發更加得心應手。 ■收錄160分鐘的Python開發環境建置與語法入門影音教學,搭配書籍內容快速吸收,讓學習更有效率。 ■書末納入ITS Python(IT Specialist Certification)資訊科技專家國際認證模擬試題,由ITS Python國際認證滿分講師主筆編寫。新版內容對應最新國際認證考試題目,彙整重要觀念,並有內容章節的標示,以及提供參考解答,藉此完整了解命題方向,取得國際認證的最佳學習方式與應試能力。 ■附加「善用ChatGPT學Python入門」影音教學,除了寫程式之外,其實我們可以運用ChatGPT來解釋程式碼、為程式碼註解、撰寫指定功能語法,以及幫程式除錯…等,加速與深入Python程式語言的學習。 【書附超值學習資源】 160分鐘Python快速入門影音教學/範例程式檔/綜合演練參考解答 ITS Python國際認證模擬試題參考解答/原廠認證應考資訊 「善用ChatGPT學Python入門」影音教學 【關於IT Specialist資訊科技專家國際認證】 ITS Python為「IT Specialist資訊科技專家國際認證」系列考科之一,IT Specialist Certification是由PearsonVUE.Certiport(國際專業教育與認證機構)承接微軟MTA技術專業國際認證架構,進行測驗考綱再研發後推出之最新品牌。
遊戲中學習Scratch運算思維與程式設計(1版)
Scratch是美國麻省理工學院(MIT)所開發的程式語言,此軟體的主要特色就是利用堆疊與鑲嵌等方式,將各種類型的程式積木組合在一起,只要程式積木之間可以互相嵌接,就可以按下綠旗讓畫面動起來。本書筆者規劃了16個章節的內容,除了認識Scratch的視窗環境外,開宗明義就先將舞台背景與角色造型的新增/編修技巧、腳本流程的規劃、程式堆疊技巧、聲音的插入與編輯等功能做全方位的說明,接著就是依照軟體的難易程度,分別規劃成14個範例,其內容與重點說明如下: ● 動態賀卡的吸睛創意――基礎動畫應用 ● 超萌寶寶的魔法變裝秀――動畫故事的串接 ● 泰國旅遊的實境體驗――單一角色多造型應用 ● 夢幻海底世界的私房創意――反彈與隨機運算 ● 幼兒字卡練習器――廣播與收到訊息的應用 ● 百變髮型設計懶人包――等待滑鼠被點擊 ● 風景相片魅惑萬花筒――縮圖按鈕的應用 ● 歡樂同學錄的製作錦囊――按鈕連結顯示 ● 驚奇屋歷險特效攻略――滑鼠游標的應用 ● 筆畫心情塗鴉板――筆畫效果應用 ● 打造音樂演奏饗宴――樂器與琴鍵的應用 ● 發財金幣不求人――左右按鍵控制 ● 老實樹遊戲攻心密技――詢問與回答的應用 ● 地表最好玩的乒乓球PK賽――座標與角色控制 本書特色 免費且易學:Scratch由MIT開發,免費使用。 圖形化介面:以積木堆疊方式簡化程式設計,無需寫代碼。 全方位功能:詳盡說明舞台背景、角色造型、腳本流程、聲音編輯等。 激發創意:透過互動式故事、動畫、遊戲等培養邏輯思考與創意。 16章精心規劃:從基礎入門到進階應用,共14個範例逐步引導。 &
資料結構:C語言實作(第四版)
AI助攻!搭配ChatGPT學習效率加倍! ★提供用書教師相關的教學資源★ 【資料結構】(Data Structures)是資訊科學領域中的基礎課程,多數資訊相關科系的研究所入學考試會將之列入考科,而諸如高考三級、地方特考、司法特考、鐵路考試中的資訊類別考試亦會將之列入考科,因此選擇一本觀念正確、條理清晰且掌握命題趨勢的書籍是很重要的。 本書以實例演練為導向,漸進式的學習架構,詳盡解說各種資料結構,期能帶領讀者了解其中的精髓,進而具備開發大型程式的功力。此外,為了因應未來報考資訊相關科系的研究所或準備國家考試,本書精選題型多元的考題,並融入相關章節、隨堂練習與學習評量,建議讀者勤加練習。 AI助攻 *使用【ChatGPT】輔助學習資料結構,例如查詢理論與實作、上傳圖片解題、出題練習、撰寫程式、優化與除錯、與其它程式語言互相轉換等,這些技巧大多不限定於ChatGPT,也可以靈活運用在【Microsoft Copilot】、【Google Gemini】等AI助理。 *本書是以C語言進行實作,讀者可以自行使用ChatGPT轉換成Python、C++、C#、Java等程式語言。 *ChatGPT相關內容統一放在本書最後一章,希望讀者以學會資料結構為主,而使用ChatGPT為輔,同時不會干擾到學習或上課的節奏。 考題觀摩 收錄研究所入學考試與資訊類別國家考試的精選考題,增加實例演練經驗,提升即戰力。 &
UML物件導向系統分析與設計(第五版)
本書以物件導向技術為主軸,輔以UML為塑模工具來闡述有關近代資訊系統開發之方法。適用對象包含任何對系統開發有興趣之同學,程式設計師,軟體工程師,及系統分析師。 & 本書主要是從以下幾個觀點來介紹系統的分析與設計的過程: ☑ 功能觀點:著重於需求分析的捕捉,使用案例圖(Use Case Diagram)的塑模,以及活動圖(Activity Diagram)的流程分析及輔助性。 ☑ 靜態觀點:著重於概念模型(Conceptual Modeling)的基本概念,類別圖(Class Diagram)的塑模原則,以及物件圖(Object Diagram)的輔助性。 ☑ 動態觀點:著重於分析物件(Analysis Object)的應用,循序圖(Sequence Diagram)的塑模,以及建立原則。 ☑ 部署觀點:強調軟體元件的封裝管理(Component Diagram),配置與部署(Deployment Diagram)。 ☑ 設計觀點:內容強調類別以及類別庫的架構設計原則,並介紹基本的設計樣式(Design Pattern)以及框架(Framework)的概念。 &
OpenTelemetry 入門指南:建立全面可觀測性架構(iThome鐵人賽系列書)【軟精裝】
本書內容改編自第14屆iThome鐵人賽DevOps組佳作系列文章 《淺談DevOps與Observability》 & 本書特色 & 本書探討如何透過系統可觀測性應對日益複雜的系統架構,如微服務及雲端環境。隨著系統架構的演進,傳統的地端管理方式已不敷使用,作者提供一系列基於可觀測性工程的實踐方法來解決營運中遇到的問題,這些方法不僅適用於技術人員日常的維護工作,也便於團隊引入並落實。 & 書中重點介紹了如何使用OpenTelemetry標準框架結合Grafana Labs提供的開源工具,如Grafana、Loki、Tempo及Prometheus來收集、組裝和呈現遙測數據。這些工具和框架的配合使用,能夠有效地增強系統的可觀測性,並以儀表板直觀展示系統行為數據,從而提供深入分析。 & 此外,本書也介紹了k6這一系統負載測試工具,它能幫助團隊在開發週期中建立多種測試場景,即時顯示性能指標,進而在預備環境中驗證系統是否能達到預定的SLO。這不僅優化了開發流程,也為系統穩定性提供了保障。 & 最後,作者結合自身在使用OpenTelemetry的實務經驗,並且作為「The Observability Engineering」一書的譯者,引導讀者理解OpenTelemetry的運用方式及其在系統監控中的獨特價值,展示了如何通過增強系統的可觀測性來滿足當前與未來的監控需求。 & 專業推薦 & 從基礎理論說明到實踐,甚至是一步一步完成 Demo 的工作坊,這本書都一應俱全。雖然書名是《OpenTelemetry 入門指南》,但其內容的完整程度,對於初學 OpenTelemetry,或是想導入 OpenTelemetry 到手上系統的團隊,都能滿足需求。相信這本書一定是學習 OpenTelemetry 的最佳選擇!——OAuth 2.0 從入門到實戰作者,Miles & 在本書中,雷N 從 OpenTelemetry 的歷史背景到具體架構及其核心元件,再到可觀測性重要支柱,進行了詳細的闡述。隨後,他通過 OpenTelemetry Collector 的功能,將理論與實踐結合,展示了如何在實際項目中應用 OpenTelemetry。不僅如此,他還進一步整合了在可觀測性領域中備受推崇的 Grafana Stack,大大提升了 OpenTelemetry 和可觀測性的實用性。——Grafana 傳教士,Mike Hsu &
軟體工程理論與實務應用(第七版)
■ 最新第七版增訂:說明現代軟體工程師的職涯路徑與選擇、加強軟體架構設計的介紹、透過Google的軟體工程實務介紹長期持續開發(Programming over time)的概念、增加軟體重構的內容與行動應用app的開發。本書結合軟體工程的核心知識與實務應用,透過實例帶領讀者學會如何開發與管理軟體產品。內容包括: ■ 軟體工程的基本觀念:先釐清「程式」、「軟體系統」、「應用系統」、「軟體開發」與「軟體生命週期」等基本概念。 ■ 軟體工程的程序與方法:軟體系統的開發從開始規劃、分析、設計、製作、測試、上線使用到維護,分成好幾個階段,每一個階段都有一些可以採用的方法與技術。 ■ 現代物件導向軟體工程:這是目前軟體開發最普遍採用的技術,很多開發工具與技術都運用了物件導向的概念與方法。 ■ 安全軟體系統開發週期(SSDLC):政府與一般企業開始要求在軟體開發時就採用的開發流程與方法,防止開發期間留下資安的漏洞。 ■ 軟體工程相關的技術:軟體再用、MDA(model-driven architecture)、反向工程、設計模式、CMMI、軟體重構、新舊系統的轉換等。 ■ 軟體工程的新發展:Google的軟體開發實務經驗、軟體產品線、雲端運算、App、軟體安全、服務導向的架構(SOA,service-oriented architecture)與觀點導向(aspect-oriented)的開發技術等。 本書適用對象: ■ 學校或是推廣教育的老師:本書可以做為軟體工程相關課程教科書,內容約對應到18週(54小時)的學期課程。 ■ 資訊專業人士:建立軟體工程方面的專業背景。 ■ 對於軟體開發有興趣的技術人員:軟體工程探討了很多軟體開發方面的原理與策略,可以提昇專業能力與解決問題的技巧。 ■ 軟體產品的推廣人員:有軟體工程的背景會更了解軟體的特性與用途。
資料結構:使用Python(增訂版)
本書適合已經學過Python程式語法、具有基礎Python類別與物件語法與概念的讀者進階研習資料結構。使用圖解方式說明資料結構的概念,依照步驟顯示資料結構中新增、刪除、搜尋元素的運作過程,各種資料結構的優缺點與使用時機,務求讓概念的解說清楚易懂。接著,進行程式碼實作與解說,並分析程式的執行效率。本書從基礎到進階方式安排章節次序,依序為資料結構簡介、Python的資料儲存容器、陣列、鏈結串列、佇列與堆疊、樹狀結構、進階樹狀結構、排序、搜尋與雜湊、圖形資料結構與圖形走訪、圖形最短路徑、常見圖形演算法、2-3-Tree、2-3-4-Tree 與B-Tree。一步步帶領讀者進入資料結構的世界,熟悉資料結構的概念,以運用資料結構解決問題,提高程式執行速度。學習資料結構沒有捷徑,在程式實作中不斷地融入資料結構,比較不同資料結構對程式執行速度的影響,慢慢累積就會進步。
C的快速+Python的易學 - Go語言全功能開發養成書
本書分為四大部分。 第1部分包括第1到13章,主要介紹Go標準函式庫的同步基本操作,包括互斥鎖Mutex、讀寫鎖RWMutex、WaitGroup、條件變數Cond、Once、Map、Pool、Context、 channel等,以及最新的原子操作知識,主要的重點在channel身上,最後還介紹了Go的記憶體模型。 第2部分包括第14到18章,主要介紹Go官方的擴充函式庫和第三方的同步基本操作,包括訊號量、SingleFlight、CyclicBarrier、分組操作庫、限流庫等。 第3部分包括第19章,主要介紹基於etcd的分散式同步(並發)基本操作。 第4部分包括第20章和第21章,主要歸納總結Go的並發模式,並嘗試使用本書介紹的同步基本操作解決經典的併發問題。 本書特色 ☆和C一樣快,和Python一樣好學的新一代程式語言 ★同步基本操作,互斥鎖Mutex、讀寫鎖RWMutex、WaitGroup ☆條件變數Cond、Once、Map、Pool、Context、Channel ★原子操作原理及實作 ☆Go的記憶體模式 ★Go官方及擴充函式、第三方同步基本操作 ☆訊號量、SingleFlight、CyclicBarrier、分組操作庫、限流庫 ★Etcd的分散式同步操作 ☆Go並發模式的實作 ★經典Go問題解決 &
駕馭組織DevOps六面向:變革、改善與規模化的全局策略
20年資深軟體業、企業營運顧問專家傳授實戰策略 解決DevOps經常遇到的難題,靈活應對多種情境 ★ POWERS 模型 + 5 變革方法 + 1 工作法 ★ 讓 DevOps 靈活運作,帶領團隊交付成功的產品! 業界採用 DevOps 已有多年,但大多數的討論往往只侷限在工具與技術層面,然而以價值流為基礎的 DevOps 對組織的影響,更多時候是在日常流程、跨部門的合作模式。這些沒有被妥善考量的要素才是真正掌控企業運用 DevOps 產生效益的關鍵。 因此,本書提供具體的思考框架,引導 DevOps 實踐者站在全局的視角綜觀整個 DevOps 導入流程,循序漸進地找出問題,建立策略性思考,提出改善與變革方法,讓組織有效地擁抱 DevOps。 ▍四大重點 1 ▶ 建立全局思維腦 以情境故事帶入理論,從全局視角看懂成功導入 DevOps 的關鍵 2 ▶ 導入 POWERS 模型 活用 POWERS 模型引導策略規劃,找出有效的 DevOps 運用方式 3 ▶ DevOps 規模化 掌握 DevOps 規模化的關鍵要點,成功將導入策略擴展至組織 4 ▶ 有效運用管理技巧 提供團隊引導及溝通的管理策略,減少阻礙、達成目標 本書將協助你 ──── ✔ 真正理解 DevOps 的全貌,以及導入 DevOps 的成功要素 ✔ 站在全局的視角,從情境故事中找出解決問題的方法 ✔ 理解並運用模型與變革方法:POWERS 模型、三步工作法、庫伯勒-羅絲變革曲線 ✔ 持續導入 POWERS 模型,並將 DevOps 規模化至組織 ▍適合讀者 • 正在或計畫推動 DevOps,但想知道如何規劃有效做法的領導者 • 想知道 DevOps 會帶來哪些影響的企業治理政策發展者 • 想要擴展 DevOps 成功經驗的推動者 • 參與 DevOps 導入的團隊成員 • 正苦於改變卡點的所有人 本書讚譽 「這本書不僅是一本工程與技術的指南,同時也融合了故事性與可實踐性,堪為入門的全面手冊;無論是 DevOps 新手還是有經驗的從業者都能從中獲得啟發,並實際應用於工作中。我相信正在思考如何有效推動 DevOps 變革和實現組織的數位化轉型的企業高管們,對這本書是能心領神會並且獲益匪淺的。」──── 井琪 │ 遠傳電信 總經理 「作者將自己融會貫通後的 DevOps 六個面向以 POWERS 思維方式務實地呈現了出來,彌補了許多支持 DevOps 的人士空喊口號而忽略了實做方法的缺憾。這一點讓人驚豔,這是一種將結構化思維導入組織變革過程然後再形成決策的思維方法,它紮實地提供了實踐 DevOps 時的決策依據,實在難能可貴。」──── 李智樺 │ Ruddy 老師 「這本書是Augustin累積多年技術管理實務心得的精彩總結,我推薦給所有的中高階經理人,包括非科技產業和職務的朋友。這是一本組織變革的工具書,可以細細品味。」──── 李境展 Tomas Li │ 新加坡商鈦坦科技 總經理 / 出版《鯨游藍海 – 鈦坦科技的敏捷之旅》 「期盼多年,終於看見來自台灣、以 DevOps 為名的『組織變革』好書。如果你喜歡《鳳凰專案》與《獨角獸專案》,你也會喜歡盧建成的這本《駕馭組織 DevOps 六面向》。本書以故事為引子,搭配作者充沛的經驗與知識,幫助讀者建立 DevOps 的正確認知;DevOps 不只是工具,而是一趟企業變革與轉型之旅。本書值得每一位 DevOps 實踐者細細品讀!」──── 陳正瑋 │ DevOps Taiwan Community 志工 / 前組織者 (依姓氏筆畫排序) &
機器學習入門: Weka(第1版)
本書主要分為兩個部分:機器學習理論與實踐分析。內容以Weka為工具,並透過易於理解的方式帶讀者們學習「機器學習」所需的分析方法,同時結合實踐利用案例一步一步說明使用方法,以及工具的掌握,利用無需撰寫程式的方式,讓你以最輕鬆的方式建立機器學習的基礎。 目錄: 第 1 章 Weka的安裝與主要功能 第 2 章 利用Excel與Weka的簡單操作──機器學習與決策樹 第 3 章 檔案形式與屬性類型的轉換 第 4 章 屬性的選擇 第 5 章 分類分析 第 6 章 集群分析 第 7 章 關聯規則分析 第 8 章 時間序列分析 第 9 章 「實踐篇」:使用Weka的各種例題 第 10 章 貝氏網路模型 第 11 章 Weka API &
OpenAI API基礎必修課:使用Python(GPT-3.5、GPT-4、GPT-4o、DALL·E、TTS、Whisper模型)
💡 從觀念理解到開發實戰! 💡 使用OpenAI API x Python與GPT-3.5、GPT-4、GPT-4o、DALL•E、TTS、Whisper模型 開發聊天服務、文本生成、AI繪圖、視覺、語音的AI應用程式!*專家資深教師執筆 由教授OpenAI API、Python與人工智慧專業教師共同編著,針對初學者學習OpenAI API使用Python開發人工智慧軟體服務所應具備知識技能所編寫的實務教材。 *循序漸進無痛上手 內容兼具理論與實務,利用大量OpenAI API實例說明並引申教材,所舉的專題範例淺顯易懂且具代表性和實用性,非常適合教學和自學,使初學者快速進入OpenAI API人工智慧軟體服務的開發殿堂。 *內容多元範例豐富 介紹 Open AI 的金鑰申請、Colab 編輯環境、Gradio 互動式網頁、GPT-3.5、GPT-4與GPT-4o的使用、Chat Completions API 參數、ChatGPT 聊天機器人、整合搜尋讓聊天機器人突破時空限制、自動串接、函式呼叫和微調模型讓文本生成符合事實。 以Images API 進行AI繪圖、語音API與GPT-4o進行電腦視覺,讓AI應用程式擁有讀、畫、看、聽、說等功能。 *實務專題打下基礎 使用Gradio 互動式網頁、Tkinter視窗套件結合OpenAI API開發生成式人工智慧飯店客服機器人、考卷產生器、網頁產生器三大專題。透過實務專題開發,將Python的相關技術與OpenAI API完美整合,提升初學者人工智慧軟體開發的專業能力。
Python X ChatGPT程式設計實務:從入門到精通step by step
ChatGPT帶你學會Python程式設計 運算思維×演算法×實作遊戲 精選範例、循序漸進、易懂易上手 課後習題、難易適中、強化學習效果 Python 是一種執行效率不錯的直譯式語言,可以在大多數的主流平台上執行。更棒的是, Python 具有許多物件導向的特性,更是資料解析、資料探勘(Data Mining)、資料科學工作中經常被使用的程式語言,可以廣泛應用在網頁設計、App 設計、遊戲設計、自動控制、生物科技、大數據等領域。同時,Python 擁有第三方套件及開發工具,可以幫助程式設計師輕鬆地完成許多的程式設計開發工作。 本書結合運算思維與演算法的基本觀念,所有程式碼都已在 Python 開發環境下正確編譯與執行。這些主題包括: • ChatGPT 與 Python 雙效合一 • 大話變數與資料處理 • 一看就懂的運算式與運算子 • 選擇結構一次搞定 • 迴圈結構體驗之旅 • Python 複合資料型態的完美體驗 • 模組與套件實用關鍵密技 • 檔案輸入與輸出的速學技巧 • 活學活用 2D 視覺化統計圖表 • 玩轉繪圖與影像處理的私房攻略 • 解開網路爬蟲程式的神秘面紗 • 演算法的應用:迷宮問題的解決方案 • 海龜繪圖法(Turtle Graphics)繪製圖形 • 猜數字遊戲 • OX 井字遊戲 • 猜拳遊戲 • 比牌面大小遊戲 • 實作動作型射擊遊戲 • 實作 Unity 3D 遊戲不求人 &
Clean Code錦囊妙計
提升程式設計與品質的訣竅 推薦給堅持寫出優質軟體的你 無論技術如何發展,程式碼的簡潔仍然至關重要。 程式碼的簡潔度和明確度,不僅是程式設計師的責任,也影響資源分配、開發策略、專案管理等面向,甚至關乎整個軟體產業的發展。 雖然 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背後的理論 ‧從多種現代程式語言的實際案例中學習 ‧全面瞭解各種程式碼異味、它們的影響和可能的解決方案 ‧寫出直接、易讀和易學的程式碼
資料結構初學指引:入門精要版(第四版)
■考試得高分:提供考試偷撇步,教你如何快速寫出前序、中序、後序走訪。考試不必陷入遞迴的追蹤。 ■學習超簡單:提供學習資料結構的利器——動態影片,透過動畫幫助你理解演算過程的變化。 ■漸進式學習:慢慢地逐步加入C語言進階技術講解,從頭學起。 ■焦點最集中:挑選資訊領域必備的,基礎資料結構做為主要內容。 ■觀念最新穎:以新的抽象化概念,來看待資料結構與程式的關係。從多面向來說明什麼是資料結構,為何要學習資料結構。 動畫展示——學習資料結構與演算法的不二法門 一、動態的表達 資料結構最適合的學習方式應該是動態的,由於平面書籍的限制,因此,常常造成讀者的學習困難,本書提供動態影片來解說各種資料結構的運算與排序搜尋演算法,使讀者能夠先理解,然後自然地產生興趣。 作者特將動態影片轉為長達至少38分鐘的影片檔,並將部分預覽放置於youtube 請上youtube搜尋「資料結構 初學指引 陳錦輝」關鍵字; 相對於網路上本書的免費影片,由本書官網下載的動態影片,還可自由暫停與調整播放速度,學習更方便。 二、循序漸進的學習 初學者在學習資料結構的初期,最大的困難在於看不懂C程式,本書提供虛擬碼及C函式雙格式的演算法,幫助讀者理解,並且搭配「老師的叮嚀」、「小試身手」等階段式的步驟,循序漸進地讓讀者複習C語言,並在程式碼旁增加大量說明框,讀者能夠快速理解程式碼與圖形的對應,不但能學會資料結構,更能在程式中活用。 三、基本觀念的建立 許多人常常認為堆疊是堆疊、樹是樹、陣列是陣列、鏈結是鏈結,之間並無關係,問他什麼是二元樹時,只會畫出二元樹的抽象圖,但不能理解其底層的實作。或許能用筆寫出二元樹走訪結果,但無法以程式來實作。本書在第一章就先闡明資料結構的層次,讓讀者在學習整套課程之前,先有心理準備,避免片段式學習。 四、多元學習 本書包含抽象化觀念的建立、考試偷撇步、Coding偷撇步、學生與老師的QA、延伸學習等,滿足各方面的學習需求。 &
實戰領域驅動設計:高效軟體開發的正確觀點、應用策略與實作指引
領域驅動設計之父 Eric Evans 親推的必看專書! 「搞笑談軟工」板主 Teddy 專文推薦 關於 [名家名著] 30 領域驅動設計(DDD)是一種軟體開發方法,只要實作得當,可以幫助開發人員設計出高品質的軟體模型,明確地反映出預期業務目標。然而能不能成功實作 DDD,卻是許多 DDD 開發人員所遭遇到的共同難題,對於新接觸 DDD 的人來說更是困難重重。作者 Vaughn Vernon 以一種獨到的方式將 DDD 中的抽象概念統整起來,並做出規範,而這些指導原則,正是實作 DDD 的最佳指引。作者用搭飛機來比喻接觸 DDD 的心情,將 Eric Evans 的《領域驅動設計: 軟體核心複雜度的解決方法》比喻為「從高處俯瞰的視角與寬廣的視野」,而本書則像是一張地圖,其作用是「帶領各位讀者緩緩降落、停穩飛機,走一條熟悉的路線安全到家」。 《實戰領域驅動設計》以由上而下的方式說明 DDD,將戰略模式與基礎的戰術程式設計工具自然地結合起來。Vaughn Vernon 示範了如何在現代軟體架構中實作 DDD,強調業務領域概念的重要性與價值之同時,又不失技術層面上的務實考量。 本書是基於 Eric Evans 的開創性著作《領域驅動設計》一書而來,作者透過我們都熟知的業務領域範例講解如何實作 DDD。所有的原則都搭配真實的 Java 程式範例,對於 C# 程式語言的開發人員也同樣適用,所有的範例內容都來自於一個設想案例:基於一個假想的大型 SaaS 多租戶 Scrum 協作系統的開發案例研究。 本書作者將帶領讀者跨越「DDD-Lite」的侷限,不僅僅是將DDD作為一套技術工具運用,而是透過 Bounded Context、情境地圖、通用語言,充分運用 DDD 的「戰略設計模式」。而透過書中的技術與範例,可以加速軟體開發、提高品質,讓軟體更具靈活性與可擴展性,同時緊密地與業務目標保持一致。 【本書精彩內容】 ☑ 以正確的方法踏入 DDD 的世界,就能快速從中獲益 ☑ 說明如何將 DDD 運用於不同的架構中,包括六角架構、SOA、REST、CQRS、事件驅動設計以及基於 Data Fabric/網格的架構 ☑ 妥善地設計與運用實體,並了解何時該使用值物件而非實體 ☑ 學習掌握與運用 DDD 強大的新技術——領域事件 ☑ 利用 ORM 與 NoSQL 和其他資料庫等技術來實作 Repository 各界專業人士推薦 「閱讀 DDD 藍皮書時搭配本書一起服用,學習效果更好。此外,本書還包含在 DDD 藍皮書中沒有提到,但後來 DDD 社群廣泛使用的模式,像是領域事件(Domain Event)、事件溯源(Event Sourcing)、六角架構、命令與查詢責任分離(CQRS)等,兼顧深度與廣度,誠意十足。」—Teddy Chen,部落格「搞笑談軟工」板主 我個人的著作《領域驅動設計》(Domain-Driven Design)一書出版近九年,這些年已經累積了不少關於 DDD 的新知識,包括基礎知識新的介紹方式,而 Vaughn 這本書正是對 DDD 有最完整闡述的指引,更為我們帶來了全新的實作觀點。」—Eric Evans,《領域驅動設計》作者 「對於期望提升技術的軟體開發人員來說,想在軟體開發過程中遵循最佳的專業實踐方法來設計與實作領域驅動的企業應用程式,《實戰領域驅動設計》傳授了過去幾十年領域驅動設計和企業應用程式架構社群努力耕耘的寶貴知識。」—Randy Stafford,自由架構設計師,Oracle Coherence 產品開發部門 「對於渴望落實 DDD 設計的人來說,絕對不可錯過本書。」—Udi Daham,NServiceBus 創辦人 &
圖說演算法:使用Python(第二版)【好評回饋版】
☝ 博碩嚴選!☝ 零負擔理解演算法設計技巧 零程式基礎也能快速上手 採高CP值Python語言實作程式 ☝ 佳評如潮,好評再上市!☝ 一本輕量級演算法, 是您獲得程式設計新技能, 提升自我價值的最好投資 當寫程式成為越來越普及的課程,讓人人擁有程式設計實作能力,已是各學校資訊教育的首要重點。演算法一直是電腦科學領域非常重要的基礎課程,從程式語言實作的角度,確實是有志從事資訊工作的專業人員,不得不重視的一門基礎理論。 為了讓讀者能以容易理解的方式吸收演算法與基礎資料結構的相關知識,全書使用簡明的圖例介紹最常用演算法的概念,包括:分治法、遞迴法、貪心法、動態規劃法、疊代法、枚舉法、回溯法…等,並應用不同演算法延伸出重要資料結構,例如:陣列、鏈結串列、堆疊、佇列、樹狀結構、圖形、排序、搜尋、雜湊…等。而本次改版亦補強地加入了運算思維的重要觀念與實例演練,並將實戰安全性演算法與人工智慧相關演算法納入,同時搭配Python程式語言舉例實作,是您入門演算法的最佳首選。 本書特色 ✔強化程式設計邏輯:豐富圖例闡述基礎,將演算法做最簡明的詮釋及舉例 ✔演算法最佳首選:配合實作程式碼,將各種演算法應用在程式設計的領域 ✔完善科學領域重點:加入實戰安全性演算法與人工智慧的相關演算法 ✔驗收學習成果:設計難易適中的習題,參閱國家考試題型,提供進一步演練 &
AI時代Math元年:用Python全精通統計及機率
全書分為以下幾個部分: 統計學:機率、高斯、隨機、頻率派開始談起,包括統計描述、古典機率模型、離散隨機變數、離散分佈、連續隨機變數及連續分佈一直到高斯部分,包括了一元、二元、多元、條件高斯分佈,中間也提到最重要的斜方差矩陣。 再來的部分說明了隨機,包括了隨機變數,蒙地卡羅、頻率派統計、機率密度。 接下來說明了貝氏定理部分,包括貝氏分類、進階貝氏分類、貝氏推斷入門及進階以及馬可夫鏈蒙地卡羅。 最後一部分則以橢圓為主,包括了馬氏距離、線性迴歸及主成分分析,搭配本書系其它書籍,相信AI的數學,對你來說只會是開心而不是阻礙。 ●&& &宇宙的語言是數學,數學的精華是機率,機率的表達是統計! ●&& &機器學習、深度學習、人工智慧,控制系統都覆蓋的機率統計基礎 ●&& &統計描述方法:描述、推斷、圖、差、位、距、值、度、變 ●&& &古典機率、條件機率、全機率理論 ●&& &離散變數、離散分佈、連續隨機變數 ●&& &一元、二元、多元、條件高斯分佈、斜方差矩陣 ●&& &隨機變數函式、蒙地卡羅模擬 ●&& &頻率派統計、機率密度、機率質量 ●&& &貝氏定理、貝氏分類、貝氏推斷、馬可夫鏈 ●&& &馬氏距離、線性迴歸、主成分分析 本書資源可至深智官網下載:deepwisdom.com.tw &
優羽和程式設計魔法筆記本
忘東忘西該怎麼辦?有沒有人可以主動提醒我? 不如設計程式來幫忙解決吧! 程式設計可以讓你與電腦相處愉快,讓生活更便利,就像神奇的魔法一樣。 但是…… 該怎麼開始? 為什麼我必須這樣寫? 我寫的程式為什麼無法讓電腦理解我想要它做的事? 嗚…程式設計怎麼這麼難…… 這是一本適合所有想了解程式設計的人(不僅只是兒童)的入門書籍。 作者鳥井雪女士本身是程式設計師,也是育有兩寶的媽媽。 鳥井女士規劃過許多程式設計的課程,特別是為女性及初學者打造的課程,擁有相當豐富的經驗。 她以過往規劃和教授課程的經歷來打造本書,在初學者容易碰到的思維門檻上,精心打造了能以生活經驗幫助思維遷移的方式,希望讓所有初學者能安心踏入程式設計的世界。 ---------------------------------------------- 不久的將來,人手一台小型電腦、與電腦一起生活的日子將成為常態。 優羽十歲生日時,得到了一台小型電腦「minio」,可是她一直無法讓minio搞懂她想做的事。 此時,隔壁的姊姊送她一本「魔法筆記本」。 當優羽拿起這本筆記本時,筆記本開始自動翻頁,原本一個字都沒有的頁面,逐漸浮現出文字…… 「接下來,我將幫助你和你的電腦變成好朋友。」 藉由魔法筆記本的引導,優羽逐步解決了很多生活中「有點麻煩」的事,減少了不少困擾! 不用再擔心搞錯上學該準備的用品 可以弄清楚媽媽也記不住的獎勵點數 也不再錯過和朋友一起活動的時光 …… 這些好的轉變,讓優羽再遇到「有點麻煩」、「想偷懶」的時候,會開始思考能讓事情變得更順利、更方便的方法,也讓優羽逐漸對自己充滿自信! ----------------------------------------------- 「程式設計」就是把想法和問題轉換成可執行的程式碼的方法。 學會如何設計程式之後,就可以把電腦的能力變成自己的力量。 本書可以讓你模擬程式設計的過程。 不論是可以按照預期順利執行,或無法成功執行而煩惱地嘗試各種方法,都能從設計程式的過程中,透過與電腦互動,整理問題,一點一滴累積解決方法的能力,發現真正的樂趣。 就從動腦解決生活中的大小麻煩事開始吧! 本書的特色 ‧著迷於故事情節的同時,瞭解程式設計的思考方法 ‧包含程式設計的基本元素(變數、條件分歧、重複、陣列、函數) ‧可以了解程式設計與現實生活中發生的事情的關聯性 本書從人物設計、世界觀、對話和情節設計,乃至於詳細又容易理解的文字表達,鳥井女士都以獨有的視角,做了完整且細膩的安排。 故事從再平凡不過的日常場景為開端,對話和事件都能在你我的日常生活中找到相似的一幕,尤其是那些曾在腦海中閃過「好麻煩,真希望有人可以幫我……」的念頭,讓人立刻就和主角產生共鳴,想繼續看下去主角要如何解決這些「小麻煩」。 鳥井女士在角色的設定用了許多小細節去破除性別印象,處處顯示著她為全齡讀者設想的溫柔。讀者可以很容易將自己或身邊的任何一個孩子帶入主角視角,這些不時就能與自身經驗重疊的安心感,正是讓人欲罷不能地讀完一本程式設計書的關鍵。 而本書繪者鶴谷香央理女士,也以慵懶恬靜的畫風來呼應這份溫柔。將抽象的設定忠實地化為具體的圖像,呈現給每位讀者。兩人的合作可說是一時之選。一起來發現作者與繪者的各種巧思安排吧! 為計算機科技領域的讀者提供優質叢書,一直以來都是歐萊禮圖書的理念,近年也逐步為年輕讀者打造接軌科技脈動的讀物。日本歐萊禮與作者鳥井女士以這個想法為匯聚點,量身訂做了這本適合初學者的入門書,希望不論是誰都能順利接軌光速變化的資訊時代。
建立演進式系統架構|支援常態性的變更 第二版
讓架構師了解如何將系統架構視為靈活的推進器,以因應快速變化的需求。 提供最新技術、知識和訣竅,以確保軟體架構敏捷且跟上時代變遷。「隨著對軟體能做什麼的期望加速改變,我們必須想方設法演化我們的架構,以適應這一事實。這本手冊將幫助你了解如何將系統架構視為可塑的推進器,而非難以撼動的障礙。」 —Sam Newman 架構師,《Building Microservices》作者 「本書第二版將為你提供最新的技術、知識和訣竅,以確保軟體架構足夠敏捷,能夠跟上不斷的變化。」 —Mark Richards developertoarchitect.com 隨著新工具、框架、技術和典範的不斷湧現,軟體開發生態系統也在持續變動。僅在過去五年間,軟體開發核心工程實踐方面的逐步進展就促使業界認識到架構本身也必須演化才能滿足不停變化的使用者需求。在這個全面更新的版本中,作者Neal Ford、Rebecca Parsons、Patrick Kua和Pramod Sadalage提供現實世界中的案例研究,其中考量到了近來對軟體開發的演化日益增長的支援。 本書分為三個部分: ‧機制:第一部包括了定義演化式架構機制的章節,說明團隊如何使用技術和工具來建置適應性函數、部署管線,以及其他用來治理和演化軟體專案的機制。 ‧結構:第二部涵蓋的架構風格和設計原則針對耦合、重複使用,以及為了實現更乾淨俐落的長期演化而必須考慮的其他結構因素。 ‧影響:第三部則探討第一部介紹的工程實務做法與第二部分的結構考量之間的交集。
輕課程 用Scratch 3.0創作故事動畫及互動遊戲-最新版(第二版)-附MOSME行動學習一點通:影音.加值
1. 有趣的主題式教學引發學習興趣,淺顯易懂的內容適合基礎學習者,幫助您培養運算思維及邏輯能力。 2. 針對初學者編撰。程式語言是人工智慧的基礎,科學素養及解決問題能力的養成,趁早學習可得到最佳效益!
第一次學C語言入門就上手
本書特色 1.程式語言是一種語言,它有很多特性和我們的中文很像,本書由中文導入程式語言,讓學生不會覺得學習程式語言是一門全新的學問,而畏懼學習。 2.C語言的if、for、while敘述、陣列、函數和檔案處理是很多種程式語言共同有的內容,且很多領域只需要用到這些內容就足以應付其工作所需,有鑑於此,本書僅介紹這些語法,搭配充足的例子,讓讀者可以很容易地進入程式語言的領域。 3.本書還包含:筆者教授程式語言課時,學生所提出來的問題,例如:變數為何要宣告而標誌不用;若a為浮點數,為何不能寫成if(a==0.0)等等。 &
圖解資料結構 × 演算法:運用C語言(暢銷回饋版)
學習資料結構與演算法的好書,暢銷回饋中! & 資料結構是有志從事資訊工作的專業人員,不得不重視的一門基礎課程。對於第一次接觸資料結構課程的初學者來說,過多的內容及不清楚的表達常是造成學習障礙的最主要原因。本書是以C程式語言實作來解說資料結構概念的入門書,內容淺顯易懂,藉由豐富圖例來闡述基本概念,將重要理論、演算法做最意簡言明的詮釋及舉例,同時配合完整的範例程式碼,期能透過實作來熟悉資料結構。因此,這是一本兼具內容及專業的資料結構教學用書。 & 【重點主題】 ◆ 資料結構入門與演算法 ◆ 陣列結構 / 串列結構 ◆ 堆疊 / 佇列 ◆ 樹狀結構 / 圖形結構 ◆ 排序演算法 ◆ 搜尋演算法與雜湊函數 ◆ 資料結構專有名詞 & 本書特色 & ※內容架構完整,邏輯清楚,採用豐富的圖例來闡述基本觀念及應用,有效提高可讀性。 ※以C語言實作資料結構中的重要理論,以範例程式說明資料結構的內涵。 ※強調邊作邊學:提供書中範例完整程式檔,給予最完整的支援,加深學習記憶。 ※驗收學習成果:參閱國家考試題型,設計難易適中的習題,提供進一步演練。 &
Visual Basic 理論與實務講座
◆ 範例操作逐步詳述,淺顯易懂◆ 由淺入深循序漸進,學習程式設計技巧隨著電腦硬體技術不斷地進步,軟體亦隨著日新月異。而指揮電腦運作的程式語言,由早期的機器語言、組合語言、FORTRAN、COBOL、BASIC、C、PHP、Java、C++和C#等,一直不斷演進。新程式語言不斷地被推出,一些早期的程式語言也不斷地被淘汰,經過幾十年來的發展,使得BASIC成為目前初學者學習程式語言的兩大主流。書中講解理論實務兼具,範例操作以圖示表示,淺顯易懂且具代表性,非常適用於教學和自學。由於Visual Basic功能強大非一本書就能完整介紹,本書只針對程式設計基本流程、物件基本觀念、活用Visual Basic所提供常用的控制項、鍵盤和滑鼠控制項技巧、繪圖與多媒體、ADO .NET資料庫程式設計、Crystal Report報表程式、應用程式的部署與封裝做介紹。每個單元由淺入深、循序漸進、讓初學者由範例練習中學習程式設計的精神與技巧,並附上Visual Basic Express中文版讓初學者使用,使您不用煩惱VB整合開發環境的來源。本書有別於一般市面書籍,是一本由大專教程式設計語言課程、微軟認證專家、Visual Basic暢銷書作者合力編著,針對目前初學者學習程式設計所應具備的基本素養所編寫的Visual Basic入門書。
C++物件導向程式設計實務與進階活用技術(第二版)
運算思維/資料結構/演算法 讓您面對C++語言一本搞定 結合ChatGPT AI寫程式更有效率 ◉ 完整C++功能:融合程式語言、物件導向設計及C++樣板 ◉ 上機測驗:強化程式撰寫與除錯能力 ◉ 驗收學習:難易適中的例題,協助學習成效 ◉ 資料結構與演算法首選:提供程式碼應用在程式設計領域 本書強調理論與實作並重,以C++ 語言為軸心,含括物件導向、運算思維、資料結構、演算法等,全方位的程式設計核心基礎並拓展至進階應用技術,並加入ChatGPT 與C++程式設計相關內容,精采呈現ChatGPT AI 的程式範例。全書區分四大重點: ▌基礎語法 包括C++程式撰寫、編譯、執行與除錯,接著再導入變數、常數與資料型態介紹,並進而了解各種運算子及流程控制指令。 ▌進階語法 包括陣列與字串綜合運用,再介紹指標與位址的觀念與實作,並示範自訂函數、參數傳遞與函數進階應用,最後則提到前置處理指令、巨集及自訂資料型態。 ▌物件導向 以生活化的案例說明物件導向程式設計基礎常識,再介紹類別的進階應用、運算子多載、繼承與多形,完整呈現物件導向程式設計精華。 ▌活用技術 資料流及檔案的操作技巧與管理,除了例外處理的錯誤控制機制外,也示範C++樣板的程式設計方式及標準樣板函式庫,包括vector容器、堆疊、佇列、集合、Map容器、排序、搜尋、鏈結串列等,並提供資料結構中的樹狀及圖形結構中的演算法精選範例。 &
寫程式前的必學工具:命令列、編輯器、Git/GitHub,軟體開發三本柱一次搞定
★ IT 領域最佳入門磚,新手也可以好犀利! ★對於有志於從事 IT 工作的人來說,一定要會用的三套工具就是:命令列 (文字模式)、編輯器和 Git 版本控制。雖然會有替代方案,不一定非要用它們不可,但如果要真正融入 IT 領域,建議還是先學會比較好,不然以後一定會覺得跟別人格格不入。但我們並沒有打算把你培養成絕世高手,大部分的 IT 老手多半只會自己需要的技能 (不夠再學就好),因此本書將只聚焦於最重要的面向,你不需掌握所有細節,只要剛好夠用就很犀利了。★ 現代軟體開發三本柱:命令列、文字編輯器、Git 版本控制 ★即使沒聽過「命令列 (Command Line)」,應該也看過黑底白字的文字模式。在 IT 領域中,以文字模式運作的系統無所不在,我們要讓你可以在這個看起來很厲害的環境下做各種操作,這樣算是打開了軟體開發的大門。文字編輯器用於建立純文字檔案,包含所有網頁檔案和程式語言。因此,在學會寫程式之前,其實更應該熟悉文字編輯器的使用。我們會以 Atom 作示範,介紹編輯器基本的核心功能,同時會帶到 Sublime Text、VS Code、Cloud9 等其他工具。特別會介紹功能強大 的 Vim,就算只學會 Vim 皮毛,也足夠讓 IT 老手對你刮目相看。Git 版本控制系統可以讓你追蹤檔案間的差異,對於現在的軟體開發而言,已經是不可或缺。我們會用簡單的範例帶你快速入門,並結合 GitHub 進行線上同步,方便你未來可銜接團隊協同開發,也會大致學到如何解決無可避免的檔案衝突問題。除了教你各種工具的使用、厚實你的硬實力之外,作者也在書中致力於培養你解決 IT 技術問題的能力、和工作上跟他人協同開發的眉角,不只如此,也細心到會補充一些 IT 專有名詞、業內行話/黑話,甚至連命令、符號的念法也都會說分明,這些可以視為 IT 人的軟實力。學會上述這些技能,可以幫助 IT 新鮮人早日脫離新手村,或者是未來想跳槽、轉換跑道,也都會很有幫助。本書特色:手把手教學、解鎖 IT 人日常使用的開發工具,無痛展開你的工程師職涯◎完全新手的命令列基礎實戰,不是無用的命令字典,而是紮實從檔案操作、路徑切換、顯示內容、重複命令…等,提供最易理解的入門方式。◎文字編輯器的必學技巧,包括:尋找、取代、快速鍵、換行、語法突顯…等技巧,從 Atom 到 Sublime Text、VS Code、Cloud9 都可以輕鬆上手。◎特別收錄骨灰級 Vim 編輯器,帶你快速搞懂獨特的模式切換,讓人對你另眼相看。◎講解 IT 人工作上不可或缺的版本控制和 GitHub 使用方式。◎內文穿插補充IT 人的黑話、技術文章中常出現的奇怪詞語,以及許多常用命令或符號的慣用唸法。◎macOS、Linux、Windows 和雲端的多種系統開發環境建置。◎本書由【施威銘研究室】編譯,針對原書進行實測與在地化,並適當添加補充說明,幫助讀者更加理解內容!◎搭配 VIP Bonus:實際操作的教學示範影片。
喪屍Scrum生存指南:邁向真敏捷的復原之路
擺脫「喪屍 Scrum」,並從 Scrum 獲得真正的價值! 數以百萬計的專業人士都在使用 Scrum ──── 世界第一的敏捷軟體開發方法。即使如此,根據估計,約有超過 70% 的 Scrum 導入未能達到預期效果。許多 Scrum 團隊發現他們自己正在採用「喪屍 Scrum」流程,即使看起來像 Scrum,卻是如此緩慢、死氣沉沉且毫無樂趣,Scrum 並沒有在他們團隊中發揮作用。 《喪屍 Scrum 生存指南》揭示了 Scrum 經常觸礁的原因,並說明了如何強化 Scrum 的成效。本書以幽默、直觀且易於理解的方式,提供你擺脫喪屍 Scrum 的實踐方法、練習及工具。即使你周遭充斥著懷疑 Scrum 的聲音,這本指南仍將會幫助你在任何團隊中打造出更多使用者需要的項目、快速交付、持續改善、建立成功的互動,並且對你所做的事情感到更滿意。 • 了解喪屍 Scrum 如何感染團隊與組織、擴散的原因以及如何預防。 • 貼近利害關係人,了解什麼對他們是有價值的。 • 發現喪屍團隊無法學習的原因,並採取應對方法。 • 移除那些阻擋真正持續改善的特定阻礙。 • 打造自管理團隊,讓每個人都能發揮自我,而不是成為喪屍。 • 從本書 40 個以上的實驗中挑選一個實驗來進行改善。當中有許多實驗都是以「活化結構」為基礎設計。 專業推薦 「專業Scrum 與喪屍 Scrum 是永遠的死對頭。如果你放鬆警戒,喪屍 Scrum 就會捲土重來。這本指南幫助你時刻保持警戒,並提供非常實用的技巧幫助你辨別自己是否已經陷入喪屍 Scrum,以及該如何阻止這種情況發生。本書是所有喪屍 Scrum 獵人的必備利器。」──── Dave West,Scrum.org 執行長 產官學界人士一致強力推薦 ☛丁瑋明(Paul Ding) 果核數位股份有限公司 總經理 ☛林欣怡(Carol SL) 國立臺中教育大學 管理學院院長 ☛林昭陽(Ivan Lin) 中華電信總公司 總經理 ☛林裕丞 黑手阿一(Yves Lin) 氣機科技 共同創辦人 ☛施志賢(Chih-Hsien Shih) 協磁公司 董事長 ☛洪偉淦(Bob Hung) 趨勢科技 台灣暨香港區總經理 ☛胡瑞柔(Flora Hu) 叡揚資訊雲端及巨資事業群 總經理 ☛高治中(Erik) 巨鷗跨界創新集團 總經理 / PMI 國際專案管理學會 台灣分會理事長 ☛張立業(Daniel Chang) 台達能源股份有限公司 總經理 ☛張集琮(Michael Chang) 捷虹資訊股份有限公司 董事長 ☛郭莉穎(Tina Kuo) 達葳建設股份有限公司 董事長 ☛陳威棋(Ike Chen) 勤業眾信風險管理諮詢股份有限公司 資深執行副總 ☛陳欽章(Casper Chen) 台灣牙易通股份有限公司 創辦人暨執行長 ☛陳麗琇(Elly Chen) 台灣最大線上敏捷社群 台灣敏捷部落(TAT)社長 ☛游文人(Donald Yu) 巨大集團 集團策略長 ☛黃敬強 (John Huang) 瑞嘉科技 總經理 ☛魏碧芬(Vicky Wei) 欣亞數位股份有限公司 董事長 (依姓氏筆劃排序) &
重構:改善.NET與C#應用程式的設計,償還欠下的技術債(使用GitHub Copilot與Visual Studio)
『技術債在每個程式倉庫(codebase)中幾乎無所不在。它是一種隱喻,代表著軟體演變過程中留下的小小麻煩(有時並不那麼小),例如捷徑、混亂、設計不相符等問題,這些問題往往是由於軟體無法適應不斷變化的外部因素所造成的。如果不加以控制,這些問題就會導致工作效率急遽下降,而重構(refactoring)正是開發者處理這個問題的主要工具。這是每位開發者都應該掌握的重要技能。』——NimblePros首席架構師 Steve &ardalis& Smith 『這是一本.NET資淺到資深開發者都能受益的書。程式開發沒有人不需要重構,而重構未必需要很多高深的理論才能做,只要你學好本書的精髓,沒有Visual Studio一樣可以重構,只是有工具的幫忙可以發揮加分效果,這是我在審校本書時很深的體悟。』——微軟最有價值專家(Microsoft MVP) 陳傳興(Bruce Chen) 重構:改善.NET與C#應用程式的設計,償還欠下的技術債 Refactoring with C# 使用GitHub Copilot與Visual Studio 每個軟體專案剛開始時都是一塊全新的綠地(greenfield)樂園,但技術債(technical debt)往往比預期更早出現,軟體專案很快就會變成一片棕地(brownfield)荒野,徒留滿地遺留程式碼(legacy code)和技術債。在本書中,你將了解技術債的概念與成因,並學習使用Visual Studio的現代化工具,以及C# 12和.NET 8的最新語言功能,以此安全地重構你的C#程式碼。 我們將一步步指引你學會使用xUnit和Moq、Snapper、Scientist .NET等函式庫,使用這些工具,你就能執行更進階的單元測試,安全地進行重構。我們也會詳述SOLID原則,以及新版C#帶來的防禦性程式設計技巧,藉此打造更容易維護的程式碼。我們還會說明如何執行程式碼分析,並撰寫自訂的Roslyn分析器,來檢測和解決程式碼中獨有的問題。 程式設計的性質正在發生變化,為了迎接AI帶來的衝擊,本書「第11章」會專門討論GitHub Copilot Chat這個AI助理,看看它如何協助我們進行重構、測試、撰寫文件和產生程式碼。最後,我們也會討論如何在敏捷團隊和企業組織中,向領導者們溝通技術債的風險與重構的必要性,並獲得組織的支持與尊重。 讀完本書,你將理解重構的本質,了解如何安全、有效、可重複地償還應用程式中的技術債,同時為企業帶來價值。無論你是新手開發者,還是有多年經驗的資深開發者,相信你們都能在本書中找到一些實用的提示和技術。 ★學習目標★ ・理解技術債的成因、影響及預防方法 ・探索重構類別、方法和單行程式碼的不同做法 ・如何使用Moq等函式庫撰寫有效的單元測試 ・理解SOLID原則,以及如何打造可維護的程式碼 ・GitHub Copilot Chat如何協助開發者分析、改善和測試程式碼 ・應用程式碼分析和自訂Roslyn分析工具,確保程式碼保持整潔 ・在敏捷團隊中正面表達技術債的風險,並採用一致的程式碼標準 【範例程式碼】 讀者可以從GitHub下載本書的範例程式碼,如果程式碼有更新,作者也會直接更新在存放庫上:https://github.com/PacktPublishing/Refactoring-with-CSharp。 【彩色圖片】 博碩文化官網也有提供本書使用的螢幕畫面截圖及彩色圖表。 &
看圖學Python:資料分析與資料視覺化
本書是一本學習Python程式設計和資料分析的入門教材,適合初學者輕鬆上手。以Excel使用者的角度,詳細說明Pandas套件的Python資料分析,並透過ChatGPT生成式AI的幫助,讓讀者能夠更快、更輕鬆地學習Python程式設計和資料分析。首先,本書從介紹Python程式語言的基礎開始,徹底解說讀者需要具備的程式設計能力,並介紹OpenAI推出的ChatGPT生成式AI,探討其在程式設計中的應用,以及如何利用ChatGPT來協助學習Python程式設計等相關技術。其次,本書重點闡述Pandas套件在Python資料分析中的應用。從建立Series和DataFrame物件開始,逐步介紹了如何匯入和匯出不同格式的資料,以及如何進行資料篩選、操作和彙整。特別是在第14章至第16章中,通過具體的範例,讀者將學會如何進行資料清理、排序、合併,以及執行各種資料運算和視覺化。本書的獨特之處在於將ChatGPT生成式AI融入到學習過程中,通過ChatGPT的幫助,讀者不僅可以寫出Python程式碼,還能夠自動產生商業模擬數據的學習範例,使得學習過程更加生動有趣,並且實際應用到商業資料分析中。最後,本書使用豐富的圖例和流程圖詳細解說程式設計的觀念和語法,並利用fChart流程圖直譯器呈現動畫流程圖,幫助讀者更好地理解程式邏輯,從而提升解決問題的能力和思維邏輯。《看圖學Python:資料分析與資料視覺化》不僅適用於計算機概論、程式設計和Python資料分析課程的教學,也是自學Python和資料分析的理想選擇。無論是對於初學者還是有一定程式基礎的讀者,本書都將成為你的良師益友,引領你踏入Python程式設計和資料分析的世界。
Python程式設計的12堂必修課
由於Python易懂易學,加上它具備物件導向、直譯、跨平台、自由/開放原始碼等特性,並擁有豐富強大的套件模組,讓Python的應用範圍更為廣泛,包括網頁設計、App設計、遊戲設計、自動控制、生物科技、大數據等領域。另外,Python是多重思維(Multi-paradigm)的程式語言,允許多種風格來撰寫程式。再加上提供豐富的應用程式介面,讓程式設計師能夠輕鬆地編寫擴充模組。因此選擇Python作為第一次學習的程式語言,已是目前商業及教育機構的主流趨勢。 這是一本為Python程式新手設計的最佳指南,涵蓋從基礎語法到進階應用的全範疇。不僅提供理論知識,更加入實務操作和實例解析,確保讀者能夠完整吸收與應用。 本書將帶各位學習如何有效地處理資料、使用流程控制、探索物件導向的世界,並且能夠自行開發圖形視窗程式設計和繪製統計圖表。此外,我們還將深入探討經典的演算法並展示如何在Python中實作。不論您是學生、專業開發者或是自學者,本書都能提供寶貴的Python學習資源。 &
程式設計守則|如何寫出更好的程式碼
「《程式設計守則》結合了各種對於初學者絕佳的引導,還有許多精妙的內容,甚至連專家都能受用。Zimmerman讓本書一直維持很好玩的感覺。他用事實證明,想保持有趣又兼具教育性,確實是做得到的。」 —Mark Cerny PlayStation 4/5首席系統架構師 「《程式設計守則》針對初出茅廬以及有點經驗的程式設計者,提供了許多深刻的見解。Zimmerman的個人風格確實讓本書成為一本很有趣的讀物;在各種技術逐漸滲透到商業與社會各個層面的這個時代,該如何做出更好的軟體,本書的21條守則確實做出了很重要的貢獻。」 —Paul Daugherty Accenture集團首席技術執行兼首席技術長 這本關於程式設計哲學的指南,對於如何思考「程式設計」這件事,提出了獨特而有趣的觀點。本書集合了21個實用的守則,每個守則都用一個獨立的章節來呈現,道出每位程式設計菜鳥一定要瞭解的重要智慧,同時也為一些經驗豐富的程式設計者提供了發人深省的見解。 作者Chris Zimmerman是電玩工作室Sucker Punch Productions的聯合創始人,他透過一些令人難忘的格言,還有一些從真實程式碼裡提取出來的範例,教導大家程式設計的基本真理。這本實用指南也可以協助管理者,找出一些訓練團隊新成員的方法。 本書所列出的守則包括: ‧越簡單越好、但也不能太過於簡單 ‧讓程式碼自己講故事 ‧把複雜性局限在局部範圍內 ‧先找出三個例子,才能改用通用的做法 ‧要從結果往回推,別從程式碼往後推 ‧最佳化的第一課:別去做最佳化 ‧取個好名字的本身就是最好的說明 ‧Bug是會傳染的 ‧消除掉各種會出問題的狀況 ‧沒在執行的程式碼,就是會出問題 ‧有時你就是得去做一些打釘子的工作
打通 RxJS 任督二脈:從菜雞前進老鳥必學的關鍵知識【第二版】(iT邦幫忙鐵人賽系列書)
本書內容改編自第 12 屆 iT 邦幫忙鐵人賽 Modern Web 組冠軍網路系列文章──《打通 RxJS 任督二脈 》。 & RxJS 是一套讓我們能更容易管理複雜狀態的類別庫,透過組合跟處理非同步與事件相關的程式,以及一系列的設計技巧,打造出更加容易閱讀與維護的程式。 & RxJS 正緩緩而踏實地成為前端世界的顯學,可惜的是,多數人都著重在「使用」而非「觀念」,導致基礎沒有站穩就踏入抽象的世界,進而投降棄坑。本書將從 RxJS 的核心知識開始介紹,搭配實務範例,幫助讀者能在適當的情境寫出正確的程式,到最後信手捻來,用更簡短的程式碼解決更複雜的問題! & 本書特色 & ☛ 第一本介紹 RxJS 的繁體中文書籍 ☛ 從核心理念到實戰練習,一步步帶你打通 RxJS 任督二脈! & ❑ 寫出更加穩固、流暢、好讀易維護的程式碼 ❑ 超過 70 個 oper ators 圖文介紹與實戰範例 ❑ 由淺入深,讓你紮穩馬步,一定學得會 & 專業推薦 & 「作者幾乎把所有跟 RxJS 的相關知識與觀念全部寫進本書裡,完整度之高令人驚豔!」 多奇數位創意 技術總監 / Google Developer Expert / Microsoft MVP ──── Will 保哥 & 「一本值得買來收藏的好書,不只教你 RxJS,更帶領你進入另外一個世界 ⸺ 一個會讓你感到相見恨晚的美麗世界!」 Angular GDE ──── Kevin & 「透過作者在本書中各種 RxJS 例題的演繹,我保證你跟著書中範例做完一輪,完全可以感受到什麼叫做簡潔、優雅且易讀的程式碼,快速打出前端連續技!」 Vue.js Taiwan 社群主辦人 /《重新認識 Vue.js:008 天絕對看不完的 Vue.js 3 指南》作者 ──── Kuro & 「除了 RxJS 各項使用教學之外,最寶貴的是示範如何將其應用在實戰場景,最後也不藏私地介紹進階學習方針,讓讀者都能好好地吸收作者的經驗!」 Google 台灣香港開發者生態系計劃負責人 ──── 上官林傑 & 「新手進入 RxJS 最好的入門書,內容深入淺出,用最淺白的詞句帶領開發者進入 RxJS 的領域,觀念的引導更是讓人易於吸收!」 金魚都能懂的教學系列作者 Amos ──── 李建杭 &
遙遙領先:使用Java開發Web新手轉高手之路
●2024年繼續用Java開發,真正正統純OO語言 ●Web開發及Java Web開發的異同 ●Java開發的環境安裝、設定、使用 ●JSP基礎、內建物件、JavaBean技術、Servelet技術 ●Servlet的籂檢程式及監聽器 ●Java Web的資料庫操作及EL運算語言、JSTL標籤、Ajax技術 ●SSM架構之Spring IoC、AOP、MVC ●MyBatis、Maven’ SSM整合 本書分為5篇,共17章。第1篇介紹Web開發與Java Web開發,包括系統結構、相關技術、開發環境等;第2篇介紹JSP語言基礎,包括JSP的基本概念、JSP的指令、JSP的動作、JSP的註釋、JSP的內建物件、JavaBean技術、Servlet技術、Servlet篩檢程式、Servlet監聽器等,並且在每個模組最後都提供實戰例子;第3篇介紹Java Web整合開發,包括JDBC以及Java Web操作資料庫實踐、EL運算式語言、JSTL標籤語言、Ajax整合技術等,這部分主要介紹JSP技術的進階,由靜態網頁向動態頁面轉變;第4篇介紹SSM框架,包括Spring IoC、Spring AOP、MyBatis、Spring MVC的入門介紹,最後基於框架實現整合開發;第5篇介紹專案實戰,包括基於SSM的學生資訊管理系統的需求分析、專案設計、開發測試等專案開發整體流程實戰。 &
快速精通iOS 17程式設計:從零開始活用Swift與SwiftUI開發技巧
作者分享多年來的iOS開發經驗,並集結廣受歡迎的iOS教學文章,以SwiftUI框架重新編寫,精心設計出30個章節。由基礎入門開始,逐步實作出具有精美UI及實用功能、支援雲端資料傳輸與深色模式的FoodPin App,而且FoodPin App完全支援新推出的iOS 17以及iPhone 15/15 Pro、iPad Pro。 本書首先介紹Swift語言的觀念,再教導你使用Swift與SwiftUI建立你的第一個App,然後你會學到規劃App的原型,並且本書每一章中會針對iOS開發的各個面向提供提示、技巧以及許多需要親手操作的作業,最後你可以從無到有來開發出一個真正的App。本書也會教導你如何使用Xcode來佈局使用者介面,並熟悉iOS 17 SDK的基本API,跟著本書的內容學習,將可獲得真實開發App的體驗,且打好Swift程式語言的基礎,掌握程式開發的訣竅。 本書是專為Swift與iOS程式設計的初學者而撰寫,不論你是想學習新程式語言的程式設計師,或是想要將你的設計轉換為iOS App的設計師,這本書絕對是你的首選。 【本書精采內容】 ✪Swift基礎介紹。 ✪利用Playground快速學習Swift。 ✪使用Swift與SwiftUI從無到有打造第一個App。 ✪學習App原型設計與前置規劃。 ✪建立App與SwiftUI的常用元件。 ✪了解堆疊視圖建立自適應UI。 ✪設計適合所有螢幕尺寸的App,讓UI相容最新的iPhone 15/15 Pro與iPad Pro。 ✪設計導覽列大標題。 ✪自訂表格視圖儲存格來打造更優美的App。 ✪學習自訂清單視圖。 ✪運用導覽視圖。 ✪了解物件導向程式設計。 ✪建立動畫與視覺效果。 ✪使用相機與相片庫。 ✪運用地圖並學會最新的標註功能。 ✪使用搜尋列做關鍵字搜尋。 ✪建立導覽畫面來讓使用者迅速熟悉App。 ✪使用Searchable加入搜尋列。 ✪在App嵌入瀏覽器與網頁視圖。 ✪運用使用者通知來提升App黏著度。 ✪運用觸覺觸控及內容選單。 ✪使用SwiftData儲存資料至資料庫。 ✪整合運用CloudKit。 ✪App多國語系化。 ✪在實機上部署與測試App,並且學會WiFi部署功能。 ✪使用TestFlight安排Beta測試。 ✪在App Store上架你的App。 本書特色 從零開始掌握SwiftUI框架與開發技巧 快速強化你的iOS App開發實戰能力 輕鬆成為專業程式設計師 ♚使用Xcode 15 iOS 17 Swift 5.9開發 ♚了解Xcode開發工具 ♚使用清單視圖、堆疊視圖設計UI與深色模式 ♚快速學習Swift App程式編寫、物件導向與SwiftUI程式設計 ♚運用SwiftData與CloudKit存取資料 ♚使用地圖與相機 ♚實作動態視覺效果 ♚開發使用者通知 ♚App本地化 ♚App測試與上架程序 好評推薦 「AppCoda的書令人非常激賞,內容寫得非常清楚,即使沒有任何概念,書中的內容會鼓勵你獨立思考並吸收這些觀念,沒有其他比這更詳盡的學習資源了。」──日本Sheehan,Ingot LLC 「這本書寫得非常好,簡潔有力,書中的範例非常棒且貼近真實的應用,它真的幫助我完成第一個App,並於App Store上架,內容給我許多進一步強化與更新App的想法。我將它作為我的參考指南,也很感謝每當Swift與iOS有做變更時,都能收到更新。」──David Greenfield,ThreadABead作者 「這本書教導我如何建立我想要的App,書中的內容規劃得很好,每一章的篇幅拿捏得恰到好處,不會太過冗長而無法消化,想要學習開發第一個App並進階學習的話,我強烈推薦這本內容超棒的好書。」──Stephen Donnelly,Rascalbiscuit總監 「這是我在學習Swift時所找到的學習書籍之一。作為一個初學者,這本書非常容易學習與理解,整本書以貼近真實生活的範例來建立App,這種學習方式真是太天才了,最後也能夠實用它。我學習了很多,也運用了很多其中的內容於我的App中。我發現我會常常回來參考此書,這真的是一本很棒的作品。」──Bill Harned,Percent Off作者 「這是有關iOS開發最棒的書籍,內容編排絕佳且容易跟著實作,是很棒的開發學習良伴。」──Ali Akkawi,iOS與Android行動App自由工作者 &
選擇權商品模型化導論:使用Python語言
⊙以Python解決數學概念問題,掌握衍生性商品(如選擇權商品)模型化。 ⊙理論與實作兼具,操作步驟清楚易懂。 ⊙介紹CRR的二項式定價模型、隨機微積分、等值平賭測度方法,以及資產價格跳動的Lévy過程等觀念。 ⊙附贈光碟提供書中完整原始程式碼,幫助學習理解、迅速進入狀況。 【透過Python,走入學習衍生性商品的捷徑】 本書以熱門程式語言Python,帶領讀者順利踏入財金領域。 內容分10章,第1、2章說明完全市場與不完全市場的特色與差異。第3章介紹CRR的二項式定價模型,並從該模型內取得一些基本的觀念。第4、5章說明隨機微積分的意思,包括平賭、維納過程、隨機積分等略為抽象的觀念。第6章說明偏微分方程式於選擇權定價內所扮演的角色。第7章介紹目前廣泛使用的等值平賭測度方法,其中包括Radon-Nikodym微分與Girsanov定理的闡述。第8章說明資產價格跳動的Lévy過程,包括著名的跳動-擴散、VG或NIG等過程。第9章介紹用於選擇權定價之較為簡易的COS方法。第10章則介紹隨機波動模型,包括Heston模型與Bates模型。 書中範例所呈現任何計算、模擬、估計、編表或甚至於繪圖等操作,光碟內皆附有完整的Python程式碼供讀者參考使用。 &
入門首選 Java 程式設計-最新版(第二版)-附MOSME行動學習一點通:評量.加值
1.一本適合中學生的入門書,講述的內容以基礎語法為主。 2.各章安排了習題,可以驗收學習成效。 3.透過有趣且多樣的簡易範例小程式,輕鬆學會Java程式語言的入門語法。 4.綜合範例的練習機會,希望幫助讀者可以靈活應用語法。 &
程式語言第2版入門特訓教材 Python
本書為「TQC+ 程式語言Python 第2版」認證科目指定教材。 遵循專業考科「TQC+ 程式語言Python 第2版」技能規範架構撰寫,符合鑑定的命題趨勢。 ★內容淺顯易懂,結合理論與實務,達到技術的傳承及表達,符合實務運用需求。 ★採由淺入深之安排,適合相關科系學生及有意進入此一領域人士之學習素材。 ★內容涵蓋Python程式語言各個層面,相關知識觀念和範例練習,能幫助及提升讀者對此領域的認識與了解。 ★全書包含「Python開發環境與程式設計」、「基本認識」、「選擇敘述與迴圈」、「函式與陣列」、「字串與檔案處理」、「綜合應用一」、「綜合應用二」、「綜合應用三」等內容,建構Python程式語言基礎,習成將能靈活運用。 ★配合中華民國電腦技能基金會 ( https://www.csf.org.tw ) 測驗,一舉取得專業證照,讓您求學、求職更具競爭力。 ★「TQC+ 程式語言Python」認證題庫可至CODE JUDGER學習平台購買 (https://www.codejudger.com ) 。