Posts Tagged With: code

Quick Note: TypeScript

เพิ่งเจอลูกค้าใช้ภาษา TypeScript (Wiki) เห็นว่าน่าสนใจเลยลองศึกษาดูสักพักล่ะ

  • มันเป็นภาษา Super Set ของ JavaScript ที่คิดค้นโดยเทพ Anders Hejlsberg
  • เพราะว่า JS มันโคตร flexible จนเราเขียนให้มันผิดพลาดได้ง่ายๆ TypeScript ก็เลยแก้ปัญหาด้วยการเพิ่มความเป็น Static Type, Scope, Class-based OOP เข้าไปใน ECMAScript syntax แล้ว compile ออกมาเป็น JS หรือ ECMAScript ver ต่างๆ ได้เลย ปัญหาพวก type ก็ detect กันตอน compile นี่แหละ
  • เพราะมันเป็น Super Set ของ JS ดังนั้นเราเขียน JS ใส่มันไปดื้อๆ ก็ compile ผ่าน
  • ถ้าทำงานกับทั้งภาษา Dynamic กับ Static Type พร้อมๆ กันแล้วจะรู้สึกว่ามันเป็นธรรมชาติมาก ดูไม่ฝืนความเป็น JS แต่ถ้าทำงานกับภาษา Dynamic ล้วนน่าจะชอบ CoffeeScript มากกว่า
  • โดยรวมทำให้เขียน code ช้าลงนิดนึง แต่ได้ความมั่นใจเรื่อง type, การเขียน class แบบที่คุ้นเคยมา
  • ข้อเสียคือเวลาทำงานกับ JS library อื่นๆ มันต้องการ file definition (.ts.d หรือ typing) ที่ระบุ structure ของ function, class, type, module ของ library นั้นๆ เพื่อให้มัน compile ผ่าน (อารมณ์ .h ของภาษา C)
  • ถ้าเป็น lib ดังๆ แบบ jQuery, Angular, React พวกนี้มีคนทำ file พวกนี้ให้อยู่แล้ว แต่คำถามที่สำคัญคือบางคนทำ file พวกนี้ก็ไม่ใช้คนที่เขียน lib นั้น ดังนั้นก็ต้องดูกันยาวๆ ว่าจะไล่แก้ file definition ตาม update ได้ตลอดไหม
  • ถ้าเป็น lib internal (หรือ legacy) lib เนี่ยยากสุดๆ ที่จะมีเจ้า file นี้หรือเขียน file นี้้ย้อนหลัง ขนาดจะลองกะ JS API ตัวเองยังต้องไปเอา file นี้จากลูกค้า (ซึ่ง decompile API ผมออกมาเขียนไอ้ file นี้) มาใช้เลย
  • ส่วนตัวคิดว่าถ้าเป็น Project ใหม่ + ใช้ lib ที่สนับสนุน TypeScript (เช่น Angular 2) หรือ lib ที่เราเขียนใหม่เองก็น่าสนใจที่จะใช้มัน
  • แต่ถ้าทำงานกับ legacy lib เยอะๆ ก็… ตัวใครตัวมัน

ป.ล. กำลังหัดอยู่จาก link TypeScript Tutorial เข้าใจง่ายดี

Advertisements
Categories: Code, Diary, Tech | Tags: , , , , | Leave a comment

Git

ช่วงนี้เพิ่งลองใช้ git หลังจากมี account github มานาน ปกติไม่ได้ใช้ version control เพราะว่า code ทำงานอยู่คนเดียว (ส่วนใหญ่ก็ example code มา replicate ปัญหาลูกค้า)

หลังๆ เริ่มมีงานที่รู้สึกว่าถ้ามี version control น่าจะสะดวกขึ้น อย่างน้อยทำอะไรพังก็แก้กลับไป ver เก่าได้ง่ายขึ้นไม่ว่าจะเป็นงาน code, งานเอกสาร ก็อุตสาห์ไปลงเรียน git ที่คนใน office สอน แต่ตอนใช้จริงยังงงๆ อยู่ คือเพราะใช้เองอยู่คนเดียว push ขึ้น remote ก็ push ขึ้น gitlab ของ office ซึ่ง repo นั้นก็มีผมก็ใช้คนเดียว – -”

  • ตอนนี้ยังงงว่าควรจะ add กับ commit ตอนไหน คือ code แล้ว add เลยรึเปล่า เทสผ่านค่อย commit หรือว่า commit แล้วค่อยเทส งง
  • ตอนนี้ใช้วิธี code –> test –> add –> commit อยู่
  • เนื่องด้วย remote repo มีผมใช้อยู่คนเดียว ก็เลยไม่ค่อยเข้าใจการ pull, fetch ซักเท่าไหร่นัก
  • ยังไม่ค่อยแตก branch มากเท่าไหร่นัก ต้องลองเล่นอันนี้ให้เยอะๆ กว่านี้จะได้ลอง merge ด้วย
  • ตอนนี้ยัง set ให้คนอื่นมา clone repo ของตัวเองใน gitlab ที่ office ยังไม่ได้เลย (ฮาาา)
  • วันสองวันนี้วุ่นกับการ set ssh, git ให้ต่อทะลุ proxy บริษัทออกไป github รู้สึกสนุกดี

