」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 變數和資料夾的命名規則是什麼?

變數和資料夾的命名規則是什麼?

發佈於2024-11-08
瀏覽:500

What are the rules for naming variables and folders?

การตั้งชื่อสำหรับตัวแปรและโฟลเดอร์ในโปรเจกต์มีความสำคัญมากในการรักษาความอ่านง่ายและความเป็นระเบียบของโค้ด ต่อไปนี้คือลักษณะและกฎทั่วไปในการตั้งชื่อ:

การตั้งชื่อตัวแปร

  1. ใช้ camelCase: สำหรับตัวแปร, ฟังก์ชัน, และชื่อของ props หรือ state variables เช่น:

    • userName
    • isLoggedIn
    • handleClick
  2. ตั้งชื่อให้ชัดเจน: ชื่อของตัวแปรควรสื่อความหมายให้ชัดเจนเกี่ยวกับหน้าที่หรือข้อมูลที่มันเก็บ เช่น:

    • cartItems (สำหรับรายการในรถเข็น)
    • authToken (สำหรับโทเคนการยืนยันตัวตน)
  3. ใช้ชื่อที่สื่อถึงประเภทข้อมูล: หากมีหลายประเภทข้อมูลในตัวแปรเดียวกัน เช่น:

    • userAge (ถ้ามีตัวแปรหลายประเภทเกี่ยวกับผู้ใช้)
    • productPrice
  4. หลีกเลี่ยงการใช้ตัวย่อ: ใช้ชื่อเต็มเพื่อความชัดเจน เช่น:

    • ใช้ userProfile แทน usrProf

การตั้งชื่อโฟลเดอร์

  1. ใช้ kebab-case หรือ snake_case: สำหรับชื่อของโฟลเดอร์ เช่น:

    • user-profile (kebab-case)
    • user_profile (snake_case)
  2. ตั้งชื่อให้สื่อความหมาย: ชื่อของโฟลเดอร์ควรสื่อถึงเนื้อหาหรือฟังก์ชันการทำงานของโฟลเดอร์นั้น เช่น:

    • components/ (สำหรับเก็บคอมโพเนนต์ React)
    • services/ (สำหรับเก็บฟังก์ชันบริการหรือ API)
    • hooks/ (สำหรับเก็บ custom hooks)
  3. ใช้รูปแบบที่สม่ำเสมอ: รักษารูปแบบการตั้งชื่อที่สม่ำเสมอในทั้งโปรเจกต์ เพื่อความเป็นระเบียบ เช่น:

    • ถ้าใช้ kebab-case สำหรับโฟลเดอร์หนึ่ง ให้ใช้รูปแบบเดียวกันสำหรับโฟลเดอร์ทั้งหมด
  4. หลีกเลี่ยงการใช้ชื่อทั่วไปหรือคลุมเครือ: ใช้ชื่อที่บ่งบอกถึงเนื้อหาหรือฟังก์ชันของโฟลเดอร์ เช่น:

    • ใช้ utils/ แทน misc/
    • ใช้ store/ แทน data/

ตัวอย่าง

โฟลเดอร์:

src/
├── components/
│   ├── Button.tsx
│   └── Header.tsx
├── hooks/
│   └── useFetch.ts
├── services/
│   └── apiService.ts
├── stores/
│   ├── auth/
│   │   ├── useAuthStore.ts
│   │   └── authTypes.ts
│   ├── user/
│   │   ├── useUserStore.ts
│   │   └── userTypes.ts
│   ├── product/
│   │   ├── useProductStore.ts
│   │   └── productTypes.ts
│   └── cart/
│       ├── useCartStore.ts
│       └── cartTypes.ts
└── index.ts

ตัวแปร:

// ตัวอย่างใน useAuthStore.ts
interface AuthState {
  isAuthenticated: boolean;
  user: string | null;
  login: (username: string) => void;
  logout: () => void;
}

// ตัวอย่างใน useUserStore.ts
interface UserState {
  name: string;
  email: string;
  updateUser: (name: string, email: string) => void;
}

การใช้กฎการตั้งชื่อที่ดีจะช่วยให้โค้ดของคุณดูเป็นระเบียบและเข้าใจง่ายขึ้น

