幫助中心 | 我的帳號 | 關於我們

Linux後端開發工程實踐

  • 作者:編者:萬木春|責編:張濤
  • 出版社:人民郵電
  • ISBN:9787115625625
  • 出版日期:2024/01/01
  • 裝幀:平裝
  • 頁數:391
人民幣:RMB 119.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書全面介紹了Linux後端開發的相關知識和技能,涵蓋了Linux系統的各種功能和工具、Linux編程的相關知識和技能,以及開發後端服務和應用程序的內容。本書分為15章,主要內容包括Linux後端開發概述,開發環境搭建,伺服器運維,shell編程簡介,實現簡易shell,使用Git管理代碼,編譯、鏈接、運行與調試,後端服務編寫,網路通信基礎,I/O模型與併發,公共代碼提煉,應用層協議設計與實現,MyRPC框架設計與實現以及微服務集群的構建等。
    本書講解通俗易懂,實例豐富,適合C/C++開發人員、Linux後端開發人員、對Linux後端開發感興趣或者希望從事Linux後端開發的人員閱讀,也適合作為高等院校電腦相關專業師生的學慣用書及培訓學校的教材。

作者介紹
編者:萬木春|責編:張濤
    萬木春(筆名),資深的後端開發工程師,在Linux後端開發領域深耕10多年;曾在位元組跳動等互聯網公司從事後端開發工作;目前,在從事金融領域相關業務的設計、架構搭建與研發工作;擁有豐富的實踐經驗,擅長解決複雜的技術難題。

目錄
第1章  概述
  1.1  本書不會涉及的內容
  1.2  本書專註的內容
  1.3  為什麼這麼安排
  1.4  Linux是什麼
  1.5  後端開發是什麼
  1.6  您將學到什麼
  1.7  代碼目錄結構說明
    1.7.1  目錄MyRPC
    1.7.2  第三方依賴
  1.8  如何學習Linux後端開發
    1.8.1  堅持不懈的心態
    1.8.2  以問題作為切入點
    1.8.3  動手實踐和創造
  1.9  本章小結
第2章  開發環境搭建
  2.1  本地開發環境
    2.1.1  代碼編輯器
    2.1.2  終端管理器
    2.1.3  測試工具
  2.2  遠端運行環境
  2.3  本章小結
第3章  伺服器運維
  3.1  什麼是shell
  3.2  shell下的命令行
    3.2.1  命令行的組成
    3.2.2  大部分命令具備的共性
    3.2.3  使用man命令查詢在線手冊
    3.2.4  命令和文件補全
    3.2.5  命令行的通配符和特殊符號
    3.2.6  內置命令與外部命令
  3.3  基本的命令操作
    3.3.1  屏幕相關
    3.3.2  目錄和文件相關
    3.3.3  進程相關
    3.3.4  網路相關
    3.3.5  系統相關
    3.3.6  用戶相關
    3.3.7  命令執行相關
    3.3.8  日期相關
  3.4  man的替代工具
  3.5  命令黏合劑:管道機制
    3.5.1  如何使用管道
    3.5.2  行過濾命令grep
    3.5.3  文本分析處理工具awk
    3.5.4  流編輯命令sed
    3.5.5  參數傳遞命令xargs
    3.5.6  其他常用的輔助命令
  3.6  命令輸入輸出的重定向
  3.7  命令的連續執行

  3.8  vi編輯器簡介
  3.9  本章小結
第4章  shell編程簡介
  4.1  什麼是shell編程
  4.2  「helloworld」程序
  4.3  shell的執行過程
  4.4  調試
  4.5  執行方式的不同
    4.5.1  直接執行
    4.5.2  使用bash來執行
    4.5.3  使用source或英文點號「.」來執行
  4.6  變數
    4.6.1  環境變數
    4.6.2  自定義變數
    4.6.3  特殊變數
    4.6.4  在C語言中操作環境變數
    4.6.5  查看進程運行時的環境變數
  4.7  選擇與判斷
    4.7.1  test命令與判斷符號「[]」
    4.7.2  if語句
    4.7.3  case語句
  4.8  循環
    4.8.1  while循環
    4.8.2  until循環
    4.8.3  for循環
    4.8.4  break語句和continue語句
  4.9  函數
  4.10  命令選項
  4.11  本章小結
第5章  實現簡易shell
  5.1  實現的特性
  5.2  執行邏輯
  5.3  實現原理
    5.3.1  命令行解析
    5.3.2  特性實現
    5.3.3  函數介紹
  5.4  編碼實現
  5.5  特性測試
  5.6  本章小結
