Upload
-
View
1.630
Download
6
Embed Size (px)
Citation preview
CPE4235 การวเคราะหและโปรแกรมเชงวตถ
จตกร พทกษเมธากลJava Web Developer @Geniustree Co.,Ltd“i am programmer.”
รจกกบ Computer Programmingรจกกบเครองมอ (Tools)
และภาพรวมของการพฒนา Java Web Application
CPE4235
1
เนอหา
• รจกกบ Computer Programming• รจกกบ Java• Netbeans IDE & Plugins• Maven• VCS (Version Control System)
• Git & Github• ภาพรวมการพฒนา Java Web Application
CPE4235
Java
Basic
Git
อะไรคอ Computer Programming?
CPE4235
Computer Programming
“เปนสงทมนษยใชเปนตวแทนส ำหรบสรำงปฏสมพนธกบคอมพวเตอร (Human to Computer)”
CPE4235
ซงประกอบไปดวยล ำดบของชดค ำสง (Sequence of Instructions) ตำงๆ มำกมำย
เพอบอกใหคอมพวเตอรท ำงำนตำมทมนษยตองกำร
เรยกอกอยำงหนงวำ “ภำษำโปรแกรม” หรอ “Programming Language”
CPE4235
มนษยทเขยนภำษำโปรแกรมเรำเรยกวำ
“โปรแกรมเมอร” (Programmer)
CPE4235
บำงครง เรำกเรยกมนษยพวกนวำ“นกพฒนำ” หรอ “Developer”
CPE4235
CPE4235
Mark Zuckerberg
Bill Gate
Steve Wozniak
Larry Page
Microsoft
Apple
“โปรแกรมเมอร คอศลปน ผสรำงสรรคผลงำนศลปะ
ดวยกำรเขยนโคด”
CPE4235
CPE4235
สงทถกเขยนขนดวยภำษำโปรแกรมเรำเรยกวำ
CPE4235
“ซอฟตแวร หรอ โปรแกรม หรอ แอพพลเคชน” (Software or Program or Application)
CPE4235
CPE4235
ตนก าเนดภาษาโปรแกรม
CPE4235
ภำษำโปรแกรมแรกทมนษยคดคนขนมำเพอใชตดตอสอสำรกบคอมพวเตอรนน ประกอบไปดวยตวเลขเพยงแค 2 ตวเทำนน คอ 0 กบ 1 เชน
01010010 0100011011001000 01010011
ภำษำโปรแกรมน เรำเรยกกนวำ “Machine Code”
CPE4235
CPE4235
Human Computer
[101010111 01011101]
Machine Code
ปญหาของ Machine Code
CPE4235
• จดจ ำรปแบบไดยำก (ยำกโคตร)• เรยนร และท ำควำมเขำใจไดล ำบำก• ใชระยะเวลำในกำรเรยนรสง• ตองรลกเกยวกบกำรท ำงำนของ CPU และ Memory• สนเปลองทรพยำกร (สมอง)• ไดไมคมเสย
CPE4235
ก าเนดภาษาใหม “Assembly”
CPE4235
Assembly เปนภำษำโปรแกรมชนดหนง มลกษณะเปนค ำสงภำษำองกฤษสนๆ เขำใจไดงำยกวำ Machine Code
ค ำสง ของ Assembly จะถกแปลงไปเปนค ำสง Machine Codeอกท เชน
CPE4235
XOR CL, [12H] = 00110010 00001110 00010010 00000000
ทเราตองจ า
CPE4235Assembly
CPE4235
Assembly Language
Machine Code
Assemblerinput output
ตวแปลภาษา Assembly
Computer
การท างาน
แตมนกยงยากอยด!
CPE4235
มนษยจงพยำยำมสรำงภำษำโปรแกรมใหมขนมำอก เพอใหงำยขน และมควำมใกลเคยงกบภำษำมนษย(ภำษำองกฤษ : English) มำกทสด
ซงเรำนยำมภำษำใหมทสรำงขนมำนวำ
CPE4235
“High Level Language”
CPE4235
ภาษาระดบสง“High Level Language”
ภำษำระดบสง
หมำยถง “ภำษำทใชในกำรเขยนโปรแกรม ทมควำมใกลเคยงกบภำษำมนษยมำกทสด โดยทผเขยนไมจ ำเปนตองรลกถงโครงสรำงภำยในของคอมพเตอร”
CPE4235
กำรท ำงำน จะใชตวแปลภำษำทเรยกวำ Compiler /Interpreterคอยท ำกำรแปลค ำสงทเรำเขยน เพอน ำไปแปลง / สงกำรคอมพวเตอรอกท
CPE4235
มหลำยภำษำ เชน • ภำษำซ (C)• ภำษำเบสก (Basic)• ภำษำปำสคำล (Pascal)• ภำษำไพธอน (Python)• ภำษำพเอชพ (PHP)• ภำษำจำวำ (Java)
เปนตน
CPE4235
CPE4235
Source CodeMachine
CodeCompiler / InterPreter
input output
ตวแปลภาษา High Level
Computer
การท างาน
CPE4235
Best Programming Language to Learn in 2014
ประมวลผลจำกเวบไซต http://jobstractor.com/
อำงอง http://www.sitepoint.com/best-programming-language-learn-2014/
CPE4235
CPE4235
CPE4235
CPE4235
Java เปนภำษำโปรแกรมระดบสงตวหนง
ทถกคดคนขนในป ค.ศ. 1991(หรอป พ.ศ. 2534 ตอนนมอำย 23 ป : ปนป 2557 หรอป 2014)
พฒนำโดยทมวศวกรของบรษท ซนไมโครซสเตมส (Sun MicroSystem)น ำทมโดย เจมส กอสลง (James Gosling)
CPE4235
เปนสวนหนงของ The Green Project ใชเวลำในกำรพฒนำ 4 ป จงส ำเรจและออกสสำธำรณะในป ค.ศ. 1995 (พ.ศ. 2538)
CPE4235
เจมส กอสลง (James Gosling)“บดาแหง Java”
19 พฤษภาคม 2498 (อาย 59 ป)
CPE4235
โดยมวตประสงค เพอน ำมำใชแทนภำษำ C++
ตอนแรกตงชอวำภำษำโอก (Oak)แตเนองจำกมคนจดลขสทธภำษำ Oak ไปแลว
จงไดคดชอใหม มำเปน Java ในทสด
ซงหมำยถง “กำแฟ”
CPE4235
ปจจบน Java เปนลขสทธของบรษท
เพรำะ Oracle ซอ Sun Micro System มำจงไดลขสทธ Java มำดวย
CPE4235
จดเดน / ขอด ของภาษา Java
CPE4235
เปนภาษาโปรแกรมเชงวตถ (OOP : Object Oriented Programming)
CPE4235
Platform Independent หรอการไมขนกบ platform
“Write One Run Anywhere”
CPE4235
ประสทธภำพสงHigh Performance
CPE4235
มระบบจดกำรคนหนวยควำมจ ำอตโนมต (Garbage Collection)
CPE4235
Strong เกด Bug คอนขำงยำก เนองจำกเปนภำษำท
คอนขำงเขมงวดกบไวยำกรณ
CPE4235
Libraries เยอะ
มของใหเลนเยอะมำกกก
CPE4235
มกำร update ออก version มำใหมเรอยๆ
ตอนนเปน Java8 (jdk8 update 25 : 13/12/2014)
CPE4235
ไมเสยคาลขสทธในการพฒนา
CPE4235
ขอเสย
CPE4235
ใชระยะเวลำในกำรเรยนรสง / คอนขำงยำก
CPE4235
แพลตฟอรม (Platform)
CPE4235
Platform
หมำยถง “Hardware หรอ Software ทท ำหนำทเปน Environment ในกำร Run Program”
CPE4235
ในทนเรำจะพดถง Software อยำงเดยว เชน
• Windows• Linux• iOS• Android• Facebook• Google+
CPE4235
Java Platform
CPE4235
กำรเขยนโปรแกรมดวยภำษำ Java จะถกแบงออกเปน 3 รปแบบ หรอ 3 Platform คอ
• JSE (Java Standard Edition)• JME (Java Micro Edition) และ • JEE (Java Enterprise Edition)
CPE4235
JSE (Java Standard Edition)
เปน Java Platform มำตรฐำน (Standard) เหมำะส ำหรบกำรพฒนำ Desktop Application
นกพฒนำหรอ Developer ทวๆไป ใชแค JSE กเพยงพอส ำหรบกำรพฒนำ Java Application แลว
CPE4235
JSE ประกอบไปดวย
• JDK (Java Development Kit) ทรวมเอำ Compiler และ Debugger ส ำหรบนกพฒนำ เอำไวพฒนำ Java Application
• JRE (Java Runtime Environment) คอสภำพแวดลอมทใชในกำร Run Java Application
CPE4235
JDK คอ เครองมอ หรอ Tools
JRE คอ สภำพแวดลอมในกำร Run Java App
CPE4235
อธบำยงำยๆ
ถำเรำมองวำ Java Application คอรถแขง
JRE กเปรยบเสมอนกบสนำมรถแขงทเอำไวใหรถแขงวง ถำไมม JRE แลว Java กท ำงำนไมได และ
JDK กเปรยบเสมอนเครองมอทใชในกำรผลตรถแขง หรอกคอโรงงำนผลตรถแขงนนเอง
CPE4235Java Application
Java Runtime Environment
Java Development Kit
CPE4235
ถำเรำแคตองกำร Run Java Appเรำใชแค JRE กพอ
แตถำเรำตองกำรเขยน Java App เรำตองใช JDK
CPE4235
JDK
JRE
CPE4235
JME (Java Micro Edition)
เปน Java Platform ทเลกทสด เหมำะส ำหรบอปกรณพกพำ เชน โทรศพทมอถอ หรอ PDA เปนตน
หลำยคนอำจเขำใจผดคดวำ M ในทนหมำยถง Mobile
M = Micro
CPE4235
แลว Android คอ JME หรอเปลำ ?
CPE4235
ค ำตอบคอ ไมใช
CPE4235
JEE (Java Enterprise Edition)
เปน Java Platform ทใหญทสด
แนนอนวำ ถำใหญกวำ JSE แลว ทกๆ อยำงทมอยใน JSE กจะตดมำดวย
CPE4235
JEE (Java Enterprise Edition)
JSE
JEE
Sub set
CPE4235
JEE (Java Enterprise Edition)
สวนทมเหนอกวำ JSE กคอ JEE เปน เทคโนโลยทใชส ำหรบกำรพฒนำ Application บนฝง Server
CPE4235
JSE = Java ทเขยนทำงฝง Client หรอ Desktop Application
JEE = Java ทเขยนทำงฝง Server
CPE4235
JEE (Java Enterprise Edition)
เปนกำรเขยนโปรแกรมทท ำงำนอยบนระบบเครอขำยขององคกร หรอ Enterprise
CPE4235
กอนจะเขยน java มำท ำควำมรจกกบไฟล 3 ชนดกอน
.java
.class
.jar
CPE4235
.java
เปนไฟลทเกบ ภำษำโปรแกรม java ทเรำเขยนขนมำเชน
• Staff.java• Address.java• Visit.java
CPE4235
ขำงใน .java (syntax ภำษำ java)
CPE4235
.class
เปนไฟลแปล (Translated) ของไฟล .java นนๆ เรำเรยก code ทอยในไฟล .class วำ “Java Byte Code”
• Staff.class• Address.class• Visit.class
CPE4235
staff.java staff.classตวแปล
CPE4235
ขำงใน .class (อำนไมรเรอง)
CPE4235
.jar
เปนคลำยๆ ซปไฟล (.zip file) ของภำษำ javaทรวบรวมไฟล .class + ไฟลอนๆ และ Meta data ไวขำงใน
CPE4235
.jar
สวนมำกแลว .jar จะเปน Libraries Fileคอรวบรวม java code ทสำมำรถเอำไปใชตอได แพค (pack) รวมกนไว
CPE4235
Audit.class
staff.class
Build / Pack
Test.class
.jar
CPE4235.jar
.class
Meta dataother
.class .class
.class.class
CPE4235
CPE4235การท างานของ Java
MyCode.java
JVM
Compiler
Computer
MyCode.class
010010101
Machine Code
Java Virtual Machine
CPE4235
JVM
CPE4235
JVM (Java Virtual Machine)
เปนโปรแกรม ทท ำหนำทเปนจกรกลเสมอน คอยอำนค ำสงจำก Java Byte Code (.class) แลวน ำไปแปลงเปนค ำสงของ Platform นนๆ เพอสงงำน Computer อกท
CPE4235
Byte code / .class JVM Computer
CPE4235
JVM (Java Virtual Machine)
ขนตรงกบ Platform
เอำ JVM ไหนมำ run Java Byte Codeกจะท ำงำนตำมค ำสงของ Platform นนๆ
CPE4235
Java Byte Code(.class)
Windows
Linux
Mac
…
JVM
JVM
JVM
JVM
Java Source Code(.java)
Compiler
CPE4235
Java เปน Independent Platform (ไมขนตรงตอแพลตฟอรม)
สวนตวท Dependent คอ JVM
CPE4235
Java Byte Code(.class)
Windows
Linux
Mac
…
JVM
JVM
JVM
JVM
Java Source Code(.java)
Compiler
CPE4235
Java Byte Code(.class)
Windows
Linux
Mac
…
JVM
JVM
JVM
JVM
Java Source Code(.java)
Compiler
เราสนใจแคน
CPE4235
ภำพรวมกำรพฒนำ
CPE4235
วชำน ผมจะพำคณเขยน Java Web Application
ท Run บน Cloud Service (Virtual Private Server)
CPE4235
แต!
CPE4235
คณจะไดเขยน Web Application หลงจำกกลำงภำคเปนตนไป (ภำควชำชพ)
CPE4235
เพรำะในครงแรก (6 ครงแรก)คณตองเขยน Java ใหเปนกอน
CPE4235
แตกอนจะเรมเขยน เรำมำดภำพรวมกนกอน วำตองท ำอะไรบำง
CPE4235
.jar / .war Server
คณ
Build / pack
deploy
coding
เชำ V
PS (V
irtual
Priva
te Se
rver
)
www.yourweb.com
CPE4235
.jar / .war Server
คณ
Build / pack
deploy
coding
เชำ V
PS (V
irtual
Priva
te Se
rver
)
www.yourweb.com
CPE4235
คณ
coding
CPE4235 คณ
coding
Push /pull
CPE4235
วำดวย “เครองมอ (Tools)”
CPE4235
• IDE (Integrated Development Environment)• VCS (Version Control System) • Build Tool
CPE4235
IDE
CPE4235
IDE (Integrated Development Environment)
เปนเครองมอทชวยในกำรพฒนำโปรแกรมโดยมสงอ ำนวยควำมสะดวกตำงๆ เพอใหเขยนโปรแกรมไดงำยขน
เชนเครองมอ Compile, Run, Test Projectมตว Check ไวยำกรณภำษำ ฯลฯ
CPE4235
IDE (Integrated Development Environment)
มหลำยตว เชน
• Netbeans IDE• Eclipse IDE• IntelliJ IDE
…
CPE4235IDE ทไดรบความนยมในชวงน
CPE4235
CPE4235
Netbeans IDE
เปนเครองมอทใชในกำรพฒนำ Java Application ตวหนงทมชอเสยงมำกๆ ถกสรำงขนในป 1998 (พ.ศ. 2541)ดวยภำษำ Java
โดยกลมนกศกษำ “Rock Solid Software"ขณะนนเปนโปรเจคนกศกษำ
CPE4235
Netbeans IDE
และตอมำไดเผยแพรใหบลคลทวไปไดใชงำน ในรปแบบของ Open Source และฟร
ตอมำในป ค.ศ. 2000 (พ.ศ. 2543)บรษท Sun Micro System ผพฒนำภำษำ Java ไดเขำมำเปนผสนบสนนหลกในกำรพฒนำ
CPE4235
ปจจบน Netbeans IDE รองรบกำรเขยนโปรแกรมหลำยภำษำ และมเครองมออ ำนวยควำมสะดวกตำงๆ มำกมำย
สำมำรถเขำไป Downloads และเรยนรกำรใชงำนไดทwww.netbeans.org
CPE4235Netbeans IDE
CPE4235Netbeans IDE
CPE4235Netbeans IDE
CPE4235
CPE4235
Maven
เปนเครองมอทใชในกำรสรำง Java Project ตวหนงทไดรบควำมนยมสงสดในตอนน
CPE4235
Maven
ใชแทนกำรสรำง Project แบบ Manual เอง
เพรำะกำรสรำงแบบ Manual ท ำใหเกดปญหำตำงๆ ตำมมำมำกมำย
CPE4235
ขอเสยของกำรสรำง Project แบบ Manual
• Developer แตละคนก ำหนดโครงสรำง Project ไมเหมอนกนโครงสรำงโปรเจค สะเปะ สะปะ
• บ ำรง /ดแลรกษำโคด (โคตร) ยำก • จ ำโคดไมได• Libraries Version ไมตรงกน• Run ท Environment แตกตำงกนไมได• ท ำเองทกอยำง ซ ำไปซ ำมำ
CPE4235
แลวท ำไมไมใชอะไรทมน Auto ชวยละ! สะดวกกวำเยอะเลย
CPE4235
Maven
มควำมสำมำรถในกำร Build, Compile, Test, Clean … projectท ำ Dependencies Management
ชวยจดกำรเรอง Project Structure / Project Template
รวมทงยงสำมำรถ config Profile Environment ในกำร run บน Environment ทแตกตำงกนไดดวย
CPE4235
Build
Maven จะชวยจดกำรเรองกำร (Auto) Build Project ใหเรำ
Project Build / Pack .jar
น ำ .jar นนไปใชไดเลย ไมตองเขยน Build Script เอง
CPE4235
Compile
เมอเรำท ำกำร Build Project Maven จะท ำกำร Compile Source Code จำก .java -> .class ใหเรำเองโดยอตโนมต
เรำไมตองมำนง $ javac mycode.java
CPE4235
Test
เรำสำมำรถท ำกำรผนวก Unit Test ไปพรอมกบกำร Build หรอกำรตดตงไดเลย ซง Maven กจะจดกำรให
CPE4235
Clean
Maven จะจดกำรเรองกำร Clean Project ให เพยงแคคลกขวำแลวสง Clean .jar File ทมอยกจะหำยไป
เปนกำรลำง .jar File
CPE4235
Dependency Management (Core of Maven)
คอเรองของกำร Config และ Download Library
ซง Maven จะท ำกำร Download Library ตำงๆ มำใหเรำโดยอตโนมต โดยทเรำไมตองหำ Library มำใส Project เอง
เรำแค Config Library ทตองกำรไวท ในไฟล pom.xml
CPE4235
Libraries นนๆ เรำจะเรยกมนวำ Dependencies
CPE4235
DependencyProject
Depend on
CPE4235
DependencyProject
Depend on
CPE4235
DependencyProject
Depend on
CPE4235
Project
สรำง/config project เอง
CPE4235
Project
.jar
.jar
.jar
.jar
.jar
.jarสรำง/config project เอง
CPE4235
Project
ลองใช Maven ชวย
Project
CPE4235
Project
Maven
ลองใช Maven ชวย
Project
CPE4235
Project
Maven
Central Repository
.jar.jar
.jar
ลองใช Maven ชวย
internet
Project
CPE4235
Project
Maven
Central Repository
.jar.jar
.jar
.jar.jar
.jar
Local Repository
ลองใช Maven ชวย
internet
Project
CPE4235
Project
Maven
Central Repository
.jar.jar
.jar
.jar.jar
.jar
Local Repository
ลองใช Maven ชวย
internet
CPE4235
ท ำใหระบบเรวกวำเดมลด Bandwidth ดวย
Local Repo Server Repo Central Repo
CPE4235
Central Repository
.jar.jar
.jar
.jar.jar
.jar
Local Repositoryลองใช Maven ชวย
internet
Server Repository.jar.jar
.jarNexus
CPE4235
Project Structure / Project Template
Project ทสรำงขนจำก maven จะดเปนระเบยบ โครงสรำงแนนอนตำยตวในทกๆ Project ท ำให Developer ทกคนใน Project นน ใชโครงสรำง Project เหมอนกน
CPE4235
ม Plugin อนๆชวย มำกมำย
รวมทง เรำยงสำมำรถเขยน Maven Pluginsขนมำใชงำนเองได
CPE4235
กลำยเปนมำตรฐำนในกำรสรำง Project ไปแลว
เนองจำก Developer ทวทกมมโลกตำงกใช Maven และ IDE ดงๆ อยำง NetBeans กบ Eclipse กรองรบกำรสรำง Project ดวย Maven ดวย
CPE4235
ถำไมเชอลองไปหำด Java Project บน Github ดส Maven ทงนน
CPE4235
ขอเสย
เมอแก code ใหม ตอง re deploy ใหมตลอด นนคอตอง build ใหมเสมอ
วธแกไขหำ tool ตวอนมำชวย deploy แทนให เชน JRebel เปนตน
CPE4235
ระบบควบคมเวอรชน
Version Control System
CPE4235
Version Control System (VCS)
คอ ระบบทจดเกบกำรเปลยนแปลงทเกดขนกบไฟล (File)โดยจดเกบเปน Version ไว
เพอทเรำจะสำมำรถเรยกด/ยอนหลงกลบไปยงไฟล Version ใด Version หนง เมอไรกได
CPE4235
CPE4235
Version Control System แบงออกเปน 3 ประเภท ดงน
• Local VCS• Centralized VCS• Distributed VCS
CPE4235
Local VCS
• ท ำกำรคดลอก File เกบไวทเครองตวเอง• ท ำงำนแบบ Stand alone• เรยก File version ใด version
หนงขนมำดเมอไหรกได
CPE4235
Local VCS - ขอเสย
• ใชไดคนเดยว ไมสำมำรถแชรใหคนอนใชได• เครองพง File หำยเกลยง
ถงกบปวดตบกนเลยทเดยว!
CPE4235
Centralized VCS
• ท ำงำนแบบ Client / Server • เกบ File ไวทเครองสวนกลำง• เรยก File version ใด version
หนงขนมำดเมอไหรกได
• แชรใหคนอนๆ ใชได
CPE4235
Centralized - ขอเสย
ถำเครอง Server พง File กหำยอยด
CPE4235
Distributed VCS
• ท ำกำรคดลอก File เกบไวทกเครอง• ท ำงำนแบบ Distributed• เรยก File version ใด version
หนงขนมำดเมอไหรกได
• ทกคนแชรขอมลใหกน• เครองใดเครองหนงพง
กไปเอำจำกเครองอนได
CPE4235
Happy :)
CPE4235
Version Control System มหลำยตว เชน
• Git - ก ำเนดมำจำก Linux Project• SVN (Sub Version) - ของ Google• CVS• Mercurial• Bazaar……
CPE4235
CPE4235
ประวตยอของ Git
Git เกดมำในชวงแรกของกำรพฒนำ Linux Kernel ซงเปน Software Open Source ขนำดใหญ ทมกำรแชร Source Code ผำนกนไปมำ ท ำให Control Project คอนขำงล ำบำก
CPE4235
ในป ค.ศ. 2002 (พ.ศ. 2545) เรมมกำรน ำเครองมอ DistributedVersion Control System ทไมใช Open Source ชอ BitKeeper มำใชงำน
CPE4235
ในป ค.ศ. 2005 (พ.ศ. 2548) ควำมสมพนธระหวำง Community ทพฒนำ Linux Kernel และบรษททพฒนำ BitKeeper มอนตองจบลง
กำรใชงำนเครองมอนกถกยกเลกไป
CPE4235
ท ำใหนกพฒนำหลำยคน (โดยเฉพำะอยำงยง Linus Torvalds ผสรำง Linux) ตองพฒนำเครองมอของตวเองขนมำจำกประสบกำรณทมอยระหวำงกำรใชงำน BitKeeper
CPE4235
ตท ำเองกไดฟระ!
CPE4235
โดยมวตถประสงคดงตอไปน
• Speed - ควำมเรว• Simple - เรยบงำย• Parallel - สนบสนนกำรท ำงำนหลำยทำงพรอม ๆ กน
(ม branch กำรพฒนำเปนพน)• Distributed• Scale – สำมำรถรองรบโปรเจคขนำดใหญอยำง Linux Kernel
ไดเปนอยำงด (ทงในแงควำมเรวและขนำดของขอมล)
CPE4235
Repository
CPE4235
Repository
คอ Directory ทใชส ำหรบเกบสถำนะกำรเปลยนแปลงตำงๆ(Version) ของ File ทเกดขน
Repository
CPE4235
Repository
CPE4235
สำมำรถมได หลำย Repositories
ขนอย กบวำ เรำตองกำร Control Version ทไหนบำง
CPE4235
เชน ถำเรำท ำงำน 3 Projects
เรำกจะม Repository 3 Repos แยกออกจำกกน(อยในคอมพวเตอรเครองเดยวกน) เปนตน
Repository Repository Repository
Project 1 Project 2 Project 3
CPE4235
Repository Repository Repository
Project 1 Project 2 Project 3
CPE4235
สงเกตเหนอะไรมย?
CPE4235
มนคอ Local Version Control System เครองพงมำกเทำเดม
CPE4235
ฉะนน เปลยนมนใหมซะ
CPE4235
Repository
Repository
Repository
Repository
Repository
Repository
Git Client
Git Server
Client Server Architecture
CPE4235Repository
Repository
Repository
Repository
Repository
Repository
Git Client
Git Server
Repository
Repository
Repository
Git Client
CPE4235
กำรท ำงำนของ Git คอจะ clone ขอมลไปไวททกเครองเหมอนกนทงหมด
ถำเครองใด เครองหนงพง ไฟลทอยบนอกเครองกยงอยครบ100%
เรยกวำ เปนกำร copy ไปทง repo (รวมทงประวตทงหมดดวย)ไมใชแคบำงสวน
CPE4235
ลกษณะกำรท ำงำนของ Git
จะ Clone เฉพำะ สงทมกำรแกไขเกบไวอนไหนไมมกำรเปลยนแปลง กไมตองเกบ
CPE4235
ค ำศพท/ค ำสง ทใชใน Git
Localgit init คอกำรสรำง Repositoygit add คอกำรเพม file หรอ document นนเขำไปใน Repositorygit commit คอกำรบนทก Version ใหมลงใน Repository
Servergit push คอกำรสงขอมลทท ำกำร commit แลวไปเกบไวท server repogit pull คอกำรดงขอมลลำสด จำก server repo ลงมำท local repo
CPE4235Git Client
Git Server
CPE4235
git init
CPE4235Git Client
Git Server
Repository
CPE4235
git add
CPE4235Git Client
Git Server
Repository
CPE4235
git commit
CPE4235Git Client
Git Server
Repository
CPE4235
git init
CPE4235Git Client
Git Server
Repository
Repository
CPE4235
git push
CPE4235Git Client
Git Server
Repository
Repository
CPE4235
git pull
CPE4235Git Client
Git Server
Repository
Repository
CPE4235
เรยนร git เบองตน ไดท http://up1.github.io/git-guide/index.th.html
CPE4235
Github
CPE4235
Git Server
Git Client
Git ClientGit Client
Git Client
Git Client
Git Client
Git Client
Github
CPE4235
Github
github.com เปนเวบไซตทใหบรกำรเสมอน git server เปนบรกำรฟรแบบมเงอนไขคอ
คณสำมำรถใชงำนไดฟร แตโปรเจคทสรำงขนจะตองเปนแบบ public เทำนน
CPE4235
Github
ถำไมอยำกใหใครเหน กตองเสยตงคใชบรกำร เพอสรำงโปรเจคแบบ private
CPE4235
Bug
CPE4235
บก (Bug) หรอ จดบกพรอง
หมำยถง ปญหำทเกดขนกบโปรแกรมอนเนองมำจำกค ำสงทท ำงำนไมถกตอง ตำมทคำดหวงไว
CPE4235
“มนไมใช Bug แตมนเปน Feature”
CPE4235
สำธตและอธบำยกำรท ำงำนจรงๆ
CPE4235
ทบทวนค ำศพททตองใชบอย
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
CPE4235
ทจะใหท ำตอไปนคอ
1. ตดตง JAVA2. ตดตง Netbeans IDE3. สรำง Project ดวย Maven4. เขยน code hello world5. สมคร Github6. สรำง repository ตำมทตองกำร7. ใช Git (Netbeans Plugin) push code ไปไวบน github