簡潔的Python|重構你的舊程式

    現在有許多領域都廣泛使用Python,例如軟體建構、系統管理與資料處理。在這些領域中,經驗老到的專家可以找到效率低下、有問題的案例,以及導致不良程式的隱患。看完這本書的讀者將會瞭解這些問題,更重要的是知道如何修正它們。 本書首先介紹編寫簡潔程式的基本元素,以及它在Python程式設計中有多麼重要。你將瞭解如何運用Python標準程式庫與軟體設計最佳做法來編寫高效且易讀的程式。你也

    收集中
    US$10.63

    現在有許多領域都廣泛使用Python,例如軟體建構、系統管理與資料處理。在這些領域中,經驗老到的專家可以找到效率低下、有問題的案例,以及導致不良程式的隱患。看完這本書的讀者將會瞭解這些問題,更重要的是知道如何修正它們。


    本書首先介紹編寫簡潔程式的基本元素,以及它在Python程式設計中有多麼重要。你將瞭解如何運用Python標準程式庫與軟體設計最佳做法來編寫高效且易讀的程式。你也會學到如何在Python中實現SOLID原則,以及使用裝飾器來改善程式。本書將更深入地探討Python的物件導向程式設計,告訴你如何透過描述器與產生器來使用物件。本書也會展示軟體測試程式的設計原則,以及如何在程式中實作設計模式來解決軟體問題。在最後一章,我們會從堅實平台的基礎程式開始談起,將單體應用程式拆成微服務。


    讀完本書之後,你將能夠熟練地運用業界認可的編寫技術來設計簡潔、易維護、易讀的Python程式。


    你會學到;

    ‧設定工具,在開發環境中高效率地工作

    ‧Python的魔術方法如何協助我們編寫更好的程式

    ‧利用Python的特性來建立更高級的物件導向設計

    ‧使用裝飾器與描述器來移除重複的程式

    ‧藉助單元測試來有效地重構程式碼

    ‧在Python中實現SOLID原則

    章節目錄

    • 1-1
      封面
    • 1-2
      書名頁
    • 1-3
      貢獻者
    • 1-4
      校閱簡介
    • 1-5
      目錄
    • 1-6
      前言
    • 1-7
      1 簡介、程式碼格式與工具
    • 1-8
      簡潔程式碼的意義
    • 1-9
      簡潔程式碼的重要性
    • 1-10
      格式化在簡潔程式碼之中的角色
    • 1-11
      遵守專案的編寫風格指南
    • 1-12
      docstring與註釋
    • 1-13
      docstring
    • 1-14
      註釋
    • 1-15
      註釋可取代docstring嗎?
    • 1-16
      設置強制執行基本品管的工具
    • 1-17
      結論
    • 1-18
      2 符合Python風格的程式
    • 1-19
      索引與切片
    • 1-20
      建立你自己的序列
    • 1-21
      環境管理器
    • 1-22
      實作環境管理器
    • 1-23
      特性、屬性,以及物件方法的各種型態
    • 1-24
      Python的底線
    • 1-25
      特性
    • 1-26
      可迭代物件
    • 1-27
      建立可迭代物件
    • 1-28
      建立序列
    • 1-29
      容器物件
    • 1-30
      物件動態屬性
    • 1-31
      可呼叫物件
    • 1-32
      魔術方法摘要
    • 1-33
      Python的注意事項
    • 1-34
      可改變的預設引數
    • 1-35
      擴展內建型態
    • 1-36
      結論
    • 1-37
      參考文獻
    • 1-38
      3 好程式的特徵
    • 1-39
      依合約設計(Design by contract)
    • 1-40
      先決條件
    • 1-41
      後置條件
    • 1-42
      符合Python習慣的合約
    • 1-43
      依合約設計—結論
    • 1-44
      防禦性程式設計
    • 1-45
      錯誤處理
    • 1-46
      在Python中使用斷言
    • 1-47
      分離關注點
    • 1-48
      內聚性與耦合
    • 1-49
      讓你活得更輕鬆的縮寫詞
    • 1-50
      DRY/OAOO
    • 1-51
      YAGNI
    • 1-52
      KIS
    • 1-53
      EAFP/LBYL
    • 1-54
      組合與繼承
    • 1-55
      當繼承是好的決定時
    • 1-56
      繼承的反模式
    • 1-57
      Python的多重繼承
    • 1-58
      函式與方法的引數
    • 1-59
      Python的函式引數如何工作
    • 1-60
      函式的引數數量
    • 1-61
      關於優良軟體設計的最後提示
    • 1-62
      軟體的正交性
    • 1-63
      構建程式碼
    • 1-64
      結論
    • 1-65
      參考文獻
    • 1-66
      4 SOLID原則
    • 1-67
      單一功能原則
    • 1-68
      有太多功能的類別
    • 1-69
      分配功能
    • 1-70
      開閉原則
    • 1-71
      不遵守開閉原則的維護性風險案例
    • 1-72
      重構事件系統來提升擴展性
    • 1-73
      擴展事件系統
    • 1-74
      關於OCP的最終說明
    • 1-75
      里氏替換原則
    • 1-76
      用工具來檢測LSP問題
    • 1-77
      較細微的LSP違反案例
    • 1-78
      LSP摘要
    • 1-79
      介面隔離
    • 1-80
      提供過多功能的介面
    • 1-81
      介面越小越好
    • 1-82
      介面應該多小?
    • 1-83
      依賴反轉
    • 1-84
      剛性依賴的案例
    • 1-85
      將依賴關係反過來
    • 1-86
      結論
    • 1-87
      參考文獻
    • 1-88
      5 使用裝飾器來改善程式
    • 1-89
      Python的裝飾器是什麼?
    • 1-90
      裝飾函式
    • 1-91
      裝飾類別
    • 1-92
      其他類型的裝飾器
    • 1-93
      傳遞引數給裝飾器
    • 1-94
      裝飾器的正確用法
    • 1-95
      有效的裝飾器—避免常見錯誤
    • 1-96
      保留被包裝的原始物件的資料
    • 1-97
      在裝飾器裡面處理副作用
    • 1-98
      建立必定有效的裝飾器
    • 1-99
      用裝飾器來遵守DRY原則
    • 1-100
      裝飾器與分離關注點
    • 1-101
      分析優良的裝飾器
    • 1-102
      結論
    • 1-103
      參考文獻
    • 1-104
      6 藉由描述器來充分使用物件
    • 1-105
      初會描述器
    • 1-106
      描述器背後的機制
    • 1-107
      描述器協定的各種方法
    • 1-108
      描述器的類型
    • 1-109
      非資料描述器
    • 1-110
      資料描述器
    • 1-111
      描述器的實際動作
    • 1-112
      描述器的應用
    • 1-113
      各種描述器的實作形式
    • 1-114
      關於描述器的其他注意事項
    • 1-115
      分析描述器
    • 1-116
      Python內部如何使用描述器
    • 1-117
      在裝飾器中實作描述器
    • 1-118
      結論
    • 1-119
      參考文獻
    • 1-120
      7 使用產生器
    • 1-121
      技術需求
    • 1-122
      建立產生器
    • 1-123
      初探產生器
    • 1-124
      產生器運算式
    • 1-125
      典型的迭代法
    • 1-126
      典型的迭代寫法
    • 1-127
      Python的迭代器模式
    • 1-128
      協同程序
    • 1-129
      產生器介面的方法
    • 1-130
      更高級的協同程序
    • 1-131
      非同步程式設計
    • 1-132
      結論
    • 1-133
      參考文獻
    • 1-134
      8 單元測試與重構
    • 1-135
      設計原理與單元測試
    • 1-136
      關於其他形式的自動測試
    • 1-137
      單元測試與敏捷軟體開發
    • 1-138
      單元測試與軟體設計
    • 1-139
      定義測試目標的邊界
    • 1-140
      測試框架與工具
    • 1-141
      單元測試的框架與程式庫
    • 1-142
      代碼覆蓋率
    • 1-143
      模擬物件
    • 1-144
      重構
    • 1-145
      演進你的程式碼
    • 1-146
      不是只有成品程式需要演化
    • 1-147
      關於單元測試的其他想法
    • 1-148
      特性測試
    • 1-149
      突變測試
    • 1-150
      測試驅動開發簡介
    • 1-151
      結論
    • 1-152
      參考文獻
    • 1-153
      9 常見的設計模式
    • 1-154
      在Python中採用設計模式的注意事項
    • 1-155
      設計模式實例
    • 1-156
      創造型模式
    • 1-157
      結構型模式
    • 1-158
      行為型模式
    • 1-159
      空物件模式
    • 1-160
      關於設計模式的最終說明
    • 1-161
      模式對設計造成的影響
    • 1-162
      模型的命名
    • 1-163
      結論
    • 1-164
      參考文獻
    • 1-165
      10 簡潔的結構
    • 1-166
      從簡潔的程式碼到簡潔的結構
    • 1-167
      分離關注點
    • 1-168
      抽象
    • 1-169
      軟體元件
    • 1-170
      套件
    • 1-171
      容器
    • 1-172
      使用案例
    • 1-173
      程式碼
    • 1-174
      服務
    • 1-175
      分析
    • 1-176
      結論
    • 1-177
      參考文獻
    • 1-178
      總結
    • 1-179
      索引
    • 1-180
      版權
    • 1-181
      封底

    常見問答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜歡

    用戶評價

    | 收集中

    銷售方案