為什麼要限制作用域暴露 (limit scope exposure)

阿榮-avatar-img
發佈於前端
更新 發佈閱讀 1 分鐘

避免命名衝突

當兩段程式碼使用同一個變數或函式名,但這個變數在同一個作用域 (例如全域),就會發生命名衝突,產生非預期的 bugs。

例如,如果你所有的迴圈都使用一個全域的 i 索引變數,然後發生在一個函式中的迴圈在另一個函式的迴圈迭代期間正在執行,共享的 i 變數就獲得了一個意外的值...



避免非預期行為

將變數/函式暴露在外,表示其他開發者也可以取用,無法限制別人會怎麼更改變數或函式,容易違背了預期的行為並導致 bugs。

例如,如果原本預設一個陣列全部都要是數值,但其他開發者在陣列加入了布林值和字串。燈楞 ! 非預期的行為就發生了,而且很容易不知道是哪邊導致的問題。



避免非預期依賴

如果不必要地暴露變數/函式,它會促使其他開發者使用並依賴那些本來應該是私有的部分。或許不會立刻破壞程式碼,但它造成重構的風險,當我們之後想要重構時,就沒辦法輕易去變動,因為很可能因此把程式碼的其他部分弄壞。


資料來源

留言
avatar-img
阿榮 | 前端 ~ 互動藝術程式
2會員
39內容數
主要放程式學習筆記,分享 Creative Coding 相關內容、作品
2024/04/19
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
2024/04/19
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
2024/04/15
2024/04/15
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
設定討論方向到情報操作者不想要的方向,可以卡住情報操作者想引導人們相信的事、辯解的藉口。 以 #兩兆錢坑 法案來講,情報操作者的論述大概是用「時候未到所以不一定」的原理來欺瞞逃脫質疑。這時可以設定的討論方向是: 1雖然未發生,但是法規有限制比較有保障 2討論「空白授權」可能的危害 例如:
Thumbnail
設定討論方向到情報操作者不想要的方向,可以卡住情報操作者想引導人們相信的事、辯解的藉口。 以 #兩兆錢坑 法案來講,情報操作者的論述大概是用「時候未到所以不一定」的原理來欺瞞逃脫質疑。這時可以設定的討論方向是: 1雖然未發生,但是法規有限制比較有保障 2討論「空白授權」可能的危害 例如:
Thumbnail
【駭入別人銷售漏斗,模仿驗證有效流程】
Thumbnail
【駭入別人銷售漏斗,模仿驗證有效流程】
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
Thumbnail
這篇文章探討了在軟體開發中的技術債可能來自哪些原因,以及如何自動化偵測與修復技術債。作者透過分享不同情境下的技術債選擇,提供了對於技術債的思考與建議,針對開發人員在需要做出無奈的技術決策時,提供了一些建議。此外,還提供了一些在做出技術決策時的方法,如保留抽象層和避免vendor lock-in。
Thumbnail
這篇文章探討了在軟體開發中的技術債可能來自哪些原因,以及如何自動化偵測與修復技術債。作者透過分享不同情境下的技術債選擇,提供了對於技術債的思考與建議,針對開發人員在需要做出無奈的技術決策時,提供了一些建議。此外,還提供了一些在做出技術決策時的方法,如保留抽象層和避免vendor lock-in。
Thumbnail
雜湊、編碼和加密雖然在資訊安全中扮演不同的角色,但很多人往往容易搞混它們的用途,本篇文章將帶你了解他們的區別。
Thumbnail
雜湊、編碼和加密雖然在資訊安全中扮演不同的角色,但很多人往往容易搞混它們的用途,本篇文章將帶你了解他們的區別。
Thumbnail
本文探討了為什麼+觀點這個句型具有操縱他人或自我洗腦的危險性,並提出避免被注射以及避免注射他人的建議。
Thumbnail
本文探討了為什麼+觀點這個句型具有操縱他人或自我洗腦的危險性,並提出避免被注射以及避免注射他人的建議。
Thumbnail
隨着網絡攻擊和資料外洩的種類越來越多,防御方案的部署也要與時並進。近年,很多企業開始留意和測試部署使用者和實體行為分析(UEBA)的可行性。 在資訊保安工作上,內部人員被駭或者內部人員出現錯誤的行為導致企業暴露於風險之中......
Thumbnail
隨着網絡攻擊和資料外洩的種類越來越多,防御方案的部署也要與時並進。近年,很多企業開始留意和測試部署使用者和實體行為分析(UEBA)的可行性。 在資訊保安工作上,內部人員被駭或者內部人員出現錯誤的行為導致企業暴露於風險之中......
Thumbnail
談了許多網路安全的議題,提醒民眾要注意哪些事情,建構哪些網路安全思維,讓我們可以降低踏入詐騙陷阱的風險。但除了民眾本身要不斷學習、提升防詐意識外,是不是還有其他方面的作法呢? 本文就來聊聊在企業端可以做些什麼。 要打造一個密不可破的防護網,企業端就不能夠缺席。 舉幾個例子讓大家知道。
Thumbnail
談了許多網路安全的議題,提醒民眾要注意哪些事情,建構哪些網路安全思維,讓我們可以降低踏入詐騙陷阱的風險。但除了民眾本身要不斷學習、提升防詐意識外,是不是還有其他方面的作法呢? 本文就來聊聊在企業端可以做些什麼。 要打造一個密不可破的防護網,企業端就不能夠缺席。 舉幾個例子讓大家知道。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News