Eclipse Workspaces: อะไรเพื่ออะไรและทำไม?


134

ฉันได้เห็นอ่านและคิดถึงวิธีต่างๆในการใช้พื้นที่ทำงาน (ต่อโครงการต่อแอปพลิเคชัน (หลายสินทรัพย์หรือไม่) ต่อภาษาโปรแกรมต่อเป้าหมาย (การพัฒนาเว็บปลั๊กอิน .. ) และอื่น ๆ ) และฉัน ฉันยังคงสงสัยว่าแนวทางที่ดีที่สุดคืออะไร

ยังสามารถให้ข้อมูลเชิงลึกอย่างละเอียด แต่ไม่ใช่หน้ายาวเกี่ยวกับเรื่องนี้?

สิ่งนี้เกี่ยวข้องกับคำถามย่อยจำนวนมากดังนั้นจะพูดและฉันไม่รู้ว่าคำถามย่อยเฉพาะทั้งหมดที่ฉันควรถามเพราะฉันไม่แน่ใจว่าฉันไม่รู้ทุกแง่มุมของคราส (และพื้นที่ทำงาน) แต่ ฉันจะพยายามยกตัวอย่างสิ่งที่ฉันกำลังมองหา:

  • เพื่ออะไร?
    • การพัฒนาคราสหมายถึงอะไรเพื่อใช้?
    • คนอื่น ๆ / ส่วนใหญ่คิดอย่างไร?
    • คุณคิดอย่างไร?
    • ... ?
  • ทำไม?
    • มีข้อขัดแย้งในการกำหนดค่าเทียบกับการแบ่งปันข้อดีหรือไม่
    • มีเหตุผลเกี่ยวกับพื้นที่ไฟล์หรือไม่
    • ประสิทธิภาพ?
    • ... ?

