Proudly-Found-Elsewhere Syndrome

  Proudly-Found-Elsewhere Syndrome (PFE Syndrome) หรือ Invent Syndrome ความหมายของมันแตกต่างกับตัว Not-Invented-here Syndrome อย่างสิ้นเชิงเลยครับ คือ มีการสร้างงาน หรือ นวัตกรรมใหม่ขึ้นมาครับ สำหรับในมุมของ Software Development เป็นการนำ Library ที่ Common มาใช้งานเสริมได้ เวลาที่เหลือเราก็เอาไปใส่ใจกับส่วนของ Core Business มากขึ้นได้ครับ ส่วน PFE Syndrome คำแนะนำของผม คือ ต้องเปิดใจ พร้อมที่จะเรียนรู้ และคำนึงถึงความสมเหตุสมผลที่เลือกใช้ เพราะ มันไม่ได้มีวิธีการตายตัวที่ตอบโจทย์กับปัญหาต่างๆครับ และก็ท้ายที่สุด ผมมีบทความแนะนำครับ From not invented here to proudly found elsewhere โดยบทความกล่าวถึง Drupal เป็น CMS ยอดนิยม Blognone ใช้ตัวนี้อยู่ครับ โดยมีการเปลี่ยนจากที่ต้องทำเองทุกๆอย่าง (Not Invented Here) มาใช้ Library หรือ Tools ของชุนชมภายนอกแทน มาเชื่อมต่อกับตัว Core ของ Drupal ครับ (Proudly Found Elsewhere) แม้จะต้องปรับแก้เยอะ แต่ประโยชน์ที่ได้รับนั้นมี ดังนี้ครับ Tested Code Reused Code Open Source  

Not-Invented-Here Syndrome

Not-Invented-Here Syndrome

Not-Invented-Here Syndrome หลายคนอาจจะงง ว่า Blog นี้มันสาย IT นี่หว่า แต่แล้วทำไมมาเขียนแนวคุณหมอซะหละ สำหรับเจ้า Not-Invented-Here Syndrome หรือ NIT Syndrome คือ การยึดติดกับสิ่งเดิม ระบบความเชื่อความคิดของตนเองเป็นหลัก มักจะพบในหน่วยงาน หรือองค์กรที่มีอายุยาวนาน และประสบความสำเร็จมากมายครับ ซึ่งเจ้าตัว Not-Invented-Here Syndrome มันเป็นตัวขัดขวางสิ่งที่เรียกว่า นวัตกรรม หรือ Innovation นั้นเองครับ โดยเจ้า NIT Syndrome มีส่วนที่ต่างๆ ที่บ่งบอกว่า หน่วยงาน หรือองค์กร กำลังจะเป็น ดังนี้ครับ แต่เจ้า NIT Syndrome มันก็ไม่ได้ร้ายเสมอไปนะครับ บางครับมันมีเหตุผลที่จำเป็นเหมือนกันนะครับ เช่น โมดูลนี้มันเป็น Core Business ถ้าไปหา Library มาใช้ก็ได้ แค่มันไม่ยืดหยุ่น หากมี Change เป็นต้น เขียนไปเขียนมา ก็โยงเข้าเรื่องทาง IT ได้เนอะ 55555  สำหรับการแก้ปัญหา NIT Syndrome ไม่ยาก แต่ต้องเปิดใจ พร้อมที่จะเรียนรู้ และคำนึงถึงความสมเหตุสมผลที่เลือกใช้ครับ และสร้างนวัตกรรมใหม่ๆขึ้นมาครับ และใครที่อยากอ่านเพิ่มเติมลองไปดูในตาม Reference ที่ผมได้แนบมาด้วยครับ Reference

[CR] ลอง Jeffer Steak ชุด Extra 199 บาทครับ

Jeffer Steak เป็นร้านสเต็กสัญชาติไทย ราคาย่อมเยาว์คับ สามารถจัดราคาได้ตามที่พุงต้องการ 555 หลังจาก Coding กับเขียน Blog เสร็จ ผมก็มาใช่สิทธิลดหย่อนภาษีจากการกิน กินช่วยขาติ ไม่ใช่ไปโกงกินนะครับ แต่เป็นการกินในช่วงวันหยุดยาวสงกรานต์ 9-17 เมษายน 2559 ครับ สำหรับวันนี้เมนูที่ลองเป็นชุด 199 เลือก Steak ได้ 2 ชิ้น ชิ้นแรกเป็น Pork Shop ถัดมาเป็นสเต๊กไก่ Jeffer สีน่าทานช่ายไหมม และก็ Topping ผมได้เลือกเป็นแบบ Extra เอามันอบแทน ดูดีกว่าข้าวผัด Jeffer กับ เฟรนฟราย มากครับ เอามันอบทานคู่กับซอสพริกไทยดำ เข้ากันได้ดี และรูปที่เหลือเป็นองค์ประกอบอื่นๆในจานครับ 😀 ท้ายที่สุด ร้านไม่มี Service Charge ครับ ดีเวอร์ เป๊ะปังสุดๆ

ไปบริจาคเลือดครั้งแรก

