มีงานหนึ่งที่ผมเขียนขึ้นมา คือระบบบริหารงานขายรถยนต์ มันเริ่มตั้งแต่ การตลาดจองรถ ได้แล้วเอามาลงในระบบ ให้เซลล์ขอล้อกเพื่อไปคุยกับลูกค้า ผ่านไปหนึ่งวันถ้าลูกค้าไม่ยอมจอง ก็จะปล่อยรถคันนั้นเข้าสู่ระบบให้เซลล์อื่นล้อกต่อไป โดยจะมีสิทธิ์ล้อกกันได้แค่คนละครั้ง ในหนึ่งเดือนเซลล์มีสิทธิ์ล้อก 4 สิทธิ์ ผ่านไปครึ่งเดือนถ้าไม่ใช้จะตัดทิ้ง 2 สิทธิ์ เซลล์บางท่านที่ขายดี สามารถขอเพิ่มสิทธิ์ผ่านระบบได้

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

รถจะมีสถานะตัวมันเองอยู่ 8 สถานะคือ

n+1 คือเป็นรถที่จะได้เดือนหน้า
n คือรถที่จะได้เดือนนี้
firm คือรถที่ยืนยันสีไปแล้วกับทางสำนักงานใหญ่
week คือรถที่ทราบว่าจะต้องลงสัปดาห์ที่เท่าไหร่ในเดือนปัจจุบัน
d/n คือรถที่ทราบวันลงแน่นอน
stock คือรถที่ลงแล้วและทราบเลขเครื่องเลขโครง
out คือรถที่ถูกจัดสรรค์ให้เซลล์แล้ว
unit paid คือรถที่ขายไปเรียบร้อย

รถพวกนี้เราไม่ได้ทราบสถานะมันทีเดียว แต่จะทยอยทราบ สำนักงานใหญ่จะส่งเอกสารมาเป็นระลอกๆ เราก็เอาข้อมูลที่ได้มาลงในระบบ แล้วมันจะคำณวนให้เองว่าสถานะอยู่ตรงไหน

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

ติดตามหลังการขาย 3 ระยะ CRM มาติดตามลูกค้าอีกระลอกเพื่อยืนยันว่าได้ของครบ เซลล์บริการดี ถ้ามีปัญหาระบบก็จะกระจายข้อความไปหาผู้ที่เกี่ยวข้อง เพื่อให้ช่วยกันตรวจสอบ

ในโปรแกรมนี้จะประกอบไปด้วย
-ระบบสต้อกรถ ของการตลาด
-ระบบล้อกรถ ของเซลล์
-ระบบจองรถ ของเซลล์
-ระบบคิว
-ระบบสต้อกของตกแต่งรถ ของ vdqi
-ระบบติดตั้งอุปกรณ์รถใหม่ และของแถม ของเซลล์
-ระบบปล่อยรถ ของเซลล์
-ระบบทะเบียน ของฝ่ายทะเบียน
-ระบบป้ายแดง ของแคชเชียร์
-ระบบใบเสร็จ ของการเงิน
-ระบบติดตามหลังการขาย ของเซลล์
-ระบบติดตามหลังการขายของ crl
-ระบบกระจายข่าวเมื่อเกิดปัญหาหลังการขาย
-ระบบรายงานต่างๆ
-ระบบติดตามเข้าเช็กระยะ
-ระบบแอดมิน

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

ผมหาบักของโปรแกรมไม่พบว่ารถที่ถูกขายไปแล้ว มันหลุดเข้าสู่ stock ได้อีกอย่างไร ทำไมมันหลุดมาได้แค่คันเดียว คันอื่นไม่ยอมเป็น

จนเมื่อวันนี้มาพบโค้ดตัวเองว่า ลืมเบรก

เอาเป็นว่าเป้าหมายบทความนี้ ก็เพื่อให้ท่านตระหนักถึงเบรก บ้างอย่าเหยียบคันเร่งจนลืมเบรก เดี๋ยวเหตุการณ์จะเหมือนข้างบน ลูกค้าจะฟ้อง สคบ เอา ตัวอย่างด้านล่างอาจจะไม่สัมพันธ์กับเหตุการณ์ด้านบนนัก คืออาจจะจินตนาการไม่ถูกว่ามันโยงกันได้อย่าง ท่านก็ไม่ต้องคิดมาก

ดูตัวอย่างนี้นะครับ

<?php
switch( 1 )
{
	case 1:
		echo 'one';
	case 2:
		echo 'two';
	case 3:
		echo 'three';
}
?>

ท่านคิดว่าผลลัพธ์มันจะออกมาเป็นอะไร ? น่าจะ one เนอะ
แต่ไม่ใช่เลย ผลลัพธ์ที่ออกมา เป็น onetwothree อย่าเชื่อผมทันที ลองเอาโค้ดนี้ไปรันดู

ลองสังเกตุดูนะครับ เมื่อมันพิจารณา case 1: ว่าเข้าเคสนี้ มันก็เอ็กโค่ค่า one ออกมา บรรทัดต่อมาแทนที่มันจะพิจารณาอีกครั้งว่า เข้า case 2: หรือเปล่า มันไม่พิจารณา มันข้ามไปเลย จนมาถึงบรรทัด echo ‘two’ แล้วก็บรรทัด echo ‘three’

แค่ลืมเบรกเคสแรกเท่านั้น มันทำหมดทุกเคสเลย โปรแกรมก็ไม่ได้ฟ้องเสียด้วยว่า มันเออเร่อ เพราะมันไม่เออเร่อ

ฉะนั้นท่านพึงสำเหนียกเสมอว่า เหยียบคันเร่งอย่าลืมเบรก

<?php
switch( 1 )
{
	case 1:
		echo 'one';
		break;
	case 2:
		echo 'two';
		break;
	case 3:
		echo 'three';
		break;
}
?>

ผลลัพธ์ที่ได้คือ one