แสดงบทความที่มีป้ายกำกับ Dev แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Dev แสดงบทความทั้งหมด

Vim เรามาใช้ กันเถอะ

 อย่างนึงที่ผมอยากที่จะพัฒนาตัวเองคือการฝึกใช้คีย์บอร์ดให้เทพอย่างกับแฮคเกอร์ในหนัง การฝึกพิมสัมผัสก็เป็นสิ่งที่จำเป็น ตอนนี้ก็กำลังหัดอยู่ แต่ก็ยังไม่ชำนาญ แต่อีกหนึ่งอย่างที่จะทำให้ดูโปรขึ้น (ไม่ได้สนประสิทธิภาพการทำงานที่จะเพิ่มขึ้นแบบที่ควรจะเป็น แต่เพราะมันดูเท่นี้แระ ฮาๆๆๆ ) คือการใช้ Vim

ซึ่งมันจะทำให้เราสามารถพิมใช้งานคอมพิวเตอร์เขียนโปรแกรมได้โดยที่จะไม่ต้องใช้เมาส์ 

สำหรับคนที่ใช้งาน MacOS สามารถใช้งาน Vim ผ่าน Terminal ได้เลย โดยเพิ่มคำสั่ง vim

Vim จะมีอยู่ 3 โหมด คือ


Normal Mode 

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

ปุ่มคำสั่งใน Normal Mode

j เคลื่อนเคอร์เซอร์ ลง

k เคลื่อนเคอร์เซอร์ ขึ้น


h เคลื่อนเคอร์เซอร์ ไปทางซ้าย

l เคลื่อนเคอร์เซอร์ ไปทางทางขวา


โหมดนี้ยังมีคำสั่งอีกเยอะ แต่ผมก็ยังใช้ไม่เป็นเดี่ยวจะมาเขียนอธิบายอีกที


Insert Mode

     โหมดนี้จะใช้เมื่อเราต้องการแก้ไขเอกสาร จะไม่มีคำสั่งใช้ในโหมด แต่จะมีคำสั่งที่จะเข้าโหมดนี้ในแบบที่แตกต่างกัน

i แทรกข้อความที่ก่อนหน้าเคอร์เซอร์

I แทรกข้อความที่หน้าสุดของบรรทัด

a แทรกข้อความที่หน้าเคอร์เซอร์

A แทรกข้อความที่หลังสุดของบรรทัด

o สร้างบรรทัดใหม่ด้านล่าง

O สร้างบรรทัดใหม่ด้านบน

ea แทรกข้อความที่ท้ายสุดของข้อความ


Visual mode

หรือ Marking Text Mode ใช้ลากมาร์กข้อความ เราสามารถเข้าโมหดนี้ได้โดยใช้ปุ่ม v

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



Exit

การออกโปรแกรม Vim เคยเป็นปัญหาระดับโลกถึงขนาดเคยติดอันดับการถามสูงๆบนเว็บ stackoverflow

:q ออกโปรแกรม คำสั่งนี้จะใช้ได้เมื่อไฟล์ถูกบันทึกแล้ว

:q! ออกแบบไม่บันทึก

:qw บันทึกแล้วก็ออกจากโปรแกรม

:w บันทึกไฟล์




sonarqube

Sonarqube

sonarqube คือ เครื่องมือรีวิว sourcecode ของเราว่ามันมีปัญหา ถือว่ามีประโยชน์มากๆ ถ้าใครเคยเจอปัญหา อยากที่จะเขียนโค๊ดออกมาให้ดี เมื่อเขียนแล้วไม่รู้ว่าส่วนไหนที่มันแย่ แล้วควรแก้ยังไง sonarqube จะมาตอบโจทย์ทั้งสองข้อนี้ มันทำให้เราเห็นปัญหาของโค๊ดที่เราเขียนพร้อมแนะนำวิธีแก้ไขด้วย และที่สำคัญคือมันใช้ฟรี ใครสนใจไปลองใช้ได้ที่ https://www.sonarqube.org

Continuous Integration by Paul M Duvall Ch 01

Continuous Integration by Paul M Duvall Ch 01

CI บทที่ 1

