บันทึกเรียน iOS ครั้งที่ 1 กับอาจารย์ Paul Hegarty

เรียนจาก https://itunes.apple.com/us/course/developing-ios-9-apps-swift/id1104579961

อาจารย์ Paul สอนเข้าใจง่าย เป็นอีกคอร์สที่ตั้งใจว่าจะเรียนนานแล้ว แต่ก็โดนนั่น โดนนี่ ผลัดไปผลัดมาทุกที

คนที่จะเรียนควรมีพื้นฐานเรื่อง OOP แน่นๆ และมีประสบการณ์ในการเขียนโปรแกรมมาบ้างนิดหน่อยก็พอ แค่รู้พื้นฐานเช่น การประกาศตัวแปร Loop ต่างๆ เป็นต้น เพราะ ภาษา Swift ค่อนข้างต่างจากภาษาอื่นพอสมควร

  • ภาษา Swift ใช้ MVC Model  เหมือนภาษาสมัยใหม่ทั่วไป
    • M = Model ใช้สำหรับเก็บข้อมูล ประมวลผล Logic ต่างๆ
    • C = Control ตัวกลางที่ทำหน้าที่ติดต่อระหว่าง M และ V ซึ่ง M และ V ไม่สามารถติดต่อกันได้โดยตรง
    • V = View ตัวที่แสดงผลติดต่อกับผู้ใช้
    • 1 MVC คือ Apps แค่ 1 หน้า ดังนั้น MVC 1 หน้า อาจจะทำหน้าที่เป็น View ของ MVC ชุดอื่นๆก็ได้ (ชอบจริงๆอันนี้ )
  • ภาษา Swift ไม่มี ; สามารถใช้ CR- Carrier Return หรือการขึ้นบรรทัดใหม่ในการจบคำสั่งได้เลย
  • ประกาศตัวแปรใช้คำสั่ง Var และ Let
    • let X : String!
    • var Y : int?
    • let TF = false //ถ้าเป็นแบบนี้ระบบจะทำให้ตัวแปร TF  เป็น Bool  ให้โดยอัตโนมัติ
  • ตัวแปร Swift มีสิทธิเป็น Optional Value โดยจะมี 2 ค่า คือ มีการเซ็ตค่าให้ กับไม่มีการเซ็ตค่าให้
    • เริ่มต้นตัวแปร Optional มีค่า เท่ากับ Nil คือไม่มีค่า ใช้ ? ตามชื่อตัวแปรเพื่อประกาศตัวแปรแบบ Optional Value
    • ถ้าใช้ ? ในการประกาศตัวแปรแล้วละก็ เวลาเรียกใช้จะต้องใช้ ! ตามหลังด้วยเสมอ ไม่เช่นนั้นจะเกิด Erro
    • ถ้าประกาศด้วย ! ตามหลังก็จะสามารถใช้ได้เลย
  • กด CTRL จากนั้นลากจาก View ไปที่ Control จะเป็นการสร้าง Func เพื่อให้กระทำเหตุการณ์ต่างๆจากการคลิก
    • Action
    • ต้องเลือกที่มาด้วยว่ามาจาก UI ตัวไหน ห้ามเลือกเป็น Anything
    • 1 UI สามารถผูกได้หลาย Func
    • ถ้ากด CTRL โดยไม่เลือก Action จะเป็นการประกาศตัวแปรให้เป็น Instance ของ UI นั้นๆ เพื่อเอาไปใช้ใน Code ได้
  • กด Option แล้วคลิกที่ code  เพื่ออ่าน Help
  • เวลาเขียนตัวแปรควรตั้งยาวๆ เพื่อให้สามารถเข้าใจง่ายโดยมนุษย์มากที่สุด เพราะเราไม่จำเป็นต้องพิมพ์เอง มันมี Intellisence ที่โคตรฉลาดอยู่แล้ว

 

Commitment

image: http://www.merriam-webster.com/dictionary/commitment

จำได้ว่า ผมรู้จัก คำ คำนี้ ตั้งแต่ ประมาณ ปี 2005 โดยรู้จัก จาก New Employee Orientation ที่ Intel ประเทศ อินเดีย โดยตอนนั้นได้ไปฝึกงาน เป็นเวลา 1 ปี

ผู้สอนในตอนนั้น เน้นย้ำ อย่างยิ่งยวด ว่า Commitment สำคัญที่สุด ถ้าจะให้อธิบายความหมายของคำว่า Commitment แบบง่ายๆเลย คือ “รักษาคำพูด” แต่จริงๆ คำว่า Commitment มันมีความหมายมากกว่านั้น ไม่ใช่แค่ การ Keep Promise

ถ้าจะแปลให้โดนจริงๆ ก็น่าจะตรงกับ ภาษาไทยที่ว่า “เสียชีพ อย่าเสียสัตย์” ถึงจะเป็นจะตาย ก็ต้อง ทำตามที่พูดเอาไว้ให้ได้

ออกจะดูแรง ไปแต่ก็เป็นเรื่องจริง ที่บริษัทระดับโลก เค้าใช้ทำงานกันมานาน ไม่น่าแปลกใจเลยที่เค้าไปไกลกว่าเราเยอะมาก

บางคน อาจจะแย้งว่า อ้าว ถ้านัดแล้วทำไม่ได้เนื่องจาก เหตุสุดวิสัยล่ะ?

Commitment ที่ว่า ไม่ได้โหดร้าย ขนาดที่จะต้องพูดแล้วต้องทำให้ได้ ถึงขั้นนั้น ถ้าเราไม่สามารถทำงานได้ตามกำหนด หรือ เกิด เหตุ สุดวิสัยขึ้น คนที่ มี Commitment นั้น จะทำการแจ้งทุกฝ่ายที่เกี่ยวข้อง อย่างรวดเร็วที่สุด

การแจ้งให้คนอื่นรู้ล่วงหน้า เป็นการให้เกียรติ ผู้ร่วมงานเป็นอย่างมาก เนื่องจาก เป็นการทำให้อีกฝ่ายไม่เสียเวลา รอโดยเปล่าประโยชน์ หรือหากเป็นแผนงานใดๆ ที่มีความเกี่ยวข้องกัน ก็จะได้หาทาง แก้ไขได้ทันท่วงที

เพราะฉนั้น เรามารักษา Commitment ของเรากันเถอะ…

มันดูไม่เป็นมืออาชีพ จริงๆ ถ้าทำไม่ได้