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

閱讀時間約 1 分鐘

避免命名衝突

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

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



避免非預期行為

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

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



避免非預期依賴

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


資料來源

主要放程式學習筆記,分享 Creative Coding 相關內容、作品
留言0
查看全部
發表第一個留言支持創作者!
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
npm(全名 Node Package Manager,node套件管理器)
透過 node 的 http 模組來建立 web 伺服器範例
Global 物件和 node 模組特性的介紹
類別 (class) 是在 ES6 中引入,用來作為建立新物件的模板。它可以將程式碼封裝起來。
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
npm(全名 Node Package Manager,node套件管理器)
透過 node 的 http 模組來建立 web 伺服器範例
Global 物件和 node 模組特性的介紹
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
📖:布鲁克林有颗树 ✍🏻:贝蒂·史密斯 📚 《布鲁克林有颗树》一书,由作者贝蒂·史密斯所写,讲述了一个爱情历程。从书中的描写中我们可以看到,虽然故事情节并不发生在当下,但每一场情感经历都是时刻发生在我们的身边。将书中人物的心情掌握后,仿佛自己也亲身经历过这段感情。😍 🌲 返璞归真,重拾阅读
Thumbnail
塔羅占卜:未來1個月工作方面有什麼要注意的地方?(無時間限制) ※靜下心來憑直覺從A.B.C.D中,選出一個選項※ (運勢提醒僅供參考,希望能幫助大家用來趨吉避凶,命運掌握在自己手中!) ************* ************* ************* ●選擇A: 寶劍三(逆) +
Thumbnail
塔羅占卜:未來一個月在財運方面有什麼要注意的呢?(無時間限制) ※靜下心來憑直覺從A.B.C.D中,選出一個數字※ (運勢提醒僅供參考,希望能幫助大家用來趨吉避凶,命運掌握在自己手中!) ************* ************* ************* ●選擇A: 金幣二(逆) +
Thumbnail
塔羅占卜:未來一個月內和另一半在感情方面有什麼要注意的地方呢?(無時間限制) ※靜下心來憑直覺從1.2.3.4中,選出一個數字※ (運勢提醒僅供參考,希望能幫助大家用來趨吉避凶,命運掌握在自己手中!) ************* ************* ************* ●選擇1: 金
:「失敗的話怎麼辦、不成功的話怎麼辦、可是我會怕搞砸啊。」 不知道為什麼,最近身邊出現了這些聲音。想跟你們分享上周我是怎麼回答 現在的我覺得重點不是不要害怕,是不要一直想著失敗,想過一次很重要 ,但是想過一次就好,對,一次就好。 你是要成功的人,為什麼要一直思考失敗的可能?
Thumbnail
<p>為什麼要政府補貼綠能? 讓污染者補貼改善污染者、政府負擔小,初期綠能市場小時效果大,晚期綠能市場大時不需補貼,獎勵也會自動減少。</p>
Thumbnail
同樣學才藝,有可能變成技術的反覆操練與孩子的夢魘,也有機會成為陪伴孩子終生的興趣,讓他們更能品味生活,成為生命的活水源頭,其間的差別或許只是家長的態度與孩子自己的感覺。
Thumbnail
念書絕不是為了考試,而是為了增加自身能力的眾多方法之一罷了,也可以說,念書是一種工具。
Thumbnail
<p>投資不只是精算成本,也不只是注重利潤,風險與現金流才是資產穩健成長的重要因素,依個人的資金及屬性,搭配出兼顧利潤、風險與現金流的組合。</p>
Thumbnail
<p>下錨寶寶是富有的亞洲人「一人得道,雞犬升天」的利器,為了讓孩子有美國公民權,花再多的錢都在所不惜。但對於美國候選人口中「非法移民」的拉丁美洲裔,在美國生寶寶並不是通往幸福的直達車。因為除了產子的喜悅外,更多的是如何處理「生存」這複雜的難題。</p>
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
📖:布鲁克林有颗树 ✍🏻:贝蒂·史密斯 📚 《布鲁克林有颗树》一书,由作者贝蒂·史密斯所写,讲述了一个爱情历程。从书中的描写中我们可以看到,虽然故事情节并不发生在当下,但每一场情感经历都是时刻发生在我们的身边。将书中人物的心情掌握后,仿佛自己也亲身经历过这段感情。😍 🌲 返璞归真,重拾阅读
Thumbnail
塔羅占卜:未來1個月工作方面有什麼要注意的地方?(無時間限制) ※靜下心來憑直覺從A.B.C.D中,選出一個選項※ (運勢提醒僅供參考,希望能幫助大家用來趨吉避凶,命運掌握在自己手中!) ************* ************* ************* ●選擇A: 寶劍三(逆) +
Thumbnail
塔羅占卜:未來一個月在財運方面有什麼要注意的呢?(無時間限制) ※靜下心來憑直覺從A.B.C.D中,選出一個數字※ (運勢提醒僅供參考,希望能幫助大家用來趨吉避凶,命運掌握在自己手中!) ************* ************* ************* ●選擇A: 金幣二(逆) +
Thumbnail
塔羅占卜:未來一個月內和另一半在感情方面有什麼要注意的地方呢?(無時間限制) ※靜下心來憑直覺從1.2.3.4中,選出一個數字※ (運勢提醒僅供參考,希望能幫助大家用來趨吉避凶,命運掌握在自己手中!) ************* ************* ************* ●選擇1: 金
:「失敗的話怎麼辦、不成功的話怎麼辦、可是我會怕搞砸啊。」 不知道為什麼,最近身邊出現了這些聲音。想跟你們分享上周我是怎麼回答 現在的我覺得重點不是不要害怕,是不要一直想著失敗,想過一次很重要 ,但是想過一次就好,對,一次就好。 你是要成功的人,為什麼要一直思考失敗的可能?
Thumbnail
<p>為什麼要政府補貼綠能? 讓污染者補貼改善污染者、政府負擔小,初期綠能市場小時效果大,晚期綠能市場大時不需補貼,獎勵也會自動減少。</p>
Thumbnail
同樣學才藝,有可能變成技術的反覆操練與孩子的夢魘,也有機會成為陪伴孩子終生的興趣,讓他們更能品味生活,成為生命的活水源頭,其間的差別或許只是家長的態度與孩子自己的感覺。
Thumbnail
念書絕不是為了考試,而是為了增加自身能力的眾多方法之一罷了,也可以說,念書是一種工具。
Thumbnail
<p>投資不只是精算成本,也不只是注重利潤,風險與現金流才是資產穩健成長的重要因素,依個人的資金及屬性,搭配出兼顧利潤、風險與現金流的組合。</p>
Thumbnail
<p>下錨寶寶是富有的亞洲人「一人得道,雞犬升天」的利器,為了讓孩子有美國公民權,花再多的錢都在所不惜。但對於美國候選人口中「非法移民」的拉丁美洲裔,在美國生寶寶並不是通往幸福的直達車。因為除了產子的喜悅外,更多的是如何處理「生存」這複雜的難題。</p>