Category Software Engineering

Software Engineering, Software Process, Software Testing, Software Design, Design Pattern, Software Architecture Guide

[KBTG-GO#05] DevOps

สัปดาห์นี้มาช้านิดนึง ไปลองทำ Fun-Ex มา 55 หัวข้อประมาณนี้ 1 .DevOps – Why DevOps Flow เดิม Waterfall ทำเสร็จ กว่าจะ Deploy อีกนาน โดยอาจจะให้ Change Approval Board (CAB) อนุมัติ ก่อนให้ทีม Operation ทำงาน กว่าจะแก้ได้ช้า และมีปัญหาเรื่อง Enviroment DevOps มีคน Idea มาจากฝั่ง Ops ตอนปี 2006-2007 มีคำถาม Migrate ยังแล้วจะรู้ว่าใช้ได้ไหม…

[KBTG-GO#04] API Security

ทำไมถึงต้องมี Security เพราะการสื่อสาร (Communication) มันไม่เป็นความลับ หรือ ผู้ส่งกับผู้รับอีกต่อไป มือที่สามอ่านได้ และเอาไปทำอะไรต่อ เช่น หลอกในโอนเงิน ปลอมเป็นอีกคนเป็นต้น จึงการเพิ่มในส่วน ciphertext ซึ่งเป็นตัวเข้ารหัสนี่เอง โดยผู้ส่งเข้ารหัส (Encryption) / ผู้รับถอดรหัส (Decryption) ตอนนี้จะเป็นต้ว ตอนที่เรายิง request ไปยังเว็บ มันเกิดกระบวนการ Validate SSL/TLS ซึ่งมีพื้นฐานมาจาก Asymmetric cryptography (public key / private key) Secure connection is enough? ถึงแม้ว่ามีการเข้ารหัสของการสื่อสารแล้ว…

[KBTG-GO#04] API Design

สำหรับ Week นี้ เป็นบทที่เยอะมาก 555 รอบหน้าแบ่งสอน 2 Week จะดีมาก ส่วนตัวแยก 2 Blog เหมือนกัน 1. REST API – Vocab Components of a URL HTTP verbs GET (ดึงข้อมูล Select) / POST (Create) / PUT (Update) / DELETE Resources พวก Path ที่เราอ้า่งอิงกัน เช่น…

[KBTG-GO#03] Software Testing

0. Go Basic เหมือนมันมา Go Testing เลย ลองอะไรแล้วสงสัยมาแปะในนี้ และกัน แต่อาจจะมีแซมๆที่จุดอื่นบ้าง และก็ Go เป็นภาษาที่ใช้ PascalCase มีกฏระดับนึง แต่อาจจะไม่ Strick เท่ากับ Space ของ Python – Package – Variable + Operator + Control Flow – Function – Loop – Pointers เหมือนย้อนกลับมาเรียน C ยังไงไม่รู้ 555…

[KBTG-GO#02] Software Design

1. Software Development Approach Problem Domain alight with Solution Space 2. Design Step Understand the problem > Clarify requirement + Define Scope > High Level Design > Proposal & Validation > Deep Drive Design จากนั้น Iterative Increment Design วนซ้ำ 3.…

Software Telemetry คือ อะไร

Earth observations taken by Expedition 44 crewmember

ตัวคำนี้ผมได้ยินมาตั้งแต่สมัยตอนทำ Thesis ว่ามันเอา metric ไปใช้ต่อ แต่คิดว่ามาเขียนให้เป็นรูปเป็นร่างดีกว่า เผื่อต้องมาลองย้อนนึกๆ อีกครับ โดยก่อนที่เราต้องมารู้จัก Telemetry สิ่งที่ต้องรู้อย่างแรก นอกจาก Software จะถูกออกแบบให้มันทำงานตาม Business ใน Domain นั้นๆ แล้ว สิ่งที่ตัว Software ที่ดีควรจะทำเพิ่ม เพื่อเอามาติดตามปัญหา หรือจะทำ Preventive Maintenance มี 3 ส่วน ได้แก่ แล้วที่นี้ตัว Software Telemetry คือ อะไร Reference

Code Coverage คือ อะไร และสำคัญยังไง ?

ช่วงนี้พยายามจะดันให้ทุกคนในบริษัทเขียน Test แบบ (Automate) มันมีคำถามว่า แล้วเราจะรู้ได้ยังไง ว่า Test ที่เขียนไปมันมีคุณค่า ไม่ใช่ Test เข้าไป execute ที่ code จุดเดิมซ้ำๆ เลยเป็นที่มาของ Blog นี้ครับ โดยจะมีหัวข้อย่อยๆ ดังนี้ Code Coverage คือ อะไร ? KEY: Code Coverage มันบอกว่าเราเข้าใจ Code ที่เขียนมากแค่ไหน จากตัว Testแต่ Code ที่เขียนมา มันจะถูกต้องตาม Business ไหน มันอีกเรื่องนะ…

ลองใช้ Headless Chrome ทำ Screen Shot

เรื่องก็มีอยู่ว่า Project นึง คนส่วนใหญ่ไม่ค่อยยอมทำ Test บางทีบอกว่า Coverage Report มันเปิดยาก / ตัวเค้าเองไม่รู้ว่าตอนนี้ Coverage มันลดลง แล้วต้องมาทำ Test เพิ่ม เป็นต้น ผมเลยมีไอเดียเลยว่าเดี๋ยวจะส่งตัว Report Coverage Summary ไปให้ โดยตอนนี้ใช้ Tools reportgenerator.io หลังจากที่มัน Generate เสร็จแล้ว มันจะได้ HTML Report หน้าตาสวยงามครับ ตามรูป จากหน้าตานี้แหละ ผมได้มี Idea ว่าจะหาทาง Capture Coverage Status…

ผมว่ามันน่าจะขาดอะไรไปนะ – High Cost of Requirement Errors

เรื่องมีอยู่ว่าที่ บ มี Inhouse Training สอนเรื่องการเก็บ Requirement แหละ ผู้สอนมีบอกถึง Cost ที่ต้องเสียไปหากมี Defect หลุดไป (High Cost of Requirement Errors)แต่ละช่วงตามรูปด้านล่าง ซึ่งมันถูกต้อง ถ้าในช่วงของ Project หรือ SDLC (ไม่ว่าจะเป็น Waterfall / Agile) ทำให้ทุกอย่างชัดเจน และ Test ได้ตั้งแต่ช่วง Requirement จะดีที่สุดครับ แก้ในเอกสาร ช่วงอื่นๆ กระทบไป Code / Architecture หรือ…

ตั้งชื่อ Unit Test กันยังไงนะ ?

Unit Test

อันนี้เป็นคำถามที่น่าสนใจเหมือนกัน ผมเลยลอง Research มาดูนะ เพราะ Pattern ที่ใช้กันตอนนี้ T<TICKETID>_<DESCRIPTION NOTE> หลังจากลอง Research มาพบว่ามีคนเขียนไว้เหมือนกันนะ 7 Popular Strategies: Unit Test Naming Conventions – DZone ลองดูแล้วมีตัวที่น่าสนใจอยู่นะ อย่าง Pattern ที่ 7 คนที่เข้ามาอ่าน Code ของ Unit Test จะได้เข้าใจด้วยเลย Reference