ต้องเกริ่นก่อนว่าบทความชุด CI นี้เกิดจากการที่ผมเริ่มอ่านหนังสือ Continuous Integration by Paul M Duvall จากคำแนะนำของพี่ปุ๋ย แห่ง www.somkiat.cc แล้วหนังสือมันก็เป็น ภาษาอังกฤษซึ่งสำหรับผมแล้วมันทั้งเข้าใจยากและลืมง่ายมาก ก็เลยคิดว่าวิธีที่ดีที่สุดคืออ่านแล้วแปลทำความเข้าใจลงบล็อกสะน่าจะดี ก็เริ่มมาเริ่มเขียนบทความสุดนี้ครับ โดยวันนี้ก็จะอ่านบทแรกจบบอกเลยก็ยังงงๆกับภาษาอยู่ แต่ก็ไงก็จะสรุปคราวๆไว้ก่อนเพื่อทบทวนแล้วพออ่านอีกสักรอบสองรอบค่อยมาแก้เมื่อเข้าใจมากขึ้นแล้ว

บทที่ 1 Getting Started เล่าถึงปัญหาการพัฒนาซอฟแวร์ที่ต้องการจะทำการรวมโค๊ดหรือ Build บ่อยๆ ซึ่งโดยปกติมันจะส่งผลให้การทำงานช้าลง CI จึงเกิดขึ้นมาเพื่อแก้ปัญหานั้น โดยขั้นตอนก่ีทำ CI คราวๆก็คือ

1 นักพัฒนาทำเขียนโปรแกรมแล้ว Push ขึ้นไปบน Repository Server (พวก github , gitlab หรือ bitbucket เขาว่ากันว่านักพัฒนาคนใดไม่ใช้ถือว่าบาปมาก แม้จะทำงานแค่คนเดียวทั้งโปรเจคก็เถอะนะ )

2 CI Server ทำการตรวจเช็ค Source Code บน Repository ถ้ามีการเปลี่ยนแปลงมันก็จะเริ่มทำกระบวนการต่อไปก็คือ

3 ทำการ Build ซึ่งในที่นี้รวมทั้ง การรวมโค๊ด สร้างออกมาเป็นโปรแกรม ทดสอบโค๊ด และเขียนรายงานอกการ Build ในครั้งนั้นๆออกมา

ฟีเจอร์ของ CI 

1  การรวม sourcecode
2 การรวม Database
3 การทดสอบ
4 การตรวจสอบ
5 การ Deployment
6 การสร้างเอกสารและข้อเสนอแนะ

Jenkins คืออะไร

Jenkins คืออะไร 


เอาง่ายๆภาษาชาวบ้าน jenkins ก็คือบอทที่จะทำงานแทนเราตามชุดคำสั่งที่เราสั่งไว้ เช่นเวลาที่เราต้องพัฒนาโปรแกรมเว็บๆหนึ่ง ในตอนที่แก้โค๊ดหรือเพิ่มเติมเสร็จ เราก็ต้อง git push ขั้นไปบน git จากนั้นก็ต้องล็อกอินเข้าไปที่ server เข้าไป poll ที่ server พอทำบ่อยๆก็ขี้เกียจใช่ไหมล่ะ jenkins สามารถตัดขั้นตอนอื่นทิ้งเหลือแค่ให้เรา git push ไปพอที่เหลือมันจะค่อยตรวจสอบแล้วทำให้เราหมดถ้ามีการเปลี่ยนแปลงโค๊ดเกิดขึ้น แล้วในความเป็นจริงการพัฒนาโปรแกรมไม่ใช่แค่ git push  และ git pull หลังจากนั้นเราก็ต้องทำการทพสอบโปรแกรมว่าใช้งานได้ไหม มีบั๊กหรือป่าว ซึ่งเราสามารถทำ Automated Test ไว้ แล้วเราก็เอามารวมไว้กับ jenkins ได้เลยทำให้จริงๆแล้วมันช่วยประหยัดเวลาให้เราได้เป็นวันเลย

สามารถ download ได้ที่ https://jenkins.io/download/ แนะนำให้ใช้เวรอ์ชั่น .war ถ้าคุณติดตั้ง อยู่แล้ว แค่ดาวโหลดแล้วใช้คำสั่ง java -jar junkins.war ก็สามารถใช้งานได้แล้วง่ายๆ

ส่วนวิธีใช้งานเดี๋ยวเอามาเล่าในบล็อกต่อๆไป หรือใครใจร้อนอยากใช้ก็สามารถ google ไปก่อน เพราะก็มีสอนไว้แล้วเยอะเหมือนกันครับ