กำหนดแนวทางการพัฒนาด้วย caseStyles

ryudokung
2 min readMar 26, 2021

--

สวัสดีอีกครั้งกับนักพัฒนา Application ทุกท่าน เนื่องจากช่วงนี้การพัฒนาทุกอย่างในรูปแบบของการ Coding กำลังมาแรง เช่นการทำ Infrastructure as code (IaC) หรือคนที่กำลังจะ Transform ตัวเองจาก Infra ต้องมีความเข้าใจในรูปแบบของการทำ IaC เช่นกัน ทีนี้เข้าเรื่องเลยดีกว่า

https://javascript.plainenglish.io/configuring-a-camelcase-to-snake-case-parser-with-axios-9fa34fd3b16f

ข้อดีของการทำ IaC และการทำ CaseStyle

ข้อดีของการทำ IaC จะทำให้เราสามารถ Reliable, Scalable, and Maintainable ในรูปแบบ Coding และอีกข้อนึง ถ้าเราเขียนให้คนอื่นมาเข้าใจในสิ่งที่เราเขียนได้ง่ายขึ้น เราก็ควรจะมีการกำหนดว่า สิ่งที่เราจะแทนที่ด้วย ตัวแปร หรือ Variable นั้นจะกำหนดเป็นรูปแบบของ CaseStyles ทุกๆคนที่ร่วมทำโปรเจคก็เข้าใจในสิ่งที่เราเขียนเนื่องจากเรามีแนวทางการเขียนแบบเดียวกัน

CaseStyle แต่ละประเภท

จริงๆแล้วการทำ CaseStyle นั้นจะไม่มีรูปแบบที่ดีที่สุดแบบตายตัว ทุกคนที่ร่วมพัฒนาจะเป็นคนกำหนดว่า CaseStyle แบบไหนเหมาะกับทีม และก็ตกลงกัน โดยผู้เขียนจะไล่ลำดับตามความนิมยม ดังนี้

1. CamelCase

รูปแบบแรก ตามชื่อเลยคือจะเป็นรูปแบบ อูฐ ซึ่งก็ไม่รู้ว่าเหมือนอูฐยังไง โดยพยางค์แรกจะขึ้นต้นด้วยตัวเล็กเสมอ และตามด้วยพยางค์ถัดไปจะขึ้นด้วยตัวใหญ่ ซึ่งรูปแบบนี้นักพัฒนานิยมใช้เพราะ ส่วนของภาษาโปรแกรมมิ่งจะไม่มี การเรียกรูปแบบ method หรือ class แบบนี้มาให้เห็น นักพัฒนาก็จะรู้เลยว่านี่คือ variable ตัวอย่างของ CamelCase เป็นดังนี้

camelcase = randomNumber

2. PascalCase

รูปแบบถัดมาจะคล้ายกับแบบแรก คือ ทุกพยางค์จะขึ้นต้นด้วยตัวใหญ่ทั้งหมด

pascalcase = RandomNumber

3. SnakeCase

แบบที่ 3 คือรูปแบบ งู โดยจะเป็นการขึ้นด้วยคำทั้งหมดเป็นตัวใหญ่ หรือตัวเล็กก็ได้โดยมีการขั้นด้วยเครื่องหมาย _ โดยเราจะเห็นรูปแบบนี้บ่อยใน ระบบฐานข้อมูล เช่น

snakecase = random_number หรือ RANDOM_NUMBER

4. KebabCase

จะคล้ายกับของ snakecase โดยจะเป็นตัวอักษรตัวเล็กทั้งหมด ขั้นด้วยเครื่องหมาย - เช่น

kebabcase = random-number

และเนื่องจากมีการเขียนรูปแบบ CaseStyle หลายแบบก็ยังมีส่วนเล็กๆน้อยๆให้นักพัฒนาปวดหัวกันเล่นๆ เช่นการเขียนปีกกา โดยมีนักพัฒนาหลายคนกำหนดว่า หากคุณเขียนด้วย Camel Case จะต้องวางปีกกาด้านหลัง ส่วนข้างในจะแท็บเข้าแล้วปิดปีกกาให้ตรง จากตัวที่เปิด

func handlerHttp(w http.ResponseWriter, r *http.Request){
query := r.URL.Query()
name := query.Get("name")
if name == "" {
name = "Anonymous"
}
}

และส่วนของ SnakeCase จะเป็นการเปิดปีกกาด้วยการขึ้นบรรทัดทใหม่ทุกรอบดังนี้

func handler_http(w http.ResponseWriter, r *http.Request)
{
query := r.URL.Query()
name := query.Get("name")
if name == ""
{
name = "Anonymous"
}
}

ทีนี้อยู่ที่คุณแล้วว่า จะเลือกการพัฒนา Code แบบไหนให้ตรงกันอาจจะต้องมีสงครามระหว่างการพัฒนาหรือไม่ ขึ้นอยู่กับคุณ…

--

--