วันนี้วันดี 12 เมษา เลยตัดสินใจใช้วันลาที่สะสมแแต้มไว้เยอะถึงเกือบ 50 วัน 555 โดยแพลนวันนี้ คือ นั่งรถเมล์ชมวิวไปเล่นๆ โดยมีปลายทางอยู่ที่ ศูนย์บริการโลหิตแห่งชาติ สภากาชาดไทย ถนนอังรีดูนังต์ ครับ มาบริจาคเลือดครั้งแรก หลังจากหาวันหยุดยาวได้พอดี (เผื่อเวลาพักผ่อนยาวววว ถ้าไหวก็มาทำตัวระบบ BOT DMS ต่อครับ) หลังจากลง 177 เดินตาม Google Map มาเรื่อยๆ ประมาณ 15 นาทีครับ พอเดินเข้ามาถึง ก็มีโครงการแจกเสื้อเลย คุ้มๆ 5555 ไม่คิดว่าจะได้ ตอนแรกเดินมาก็งงๆครับ โดยตอนนีมีเจ้าหน้าที่แนะนำครับ โดยขั้นตอนหลังๆ อยู่ที่ป่ายนี้ครับ STEP 1: ลงทะเบียน กรอกเอกสาร STEP 2: ส่งเอกสารให้แผนทะเบียน Key ข้อมูลเข้าระบบ STEP 3: เป็นการตรวจเลือดคร่าวๆ ซักถามประวัตินิดหน่อยก็โดนเจาะครับ โดยคุณหมอ ได้แนะนำคร่าวๆ ดังนี้ STEP 4-5: เจาะเลือดแล้วครับบบบบ (มี 2 ห้องครับ แล้วแต่ดวงครับ) STEP 6: หลังจากเสียเลือดไปเยอะ เรามาฟื้นพลังด้วยของกินกันครับ STEP 7: รับของที่ระลึกครับ เข้าใจว่าได้ตามจำนวนครั้งที่บริจาคครับ STEP 8: มารับเสื้อครับ (เข้าใจว่ามีทุกเทศกาลนะครับ) และก็ที่นี่มีซุ้มให้ลงนามถวายพระพรด้วย และสรงน้ำพระ One-Stop Service จริงๆ ท้ายที่สุด ถ้างานไปเยอะ และดูแลร่างกายได้ดีกว่าที่เป็นอยู่อีก 3 เดือนเจอกันครับ และก็ที่นี่มีซุ้มให้ลงนามถวายพระพรด้วย และสรงน้ำพระ One-Stop Service จริงๆ ท้ายที่สุด ถ้างานไปเยอะ และดูแลร่างกายได้ดีกว่าที่เป็นอยู่อีก 3 เดือนเจอกันครับ

บัญชี FCD คือ อะไร

พอดีลองทำโปรแกรม BOT DMS  แล้วเห็นข้อมูลตัวอย่างที่ลูกค้าส่งมาให้ เลยลองหาข้อมูลเล่นๆ ดูว่า เจ้าบัญชี FCD คือ อะไร โดยบัญชี FCD ย่อมาจาก Foreign Currency Deposit โดยมีจุดประสงค์ เพื่อลดการผันผวนของค่าเงิน เช่น หลายคนอาจจะงงนะครับว่าบัญชี FCD มันลดการผันผวนของค่าเงินได้อย่างไร ลองดัวอย่างดีกว่าครับ เช่น แต่หลายคนอย่าคิดจะเอาบัญชี FCD มาเก็งกำไรค่าเงินนะครับ เพราะ อ้าว!!! แล้วถ้าไม่อยากเปิดบัญชี FCD ดองไว้ เราสามารถใช้ Product ทางการเงินอื่นๆช่วยลดการผันผวนของค่าเงินได้ไหม คำตอบ คือ มืนะครับ อาทิ เช่น สำหรับแต่ละตัว มีความแตกต่างกันอย่างไร เดี๋ยวผมเขียน Blog อธิบายเรื่อยๆครับ    

ความแตกต่างของ Unit Test และ Integration Test

