Line Alert Forward Project Part 1

งานประจำที่น่าเบื่อ

ถ้าถามว่าการเป็นโปรแกรมเมอร์แล้วอะไรน่าเบื่อที่สุดก็คงจะเป็นงานประจำนี่แหละ คือมันน่าเบื่อที่เราต้องมาทำอะไรเดิมๆเรื่อยๆ บางทีเราต้องเจอ Legacy code บางทีต้องมารับงานทำตามใจลูกค้า แก้โน่นนี่นั่นที่เราดูแล้วมันไม่น่าตื่นตาตื่นใจ ย้ายโน่นย้ายนี่ในหน้าจอ มันไม่สวยเลย บลาๆๆๆ อยากได้อะไรที่จู้จี้จุกจิกน่าเบื่อ งานบางงานเป็นงานที่ไม่น่าทำไม่น่าคุ้มแต่ก็ต้องทำ เราอยู่ในสภาพคนไม่อยากทำที่ต้องทำงาน ถ้าตามพระพุทธศาสนาคือการขาด ฉันทะ คือ ความพอใจในเรื่องที่ทำซึ่งถ้าไม่มีงานมันคงออกมาไม่ดี ไอเรื่องแบบนี้เวลาเจอนานๆมันก็เริ่มสะสมขึ้นเรื่อยๆจนพอกพูนขึ้นเรื่อยๆจนเกิดเป็นอาการเบื่อ ยิ่งคนที่ไม่มีอะไรทำอยู่แล้วด้วยยิ่งเคว้งคว้าง จะเล่นเกมส์เหมือนตอนเด็กๆก็ไม่ค่อยสนุกแล้วเพราะเกมส์มันมี Pattern ซ้ำๆ เล่นแปปๆก็เบื่อ จะเล่นเกมส์ MOBA ก็แก่เกินแกงละ จะไปเล่นโชว์ NOOB ให้คนอื่นเขาหัวร้อน (รวมทั้งตัวเอง) ก็ไม่ค่อยจะคุ้มกับเวลาในชีวิตที่เหลือน้อยลงทุกวันๆ (เคยคิดจะอยู่ถึงสัก 80 ตอนนี้ 60 จะถึงรึเปล่ายังไม่รู้)

ลงกับเขียน Code ละกัน

ในเมื่องานประจำมันน่าเบื่อนัก ก็มาเขียน Code ที่แม่งไม่เกี่ยวกับงานประจำแม่งเลย (จริงๆอาจเกี่ยวก็ได้) ละกัน ในวงการเขาเรียก Project พวกนี้ว่า Side Project ซึ่งข้อดีของไอ Project พวนกนี้คือ อยากทำห่าอะไรก็ทำ อยากลองอะไรก็ลอง ไม่มีข้อจำกัดห่าเหวอะไรทั้งสิ้น ไม่มีลูกค้าหน้าหมามาชี้นิ้วว่าอยากได้แบบไหน ทุกอย่างเป็นอย่างที่เราต้องการจะสร้างสรรค์ยังไงก็ได้ จะให้หน้าจอมันออกมาเป็นแบบโบราณ ออกมาแบบ 8 Bit จะใช้ภาษาไหน Framework อะไรก็ได้

Line Alert Forward

ครับนี่คือชื่อ Side Project ที่ผมจะทำครับ ชื่อมันอาจจะผิดหลักไวยากรณ์หน่อย (ถึงมากที่สุด) ตอนแรกจะใช้ชื่อผู้หญิงที่ตัวเองชอบมาเป็นชื่อ Project ละ แต่กลัวว่ามันจะเป็นตราบาปให้เธอไปตลอดชีวิตมากกว่า เลยเอาชื่อแบบมั่วๆละกัน

ที่มาและความสำคัญ

ชื่อหัวข้อแม่งยังกะกับเล่ม Project เลย จริงๆที่มาไม่มีอะไรมากไปกว่าเบื่อกับ Code แบบเดิมๆที่ไม่ตามใจตัวเอง อยากลองอะไรใหม่ๆ ไอตัว Project นี้เนี่ยมันเริ่มมาจากที่บริษัทที่ทำงานอยู่เนี่ยมีปัญหาเรื่องการแจ้งเตือนเวลา Service มีปัญหา คือจริงๆมันมีระบบแจ้งเตือนละคือ e-mail ไงล่ะพ่อคุณ แต่ไอ e-mail ห่าเนี่ยมันกลายเป็นอะไรที่คนไม่ค่อยอ่านตั้งแต่เมื่อไหร่ไม่รู้ (คงตั้งแต่เริ่มมี Chat) หรือจริงๆเมลล์มันมีไว้สำหรับคุยงานแบบที่เป็นทางการคนเลยเริ่มเบื่อที่จะอ่าน ผมเลยกะทำ Project นี้ขึ้นมาเพื่อทำการส่ง Alert เข้า Line ผู้เกี่ยวข้องกับ Service (คนไทยใช้ Line กันเยอะจริงๆ น่าแปลกใจเหมือนกัน)

