199
CPE4235 การวิเคราะห์และโปรแกรมเชิงวัตถุ จิตกร พิทักษ์เมธากุล Java Web Developer @Geniustree Co.,Ltd i am programmer.

สอนครั้งที่ 1 cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

  • Upload
    -

  • View
    1.631

  • Download
    6

Embed Size (px)

Citation preview

Page 1: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235 การวเคราะหและโปรแกรมเชงวตถ

จตกร พทกษเมธากลJava Web Developer @Geniustree Co.,Ltd“i am programmer.”

Page 2: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

รจกกบ Computer Programmingรจกกบเครองมอ (Tools)

และภาพรวมของการพฒนา Java Web Application

CPE4235

1

Page 3: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

เนอหา

• รจกกบ Computer Programming• รจกกบ Java• Netbeans IDE & Plugins• Maven• VCS (Version Control System)

• Git & Github• ภาพรวมการพฒนา Java Web Application

CPE4235

Java

Basic

Git

Page 4: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

อะไรคอ Computer Programming?

CPE4235

Page 5: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

Computer Programming

“เปนสงทมนษยใชเปนตวแทนส ำหรบสรำงปฏสมพนธกบคอมพวเตอร (Human to Computer)”

CPE4235

Page 6: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

ซงประกอบไปดวยล ำดบของชดค ำสง (Sequence of Instructions) ตำงๆ มำกมำย

เพอบอกใหคอมพวเตอรท ำงำนตำมทมนษยตองกำร

เรยกอกอยำงหนงวำ “ภำษำโปรแกรม” หรอ “Programming Language”

CPE4235

Page 7: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

มนษยทเขยนภำษำโปรแกรมเรำเรยกวำ

“โปรแกรมเมอร” (Programmer)

CPE4235

Page 8: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

บำงครง เรำกเรยกมนษยพวกนวำ“นกพฒนำ” หรอ “Developer”

CPE4235

Page 9: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Mark Zuckerberg

Bill Gate

Steve Wozniak

Larry Page

Facebook

Microsoft

Apple

Google

Page 10: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

“โปรแกรมเมอร คอศลปน ผสรำงสรรคผลงำนศลปะ

ดวยกำรเขยนโคด”

CPE4235

Page 11: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 12: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

สงทถกเขยนขนดวยภำษำโปรแกรมเรำเรยกวำ

CPE4235

Page 13: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

“ซอฟตแวร หรอ โปรแกรม หรอ แอพพลเคชน” (Software or Program or Application)

CPE4235

Page 14: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 15: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

ตนก าเนดภาษาโปรแกรม

CPE4235

Page 16: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

ภำษำโปรแกรมแรกทมนษยคดคนขนมำเพอใชตดตอสอสำรกบคอมพวเตอรนน ประกอบไปดวยตวเลขเพยงแค 2 ตวเทำนน คอ 0 กบ 1 เชน

01010010 0100011011001000 01010011

ภำษำโปรแกรมน เรำเรยกกนวำ “Machine Code”

CPE4235

Page 17: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Human Computer

[101010111 01011101]

Machine Code

Page 18: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

ปญหาของ Machine Code

CPE4235

Page 19: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

• จดจ ำรปแบบไดยำก (ยำกโคตร)• เรยนร และท ำควำมเขำใจไดล ำบำก• ใชระยะเวลำในกำรเรยนรสง• ตองรลกเกยวกบกำรท ำงำนของ CPU และ Memory• สนเปลองทรพยำกร (สมอง)• ไดไมคมเสย

CPE4235

Page 20: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

ก าเนดภาษาใหม “Assembly”

CPE4235

Page 21: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

Assembly เปนภำษำโปรแกรมชนดหนง มลกษณะเปนค ำสงภำษำองกฤษสนๆ เขำใจไดงำยกวำ Machine Code

ค ำสง ของ Assembly จะถกแปลงไปเปนค ำสง Machine Codeอกท เชน

CPE4235

XOR CL, [12H] = 00110010 00001110 00010010 00000000

ทเราตองจ า

Page 22: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Assembly

Page 23: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Assembly Language

Machine Code

Assemblerinput output

ตวแปลภาษา Assembly

Computer

การท างาน

Page 24: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

แตมนกยงยากอยด!

CPE4235

Page 25: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

มนษยจงพยำยำมสรำงภำษำโปรแกรมใหมขนมำอก เพอใหงำยขน และมควำมใกลเคยงกบภำษำมนษย(ภำษำองกฤษ : English) มำกทสด