รู้สึกยังมีช่องว่างที่ยังไม่เข้าใจอีกมากมายให้เรียนรู้ แม้จะช้ากว่าคนอื่นเขาหลายปีแสงก็ตาม

Categories: Tech | Tags: , , | Leave a comment

ผมเรียน JavaScript อย่างไร

4 ปีที่แล้ว project ที่ผมทำมีการเปลี่ยนแปลงครั้งใหญ่คือเปลี่ยนจาก Java Applet มาเป็น JavaScript Ajax API ตามก้นชาวบ้านชาวช่องที่เลิกเขียน Applet กันไปเป็นปีๆ แล้ว

การเปลี่ยนครั้งนั้นนับว่าครั้งใหญ่เพราะทุกคนทั้ง dev, qa และ support ไม่มีใครรู้ JavaScript หรือ Ajax เลย ทาง dev และ qa นั้นนำร่องไปก่อนอยู่หลายเดือนกว่าที่ผมจะมีเวลาว่างไปศึกษามัน blog นี้ก็จะมาเล่าให้ฟังว่าผมศึกษา JavaScript ผ่านทาง API ตัวนั้นยังไง

  1. dev ให้ source code ของ api และ test page (version beta ทั้งคู่) มา
  2. qa สอนผมลง ajax server (เขียนด้วย c++), วิธี set environment ต่างๆ
  3. dev บอกผมว่าให้ใช้ firebug (สมัยนั้นยังไม่ support chrome) จับ network มาดู message ที่วิ่งระหว่าง server และ client
  4. ผมอ่าน source code, ลอง debug ทีละบรรทัดด้วย firebug และลองใช้ console.log ไล่ flow ของ code
  5. ผมลองแก้ code ต่างๆ เพื่อดูว่ามันจะทำงานยังไง
  6. syntax ไหนไม่เข้าใจว่าทำไม dev เขียนแบบนี้ก็ลอง google ดู ถ้ายังไม่เข้าใจก็ถาม dev ว่าทำไมเขียนแบบนี้ (วะ)
  7. พอ api ออก version production dev ก็สอนผมใช้เวบ jsbeautifier เพื่อ decomplie minify code

ส่วนพวก business logic ต่างๆ (ไม่เกี่ยวกับ syntax code) ส่วนใหญ่ก็ถาม dev เอาครับ มีบ้างที่มันซับซ้อนจน dev/qa ต้องทำเป็น powerpoint สอนทั้งทีมเลยก็มี

หลักๆ จะเห็นว่าวิธีการคือมีคนโยน code มาให้ –> ลองเล่น –> สงสัยก็ถาม มาตั้งแต่ version beta วิธีการนี้คงทำให้ผมพอที่จะเขียน code และแก้ไขปัญหาลูกค้าที่ใช้ JavaScript API ตัวนี้ได้ แต่ถามว่าเข้าใจ JavaScript ลึกๆ ไหม ก็ต้องตอบว่าไม่เลยครับ – -”

ถาม: ทำไมไม่เขียน CoffeeScript ครับ
ตอบ: ควย Code ที่ dev เขียนและลูกค้าใช้งานเป็น JavaScript เฟ้ย

Categories: Code, Tech | Tags: , , | Leave a comment

Blog at WordPress.com.

Bomreview

โบ้มรีวิว โตแล้วจะรีวิวอะไรก็ได้

rerng.rak

Just another WordPress.com weblog

neizod

Smile! You’re at the best WordPress.com site ever

Admod's blog

just logs

freeclub

พยายามเขียนให้ยาวกว่าเฮดเดอร์ข้างบนจะได้ดูสวยๆ

Anontawong's Musings

a daily dose of a new perspective

TravelKanuman

Travel around the world

kemisara

Belle Kemisara Paladesh's Fan Site - เว็บไซต์แฟนคลับเบลล์ เขมิศรา พลเดช

eatandysummers

eat. travel. live.

Jonathan Fleming's Blog

A Photography Blog

Viewfinder - Street Photography Blog

Jimmy Yang Street Photography Blog

PinkiiGirl

Be one of those who change things and push the human race forward

บล็อกอะไรไม่รู้ของแบม

Ordinary guy blogging about comic books, video games, movies and stuffs.

Pawoot Personal Blog & Think Tank

E-Business Man Daily Life and What I'm Thinking