ใช้อะไร + ทำอะไร

Project นี้กะใช้อะไรบ้าง แล้วก็ทำอะไรบ้าง

  • Line api : เห็นคนอื่นเขาใช้มานานละ ใช้กันจนแม่งเลิกฮิตละ ว่าง่ายๆว่าตกรถละเลยต้องวิ่งตาม แต่ก็ดีตรงที่เวลาเรามาช้ากว่าเราจะเห็นมี Resource ให้ดูเยอะแยะเต็มไปหมด (มองโลกในแง่ดีเกินไป)
  • Typescript : ไอภาษานี้ผมอยากเขียนตั้งแต่มันออกมาใหม่ๆตั้งแต่เมื่อ 3 ปีที่แล้ว ปลุกปล้ำหัดเขียนอยู่คนเดียว ชวนใครเขียนก็ไม่ค่อยมีคนเอาด้วย บางคนบอกว่ามันน่ารำคาญ มาเขียนภาษา script แล้วต้องมา strict type จนสุดท้ายก็ไม่ได้เขียน บางทีก็ไปอ่านเล่นๆว่ามันยังมีคนใช้อยู่ไหม
  • Hexagonal Architecture : คือการออกแบบ Application ให้สามารถถอดประกอบเข้ากับ Application อื่น หรือส่วนที่เกี่ยวข้องอื่นๆได้ง่าย ไอต้วนี้ผมได้รู้จักตอนเรียนปี 3 ปี 4 ตอนนี้ก็ผ่านมาได้ 4 ปีกว่าๆละ เคยพยายามจะลองเขียนกับ Application ตัวแรกที่ได้รับมอบหมายโดยใช้แนวคิดนี้ ก็ไปได้ดีพอสมควรแต่พอมีคนมาอ่านต่อก็มีคนมาถามว่า “มึงเขียนอะไรของมึง ยุ่งยากชิบหาย” แล้วก็ไม่เป็นที่นิยมในบริษัท ตัวนี้เลยอยากลองเอามาเขียนอีกรอบ
  • เขียน Test : อันนี้เคยใช้ Mocha เขียนดูละแต่เหมือนจะยังเขียนได้ไม่ดีแถมเป็นแค่ Unit test รอบนี้เดี๋ยวลองเขียน Test แบบอื่นๆดู
  • ทำ Docker Image : อันนี้เคยทำแล้วแต่เป็นแบบ Mount Volume แล้วเอา app ไปรัน ไม่เคยทำ Image ตัวเป็นๆแล้วเลยสักตัว
  • ใช้ Jenkins : อันนี้อยากทำตอนทำงานได้ปีกว่าๆ แต่ไม่ได้ทำสักที ติดโน่นนี่นั่น นั่นโน่นนี่
  • ใช้ SonarQube : จริงๆตัวนี้ใช้พอได้แบบงูๆปลาๆละ แต่ไม่เคยเอามาใช้จริง เลยกะเอามาใช้จริงเลย
  • เขียน Blog โม้ไปด้วย : จริงๆคือหมดเรื่องจะเขียน Blog ไม่รู้จะเอาอะไรมาเขียน ก็เอาเรื่องนี้ละมาเขียน Blog ซะเลย
  • เขียน Code ให้ลืมเธอ : อันนี้เอาเวลาคิดถึงใครสักคนที่เหมือนอยู่คนละโลก การเขียน Code คงจะช่วยให้ลืมได้ง่ายขึ้น (ลองแก้ BUG สักตัวดูสิจะรู้ว่าเวลามันผ่านไปไวแค่ไหน )

คืบหน้าแล้วจะมาเล่าให้ฟังว่าทำอะไรบ้าง

สำหรับหน้านี้ขอแค่โม้ละกันว่าจะทำอะไรละกัน จริงๆลง Code ไปนิดๆหน่อยละแต่เป็นอะไรที่แบบ โห มึงไม่ต้องมาโพสก็ได้มั้ง ลาไปด้วยภาพนี้กับ SideProject ก่อนๆของตัวเอง

ref :
https://www.creativebloq.com/infographic/cartoon-reveals-importance-completing-side-projects-31619566
http://fideloper.com/hexagonal-architecture
https://www.imdb.com/title/tt4964598/
https://www.typescriptlang.org/index.html