ซงเรำนยำมภำษำใหมทสรำงขนมำนวำ

CPE4235

“High Level Language”

Page 26: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ภาษาระดบสง“High Level Language”

Page 27: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

ภำษำระดบสง

หมำยถง “ภำษำทใชในกำรเขยนโปรแกรม ทมควำมใกลเคยงกบภำษำมนษยมำกทสด โดยทผเขยนไมจ ำเปนตองรลกถงโครงสรำงภำยในของคอมพเตอร”

CPE4235

Page 28: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

กำรท ำงำน จะใชตวแปลภำษำทเรยกวำ Compiler /Interpreterคอยท ำกำรแปลค ำสงทเรำเขยน เพอน ำไปแปลง / สงกำรคอมพวเตอรอกท

CPE4235

Page 29: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

มหลำยภำษำ เชน • ภำษำซ (C)• ภำษำเบสก (Basic)• ภำษำปำสคำล (Pascal)• ภำษำไพธอน (Python)• ภำษำพเอชพ (PHP)• ภำษำจำวำ (Java)

เปนตน

CPE4235

Page 30: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Source CodeMachine

CodeCompiler / InterPreter

input output

ตวแปลภาษา High Level

Computer

การท างาน

Page 31: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Best Programming Language to Learn in 2014

ประมวลผลจำกเวบไซต http://jobstractor.com/

อำงอง http://www.sitepoint.com/best-programming-language-learn-2014/

Page 32: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 33: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 34: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 35: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Java เปนภำษำโปรแกรมระดบสงตวหนง

ทถกคดคนขนในป ค.ศ. 1991(หรอป พ.ศ. 2534 ตอนนมอำย 23 ป : ปนป 2557 หรอป 2014)

พฒนำโดยทมวศวกรของบรษท ซนไมโครซสเตมส (Sun MicroSystem)น ำทมโดย เจมส กอสลง (James Gosling)

Page 36: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

เปนสวนหนงของ The Green Project ใชเวลำในกำรพฒนำ 4 ป จงส ำเรจและออกสสำธำรณะในป ค.ศ. 1995 (พ.ศ. 2538)

Page 37: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

เจมส กอสลง (James Gosling)“บดาแหง Java”

19 พฤษภาคม 2498 (อาย 59 ป)

Page 38: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

โดยมวตประสงค เพอน ำมำใชแทนภำษำ C++

ตอนแรกตงชอวำภำษำโอก (Oak)แตเนองจำกมคนจดลขสทธภำษำ Oak ไปแลว

จงไดคดชอใหม มำเปน Java ในทสด

ซงหมำยถง “กำแฟ”

Page 39: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ปจจบน Java เปนลขสทธของบรษท

เพรำะ Oracle ซอ Sun Micro System มำจงไดลขสทธ Java มำดวย

Page 40: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

จดเดน / ขอด ของภาษา Java

Page 41: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

เปนภาษาโปรแกรมเชงวตถ (OOP : Object Oriented Programming)

Page 42: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Platform Independent หรอการไมขนกบ platform

“Write One Run Anywhere”

Page 43: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ประสทธภำพสงHigh Performance

Page 44: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

มระบบจดกำรคนหนวยควำมจ ำอตโนมต (Garbage Collection)

Page 45: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Strong เกด Bug คอนขำงยำก เนองจำกเปนภำษำท

คอนขำงเขมงวดกบไวยำกรณ

Page 46: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Libraries เยอะ

มของใหเลนเยอะมำกกก

Page 47: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

มกำร update ออก version มำใหมเรอยๆ

ตอนนเปน Java8 (jdk8 update 25 : 13/12/2014)

Page 48: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ไมเสยคาลขสทธในการพฒนา

Page 49: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ขอเสย

Page 50: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ใชระยะเวลำในกำรเรยนรสง / คอนขำงยำก

Page 51: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

แพลตฟอรม (Platform)

Page 52: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Platform

หมำยถง “Hardware หรอ Software ทท ำหนำทเปน Environment ในกำร Run Program”

Page 53: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ในทนเรำจะพดถง Software อยำงเดยว เชน

• Windows• Linux• iOS• Android• Facebook• Google+

Page 54: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Java Platform

Page 55: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

กำรเขยนโปรแกรมดวยภำษำ Java จะถกแบงออกเปน 3 รปแบบ หรอ 3 Platform คอ