การตั้งชื่อค่าคอนฟิกหรือค่าคงที่เช่น DATABASE_CONFIG ควรปฏิบัติตามหลักการที่ช่วยให้เข้าใจง่ายและตรงตามวัตถุประสงค์ นี่คือกฎในการตั้งชื่อค่าคอนฟิก:

กฎในการตั้งชื่อค่าคอนฟิก

  1. ใช้รูปแบบ UPPER_SNAKE_CASE: ชื่อของค่าคอนฟิกหรือค่าคงที่ควรใช้รูปแบบ UPPER_SNAKE_CASE เพื่อแสดงให้เห็นว่านี่คือค่าคงที่และไม่ควรถูกเปลี่ยนแปลง เช่น:

    • DATABASE_CONFIG
    • API_ENDPOINT
    • MAX_RETRY_ATTEMPTS
  2. สื่อความหมายได้ชัดเจน: ชื่อของค่าคอนฟิกควรบ่งบอกถึงการใช้งานหรือวัตถุประสงค์ของมัน เช่น:

    • DATABASE_HOST (สำหรับโฮสต์ของฐานข้อมูล)
    • CACHE_EXPIRATION_TIME (สำหรับเวลาหมดอายุของแคช)
  3. รวมคอนเท็กซ์และการใช้งาน: ค่าคอนฟิกควรมีชื่อที่รวมคอนเท็กซ์หรือการใช้งานเพื่อให้เข้าใจได้ง่าย เช่น:

    • EMAIL_SERVICE_API_KEY (สำหรับคีย์ API ของบริการอีเมล)
    • JWT_SECRET_KEY (สำหรับคีย์ลับของ JSON Web Token)
  4. หลีกเลี่ยงการใช้ชื่อที่คลุมเครือ: ชื่อของค่าคอนฟิกควรเฉพาะเจาะจงและไม่ควรใช้ชื่อที่คลุมเครือหรือทั่วไปเกินไป เช่น:

    • ใช้ DATABASE_PORT แทน PORT
    • ใช้ SESSION_TIMEOUT แทน TIMEOUT
  5. ใช้คำที่สื่อถึงประเภทของค่า: ชื่อค่าคอนฟิกควรสื่อถึงประเภทของค่า เช่น ค่าเชิงตัวเลข, สตริง, หรือ Boolean เป็นต้น เช่น:

    • MAX_CONNECTIONS (ค่าตัวเลขสูงสุดของการเชื่อมต่อ)
    • ENABLE_LOGGING (ค่า Boolean สำหรับเปิดหรือปิดการบันทึก)

ตัวอย่างการตั้งชื่อค่าคอนฟิก

ไฟล์คอนฟิก

// ตัวอย่างในไฟล์ config.ts

export const DATABASE_CONFIG = {
  HOST: 'localhost',
  PORT: 5432,
  USER: 'dbuser',
  PASSWORD: 'password',
  DATABASE_NAME: 'mydatabase'
};

export const API_CONFIG = {
  BASE_URL: 'https://api.example.com',
  TIMEOUT: 5000, // Timeout in milliseconds
  API_KEY: 'your-api-key-here'
};

export const APP_SETTINGS = {
  MAX_RETRY_ATTEMPTS: 3,
  SESSION_TIMEOUT: 3600, // Timeout in seconds
  ENABLE_LOGGING: true
};

การใช้ค่าคอนฟิกในโค้ด

import { DATABASE_CONFIG, API_CONFIG, APP_SETTINGS } from './config';

// การใช้ค่าคอนฟิกในการเชื่อมต่อฐานข้อมูล
const dbConnection = connectToDatabase({
  host: DATABASE_CONFIG.HOST,
  port: DATABASE_CONFIG.PORT,
  user: DATABASE_CONFIG.USER,
  password: DATABASE_CONFIG.PASSWORD,
  database: DATABASE_CONFIG.DATABASE_NAME
});

// การใช้ค่าคอนฟิกสำหรับ API
const fetchData = async () => {
  try {
    const response = await fetch(API_CONFIG.BASE_URL   '/data', {
      method: 'GET',
      headers: {
        'Authorization': `Bearer ${API_CONFIG.API_KEY}`
      },
      timeout: API_CONFIG.TIMEOUT
    });
    const data = await response.json();
    return data;
  } catch (error) {
    if (APP_SETTINGS.ENABLE_LOGGING) {
      console.error('Error fetching data:', error);
    }
    throw error;
  }
};

