簡約的軟體開發思維:用 Functional Programming 重構程式 - 以 JavaScript 為例
類似書籍推薦給您
【簡介】
Functional programming (函數式程式設計) 是一種已有六十年歷史的程式設計範式,為何現在變得越來越重要?這是因為隨著各種連網設備 (如行動裝置) 和雲端服務的普及,多程序透過網路交換訊息已成為常態,因此分散式系統的開發變得至關重要。
分散式系統軟體開發的複雜性往往導致開發過程容易陷入混亂,程式碼盤根錯節難以除錯維護與擴展,成為揮之不去卻又不敢動的痛處。而 functional programming 的簡約風格因此受到廣泛關注。這種設計範式強調使用函式來構建應用程式,程式碼清晰又容易維護,亦能解決分散式系統多執行緒的問題。除了專門的函數式語言之外,Python、Java、JavaScript、C#、C++、Go 和 Rust 等知名語言的新版中,也因應趨勢增強了對 functional programming 的支援。只要建立了這種思維方式,你就可以應用在自己的程式語言中。
市面上與 functional programming 相關的書籍 (主要為英文書) 通常由學者撰寫,內容偏重理論,而在大型實務專案經驗上顯得不足。這類書中的範例大多過於簡單,未能涉及實際軟體架構問題。與此相反,本書作者擁有二十年在產業界實際運用 functional programming 的經驗,從產業角度出發,旨在幫助那些在軟體工程實踐中遇到困難的工程師重新思考。即使你的目的不是分散式系統,學習 functional programming 的思維都能夠幫助你在撰寫任何程式時想得更周到。
由於 functional programming 的特點 — 無 side effects(額外作用)和資料的不可變性 — 使得它非常適用於開發網路程式,在這種環境中,資料一致性和狀態管理是關鍵挑戰。本書透過 concurrency primitives(併發基本工具)實作、繪製時間線圖、分析並解決併發操作中的插緒問題,有效處理狀態變化和 bug,從而構建可靠的分散式系統程式。
【目錄】
第零篇 函數式思維起手式
第 1 章 初識函數式程式概念
1.1 什麼是函數式程式設計?
1.2 FP 經典定義在實務中的問題
1.3 誤導人的 FP 定義
1.4 本書將函數式程式設計視為一套特定的技術與概念
1.5 區分 Actions、Calculations 與 Data
1.6 函數式程式設計師特別關心會受呼叫影響的程式碼
1.7 函數式程式設計師會區分資料和可執行的程式碼
1.8 函數式程式設計師眼中的 Actions、Calculations 與 Data
1.9 FP 中三類程式碼的特色整理
1.10 區分 Actions、Calculations 與 Data 的好處為何?
1.11 本書與其它 FP 書籍有何不同?
1.12 到底什麼是函數式思維?
1.13 本書會傳授什麼樣的概念與技術?
第 2 章 實務中的函數式思維
2.1 歡迎光臨唐妮的比薩店
2.2 區分 Actions、Calculations 與 Data
2.3 初探分層設計,依『變化頻率』整理程式碼
2.4 使用頭等抽象化
2.5 以時間線圖將分散式系統視覺化
2.6 多條時間線的執行順序可能不同
2.7 關於分散式系統的寶貴經驗
2.8 時間線分界:讓機器人互相等待
2.9 我們從時間線中學到的事:協調多台機器人
第一篇 徹底學通 Actions、Calculations 與 Data
第 3 章 分辨 Actions、Calculations 與 Data
3.1 ACD 的特性與應用時機
3.2 生活中的 ACD
3.3 買菜教會我們的事情
3.4 用函數式思維撰寫程式
3.5 畫出優惠碼電子報的流程圖
3.6 實作優惠券電子報流程
3.7 將函數式思維應用在既存的程式碼
3.8 Actions 會在程式中擴散
3.9 Actions 的形式多變
第 4 章 擷取 Actions 函式中的 Calculations
4.1 歡迎來到 MegaMart.com!
4.2 計算免運費項目
4.3 計算稅金
4.4 程式的可測試性有待提升
4.5 程式的可重複使用性也需提升
4.6 區分 Actions、Calculations 與 Data
4.7 函式有輸入與輸出
4.8 測試與重複使用性和輸入╱輸出相關
4.9 從一個 Action 中擷取出 Calculation
4.10 擷取另一個 Action 中的 Calculation
4.11 查看完整程式碼
第 5 章 改良 Actions 的設計
5.1 應配合需求設計程式
5.2 應依照需求撰寫函式
5.3 設計原則 1:最小化隱性輸入與輸出
5.4 減少隱性輸入與輸出
5.5 快速清理一下程式碼
5.6 替 Calculations 分類
5.7 設計原則 2:『拆解』是設計的本質
5.8 藉由拆解 add_item() 來改良程式
5.9 擷取『寫入時複製』模式
5.10 使用 add_item()
5.11 再次替 Calculations 分類
5.12 更小的函式與更多 Calculations
第 6 章 在變動的程式中讓資料保持不變
6.1 任何操作中的資料都能具有不變性嗎?
6.2 將操作分為『讀取』、『寫入』與『讀取兼寫入』
6.3 實作『寫入時複製』的三步驟
6.4 利用『寫入時複製』將『寫入』變成『讀取』
6.5 對比實作『寫入時複製』前後的程式碼
6.6 將實作『寫入時複製』的操作普適化
6.7 簡介 JavaScript 陣列
6.8 如果操作既是『讀取』也是『寫入』怎麼辦?
6.9 拆解同時『讀取』與『寫入』的函式
6.10 讓一個函式傳回兩個值
6.11 讀取不可變資料結構屬於 Calculations
6.12 程式中包含隨時間而變的狀態
6.13 不可變資料的效率已經夠高
6.14 作用在物件上的寫入時複製操作
6.15 簡介 JavaScript 物件
6.16 將巢狀資料的『寫入』轉換成『讀取』
6.17 巢狀資料中的哪些東西需要複製?
6.18 將『淺拷貝』與『結構共享』視覺化
第 7 章 讓不變性不受外來程式破壞
7.1 使用既有程式 (legacy code) 時的不變性
7.2 寫入時複製函式需與未實作不變性的函式互動
7.3 防禦型複製能守護資料不變性
7.4 實作防禦型複製
7.5 防禦型複製的原則
7.6 將不受信任的程式包裝起來
7.7 你或許看過的防禦型複製
7.8 比較『寫入時複製』與『防禦型複製』
7.9 深拷貝所需資源較淺拷貝高
7.10 以 JavaScript 實作深拷貝很困難
7.11 想像『寫入時複製』與『防禦型複製』之間的對話
第 8 章 分層設計 (1)
8.1 何謂軟體設計?
8.2 何謂分層設計?
8.3 建立設計直覺
8.4 分層設計的原則
8.5 原則 1:讓實作更直觀
8.6 三個不同的檢視等級
8.7 擷取 for loop
8.8 總結 — 原則 1:讓實作更直觀
第 9 章 分層設計 (2)
9.1 複習分層設計的原則
9.2 原則 2:以抽象屏障輔助實作
9.3 抽象屏障可隱藏實作細節
9.4 細節忽略是雙向的
9.5 更改『購物車』的資料結構
9.6 將『購物車』重新實作為物件
9.7 抽象屏障讓我們能夠忽略細節
9.8 何時該 (或不該) 用抽象屏障?
9.9 總結 — 原則 2:以抽象屏障輔助實作
9.10 程式變得更清楚了!
9.11 原則 3:讓下層函式保持簡約與不變
9.12 總結 — 原則 3:讓下層函式保持簡約與不變
9.13 原則 4:分層只要舒適即可
9.14 呼叫圖呈現了哪些與程式有關的資訊?
9.15 修改呼叫圖上層的函式較安全
9.16 測試底層函式較重要
9.17 底層函式較能重複利用
9.18 總結 — 呼叫圖告訴我們的訊息
第二篇 頭等抽象化
第 10 章 頭等函式 (1)
10.1 行銷部門仍需與開發小組協調
10.2 程式碼異味:函式名稱中的隱性引數
10.3 重構 1:將隱性引數轉換為顯性參數
10.4 辨識頭等與非頭等
10.5 用字串當屬性名稱會不會增加錯誤發生率?
10.6 將屬性名稱頭等化,會不會造成 API 難以修改?
10.7 為什麼要用物件實作資料?
10.8 頭等函式可取代任何語法
10.9 For 迴圈重構範例
10.10 重構 2:以回呼取代主體實作
10.11 內嵌與匿名函式
10.12 為什麼要將 saveUserData() 包裹在函式中?
第 11 章 頭等函式 (2)
11.1 函式名稱中的隱性引數與兩種重構
11.2 重構寫入時複製
11.3 重構陣列的寫入時複製
11.4 讓函式傳回函式
第 12 章 利用函式走訪
12.1 函式名稱中的隱性引數與兩種重構
12.2 MegaMart 想建立新的電子郵件系統
12.3 從範例函式中擷取 map() 的實作
12.4 三大函數式工具 — map()
12.5 傳入函式的三種方法
12.6 範例:取得所有顧客的電子郵件地址
12.7 從範例函式中擷取 filter() 的實作
12.8 三大函數式工具 — filter()
12.9 範例:找出從未消費過的顧客
12.10 從範例函式中擷取 reduce() 的實作
12.11 三大函數式工具 — reduce()
12.12 範例:連接字串
12.13 reduce() 可以做什麼?
12.14 比較三大函數式工具
第 13 章 串連函數式工具
13.1 新的資料請求
13.2 函式鏈整理方法 (1) — 為步驟命名
13.3 函式鏈整理方法 (2) — 為回呼函式命名
13.4 比較兩種函式鏈整理方法
13.5 範例:寄送電子郵件給僅消費過一次的顧客
13.6 以函數式工具重構既有的 for 迴圈
13.7 訣竅 1:將資料儲存至獨立陣列
13.8 訣竅 2:細化步驟
13.9 比較巢狀迴圈與函式鏈寫法
13.10 總結撰寫函式鏈的訣竅
13.11 替函式鏈除錯的訣竅
13.12 其它函數式工具
13.13 以 reduce() 建立資料
13.14 擴增原本的資料
13.15 將 method chaining 中的『點』對齊
第 14 章 處理巢狀資料的函數式工具
14.1 用高階函式處理物件內的值
14.2 讓屬性名稱變顯性
14.3 實作更新物件內屬性值的 update()
14.4 以 update() 修改物件屬性值
14.5 重構 3:以 update() 取代『取得、修改、設定』
14.6 函數式工具 — update()
14.7 將 update() 的行為視覺化
14.8 將巢狀資料的 update() 視覺化
14.9 用 update() 處理巢狀資料
14.10 實作成普適化的 updateOption()
14.11 實作兩層巢狀結構的 update2()
14.12 視覺化說明 update2() 如何操作巢狀物件
14.13 函式 incrementSizeByName() 的四種實作方法
14.14 實作三層巢狀結構的 update3()
14.15 實作任意巢狀深度的 nestedUpdate()
14.16 安全的遞迴需具備什麼?
14.17 將 nestedUpdate() 的行為視覺化
14.18 比較遞迴和迴圈
14.19 遇到深度巢狀資料時的設計考量
14.20 為巢狀資料建立抽象屏障
14.21 總結高階函式的應用
第 15 章 解析時間線
15.1 發現 bug!
15.2 連續點兩下滑鼠
15.3 用時間線圖呈現時間上的變化
15.4 畫時間線圖需掌握兩項基本原則
15.5 Actions 執行順序的兩項細節
15.6 畫出放入購物車的時間線圖:步驟 1
15.7 非同步回呼要畫在不同時間線上
15.8 不同程式語言採用不同執行緒模型
15.9 一步步建立時間線
15.10 畫出『放入購物車』的時間線圖:步驟 2
15.11 時間線圖能反映兩類序列式程式
15.12 時間線圖能反映平行程式碼的順序不確定性
15.13 改善時間線的原則
15.14 JavaScript 的單執行緒
15.15 JavaScript 的非同步佇列
15.16 AJAX 請求與回應
15.17 AJAX 非同步處理的完整流程
15.18 簡化時間線
15.19 閱讀完成的時間線圖
15.20 簡化『放入購物車』的時間線圖:步驟3
15.21 複習時間線圖製作流程
15.22 總結繪製時間線圖的技巧
15.23 並列時間線圖能突顯出問題
15.24 『慢慢點兩次滑鼠』必產生正確結果
15.25 『快速連點兩次滑鼠』可能產生錯誤結果
15.26 共享資源的時間線是問題所在
15.27 將全域變數轉換成區域變數
15.28 將全域變數轉換成引數
15.29 增加函式的可重複使用性
15.30 在非同步呼叫中,需利用回呼實現顯性輸出
第 16 章 多條時間線共享資源
16.1 改善時間線的原則
16.2 『放入購物車』程式仍可能出錯
16.3 DOM 更新的順序必須固定
16.4 在JavaScript 中自行建立佇列
16.5 從現實生活中的共享案例獲取靈感
16.6 讓佇列可重複使用
16.7 分析時間線
16.8 利用時間線圖找出錯誤
16.9 設定佇列容量上限
第 17 章 協調時間線
17.1 改善時間線的原則
17.2 發現新 bug
17.3 優化小組到底改了什麼
17.4 繪製時間線圖步驟 1:辨識 Actions
17.5 繪製時間線圖步驟 2:將 Actions 畫在時間線上
17.6 繪製時間線圖步驟 3:簡化時間線圖
17.7 分析潛在順序
17.8 優化後的程式為何較快?
17.9 等待兩個平行處理的回呼
17.10 實現時間線分界的 concurrency primitives
17.11 在『放入購物車』程式裡應用 Cut()
17.12 再次分析潛在順序
17.13 分析平行處理的時間
17.14 對『多次點擊』進行分析
17.15 讓 Action 只能執行一次 primitive
17.16 隱性 vs. 顯性時間模型
17.17 總結:操作時間線
第 18 章 反應式與洋蔥式架構
18.1 兩種獨立的設計架構
18.2 與程式更動有關的因與果糾纏不清
18.3 什麼是反應式架構?
18.4 反應式架構是雙面刃
18.5 頭等狀態模型 — Cell
18.6 把 ValueCell 變成反應式
18.7 如何在 cell primitive 改變時更新運費標籤
18.8 用 FormulaCell 處理從其它變數計算來的值
18.9 FP 中的可變狀態
18.10 反應式架構的三大效果
18.11 切斷變更操作與顯示結果之間的關聯
18.12 將連續步驟轉換成處理管道
18.13 讓時間線更具彈性
18.14 複習:兩種獨立的設計架構
18.15 什麼是洋蔥式架構?
18.16 複習:Actions、Calculations 與 Data
18.17 複習:分層設計
18.18 傳統的層狀架構
18.19 函數式架構
18.20 提升可修改與可重複使用性
18.21 檢視該操作中包含哪些元素
18.22 考慮程式碼的可讀性、開發速度與效能
第 19 章 踏上函數式設計之途
19.1 本章的內容規劃
19.2 各位已掌握的專業技巧
19.3 不能忘記的三大重點
19.4 新技術的學習曲線
19.5 提升熟練度的方法
19.6 沙盒:開始你的個人專案
19.7 沙盒:找練習題來做
19.8 實務操作:為程式碼除錯
19.9 實務操作:漸近地改善既有設計
19.10 常見的 FP 程式語言
19.11 最多工作機會的 FP 語言
19.12 適合在什麼平台上運行
19.13 重點 FP 特徵
19.14 函數式設計的數學基礎
19.15 進階閱讀
原價:
1000
售價:
900
現省:
100元
立即查看
醫療糾紛處理之新思維(一)-以臺中地院醫
類似書籍推薦給您
立即查看
呼吸專業指南:運用多面向介入方法以預防及改善呼吸失調 (1版)
類似書籍推薦給您
本書介紹
良好的呼吸模式才是身心健康最關鍵的因素!
呼吸疾患模式(BPD)是經常無法被診斷出來的「健康問題」。 全世界有許多的人口正在承受這種健康障礙的痛苦,特別是在較為先進與發達的國家。 因此,許多醫療人員也會在臨床上遇到這些問題,但卻沒有接受過任何有關BPD之因果關係或管理介入的培訓。
本書旨在幫助臨床工作人員了解呼吸紊亂的各項原因和影響,並提供幫助恢復健康功能的策略和方案。 更新版也針對內文做了全面性地更新與修訂,期待能以全新角度來幫助臨床人員識別BPD,同時帶出相關的最新研究成果,包含一系列全新技術(特別與國際跨團隊專業學科接軌),來幫助恢復BPD並維持呼吸正常功能。
本書還涉略了與呼吸相關的基礎醫學,例如:解剖學、生理學、生物化學等。接著更進一步於各章討論呼吸失調相關的心理學、情緒變量等;以及各種學科所採取的觀察角度與評估方案,包括:動態神經肌肉穩定方法、骨病徒手治療、物理治療、和心理治療等。
此外,還將內容延伸至適用於各種環境的系統性措施,例如患有長期慢性疼痛的患者。最後的章節則介紹了言語和歌唱的呼吸技巧、運動員的呼吸障礙排除;並探討了坊間最為流行的Feldenkrais®、皮拉提斯、太極氣功、瑜珈柔軟操等與呼吸相關的技術內容。
本書特點:
• 延攬全球知名專家組成編撰團隊,並在 Leon Chaitow 的精心協調下出版成品。
• 大量使用說明框、簡易繪圖、照片、和分析列表等,以方便讀者快速理解與抓出重點。
• 強化臨床實用性、科學驗證性、和臨床主導性的條列說明。
• 充分的以臨床個案舉例來確保讀者能真實理解所要表達的主題真意。
• 架設輔助網站並上傳官方說明影片,以提供讀者更了解內文中所討論到的呼吸技巧與實際演練流程。
• 探討二氧化碳監測儀在評估和復健治療過程中的使用情況。
全書由國際知名專家所編寫,非常適合以下的健康從業人員:物理治療師、徒手治療師、保健推拿師、骨科醫師、整脊醫師、按摩理療師、身體結構整合訓練師、皮拉提斯教師、瑜伽教師、太極氣功師、Feldenkrais教練、運動教練、和語言發聲教練等。
目錄
1 何謂呼吸疾患模式? 1
2.1 動態神經肌肉穩定術:從發育肌動學、呼吸經典模式和姿勢移動功能談起 13
2.2 呼吸的結構與功能 27
2.3 鼻腔對呼吸的影響 49
3 過度換氣與呼吸疾患模式之呼吸功能障礙 55
4 呼吸的生物化學 65
5 心理與情緒的變化對呼吸功能障礙的影響 85
6.1 動態神經肌肉穩定術(DNS):評估方法 101
6.2 呼吸疾患模式下骨骼結構改變的評估學 109
6.3 物理治療評估的介入方式 129
6.4 呼吸問題的心理評估 141
6.5 評估呼吸失能的問卷量表及徒手測量方法 151
6.6 二氧化碳監測儀的評估 163
7.1a 呼吸調節的間接技術 171
7.1b 動態神經肌肉穩定術(DNS) 治療方法 179
7.2 胸腔和呼吸功能障礙之骨病學徒手治療 185
7.3 物理治療在呼吸疾患模式中的角色 201
7.4 呼吸問題的心理訓練及治療 215
7.5 說話與歌唱 223
7.6 呼吸疾患模式和運動員的關係 235
7.7 以二氧化碳監測儀運用於呼吸疾患模式 247
8.1 長期疼痛障礙的呼吸模式:身體認知療法的評估與治療 255
8.2 Buteyko 呼吸法的技巧 265
8.3 Feldenkrais® 與呼吸 273
8.4 皮拉提斯在呼吸疾患模式的復健應用 285
8.5 太極、氣功和呼吸 295
8.6 瑜伽在呼吸疾病中應用的回顧 303
9 自助方式 313
索引 325
原價:
1000
售價:
900
現省:
100元
立即查看
改顎歸正:以下顎為中心的健康療法
類似書籍推薦給您
24
立即查看
以愛與技巧教導孩子-自閉兒家長與教育人員指南
類似書籍推薦給您
以愛與技巧教導孩子:自閉兒家長與教育人員指南
系列名:障礙教育
ISBN13:9789861917191
出版社:心理
作者:許作思
譯者:張靜
裝訂/頁數:平裝/528頁
規格:23cm*17cm*3cm (高/寬/厚)
版次:1
出版日:2016/05/23
中文圖書分類:神經系統疾病;精神醫學
內容簡介
自閉兒家長們在培養和教導孩子學習時,常常會有力所不及的感受。本書為包括中度和重度自閉症孩子的家長和教育從業人員提供方針,幫助各位在眾多的介入方法中找出適合孩子個別需要的教學策略。
身為自閉兒的家長和醫學專業人員,作者許作思博士根據她親身的經驗,以愛心、信心和決心為主導,在書中提供了全面且實用的忠告和建議。從學習的起始點到抽象思維的建立,在知性、人際關係和情緒發展等各方位,按部就班的帶領各位一步一步走過來;書中也提供一些目前通用教導自閉兒方法的入門指南,讓各位可以學習到如何激發孩子參與遊戲的動機、鼓勵他們學習和他人溝通、應付挑戰行為和學習日常生活所需的技能,使孩子在一個信賴你的親子關係中成長。
目錄
Chapter 1 ˙ 我的孩子怎麼了?
什麼是自閉症?了解是治療的第一步
感覺統合的挑戰
維持、引導與轉移注意力的挑戰
判斷完形(完整圖像)與突出經驗(什麼事情重要)的挑戰
動作計畫與協調的挑戰
人際互動的挑戰
溝通的挑戰
調整情緒的挑戰
結論
Chapter 2 ˙ 心態第一
Chapter 3 ˙ 觀察:重要的起始點
顧及孩子的身體與感覺需求
顧及孩子的情緒需求
觀察孩子遊戲時的情形
為孩子建立穩固的基礎
Chapter 4 ˙ 感覺統合
我們的孩子經歷的是什麼?自閉症與感覺問題患者的經驗談
評估孩子感覺處理的概況
處理永遠難以滿足的感覺欲望
降低敏感度與調適
把接力棒交給孩子
Chapter 5 ˙ 動作計畫
身體移動與動作計畫障礙的謎團
提升動作計畫的實用技巧
動作統合在學習時的重要性
調適粗大動作障礙
了解孩子,掌握重點
Chapter 6 ˙ 引導孩子參與:如何讓孩子願意跟你玩?
牢記準備工作的必要性
找到切入的方法:掌握孩子的興趣
如果孩子沒有有意義的興趣,就透過「活動迴路」培養孩子的興趣
如何指導孩子進行迴路活動?
請幫助我!我不夠有創意!
地板時間、RDI 與漢娜課程:該怎麼選擇?
教學時口述或不用口述:要求的程度該如何拿捏?
結論
Chapter 7 ˙ 培養動機
以神經學的觀點探討激發學習動機的因素
你能修復受損的動機嗎?
激發動機的實用原則
結論
Chapter 8 ˙ 擬定認知發展策略
設定認知發展目標
如何教導孩子目標的概念?
機會教育還不夠就運用 DTT
分段嘗試訓練入門
Chapter 9 ˙ 培養溝通方法
為何要採取折衷方法?
以動作為基礎,透過手勢溝通
透過交換物件進行溝通
具象溝通:運用圖卡進行溝通
符號溝通:運用文字進行溝通
如何教導孩子組合單字(造句)?
如何以有條理的方式教導口語溝通?
學習以打字的方式溝通
結論:現在你知道原則了
Chapter 10 ˙ 教導非口語溝通
運用四 S 原則
非口語溝通的重要性
在日常生活情境透過詳盡的訓練教導非口語溝通技能
製造更多教導非口語溝通的機會
「眼睛」會說話!
幫助孩子建立一套手勢語言
練習基本的肢體語言
透過非口語溝通辨識與表達情緒
不容易,但絕對值得
Chapter 11 ˙ 社交與情緒發展的基礎階段
第一階段:我能安靜與專注嗎?
第二階段:我能參與並回應父母的誘導與提議嗎?
第三階段:我能以有意義的行動回應嗎?雙向溝通與互動循環
第四階段:概念化與角色取替的形成
第五階段:符號思考與假想遊戲
面對現實:孩子的進展需要時間
結論
Chapter 12 ˙ 高階的認知發展:進入抽象思考階段
要求與商量:象徵思考與邏輯思考的第一步
下一步:透過結構式教學、遊戲的練習與日常生活的應用培養抽象思考
結論
Chapter 13 ˙ 進階的社交與情緒發展:探索內心世界
跟著感覺走:探索第五階段的可能性
奠定各個社交與情緒發展階段的認知基礎
進入第六階段之後:進階的社交與情緒發展圖譜
遊戲與活動的資源
工具性互動與經驗分享
建立內心世界
教導孩子傾聽他人的想法
一起創作日誌故事
社交與情緒發展:都與對話有關
Chapter 14 ˙ 探索學習的美好旅程
如何幫助孩子學習?
如何教導學習技巧?
過程的反思
Chapter 15 ˙ 挑戰行為
神經性原因導致的挑戰行為
行為功能評估:或多或少有幫助
潛在的生理因素:找出癥結
如果自我刺激已經嚴重影響孩子的生活,該怎麼辦?
對抗強迫症怪獸
下一個階段的戰鬥
長期應付強迫症
對抗焦慮症
與惰性共存
工作的挫折感
結論
Chapter 16 ˙ 自傷與攻擊行為
他們為什麼會這麼做?
處理緊急狀況
調解與矯正
修復
運用行為功能分析
把攻擊行為塑造成較具適應性的回應
以話語取代打人的行為
原則摘要
相信你的直覺
情況一定會好轉
Chapter 17 ˙ 運用日常作息訓練自助技能
什麼是自助技能?
態度
設定合理的目標
如何教導自助技能?
利用日常作息教導動作協調、團隊合作、輪流、語言、主動性、表徵思考與抽象思考
訓練動機
訓練獨立與自助助人的態度
指派任務與溝通
Chapter 18 ˙ 我怎麼可能辦得到?
集結所有的資源
安排好進程
尋求指引、協助與資源
建立支援團隊
幫助孩子擴大朋友圈
大家一起努力
結語:裝著彈弓與石頭的工具箱
彼得的詩
術語彙編
參考文獻
立即查看