• JSE (Java Standard Edition)• JME (Java Micro Edition) และ • JEE (Java Enterprise Edition)

Page 56: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JSE (Java Standard Edition)

เปน Java Platform มำตรฐำน (Standard) เหมำะส ำหรบกำรพฒนำ Desktop Application

นกพฒนำหรอ Developer ทวๆไป ใชแค JSE กเพยงพอส ำหรบกำรพฒนำ Java Application แลว

Page 57: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JSE ประกอบไปดวย

• JDK (Java Development Kit) ทรวมเอำ Compiler และ Debugger ส ำหรบนกพฒนำ เอำไวพฒนำ Java Application

• JRE (Java Runtime Environment) คอสภำพแวดลอมทใชในกำร Run Java Application

Page 58: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JDK คอ เครองมอ หรอ Tools

JRE คอ สภำพแวดลอมในกำร Run Java App

Page 59: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

อธบำยงำยๆ

ถำเรำมองวำ Java Application คอรถแขง

JRE กเปรยบเสมอนกบสนำมรถแขงทเอำไวใหรถแขงวง ถำไมม JRE แลว Java กท ำงำนไมได และ

JDK กเปรยบเสมอนเครองมอทใชในกำรผลตรถแขง หรอกคอโรงงำนผลตรถแขงนนเอง

Page 60: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Java Application

Java Runtime Environment

Java Development Kit

Page 61: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ถำเรำแคตองกำร Run Java Appเรำใชแค JRE กพอ

แตถำเรำตองกำรเขยน Java App เรำตองใช JDK

Page 62: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JDK

JRE

Page 63: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JME (Java Micro Edition)

เปน Java Platform ทเลกทสด เหมำะส ำหรบอปกรณพกพำ เชน โทรศพทมอถอ หรอ PDA เปนตน

หลำยคนอำจเขำใจผดคดวำ M ในทนหมำยถง Mobile

M = Micro

Page 64: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

แลว Android คอ JME หรอเปลำ ?

Page 65: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ค ำตอบคอ ไมใช

Page 66: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JEE (Java Enterprise Edition)

เปน Java Platform ทใหญทสด

แนนอนวำ ถำใหญกวำ JSE แลว ทกๆ อยำงทมอยใน JSE กจะตดมำดวย

Page 67: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JEE (Java Enterprise Edition)

JSE

JEE

Sub set

Page 68: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JEE (Java Enterprise Edition)

สวนทมเหนอกวำ JSE กคอ JEE เปน เทคโนโลยทใชส ำหรบกำรพฒนำ Application บนฝง Server

Page 69: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JSE = Java ทเขยนทำงฝง Client หรอ Desktop Application

JEE = Java ทเขยนทำงฝง Server

Page 70: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JEE (Java Enterprise Edition)

เปนกำรเขยนโปรแกรมทท ำงำนอยบนระบบเครอขำยขององคกร หรอ Enterprise

Page 71: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

กอนจะเขยน java มำท ำควำมรจกกบไฟล 3 ชนดกอน

.java

.class

.jar

Page 72: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

.java

เปนไฟลทเกบ ภำษำโปรแกรม java ทเรำเขยนขนมำเชน

• Staff.java• Address.java• Visit.java

Page 73: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ขำงใน .java (syntax ภำษำ java)

Page 74: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

.class

เปนไฟลแปล (Translated) ของไฟล .java นนๆ เรำเรยก code ทอยในไฟล .class วำ “Java Byte Code”

• Staff.class• Address.class• Visit.class

Page 75: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

staff.java staff.classตวแปล

Page 76: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ขำงใน .class (อำนไมรเรอง)

Page 77: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

.jar

เปนคลำยๆ ซปไฟล (.zip file) ของภำษำ javaทรวบรวมไฟล .class + ไฟลอนๆ และ Meta data ไวขำงใน

Page 78: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

.jar

สวนมำกแลว .jar จะเปน Libraries Fileคอรวบรวม java code ทสำมำรถเอำไปใชตอได แพค (pack) รวมกนไว

Page 79: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Audit.class

staff.class

Build / Pack

Test.class

.jar

Page 80: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235.jar

.class

Meta dataother

.class .class

.class.class

Page 81: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 82: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235การท างานของ Java

MyCode.java

JVM

Compiler

Computer

MyCode.class

010010101

Machine Code