การใช้หลักการเหล่านี้จะช่วยให้คุณตั้งชื่อค่าคอนฟิกอย่างมีระเบียบและเข้าใจง่ายครับ

版本聲明 本文轉載於:https://dev.to/cinderellan/what-are-the-rules-for-naming-variables-and-folders-379k?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 如何在 Python 中使用 Inflect 將整數轉換為單字?
    如何在 Python 中使用 Inflect 將整數轉換為單字?
    在Python 中將整數轉換為單字在Python 中將數值轉換為對應的單字表示形式可能是一項令人費解的任務。本文探討了使用 inflect 套件的簡單解決方案。 困境:困境:該示例嘗試將歌曲“99 Bottles of Beer”打印在Wall”,用文字替換數值。然而,代碼目前顯示的是數字而不是它們...
    程式設計 發佈於2024-11-08
  • 關閉回應正文真的可以在 Go HTTP 用戶端中實現連線重用嗎?
    關閉回應正文真的可以在 Go HTTP 用戶端中實現連線重用嗎?
    Go HTTP 用戶端連線重複使用:常見誤解Go HTTP 用戶端預設設計為重複使用連接,提供高效率的網路使用率。然而,某些場景可能會導致對連接重用的誤解。 原始查詢:無限連接創建在給定的程式碼中,最初看起來無限數量的連接正在被創建。不過,這個問題可以透過在收到回應後關閉請求正文來解決。這使得傳輸能...
    程式設計 發佈於2024-11-08
  • 如何動態重定向Python函數中的標準輸出與錯誤流?
    如何動態重定向Python函數中的標準輸出與錯誤流?
    Python 中的上下文流重定向標準輸出和錯誤流(stdout 和stderr)的重定向在許多場景中證明是重定向在許多場景中證明是有用的。然而,當函數持有對這些流的內部引用時,傳統方法通常會出現不足。 需要動態解決方案傳統的重新導向技術,如 sys.stdout,永久重新導向流。當方法本質上在內部複...
    程式設計 發佈於2024-11-08
  • 如何在 Java 中有效地計算檔案或資料夾的大小?
    如何在 Java 中有效地計算檔案或資料夾的大小?
    在Java 中取得檔案或資料夾的大小檢索檔案或資料夾的大小是處理檔案時的常見任務在爪哇。以下是如何有效地做到這一點:取得檔案大小要取得檔案的大小,您可以使用java.io 上的length() 方法.文件對象。這將傳回檔案的長度(以位元組為單位),如果檔案不存在,則傳回 0。 java.io.Fil...
    程式設計 發佈於2024-11-08
  • 變數第 04 部分
    變數第 04 部分
    মনে করুন আপনি চা খাবেন। না, চা না। কফিই খান। প্রোগ্রামার হচ্ছেন কফি তো খেতেন পারেন। কফিকে প্রোগ্রামারদের সঙ্গি বললে ভুল হবে না । যাই হোক। এখন কফি তৈর...
    程式設計 發佈於2024-11-08
  • 當我開始使用 React 時我希望知道的事情
    當我開始使用 React 時我希望知道的事情
    3年React開發經驗教訓 當我第一次投入 React 時,感覺就像打開了潘朵拉魔盒。有很多東西要學,一路上,我遇到了很多「啊哈!」的情況。時刻。以下是我希望在開始時就知道的 10 件事,以幫助您在 React 之旅中跳過一些減速帶。 1. 元件只是函數 最重要的認知? React...
    程式設計 發佈於2024-11-08
  • 使用 Golang 編寫打字速度測試 CLI 應用程式
    使用 Golang 編寫打字速度測試 CLI 應用程式
    必須認真考慮這個標題嗎? ……現在我們已經解決了這個問題,讓我們寫一些該死的程式碼:) 泵浦煞車?尖叫……讓我們對今天要嘗試建立的內容做一些介紹。如果標題不明顯,我們將建立一個 CLI 應用程式來計算您在 golang 中的打字速度 - 儘管您可以使用您選擇的任何程式語言遵循相同的技術來建立相同的應...
    程式設計 發佈於2024-11-08
  • 為什麼我的 Bootstrap 模態不工作? ($(...).modal 不是函數)
    為什麼我的 Bootstrap 模態不工作? ($(...).modal 不是函數)
    TypeError: $(...).modal is not a function with Bootstrap Modal您在嘗試執行以下操作時遇到此錯誤動態地將Bootstrap 模式插入HTML 並使用jQuery 觸發它。讓我們深入研究一下問題:錯誤表明“$().modal”函數不被jQue...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中建立遞歸匿名函數?
    如何在 PHP 中建立遞歸匿名函數?
    創建遞歸匿名 PHP 函數在 PHP 中創建遞歸匿名函數可能會很有利。下面的程式碼示範如何完成此操作,傳遞一個函數作為參考。 $factorial = function( $n ) use ( &$factorial ) { if( $n == 1 ) return 1; ...
    程式設計 發佈於2024-11-08
  • 為什麼雙擊顯示/隱藏按鈕僅在第二次調用時起作用?
    為什麼雙擊顯示/隱藏按鈕僅在第二次調用時起作用?
    為什麼第一次使用時雙擊顯示/隱藏按鈕? 在網頁中,按鈕的作用是顯示或隱藏一個元素,但它需要雙擊其初始呼叫。經檢查發現按鈕的代碼為:function showhidemenu() { var x = document.getElementById("menu"); if (...
    程式設計 發佈於2024-11-08
  • 網格佈局:初學者的終極指南
    網格佈局:初學者的終極指南
    歡迎回到您的 CSS 冒險!今天,我們將深入研究網頁設計工具庫中最強大的工具之一:CSS 網格佈局。將其視為佈局技術的瑞士軍刀 - 多功能、精確,並且能夠將您的網頁轉變為組織精美的傑作。準備好接受並承受它了嗎?我們走吧! 什麼是 CSS 網格佈局? 想像一下,您正在玩​​俄羅斯方塊...
    程式設計 發佈於2024-11-08
  • 了解 Python 字典:完整概述
    了解 Python 字典:完整概述
    Python 字典是 Python 程式設計中最通用且使用最廣泛的資料結構之一。它們是內建資料類型,允許開發人員將資料儲存在鍵值對中,這使得它們對於各種應用程式非常有用。在本文中,我們將探討什麼是字典、如何使用它們,並提供範例來說明其功能。 什麼是字典? Python 字典是無序的...
    程式設計 發佈於2024-11-08
  • 如何更改 H1 標籤中最後一個單字的顏色?
    如何更改 H1 標籤中最後一個單字的顏色?
    更改 H1 中最後一個單字顏色的解決方案在 Web 開發領域,使用 CSS 設計元素樣式是基本實踐。然而,當涉及到改變 H1 標籤中最後一個單字的顏色時,原生 CSS 就顯得不夠了。不過,不用擔心,因為有一個超出傳統 CSS 範圍的解決方案。 為了實現這個效果,我們轉向 JavaScript 函式庫...
    程式設計 發佈於2024-11-08
  • 角度訊號和 RxJS 的新功能
    角度訊號和 RxJS 的新功能
    1) Signals 與 RxJS:在 Angular 16 中從頭開始建立 Signal 變數並將其與 Observable 進行比較。 以我們有側邊欄選單和頂部選單的範例為例,每次按下按鈕時,頂部選單都會告訴側邊欄選單折疊: 使用 RxJS: 這種通訊是在使用主題和可觀察量的服務中完成的,每次...
    程式設計 發佈於2024-11-08
  • 實作 malloc() 和 free() — 首先重複使用舊內存
    實作 malloc() 和 free() — 首先重複使用舊內存
    在本系列关于实现 malloc() 和 free() 的上一篇文章中,我们展示了如何通过释放新块来重用内存块并减少堆。然而,当前的函数引入了一个微妙的问题:它优先考虑重用较新的块,这可能会导致内存消耗随着时间的推移而增加。为什么会发生这种情况?让我们来分解一下。 通过重用最近的块来减...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3