第6章  使用Git管理代碼
  6.1  初始化
    6.1.1  安裝Git工具
    6.1.2  設置用戶名和郵箱
    6.1.3  創建倉庫
    6.1.4  創建readme.md文件
    6.1.5  創建.gitignore文件
  6.2  核心概念
  6.3  常用操作
    6.3.1  查看當前倉庫的狀態
    6.3.2  添加文件

    6.3.3  刪除文件
    6.3.4  回退變更
    6.3.5  查看提交日誌
    6.3.6  查看差異
    6.3.7  分支管理
    6.3.8  其他操作
  6.4  團隊協作
    6.4.1  同步代碼倉庫
    6.4.2  創建自己的分支
    6.4.3  推送分支到遠程倉庫
    6.4.4  發起合入請求
    6.4.5  發布變更
  6.5  本章小結
第7章  編譯、鏈接、運行與調試
  7.1  單文件程序的編譯與鏈接
    7.1.1  預處理階段
    7.1.2  編譯階段
    7.1.3  彙編階段
    7.1.4  鏈接階段
    7.1.5  ELF概述
    7.1.6  符號解析與重定位
  7.2  工程項目的編譯與鏈接
    7.2.1  makefile
    7.2.2  一個實例
    7.2.3  實現簡易的make命令
    7.2.4  常用的編譯和鏈接選項
  7.3  動態鏈接與靜態鏈接
  7.4  Linux動態鏈接庫規範
    7.4.1  動態鏈接庫的命名
    7.4.2  動態鏈接庫的三個不同名稱
    7.4.3  動態鏈接庫的管理
  7.5  自定義的動態鏈接庫
    7.5.1  相關源代碼
    7.5.2  生成攜帶「soname」的動態鏈接庫
    7.5.3  生成不攜帶「soname」的動態鏈接庫
  7.6  進程的內存模型
    7.6.1  進程的虛擬地址空間布局
    7.6.2  棧與堆的區別
    7.6.3  經典問題剖析
  7.7  調試程序
    7.7.1  gdb的啟動
    7.7.2  gdb常用命令
  7.8  本章小結
第8章  後端服務編寫
  8.1  守護進程
    8.1.1  什麼是守護進程
    8.1.2  守護進程如何編寫
    8.1.3  代碼實現
  8.2  設置資源限制
  8.3  信號處理

  8.4  載入配置功能
  8.5  命令行參數解析
  8.6  日誌輸出功能
  8.7  服務啟停腳本
    8.7.1  載入系統自帶的shell函數
    8.7.2  服務相關變數聲明
    8.7.3  服務啟動函數
    8.7.4  服務停止函數
    8.7.5  服務重啟函數
    8.7.6  服務狀態查看函數
    8.7.7  case語句
  8.8  本章小結
第9章  網路通信基礎
  9.1  TCP/IP協議棧概述
  9.2  物理層與數據鏈路層
    9.2.1  物理層
    9.2.2  數據鏈路層
  9.3  網路層
    9.3.1  網際協議的特點
    9.3.2  IP數據報格式
    9.3.3  IP地址
    9.3.4  路由選擇
    9.3.5  ARP與RARP
    9.3.6  ICMP
  9.4  傳輸層
    9.4.1  UDP
    9.4.2  TCP
  9.5  網路編程介面
    9.5.1  TCP網路通信的基本流程
    9.5.2  socket網路編程
  9.6  TCP經典異常場景分析
    9.6.1  場景1:Addressalreadyinuse
    9.6.2  場景2:Connectionrefused
    9.6.3  場景3:Brokenpipe
    9.6.4  場景4:Connectiontimeout
    9.6.5  場景5:Connectionresetbypeer
  9.7  本章小結