Java Virtual Machine

Page 83: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JVM

Page 84: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JVM (Java Virtual Machine)

เปนโปรแกรม ทท ำหนำทเปนจกรกลเสมอน คอยอำนค ำสงจำก Java Byte Code (.class) แลวน ำไปแปลงเปนค ำสงของ Platform นนๆ เพอสงงำน Computer อกท

Page 85: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Byte code / .class JVM Computer

Page 86: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

JVM (Java Virtual Machine)

ขนตรงกบ Platform

เอำ JVM ไหนมำ run Java Byte Codeกจะท ำงำนตำมค ำสงของ Platform นนๆ

Page 87: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Java Byte Code(.class)

Windows

Linux

Mac

JVM

JVM

JVM

JVM

Java Source Code(.java)

Compiler

Page 88: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Java เปน Independent Platform (ไมขนตรงตอแพลตฟอรม)

สวนตวท Dependent คอ JVM

Page 89: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Java Byte Code(.class)

Windows

Linux

Mac

JVM

JVM

JVM

JVM

Java Source Code(.java)

Compiler

Page 90: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Java Byte Code(.class)

Windows

Linux

Mac

JVM

JVM

JVM

JVM

Java Source Code(.java)

Compiler

เราสนใจแคน

Page 91: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ภำพรวมกำรพฒนำ

Page 92: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

วชำน ผมจะพำคณเขยน Java Web Application

ท Run บน Cloud Service (Virtual Private Server)

Page 93: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

แต!

Page 94: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

คณจะไดเขยน Web Application หลงจำกกลำงภำคเปนตนไป (ภำควชำชพ)

Page 95: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

เพรำะในครงแรก (6 ครงแรก)คณตองเขยน Java ใหเปนกอน

Page 96: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

แตกอนจะเรมเขยน เรำมำดภำพรวมกนกอน วำตองท ำอะไรบำง

Page 97: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

.jar / .war Server

คณ

Build / pack

deploy

coding

เชำ V

PS (V

irtual

Priva

te Se

rver

)

www.yourweb.com

Page 98: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

.jar / .war Server

คณ

Build / pack

deploy

coding

เชำ V

PS (V

irtual

Priva

te Se

rver

)

www.yourweb.com

Page 99: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

คณ

coding

Page 100: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235 คณ

coding

Push /pull

Page 101: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

วำดวย “เครองมอ (Tools)”

Page 102: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

• IDE (Integrated Development Environment)• VCS (Version Control System) • Build Tool

Page 103: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

IDE

Page 104: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

IDE (Integrated Development Environment)

เปนเครองมอทชวยในกำรพฒนำโปรแกรมโดยมสงอ ำนวยควำมสะดวกตำงๆ เพอใหเขยนโปรแกรมไดงำยขน

เชนเครองมอ Compile, Run, Test Projectมตว Check ไวยำกรณภำษำ ฯลฯ

Page 105: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

IDE (Integrated Development Environment)

มหลำยตว เชน

• Netbeans IDE• Eclipse IDE• IntelliJ IDE

Page 106: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235IDE ทไดรบความนยมในชวงน

Page 107: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 108: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Netbeans IDE

เปนเครองมอทใชในกำรพฒนำ Java Application ตวหนงทมชอเสยงมำกๆ ถกสรำงขนในป 1998 (พ.ศ. 2541)ดวยภำษำ Java

โดยกลมนกศกษำ “Rock Solid Software"ขณะนนเปนโปรเจคนกศกษำ

Page 109: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Netbeans IDE

และตอมำไดเผยแพรใหบลคลทวไปไดใชงำน ในรปแบบของ Open Source และฟร

ตอมำในป ค.ศ. 2000 (พ.ศ. 2543)บรษท Sun Micro System ผพฒนำภำษำ Java ไดเขำมำเปนผสนบสนนหลกในกำรพฒนำ

Page 110: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ปจจบน Netbeans IDE รองรบกำรเขยนโปรแกรมหลำยภำษำ และมเครองมออ ำนวยควำมสะดวกตำงๆ มำกมำย

สำมำรถเขำไป Downloads และเรยนรกำรใชงำนไดทwww.netbeans.org

Page 111: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Netbeans IDE

Page 112: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Netbeans IDE

Page 113: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Netbeans IDE

Page 114: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 115: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Maven

เปนเครองมอทใชในกำรสรำง Java Project ตวหนงทไดรบควำมนยมสงสดในตอนน