โอ้ฉันกำลังพูดถึงกรณีการใช้งานขั้นต่ำสำหรับนักพัฒนาที่ใช้ภาษาและโปรโตคอลที่แตกต่างกันและไม่จำเป็นต้องมีทั้งหมดในโครงการเดียว (เช่น php, javascript และ xml สำหรับบางโปรเจ็กต์, C # สำหรับคนอื่น ๆ , java และ SQL สำหรับภาพนิ่ง อื่น ๆ ฯลฯ .. )

แก้ไขเมื่อ 2012-11-27: อย่าเข้าใจฉันผิด ฉันไม่สงสัยในการใช้พื้นที่ทำงานฉันแค่ต้องการใช้มันตามที่ควรจะเป็นหรืออย่างอื่นถ้าใครจะคิดว่ามันดีกว่า แล้ว "เพื่ออะไร" หมายถึงอะไรใช้ดีที่สุด? และทำไม?" ที่จริงกำหนดเป้าหมายไปที่ "อะไรเพื่ออะไร" กล่าวอีกนัยหนึ่งคือบอกเหตุผลสำหรับคำตอบของคุณ


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

ฉันไม่เข้าใจเช่นกันและฉันก็ไม่เห็นด้วยกับทุกสิ่งด้านล่าง * หรือไม่สมบูรณ์ (ไม่มีการอ้างอิง) ทำไมฉันยังไม่ยอมรับคำตอบ * แน่นอนที่นั่นไม่ใช่ความเห็นหรือการปฏิบัติส่วนตัว ที่ฉันได้รับ
e-Mot

ฉันพยายามที่จะตอบมันไม่ใช่คำตอบที่ดีมาก แต่ฉันคิดว่าฉันสามารถต่อยอดมันได้
Rafael Eyng

คำตอบ:


43

ฉันจะให้วิสัยทัศน์ของฉันเกี่ยวกับคนที่รู้สึกอึดอัดมากในโลก Java ซึ่งฉันถือว่าเป็นกรณีของคุณเช่นกัน

มันคืออะไร

พื้นที่ทำงานเป็นแนวคิดของการรวมกลุ่มกัน:

  1. ชุดของโครงการที่เกี่ยวข้อง (อย่างใด)
  2. การกำหนดค่าบางอย่างที่เกี่ยวข้องกับโครงการเหล่านี้ทั้งหมด
  3. การตั้งค่าบางอย่างสำหรับ Eclipse เอง

สิ่งนี้เกิดขึ้นโดยการสร้างไดเร็กทอรีและใส่ไว้ในนั้น (คุณไม่ต้องทำมันก็ทำเพื่อคุณ) ไฟล์ที่จัดการเพื่อบอกข้อมูลเหล่านี้ให้ Eclipse สิ่งที่คุณต้องทำอย่างชัดเจนคือเลือกโฟลเดอร์ที่จะวางไฟล์เหล่านี้ และโฟลเดอร์นี้ไม่จำเป็นต้องเป็นโฟลเดอร์เดียวกับที่คุณใส่ซอร์สโค้ด - โดยเฉพาะอย่างยิ่งโฟลเดอร์นี้จะไม่เป็นเช่นนั้น

สำรวจแต่ละรายการด้านบน:

  1. ชุดของโครงการที่เกี่ยวข้อง (อย่างใด)

ดูเหมือนว่า Eclipse จะเปิดขึ้นโดยเชื่อมโยงกับพื้นที่ทำงานเฉพาะเสมอกล่าวคือถ้าคุณอยู่ในพื้นที่ทำงาน Aและตัดสินใจเปลี่ยนไปใช้พื้นที่ทำงาน B (ไฟล์> สลับพื้นที่ทำงาน) Eclipse จะปิดตัวเองและเปิดใหม่อีกครั้ง โครงการทั้งหมดที่เชื่อมโยงกับพื้นที่ทำงาน A (และปรากฏใน Project Explorer) จะไม่ปรากฏอีกต่อไปและโครงการที่เชื่อมโยงกับพื้นที่ทำงาน Bจะปรากฏขึ้น ดูเหมือนว่าโปรเจ็กต์ที่จะเปิดใน Eclipse ต้องเชื่อมโยงกับเวิร์กสเปซ

โปรดสังเกตว่านี่ไม่ได้หมายความว่าซอร์สโค้ดโครงการต้องอยู่ในพื้นที่ทำงาน เวิร์กสเปซจะมีความสัมพันธ์กับเส้นทางฟิสิคัลของโปรเจ็กต์ของคุณในดิสก์ของคุณ (ใครรู้วิธีบ้างฉันดูในเวิร์กสเปซค้นหาไฟล์บางไฟล์ที่ชี้ไปยังเส้นทางโปรเจ็กต์ แต่ไม่ประสบความสำเร็จ)

ด้วยวิธีนี้โปรเจ็กต์สามารถอยู่ภายในพื้นที่ทำงานได้มากกว่า 1 ครั้ง ดังนั้นจึงเป็นการดีที่จะแยกพื้นที่ทำงานและซอร์สโค้ดของคุณออกจากกัน

  1. การกำหนดค่าบางอย่างที่เกี่ยวข้องกับโครงการเหล่านี้ทั้งหมด

ฉันได้ยินมาว่ามีบางอย่างเช่นเวอร์ชันคอมไพเลอร์ Java (เช่น 1.7 เช่น - ฉันไม่รู้ว่า "เวอร์ชัน" เป็นคำที่นี่หรือไม่) เป็นการกำหนดค่าระดับพื้นที่ทำงาน หากคุณมีหลายโปรเจ็กต์ภายในเวิร์กสเปซของคุณและคอมไพล์ภายใน Eclipse โปรเจ็กต์ทั้งหมดจะถูกคอมไพล์ด้วยคอมไพเลอร์ Java เดียวกัน

  1. การตั้งค่าบางอย่างสำหรับ Eclipse เอง

บางสิ่งเช่นการผูกคีย์ของคุณจะถูกเก็บไว้ที่ระดับพื้นที่ทำงานด้วย ดังนั้นหากคุณกำหนดว่าแท็บ ctrl + จะสลับแท็บอย่างชาญฉลาด (ไม่ใช่การซ้อนกัน) สิ่งนี้จะถูกผูกไว้กับพื้นที่ทำงานปัจจุบันของคุณเท่านั้น หากคุณต้องการใช้การผูกคีย์เดียวกันในพื้นที่ทำงานอื่น (และฉันคิดว่าคุณต้องการ!) ดูเหมือนว่าคุณต้องส่งออก / นำเข้าระหว่างพื้นที่ทำงาน (ถ้าเป็นจริง IDE นี้ถูกสร้างขึ้นในสถานที่ที่แปลกจริงๆ) นี่คือการเชื่อมโยงเกี่ยวกับเรื่องนี้

ดูเหมือนว่าพื้นที่ทำงานไม่จำเป็นต้องเข้ากันได้ระหว่าง Eclipse เวอร์ชันต่างๆ บทความนี้แนะนำให้คุณตั้งชื่อพื้นที่ทำงานของคุณที่มีชื่อของเวอร์ชัน Eclipse

และที่สำคัญกว่านั้นเมื่อคุณเลือกโฟลเดอร์ที่จะเป็นพื้นที่ทำงานของคุณแล้วอย่าแตะต้องไฟล์ใด ๆ ในนั้นไม่เช่นนั้นคุณจะประสบปัญหา

วิธีคิดเป็นวิธีที่ดีที่จะใช้

(จริงๆแล้วตอนที่เขียนนี้ฉันไม่รู้ว่าจะใช้มันอย่างไรให้ดีนั่นเป็นเหตุผลว่าทำไมฉันถึงมองหาคำตอบซึ่งฉันกำลังพยายามรวบรวมที่นี่)

  1. สร้างโฟลเดอร์สำหรับโครงการของคุณ:
    /projects

  2. สร้างโฟลเดอร์สำหรับแต่ละโครงการและจัดกลุ่มโครงการย่อยของโครงการไว้ภายใน:
    /projects/proj1/subproj1_1
    /projects/proj1/subproj1_2
    /projects/proj2/subproj2_1

  3. สร้างโฟลเดอร์แยกต่างหากสำหรับพื้นที่ทำงานของคุณ:
    /eclipse-workspaces

  4. สร้างพื้นที่ทำงานสำหรับโครงการของคุณ:
    /eclipse-workspaces/proj1
    /eclipse-workspaces/proj2


1
ฉันยอมรับว่าส่วนสุดท้ายต้องการคำชี้แจง โครงการย่อยคืออะไรถ้าไม่ใช่โครงการเอง โครงการย่อยเหล่านี้ประกอบขึ้นอย่างไรสำหรับการใช้งานในพื้นที่ทำงานต่างๆโดยไม่ต้องใช้โครงการหลักทั้งหมด ก่อนอื่นฉันต้องหาข้อมูลเพื่อปรับปรุงคำตอบ
Rafael Eyng

2
คำตอบนี้มีส่วนช่วยในคำถามทั้งหมด อย่างไรก็ตามมันเป็นโฟลเดอร์ที่เน้นเล็กน้อยและยังขาดการอ้างอิงและข้อโต้แย้งบางอย่าง อย่างไรก็ตามมันเป็นข้อมูล เฮ้อคำตอบเหล่านี้เริ่มยากขึ้นเนื่องจากคำตอบทั้งหมดมีส่วนร่วมและฉันเริ่มคิดว่าจะไม่สามารถยอมรับคำตอบเดียวได้ ฉันหวังว่าจะไม่มีใครเป็นคนประหลาดที่นี่และเราจะทิ้งไว้โดยไม่มีคำตอบที่ยอมรับ?
e-Mot

เฮ้ @ RU-Bn. ฉันไม่ได้อยู่ในจุดนี้ ฉันแค่อยากจะอธิบายว่า Eclipse Workspace คืออะไรดังนั้นฉันจะมั่นใจได้ว่าฉันรู้
Rafael Eyng

เฮ้ฉันไม่ได้หมายถึงคำถามสุดท้ายสำหรับใครโดยเฉพาะ มันเป็นเพียงโดยทั่วไป บางทีฉันควรจะเขียนเป็นความคิดเห็นด้านบน
e-Mot

@ RU-Bn อย่างแน่นอนฉันไม่ได้ใช้มันในทางที่ไม่ดี บางทีฉันอาจจะแค่แสดงออกไม่ดี
Rafael Eyng

37

จุดรวมของพื้นที่ทำงานคือการจัดกลุ่มชุดของโครงการที่เกี่ยวข้องเข้าด้วยกันซึ่งโดยปกติจะประกอบเป็นแอปพลิเคชัน กรอบพื้นที่ทำงานมาพร้อมกับeclipse.core.resourcesปลั๊กอินและโดยธรรมชาติโดยการออกแบบก็สมเหตุสมผล

โปรเจ็กต์มีลักษณะเฉพาะผู้สร้างจะแนบกับโปรเจ็กต์เฉพาะและเมื่อคุณเปลี่ยนรีซอร์สในโปรเจ็กต์หนึ่งคุณจะเห็นการคอมไพล์แบบเรียลไทม์หรือปัญหาอื่น ๆ ในโปรเจ็กต์ที่อยู่ในพื้นที่ทำงานเดียวกัน ดังนั้นกลยุทธ์ที่ฉันแนะนำคือมีพื้นที่ทำงานที่แตกต่างกันสำหรับโครงการต่างๆที่คุณทำงาน แต่หากไม่มีพื้นที่ทำงานใน eclipse จะไม่มีแนวคิดเกี่ยวกับชุดของโครงการและการกำหนดค่าและหลังจากนั้นก็เป็นเครื่องมือ IDE

หากไม่สมเหตุสมผลให้ถามว่า Net Beans หรือ Visual Studio จัดการเรื่องนี้อย่างไร มันเป็นธีมเดียวกัน Maven เป็นตัวอย่างที่ดีการตรวจสอบกลุ่มของโครงการ maven ที่เกี่ยวข้องลงในพื้นที่ทำงานช่วยให้คุณพัฒนาและดูข้อผิดพลาดได้แบบเรียลไทม์ ถ้าไม่ใช่พื้นที่ทำงานคุณจะแนะนำอะไรอีก แอปพลิเคชัน RCP อาจเป็นสัตว์ร้ายที่แตกต่างกันขึ้นอยู่กับว่ามันใช้สำหรับอะไร แต่ในความหมาย IDE ที่แท้จริงฉันไม่รู้ว่าอะไรจะเป็นทางออกที่ดีไปกว่าพื้นที่ทำงานหรือบริบทของโครงการ แค่ความคิดของฉัน - ดันแคน


1
แต่ขอบคุณสำหรับคำตอบ มันสมเหตุสมผลและอย่างน้อยฉันก็รู้ว่ามันควรจะเป็นอย่างไร คุณช่วยอธิบายรายละเอียดเพิ่มเติมและลิงก์ (เพื่อคราส) เกี่ยวกับประโยคแรกของคุณได้ไหม
e-Mot

5
ฉันไม่เห็นด้วยที่ "จุดของพื้นที่ทำงานคือการจัดกลุ่มโครงการที่เกี่ยวข้องเข้าด้วยกันซึ่งโดยปกติจะประกอบเป็นแอปพลิเคชัน" สมมติว่าฉันกำลังพัฒนาแอปพลิเคชั่นสองตัวฉันควรมีพื้นที่ทำงานสองแห่งหรือไม่ น่ารำคาญขนาดไหน! มุมมองที่กำหนดเองการผูกคีย์ข้อความอัตโนมัติและค่ากำหนดอื่น ๆ ทั้งหมดจะเชื่อมโยงกับพื้นที่ทำงาน ฉันจะต้องสร้างมันใหม่ทุกครั้งที่เริ่มแอปพลิเคชันใหม่! ในความคิดของฉันคุณควรมีพื้นที่ทำงานสองแห่ง: dev และล่าสุดที่เปิดตัว ภายในพื้นที่ทำงานคุณจะสร้างชุดการทำงานสำหรับแต่ละแอปพลิเคชัน นี่คือวิธีใช้พื้นที่ทำงานและชุดการทำงาน
John Henckel

2
จอห์นคุณจะทำอย่างไรถ้าคุณเป็นสองแอปพลิเคชันในพื้นที่ทำงานของคุณเป็นแอปพลิเคชัน RCP และแต่ละแอปพลิเคชันต้องการแพลตฟอร์มเป้าหมายที่แตกต่างกันหรือระดับการปฏิบัติตามข้อกำหนดของคอมไพเลอร์จาวาที่แตกต่างกันเว้นแต่แอปพลิเคชันของคุณต้องการการกำหนดค่ารันไทม์ที่เหมือนกันโดยใส่สองแอป พื้นที่ทำงานเดียวจะทำให้เกิดปัญหา ฉันเข้าใจว่ามีชุดค่ากำหนดทั่วไปที่คุณต้องการใช้นั่นคือเหตุผลที่มีคุณลักษณะการส่งออก / นำเข้าค่ากำหนดเพื่อให้คุณสามารถตั้งค่าพื้นที่ทำงานใหม่และนำเข้าองค์กรหรือความชอบส่วนบุคคลและการตั้งค่าอื่น ๆ
Duncan Krebs

1
จุดที่น่าสนใจ @JohnHenckel! แม้ว่าฉันจะมีปัญหากับชุดทำงาน ดูเหมือนว่าพวกมันจะใช้งานได้กับคุณสมบัติบางอย่างของ eclipse เท่านั้น แต่ฉันเดาว่าคุณสามารถตั้งค่าได้ด้วยตนเอง (เหมือนที่ฉันทำเมื่อวานด้วยมุมมองงานซึ่งทำให้ฉันมีภารกิจจากโครงการทั้งหมด) คุณสามารถทำเช่นนั้นสำหรับฟังก์ชันห้องสมุดการเติมข้อความอัตโนมัติวิธีการที่มีอยู่ ฯลฯ ได้หรือไม่? ฉันสนใจเพิ่มเติมว่าคุณใช้ชุดการทำงานอย่างไร @DuncanKrebs ฉันไม่รู้คุณสมบัติการนำเข้า / ส่งออกของค่ากำหนด ขอบคุณ! นั่นช่วยแก้ปัญหาใหญ่ในการใช้พื้นที่ทำงานได้ ขอบคุณทั้งสองท่าน และอย่าหยุดที่จะโต้เถียง / ข้อมูลเชิงลึก!
e-Mot

1
ฉันเพิ่งย้ายไปคราส ก่อนหน้านี้ฉันใช้แนวคิดระบบปฏิบัติการใหม่นี้เรียกว่า "โฟลเดอร์" โฟลเดอร์คือตำแหน่งบนระบบไฟล์ของฉันฉันวางโปรเจ็กต์ สามารถมีโฟลเดอร์ย่อยได้จากที่นั่น คุณยังสามารถวางหลายโฟลเดอร์ของโปรเจ็กต์ที่เกี่ยวข้องภายในโฟลเดอร์หลัก แล้วฉันจะทำอย่างไรถ้าไม่มี Eclipse? ฉันจะใช้โฟลเดอร์โปรแกรมแก้ไขข้อความพื้นฐานและรวบรวมและเรียกใช้จากบรรทัดคำสั่ง ดังนั้นคำตอบของคุณดูเหมือนว่าเราทุกคนควรรู้ว่า "พื้นที่ทำงาน" มีประโยชน์เพียงใด แต่บางทีคุณควรทำความคุ้นเคยกับ "โฟลเดอร์"
Gabriel Staples

3

โดยทั่วไปขอบเขตของพื้นที่ทำงานจะแบ่งออกเป็นสองจุด

จุดแรก (และหลัก) คือคราสที่เกิดขึ้นเองและเกี่ยวข้องกับการตั้งค่าและการกำหนดค่าข้อมูลเมตา (ปลั๊กอิน ctr) ทุกครั้งที่คุณสร้างโปรเจ็กต์ eclipse จะรวบรวมคอนฟิกูเรชันทั้งหมดและเก็บไว้บนเวิร์กสเปซนั้นและหากโปรเจ็กต์ที่ขัดแย้งกันอยู่ในพื้นที่ทำงานเดียวกันคุณอาจสูญเสียฟังก์ชันการทำงานบางอย่างหรือแม้แต่ความเสถียรของคราสมันเอง

และประการที่สอง (รอง) ประเด็นของกลยุทธ์การพัฒนาที่เราสามารถนำมาใช้ได้ เมื่อตรงตามขอบเขตหลัก (และเชี่ยวชาญ) และจำเป็นต้องมีการปรับเปลี่ยนเพิ่มเติมเกี่ยวกับความสัมพันธ์ของโครงการ (เช่นไลบรารี, เปอร์สเปคทีฟ ctr) จากนั้นเริ่มต้นพื้นที่ทำงานแยกกันอาจเหมาะสมตามนิสัยการพัฒนาหรือ "พฤติกรรม" ของภาษา / กรอบงานที่เป็นไปได้ ตัวอย่าง DLTK เป็นสัตว์ร้ายที่ควรอยู่ในกรงแยกต่างหาก มีคำบ่นมากมายที่ฟอรัมว่ามันหยุดทำงาน (ถูกต้องหรือไม่ได้เลย) และวิธีแก้ไขที่แนะนำคือทำความสะอาดการตั้งค่าของปลั๊กอินที่เทียบเท่าจากพื้นที่ทำงานปัจจุบัน

โดยส่วนตัวแล้วฉันพบว่าตัวเองมีความแตกต่างทางภาษามากขึ้นเมื่อพูดถึงพื้นที่ทำงานที่แยกจากกันซึ่งเกี่ยวข้องกับปัญหาที่ทราบซึ่งมาพร้อมกับสถานะปัจจุบันของปลั๊กอินที่ใช้ โดยเฉพาะอย่างยิ่งฉันเก็บไว้ในจำนวนขั้นต่ำเนื่องจากจะนำไปสู่ความยุ่งยากน้อยลงเมื่อโครงการกลายเป็น ... มากมายและการควบคุมเวอร์ชันไม่ใช่เวอร์ชันเดียวที่คุณเก็บโครงการไว้ สุดท้ายความเร็วและประสิทธิภาพในการโหลดเป็นปัญหาที่อาจเกิดขึ้นหากมีการโหลดปลั๊กอิน (ไม่จำเป็น) จำนวนมากเนื่องจากมีการนำเสนอโครงการที่ไม่เกี่ยวข้อง บรรทัดล่าง; ไม่มีวิธีแก้ปัญหาเดียวสำหรับทุกคนไม่มีการพิมพ์สีน้ำเงินหลักที่แก้ปัญหาได้ มันเป็นสิ่งที่เติบโตขึ้นด้วยประสบการณ์น้อยกว่ามาก!


คุณหมายถึงอะไรโดย DTLK?

เมื่อคุณละทิ้งโปรแกรมแก้ไขข้อความเพื่อใช้กับ IDE ไดรฟ์เริ่มต้นคือความสะดวกในการเติมข้อความอัตโนมัติและมุมมองของไลบรารี (และเอกสาร) ของคุณเพื่อหลีกเลี่ยงข้อผิดพลาดทางไวยากรณ์อย่างน้อยที่สุด ไม่ว่าในกรณีใดคุณจะเป็นอันตรายต่อฟังก์ชันนี้
Lazaros Kosmidis

1

แม้ว่าฉันจะใช้ Eclipse มาหลายปี แต่ "คำตอบ" นี้เป็นเพียงการคาดเดาเท่านั้น (ซึ่งฉันจะลองคืนนี้) ถ้ามันถูกโหวตให้ออกจากการดำรงอยู่ก็เห็นได้ชัดว่าฉันคิดผิด

Oracle ใช้ CMake เพื่อสร้าง Visual Studio "Solution" สำหรับซอร์สโค้ด MySQL Connector C ภายในโซลูชันคือ "โครงการ" ที่สามารถรวบรวมเป็นรายบุคคลหรือรวมกัน (โดยโซลูชัน) แต่ละโครงการมี makefile ของตัวเองซึ่งรวบรวมส่วนของโซลูชันด้วยการตั้งค่าที่แตกต่างจากโครงการอื่น ๆ

ในทำนองเดียวกันฉันหวังว่า Eclipse Workspace จะสามารถรองรับ makefile Projects (Eclipse) ที่เกี่ยวข้องกับโปรเจ็กต์หลักที่มีการอ้างอิงรวบรวมโปรเจ็กต์ makefile ที่ไม่ซ้ำกันเป็นข้อกำหนดเบื้องต้นในการสร้าง "โซลูชัน" (โครงสร้างโฟลเดอร์ของฉันจะเป็นไปตามที่ @Rafael อธิบาย)

ดังนั้นฉันหวังว่าวิธีที่ดีในการใช้ Workspaces คือการเลียนแบบความสามารถของ Visual Studio ในการรวมโครงการที่แตกต่างกันเป็นโซลูชัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.