第10章  I/O模型與併發
  10.1  I/O模型概述
    10.1.1  阻塞I/O
    10.1.2  非阻塞I/O
    10.1.3  I/O多路復用
    10.1.4  非同步I/O
  10.2  併發實例——EchoServer
    10.2.1  Echo協議
    10.2.2  協程
    10.2.3  benchmark工具
    10.2.4  單進程
    10.2.5  多進程
    10.2.6  多線程

    10.2.7  進程池
    10.2.8  進程池
    10.2.9  線程池
    10.2.10  簡單的領導者-跟隨者模型
    10.2.11  I/O多路復用之select(單進程)-阻塞I/O
    10.2.12  I/O多路復用之poll(單進程)-阻塞I/O
    10.2.13  I/O多路復用之epoll(單進程)-阻塞I/O
    10.2.14  I/O多路復用之epoll(單進程)-Reactor
    10.2.15  I/O多路復用之epoll(單進程)-Reactor-ET模式
    10.2.16  I/O多路復用之epoll(單進程)-Reactor-協程池
    10.2.17  I/O多路復用之epoll(線程池)-Reactor
    10.2.18  I/O多路復用之epoll(線程池)-Reactor-HSHA
    10.2.19  I/O多路復用之epoll(線程池)-Reactor-MS
    10.2.20  I/O多路復用之epoll(進程池)-Reactor-協程池
  10.3  基準性能對比與分析
    10.3.1  非I/O復用模型對比
    10.3.2  I/O復用模型對比
    10.3.3  epoll下LT模式和ET模式對比
    10.3.4  epoll下協程池模式和非協程池模式對比
    10.3.5  HSHA模式下工作線程和I/O線程寫應答對比
    10.3.6  MS模式下MainReactor線程是否監聽可讀事件對比
    10.3.7  epoll下動態和固定超時時間對比
    10.3.8  epoll下進程池和線程池對比
  10.4  本章小結
第11章  公共代碼提煉
  11.1  參數列表
  11.2  命令行參數解析
  11.3  字元串
  11.4  配置文件讀取
  11.5  延遲執行
  11.6  單例模板
  11.7  百分位數計算
  11.8  魯棒的I/O
  11.9  時間處理
  11.10  狀態碼
  11.11  轉換
  11.12  socket選項
  11.13  「龍套」
  11.14  日誌文件
  11.15  服務鎖
  11.16  本章小結
第12章  應用層協議設計與實現
  12.1  協議概述
  12.2  協議分類
    12.2.1  按編解碼方式對協議進行分類
    12.2.2  按邊界劃分方式對協議進行分類
  12.3  協議評判
  12.4  自定義協議的優缺點
    12.4.1  優點
    12.4.2  缺點

  12.5  協議設計
    12.5.1  協議消息格式
    12.5.2  協議設計權衡
  12.6  預備知識
    12.6.1  大小端
    12.6.2  位元組序
    12.6.3  位元組序的互轉
    12.6.4  內存對象與布局
    12.6.5  指針類型的本質
    12.6.6  序列化與反序列化
  12.7  其他協議
    12.7.1  HTTP消息格式
    12.7.2  RESP消息格式
  12.8  協議實現
    12.8.1  協議編解碼抽象
    12.8.2  MySvr實現
    12.8.3  HTTP實現
    12.8.4  RESP實現
    12.8.5  混合協議實現
    12.8.6  共性總結
  12.9  本章小結
第13章  MyRPC框架設計與實現
  13.1  框架概述
  13.2  併發模型
  13.3  框架具體實現
    13.3.1  服務啟動流程
    13.3.2  事件分發流程
    13.3.3  伺服器端請求處理流程
    13.3.4  客戶端請求處理流程
    13.3.5  分散式調用棧追蹤
    13.3.6  超時管理
    13.3.7  本地協程變數管理
    13.3.8  業務層的併發
  13.4  示例服務Echo
    13.4.1  目錄結構劃分
    13.4.2  服務描述文件
    13.4.3  服務啟動
    13.4.4  業務處理
    13.4.5  配置與輔助文件
    13.4.6  通用的服務啟停腳本
    13.4.7  介面測試
  13.5  工具集合
    13.5.1  服務代碼生成工具myrpcc
    13.5.2  介面測試工具myrpct
    13.5.3  介面壓測工具myrpcb
  13.6  本章小結
第14章  微服務集群
  14.1  集群架構概述
  14.2  持久化層
    14.2.1  Redis服務

    14.2.2  authstore服務
    14.2.3  userstore服務
  14.3  業務邏輯層
    14.3.1  auth服務
    14.3.2  user服務
  14.4  接入層
    14.4.1  目錄結構
    14.4.2  代碼與配置
    14.4.3  介面測試
  14.5  本章小結
第15章  回顧總結
  15.16  種思維模式
    15.1.1  不要被編程語言所限制
    15.1.2  掌握多種編程語言是必然的
    15.1.3  電腦本身就是一個狀態機
    15.1.4  動手是最好的實踐
    15.1.5  依靠工具提高效率和質量
    15.1.6  像工匠一樣為自己創造工具
  15.2  寫在最後

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032