Page 116: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Maven

ใชแทนกำรสรำง Project แบบ Manual เอง

เพรำะกำรสรำงแบบ Manual ท ำใหเกดปญหำตำงๆ ตำมมำมำกมำย

Page 117: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ขอเสยของกำรสรำง Project แบบ Manual

• Developer แตละคนก ำหนดโครงสรำง Project ไมเหมอนกนโครงสรำงโปรเจค สะเปะ สะปะ

• บ ำรง /ดแลรกษำโคด (โคตร) ยำก • จ ำโคดไมได• Libraries Version ไมตรงกน• Run ท Environment แตกตำงกนไมได• ท ำเองทกอยำง ซ ำไปซ ำมำ

Page 118: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

แลวท ำไมไมใชอะไรทมน Auto ชวยละ! สะดวกกวำเยอะเลย

Page 119: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Maven

มควำมสำมำรถในกำร Build, Compile, Test, Clean … projectท ำ Dependencies Management

ชวยจดกำรเรอง Project Structure / Project Template

รวมทงยงสำมำรถ config Profile Environment ในกำร run บน Environment ทแตกตำงกนไดดวย

Page 120: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Build

Maven จะชวยจดกำรเรองกำร (Auto) Build Project ใหเรำ

Project Build / Pack .jar

น ำ .jar นนไปใชไดเลย ไมตองเขยน Build Script เอง

Page 121: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Compile

เมอเรำท ำกำร Build Project Maven จะท ำกำร Compile Source Code จำก .java -> .class ใหเรำเองโดยอตโนมต

เรำไมตองมำนง $ javac mycode.java

Page 122: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Test

เรำสำมำรถท ำกำรผนวก Unit Test ไปพรอมกบกำร Build หรอกำรตดตงไดเลย ซง Maven กจะจดกำรให

Page 123: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Clean

Maven จะจดกำรเรองกำร Clean Project ให เพยงแคคลกขวำแลวสง Clean .jar File ทมอยกจะหำยไป

เปนกำรลำง .jar File

Page 124: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Dependency Management (Core of Maven)

คอเรองของกำร Config และ Download Library

ซง Maven จะท ำกำร Download Library ตำงๆ มำใหเรำโดยอตโนมต โดยทเรำไมตองหำ Library มำใส Project เอง

เรำแค Config Library ทตองกำรไวท ในไฟล pom.xml

Page 125: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Libraries นนๆ เรำจะเรยกมนวำ Dependencies

Page 126: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

DependencyProject

Depend on

Page 127: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

DependencyProject

Depend on

Page 128: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

DependencyProject

Depend on

Page 129: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Project

สรำง/config project เอง

Page 130: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Project

.jar

.jar

.jar

.jar

.jar

.jarสรำง/config project เอง

Page 131: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Project

ลองใช Maven ชวย

Page 132: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

Project

CPE4235

Project

Maven

ลองใช Maven ชวย

Page 133: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

Project

CPE4235

Project

Maven

Central Repository

.jar.jar

.jar

ลองใช Maven ชวย

internet

Page 134: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

Project

CPE4235

Project

Maven

Central Repository

.jar.jar

.jar

.jar.jar

.jar

Local Repository

ลองใช Maven ชวย

internet

Page 135: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

Project

CPE4235

Project

Maven

Central Repository

.jar.jar

.jar

.jar.jar

.jar

Local Repository

ลองใช Maven ชวย

internet

Page 136: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ท ำใหระบบเรวกวำเดมลด Bandwidth ดวย

Local Repo Server Repo Central Repo

Page 137: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Central Repository

.jar.jar

.jar

.jar.jar

.jar

Local Repositoryลองใช Maven ชวย

internet

Server Repository.jar.jar

.jarNexus

Page 138: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Project Structure / Project Template

Project ทสรำงขนจำก maven จะดเปนระเบยบ โครงสรำงแนนอนตำยตวในทกๆ Project ท ำให Developer ทกคนใน Project นน ใชโครงสรำง Project เหมอนกน

Page 139: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ม Plugin อนๆชวย มำกมำย

รวมทง เรำยงสำมำรถเขยน Maven Pluginsขนมำใชงำนเองได

Page 140: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

กลำยเปนมำตรฐำนในกำรสรำง Project ไปแลว

