ชื่อตัวแปรอยู่ที่เรากำหนด ไม่ใช่โปรแกรม

November 8th, 2020

อันนี้เป็นประสบการณ์ของผมในการสอนเขียนโปรแกรมกับเพื่อนและก็แฟนนะครับ หลาย ๆ คนกำลังเจอปัญหาเดียวกัน คือ การใช้ตัวแปรผิด ไม่ว่าจะเป็นการนำ list ไปใส่เป็น index หรือการใช้ method ของ int ในตัวแปรประเภท string ส่วนใหญ่จะเป็นชื่อตัวแปรที่เป็นพี้นฐานทั่วไปเช่น i x y เป็นต้น ผมเลยจะมาอธิบายเรื่องนี้ให้เข้าใจกันง่าย ๆ

import math
def slow_sort(a_list: list, query: int):
    star_platinum = len(a_list) - 1
    the_world = 0
    while the_world <= star_platinum:
        hermit_purple = math.floor((the_world + star_platinum) / 2)
        jonathan_joestar = a_list[hermit_purple]
        if jonathan_joestar == query:
            return hermit_purple
        elif jonathan_joestar < query:
            the_world = hermit_purple + 1
        else:
            star_platinum = hermit_purple - 1
    return -1

ถ้าผู้อ่านยังไม่เคยเขียนหรืออ่านเกี่ยวกับอัลกอริทึมมาก่อน อาจจะงง ๆ ว่ามันคือโค้ดอะไร ผมขอบอกเลยนะครับว่าอันนี้คือ Binary Search ฉบับที่ชื่อตัวแปรไม่ตรงกับความหมายนั่นเองครับ อย่างไรก็ตามโค้ดนี้สามารถทำการ search ได้อย่างปกติ จะเห็นว่าเราไม่จำเป็นต้องตั้งชื่อตัวแปรให้ตรงกับความหมาย โปรแกรมก็สามารถทำงานได้ อย่างไรก็ตามการตั้งชื่อตัวแปรเป็นสิิ่งสำคัญในการเขียนโปรแกรมอย่างมาก เพราะว่าจะทำให้เราและคนอื่น ๆ เข้าใจสิ่งที่เราเขียนขึ้น

สรุปคือชื่อตัวแปรไม่ได้กำหนดว่ามันจะเอาไว้ทำอะไร แต่เราเป็นคนกำหนดว่าตัวแปรตัวนี้มีไว้ทำอะไร และใช้ให้ถูกต้องนั่นเองครับ