โปรแกรมเมอร์ มีความสุข เกิดสมาธิ จากการเขียนโค้ด โปรดักทิวีตี้เพิ่มขึ้น ตอนที่ 3


บทความจาก นิตยสาร WindowsITPro (April – May 2014)
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

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

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

ชีวิตคนคนหนึ่ง
45% อยู่กับชีวิตการทำงาน อีก
55% อยู่กับชีวิตส่วนตัว
หากคุณทำงาน ด้วยความทุกข์ตลอดเวลา
นั่นคือครึ่งชีวิต ของคุณจมอยู่ในกองทุกข์
คุณขาดทุน แต่หากคุณทำงานด้วยความสุข
นั่นเท่ากับว่า ครึ่งชีวิตของคุณมีความสุข ที่เหลือนั้น คือกำไร

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

โดยในตอนที่ 3 นี้
ผมจะพาคุณผู้อ่านไปรู้จักฟีเจอร์ CodeLens
ที่จะช่วยให้การเขียนโค้ดของโปรแกรมเมอร์ นั้นเป็นเรื่องสนุก
โดย CodeLens จะช่วยกระตุ้น ให้คุณสัมผัสถึงความสุข ในการเขียนโค้ด
จะทำให้ตลอดเส้นทางของการเขียนโค้ด กลายเป็นเรื่องสนุก
คุณจะได้สัมผัสถึงความสุขตลอดเวลา จนคุณหายใจแทบไม่ออก
เพราะโดนความสุขนั้น กดทับอยู่
เราจะไปดูว่า CodeLens คืออะไร เราไปดูกัน…

CodeLens คืออะไร?
CodeLens เป็นคุณสมบัติใหม่ใน Visual Studio 2013 รุ่น Ultimate
ซึ่ง CodeLens จะทำงานคล้ายๆ กับหน้าปัดรถยนต์ โดยหน้าปัดรถยนต์นั้น
จะเป็นตัวบอกให้คุณรู้ว่า ก่อนคุณสตาร์ทรถ

  • สภาพเครื่องยนต์ ปกติ หรือไม่
  • ระดับน้ำมัน เหลือเท่าไหร่
  • ถุงลมนิรภัย ปกติหรือไม่
  • คุณรัดเข็มขัดหรือยัง
  • ประตู ปิดแน่น ไม่แน่น
  • ฯลฯ


รูปที่1: CodeLens คืออะไร?

เมื่อคุณออกรถ และวิ่งออกไป มันจะรายงาน ข้อมูลของรถยนต์ให้คุณทราบตลอดเส้นทางว่า

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

CodeLens จะทำหน้าที่คล้ายๆ อย่างนั้น โดยจะรายงานสภาพโค้ดของคุณให้คุณทราบว่า

  • มีการอ้างอิงเมธอด
    (References) ที่คุณกำลังแก้ไข จำนวนเท่าไหร่ คลาสอะไร เมธอดอะไรที่อ้าอิงไปใช้ และนำไปใช้ที่บรรทัดเท่าไหร่
  • เมธอดดังกล่าวถูกทดสอบไปหรือยัง (Test Status)
  • สถานะการทดสอบเป็นอย่างไร ผ่าน หรือไม่ผ่าน
  • ถ้าคุณเชื่อมต่อกับ Team Foundation Server (TFS) จะทำให้คุณทราบว่า
    (ซึ่งในบทความนี้ไม่ได้กล่าวในรายละเอียด)
    • ใครเป็นคนสร้างเมธอด
    • การอัพเดตโค้ดครั้งล่าสุด ใครเป็นคนอัพเด็ต วันเวลาเท่าไหร่
    • มีบั๊กกี่ไอเท็ม
    • มีการ Review Code หรือยัง

Enabling CodeLens:

คุณสามารถเปิด-ปิดการทำงานของ CodeLens ได้ 2 ทางคือ

  1. บน CodeLens Indicators => คลิกขวาเลือก CodeLens Options… (รูปที่ 2.ก)
  2. บนเมนู TOOLS => เลือก Options… (รูปที่ 2.ข)

  3. หน้าต่าง Options จะปรากฏ ดังรูปที่ 2 (รูปที่ 2.ค)

โดยดีฟอลต์แล้ว CodeLens ถูกเปิดใช้งานอยู่แล้ว ฉะนั้นตอนนี้คุณไม่ต้องทำอะไรกับมัน ผมเพียงบอกวิธีว่าคุณสามารถเข้าไปเปิด-ปิดมันได้


รูปที่2: Enabling CodeLens

CodeLens
บนหัวของเมธอด

Retrieve
ให้คุณสังเกตุตรงไอเทมที่อยู่ระหว่างโค้ดคอมเมนต์
กับโค้ดจริง นั่นคือส่วนของ CodeLens ดังรูปที่ 3


รูปที่3: CodeLans

เราจะไปดูข้อมูลของ CodeLens ว่ามันบอกอะไรเราได้บ้าง ดังนี้

  • Reference information
  • Show on Code Map
  • Test information
  • Run Unit Test
  • Automatically updated Unit Test status