Unit Test คือ การทดสอบ Code ในส่วนที่เล็กที่สุดของ Developer เพื่อทดสอบว่าสิ่งที่เขียนมามันใช้ได้จริงนะ และมี Test ตามที่ผู้พัฒนาเห็นว่ามันสำคัญ (พยายามทำให้ได้เยอะที่สุดครับ) Test ควรทำได้ง่าย เขียนสั้น และกระชับ เพราะกลุ่มคนหลักๆที่ใช้ คือ ตัว Developer เองครับ สิ่งที่เป็นหัวใจหลักของ Unit Test คือ ทำให้มันอยู่ได้ด้วยตัวมันเอง ไม่มี Dependency ไปยุ่งกับ Code ตัวอื่นๆ ถ้าจำเป็นต้องใช้จริงๆ ให้ Mock มันเข้ามาให้หมด เพราะจุดประสงค์ของ Unit Test ดูเฉพาะ Logic การทำงานในส่วนที่เราสนใจจริงๆ ไม่จำเป็นต้องสนใจสภาพแวดล้อมภายนอก อย่างที่คนกลุ่มอื่นๆสนใจ ได้แก่ Tester หรือ User สนใจครับ ถัดมาเป็น Integration Test ระดับการทดสอบนี้มีไว้ เพื่อแสดงภาพรวมของระบบ ควรมีความใก้ลเคียงกับ Production มากที่สุด ห้ามมี Mock ถ้าไม่จำเป็นต้องใช้จริงๆ ว่าระบบมันสามารถทำงานได้จริงในทุกส่วน ต้องเขียน Test ให้คลุม อาจจะทำเป็น UI Test เป็นต้น โดยการเทสแบบนั้น พยายามให้สภาพแวดล้อมเหมือนจริงที่สุดครับ เช่น ถ้ามีการเชื่อมต่อกับ DB จริงๆ ก็ต้องมี DB เอาไว้เทส หรือถ้ามี API เปิดไว้ ก็ควรมีเจ้า API สำหรับ Test เหมือนกันครับ เป้าหมายของ Integration Test คือ ให้คนที่ไม่ใช่ Develop เข้าใจภาพรวมการทำงานครับ จะว่าไปส่วนใหญ่ ผมก็พยายามทำ Integration Test มากกว่า Unit Test นะ เผางานให้รีบทันส่ง

เมื่อสลากออมสินหมดอายุลง

ห่างจากการเขียน Blog ไปหนึ่งเดือนเต็มๆ เนื่องจากกำลังปั่นงาน และแก้ Change ของ Site เจ้าของสลากนี่แหละ และพอดีวันที่ 1 เมษายน ของทุกๆปี เป็นวันสถาปนาธนาคารออมสิน ผมก็เลยนำสลากของเดิมไป Rollover (ต่ออายุต่อ) หวังลมๆแล้งๆว่าจะถูกรางวัลตอบแทนการทำโมดูล DataSet, DataFile ที่ส่งข้อมูลให้ BOT ครับ 55555 จากรูปข้างต้น ผมฝากไป 3 ปี ทุน 5,000 บาท ได้ 100 หน่วย ดอกเบี้ย 2.75 บาท ต่อหน่วย เมื่อครบ 3 ปี ก็จะได้ดอกเบี้ยรวม 275 บาทครับ คราวนี้มาลองมุมกลับกัน ถ้าผมเอาเงิน 5,000 บาทนี่ไปทำอย่างอื่นหละ ปิดท้ายด้วยกระปุกของแถมเมื่อไปฝากธนาคารในวันสำคัญนะครับ โดยมีวันเด็ก วันสถาปนาคลังออมสิน(1 เมษายนของทุกปี) และก็วันออมแห่งชาติครับ (31  ตุลาคมของทุกปี)

Code Mania 11: Raise the Bar

เมื่อวันเสาร์ที่แล้ว ผมได้ไปงาน Code Mania 11 โดยมีเรื่องน่าสนใจ ดังนี้ Session ตอนเช้า – Wongnai Engineering Story ในช่วงนี้เป็นการเล่าถึงการจัดการด้าน Infrastructure ของ Wongnai ว่าตั้งแต่เริ่มต้นจาก Mac เพียง 1 เครื่องทีตั้งไว้ที่ CAT จนมีปัญหาที่ละ เรื่อง และทำให้ย้ายไปใช้ Cloud ในแต่ละชั้น ดังนี้ครับ 1. ระบบเมล์ 2. App Server 3. อีกส่วนเป็นปัญหาของ DB ที่ใช้ MySQL ซึ่งก็รู้ๆกันอยู่ว่า 4. Searching – Like Behaviour on Facebook Pages อันนี้เป็นงานวิจัยของนิสิต ป.เอก ของ ม.จุฬา ที่สนใจข้อมูลของการ like โดยทำ bot เพิ่มเก็บข้อมูล โดยใช้ Graph API ที่ทาง Facebook เตรียมไว้ให้ครับ และใช้ Tool ชื่อ Tableau มาทำ Data Virtualization ให้เห็นภาพมาขึ้นว่าแต่ page แต่ละหมวด มีพฤติกรรมอย่างไร แล้วมีช่วง peak time ในเวลาไหนบ้าง – Hello! Functional Programming – เปิดตัวสมาคมโปรแกรมเมอร์ไทยครับ คั่นเวลาด้วยอาหารเที่ยงกันครับ อิอิ (ถ้าใครติดตาม Instagram ผม จะรู้ว่ามีแต่อาหาร 5555) Session ตอนบ่าย – Test Double Patterns with Python ดูตาม Youtube เลยครับ…

การจัดการเมื่อต้อง Query กับฐานข้อมูลที่ขนาดใหญ่

บางครั้งเรามี Query ที่ Join Table เยอะๆ และมีผลลัพธ์มหาศาลประมาณหลายแสนรายการครับ เราอาจจะมีการปรับจูน DB เช่น ทำ Index หรือทำ Query Cache เป็นต้น แต่ในมุมของ Dev เราสามารถปรับโปรแกรมได้เหมือนกัน โดยปรับ Query จากเดิมที่ Join กับหลายๆ Table มา Query ตรงๆที่ละ Table แล้วนำข้อมูลมา Process ใน App แทนครับ