เนองจำก Developer ทวทกมมโลกตำงกใช Maven และ IDE ดงๆ อยำง NetBeans กบ Eclipse กรองรบกำรสรำง Project ดวย Maven ดวย

Page 141: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ถำไมเชอลองไปหำด Java Project บน Github ดส Maven ทงนน

Page 142: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ขอเสย

เมอแก code ใหม ตอง re deploy ใหมตลอด นนคอตอง build ใหมเสมอ

วธแกไขหำ tool ตวอนมำชวย deploy แทนให เชน JRebel เปนตน

Page 143: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ระบบควบคมเวอรชน

Version Control System

Page 144: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Version Control System (VCS)

คอ ระบบทจดเกบกำรเปลยนแปลงทเกดขนกบไฟล (File)โดยจดเกบเปน Version ไว

เพอทเรำจะสำมำรถเรยกด/ยอนหลงกลบไปยงไฟล Version ใด Version หนง เมอไรกได

Page 145: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 146: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Version Control System แบงออกเปน 3 ประเภท ดงน

• Local VCS• Centralized VCS• Distributed VCS

Page 147: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Local VCS

• ท ำกำรคดลอก File เกบไวทเครองตวเอง• ท ำงำนแบบ Stand alone• เรยก File version ใด version

หนงขนมำดเมอไหรกได

Page 148: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Local VCS - ขอเสย

• ใชไดคนเดยว ไมสำมำรถแชรใหคนอนใชได• เครองพง File หำยเกลยง

ถงกบปวดตบกนเลยทเดยว!

Page 149: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Centralized VCS

• ท ำงำนแบบ Client / Server • เกบ File ไวทเครองสวนกลำง• เรยก File version ใด version

หนงขนมำดเมอไหรกได

• แชรใหคนอนๆ ใชได

Page 150: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Centralized - ขอเสย

ถำเครอง Server พง File กหำยอยด

Page 151: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Distributed VCS

• ท ำกำรคดลอก File เกบไวทกเครอง• ท ำงำนแบบ Distributed• เรยก File version ใด version

หนงขนมำดเมอไหรกได

• ทกคนแชรขอมลใหกน• เครองใดเครองหนงพง

กไปเอำจำกเครองอนได

Page 152: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Happy :)

Page 153: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Version Control System มหลำยตว เชน

• Git - ก ำเนดมำจำก Linux Project• SVN (Sub Version) - ของ Google• CVS• Mercurial• Bazaar……

Page 154: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Page 155: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ประวตยอของ Git

Git เกดมำในชวงแรกของกำรพฒนำ Linux Kernel ซงเปน Software Open Source ขนำดใหญ ทมกำรแชร Source Code ผำนกนไปมำ ท ำให Control Project คอนขำงล ำบำก

Page 156: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ในป ค.ศ. 2002 (พ.ศ. 2545) เรมมกำรน ำเครองมอ DistributedVersion Control System ทไมใช Open Source ชอ BitKeeper มำใชงำน

Page 157: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ในป ค.ศ. 2005 (พ.ศ. 2548) ควำมสมพนธระหวำง Community ทพฒนำ Linux Kernel และบรษททพฒนำ BitKeeper มอนตองจบลง

กำรใชงำนเครองมอนกถกยกเลกไป

Page 158: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ท ำใหนกพฒนำหลำยคน (โดยเฉพำะอยำงยง Linus Torvalds ผสรำง Linux) ตองพฒนำเครองมอของตวเองขนมำจำกประสบกำรณทมอยระหวำงกำรใชงำน BitKeeper

Page 159: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ตท ำเองกไดฟระ!

Page 160: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

โดยมวตถประสงคดงตอไปน

• Speed - ควำมเรว• Simple - เรยบงำย• Parallel - สนบสนนกำรท ำงำนหลำยทำงพรอม ๆ กน

(ม branch กำรพฒนำเปนพน)• Distributed• Scale – สำมำรถรองรบโปรเจคขนำดใหญอยำง Linux Kernel

ไดเปนอยำงด (ทงในแงควำมเรวและขนำดของขอมล)

Page 161: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Repository

Page 162: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Repository

คอ Directory ทใชส ำหรบเกบสถำนะกำรเปลยนแปลงตำงๆ(Version) ของ File ทเกดขน

Repository

Page 163: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Repository

Page 164: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

สำมำรถมได หลำย Repositories

ขนอย กบวำ เรำตองกำร Control Version ทไหนบำง

Page 165: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

เชน ถำเรำท ำงำน 3 Projects

เรำกจะม Repository 3 Repos แยกออกจำกกน(อยในคอมพวเตอรเครองเดยวกน) เปนตน

Repository Repository Repository

Project 1 Project 2 Project 3

Page 166: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Repository Repository Repository

Project 1 Project 2 Project 3

Page 167: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

สงเกตเหนอะไรมย?

Page 168: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

มนคอ Local Version Control System เครองพงมำกเทำเดม

Page 169: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ฉะนน เปลยนมนใหมซะ

Page 170: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Repository

Repository

Repository

Repository

Repository

Repository

Git Client

Git Server

Client Server Architecture

Page 171: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Repository

Repository

Repository

Repository

Repository

Repository

Git Client

Git Server

Repository

Repository

Repository

Git Client

Page 172: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

กำรท ำงำนของ Git คอจะ clone ขอมลไปไวททกเครองเหมอนกนทงหมด

ถำเครองใด เครองหนงพง ไฟลทอยบนอกเครองกยงอยครบ100%

เรยกวำ เปนกำร copy ไปทง repo (รวมทงประวตทงหมดดวย)ไมใชแคบำงสวน

Page 173: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ลกษณะกำรท ำงำนของ Git

จะ Clone เฉพำะ สงทมกำรแกไขเกบไวอนไหนไมมกำรเปลยนแปลง กไมตองเกบ

Page 174: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ค ำศพท/ค ำสง ทใชใน Git

Localgit init คอกำรสรำง Repositoygit add คอกำรเพม file หรอ document นนเขำไปใน Repositorygit commit คอกำรบนทก Version ใหมลงใน Repository

Servergit push คอกำรสงขอมลทท ำกำร commit แลวไปเกบไวท server repogit pull คอกำรดงขอมลลำสด จำก server repo ลงมำท local repo

Page 175: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Page 176: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

git init

Page 177: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Repository

Page 178: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

git add

Page 179: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Repository

Page 180: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

git commit

Page 181: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Repository

Page 182: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

git init

Page 183: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Repository

Repository

Page 184: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

git push

Page 185: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Repository

Repository

Page 186: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

git pull

Page 187: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235Git Client

Git Server

Repository

Repository

Page 188: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

เรยนร git เบองตน ไดท http://up1.github.io/git-guide/index.th.html

Page 189: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Github

Page 190: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Git Server

Git Client

Git ClientGit Client

Git Client

Git Client

Git Client

Git Client

Github

Page 191: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Github

github.com เปนเวบไซตทใหบรกำรเสมอน git server เปนบรกำรฟรแบบมเงอนไขคอ

คณสำมำรถใชงำนไดฟร แตโปรเจคทสรำงขนจะตองเปนแบบ public เทำนน

Page 192: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Github

ถำไมอยำกใหใครเหน กตองเสยตงคใชบรกำร เพอสรำงโปรเจคแบบ private

Page 193: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

Bug

Page 194: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

บก (Bug) หรอ จดบกพรอง

หมำยถง ปญหำทเกดขนกบโปรแกรมอนเนองมำจำกค ำสงทท ำงำนไมถกตอง ตำมทคำดหวงไว

Page 195: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

“มนไมใช Bug แตมนเปน Feature”

Page 196: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

สำธตและอธบำยกำรท ำงำนจรงๆ

Page 197: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ทบทวนค ำศพททตองใชบอย

Page 198: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

• Compile คอกำรแปลง code .java .class• Build คอกำร pack project .jar • Run คอ กำรสง Run Project นน หรอกำรสง Run class ทม

public static void main • Clean คอกำร ลำง .jar file• Commit คอ กำรบนทก version file ลง local repository• Push คอ กำรสงขอมลจำก local repo ไปไวท server repo• Pull คอ กำร update หรอดงขอมลลำสด ของ server repo ลงมำ• Conflict คอ code ชนกน ระหวำงท ำกำรดง code

Page 199: สอนครั้งที่ 1  cpe4235 (การวิเคราะห์และโปรแกรมเชิงวัตถุ) / 2557

CPE4235

ทจะใหท ำตอไปนคอ

1. ตดตง JAVA2. ตดตง Netbeans IDE3. สรำง Project ดวย Maven4. เขยน code hello world5. สมคร Github6. สรำง repository ตำมทตองกำร7. ใช Git (Netbeans Plugin) push code ไปไวบน github