Reference information
บนหัวเมธอด Retrieve คุณจะเห็น CodeLen เป็น “2 references | 0/1 passing”
ในหัวข้อนี้เราพูดถึง references ฉะนั้นผมจะคลิกลงบน “2 references”
เพื่อแสดงหน้าต่าง ข้อมูลโค้ดที่ดึงเมธอด Retrieve ไปใช้งาน คุณจะเห็นมีสองคลาสที่เรียกใช้ คือ

  1. Customers.cs บรรทัดที่เรียกเมธอดคือบรรทัดที่ 73
  2. CustomersTest.cs บรรทัดที่เรียกเมธอดคือบรรทัดที่ 256

คุณสามารถดูรายละเอียดเพิ่มเติม โดยนำเคอร์เซอร์ไปวางบนบรรทัดที่ 73 => มันจะแสดงหน้าย่อยเพิ่มขึ้นมา แสดงพื้นที่โค้ดที่เรียกใช้เมธอด Retrieve ดังรูปที่ 3


รูปที่4: Reference information

Show on Code Map
Code Map เป็นฟีเจอร์ที่มีมาตั้งแต่ Visual Studio 2012
ซึ่งเป็นเครื่องมือที่ช่วยสร้างโค้ดของคุณจากรหัสที่มีความซับซ้อน
ออกมาเป็นรูปภาพไดอะแกรมง่ายๆ ทำให้คุณสามารถมองเห็นภาพ
การทำงานของโค้ดได้ง่ายขึ้น ในหน้าต่าง CodeLens
คุณสามารถเปิดหน้าต่าง CodeMap ได้ทีทันทีโดยคลิกบนเมนู
Show on Code Map คุณสามารถมองเห็นได้ทันทีว่า
เมธอด Retrieve ถูกนำไปใช้ 2 ที่ ดังรูปที่5


รูปที่5: Show on Code Map

Test information
บนหัวเมธอด Retrieve ให้คุณคลิก CodeLen ตรง 0/1 passing
คุณจะเห็นหน้าต่างแสดงสถานะการทดสอบแสดงขึ้นมา
โดยคุณจะเห็นสถานะเมธอดยังไม่ถูกทดสอบ ดังรูปที่6


รูปที่6: Test information

Run Unit Test
คุณสามารถสั่งรันทดสอบเมธอด ได้สองทางคือ

  1. ทดสอบรัน ได้จากเมนูบาร์ TEST => Run => All Tests ดังรูปที่ 7.ก หรือ
  2. คลิก Run All บนหน้าต่าง แสดงสถานะการทดสอบ ของ CodeLens ดังรูปที่ 7.ข
  3. จากนั้นรอสักครู่ เพื่อให้ระบบทดสอบโค้ดของคุณ


รูปที่7: Run Unit Test

Automatically updated Unit Test status

  1. เมื่อรันทดสอบเรียบร้อย คุณจะเห็น สถานะของ CodeLen ตรง 0/1 passing=> เปลี่ยนเป็น 1/1 passing นั่นคือเมธอด Retrieve มี Unit test ทั้งหมด 1 เมธอด ทดสอบไปแล้วทั้งหมด 1 เมธอด
  2. เมื่อคุณคลิกเมาส์ลงไป หน้าต่างแสดงสถานะการทดสอบแสดงขึ้นมา คุณจะเห็นว่าได้รันทดสอบผ่านไปเรียบร้อยแล้ว โดยที่คุณไม่ต้องไปหาจากหน้าต่างอื่น


รูปที่8: Automatically updated Unit Test status

ก่อนหน้าที่จะมี CodeLens
การที่คุณจะหาข้อมูลว่า เมธอดถูกทดสอบ หรือยัง
ผ่าน/ไม่ผ่านอย่างไร มีกี่คลาส กี่เมธอดที่อ้างอิง
เมธอดที่คุณกำลังแก้ไขอยู่ คุณจะต้องเปิดไปค้นหาในหน้าต่างอื่นๆ
คุณต้องสูญเสียเวลาบางส่วนในการค้นหา เพื่อดึงข้อมูลเหล่านั้นออกมา
วันนี้ CodeLens จะรายงานสภาพโค้ดของคุณ
ให้คุณทราบเพียงปลายนิ้วคลิก โดยที่คุณไม่ต้องสลับหน้าจอไปที่อื่น
คุณไม่ต้องเสียเวลาในการค้นหา คุณสามารถเห็นข้อมูลได้ทันที
ในหน้าต่างการเขียนโค้ด(Code editor) ตรงหน้าคุณ

จากนี้ไป จะไม่มีอะไรมาฉุดความคิดของคุณให้หลุดออกไป
จากสิ่งที่คุณกำลังคิด กำลังเขียนโค้ด
ความคิดของคุณจะเริ่มไหลเหมือนน้ำท่อประปาแตก
ไม่มีอะไรไปร้างความคิดของคุณได้ งานของคุณเริ่มเสร็จเร็วขึ้น
งานของคุณเริ่มมีคุณภาพมากขึ้น และคุณเริ่มสนุกกับการเขียนโค้ดมากขึ้น
และที่สำคัญคุณเริ่มได้กลิ่นของความสุขโชยออกมา ทุกขณะที่กดแป้นคีย์บอร์ด

ในระหว่างทางที่คุณกำลังเขียนโค้ด
ความสุขอยู่ตรงหน้าคุณตลอดเวลา
จงรู้สึกถึงมันให้ได้

แหล่งข้อมูลอ้างอิง:

 

ตอนที่1
ตอนที่2

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Uncategorized

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: