วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

5
Android เป็นภาษาหรือเฟรมเวิร์ก / แพลตฟอร์มหรือไม่?
ฉันรู้ว่า Android ใช้ภาษา Java ด้วย Java SDK ที่ จำกัด และ Google อ้างว่าไม่ใช่ Java แต่มันถูกต้องหรือไม่ที่จะบอกว่า Android เป็นภาษาโปรแกรม? หรือเป็นสิทธิที่จะกล่าวว่า Android เป็นกรอบใน Java? หรือว่าเป็นจริงทั้งคู่?
13 android 

6
อะไรคือวิธีที่ถูกต้อง / สุภาพในการสืบทอดจากโครงการโอเพนซอร์ซที่ละทิ้งสำหรับโครงการโอเพนซอร์สใหม่
ทีมของฉันพยายามติดต่อผู้ชายจากโครงการโอเพ่นซอร์สรุ่นเก่าที่โฮสต์บน code.google.com เราบอกพวกเขาว่าเราต้องการเข้าร่วมโครงการของพวกเขาและมอบมันให้กับสาขาของมันอย่างน้อยก็ไม่มีใครตอบเรา เราลองทุกคนเจ้าของและผู้มอบหมาย ไม่มีใครกระตือรือร้น แต่อย่างใดและไม่มีใครตอบ แต่เรามีรหัสที่จะคอมมิทและเราก็อยากจะทำงานโครงการต่อไป ดังนั้นเราต้องสร้างโครงการใหม่ เราสร้างชื่อขึ้นมาซึ่งใกล้เคียงกับชื่อ แต่ไม่ซ้ำกับชื่อของโครงการที่เราต้องการสืบทอด เราควรทำสิ่งที่เรากระทำครั้งแรกและสิ่งที่ควรกระทำคืออะไร? เราควรคัดลอกรหัสของพวกเขาไปยังที่เก็บข้อมูลของเราด้วยความคิดเห็นเช่น "เราได้รับรหัสนี้เราพบว่าที่นี่ภายใต้ใบอนุญาตดังกล่าวและใบอนุญาต ... ตอนนี้เรากำลังอัพเกรดเป็นใบอนุญาตเข้มงวดมากขึ้น / น้อยลง ... "? หรือเราควรจะใช้รหัสของพวกเขาเป็นการกระทำครั้งแรกของเราด้วยการอัปเดตที่บอกว่า "เราสืบทอดมาจาก ... เราได้ทำการเปลี่ยนแปลงเช่นนั้นและ ... "?

3
ฉันจะหาสัญญา Android ได้อย่างไร
สองปีที่แล้วต่อไปนี้ 15 ปีใน Win32 และ SymbianOS ฉันตัดสินใจที่จะมุ่งเน้นไปที่ Android อย่างเข้มข้น ฉันเอาส่วนที่ดีที่สุดของปี 2009 ออกจากการทำงานเพื่อเรียนรู้แพลตฟอร์มใหม่อย่างละเอียดและนั่นดูเหมือนจะเป็นการตัดสินใจเชิงกลยุทธ์ที่ดี: Android มีอยู่ทุกที่ในขณะนี้ แต่ดูเหมือนว่ามันยากที่จะหางานพัฒนา Android ฉันมีความรู้สึกที่ดุด่าว่าจะต้องมีเว็บไซต์บางสมาคมลับหรือการแลกเปลี่ยนแรงงานที่ได้หลบหนีฉันอย่างใด เกิดอะไรขึ้น? หากคุณเป็นผู้รับเหมา Android คุณพบงานปัจจุบันของคุณอย่างไร

6
คำแนะนำด้านอาชีพสำหรับนักวิทยาศาสตร์ระดับปริญญาเอกที่ต้องการเข้าร่วมโปรแกรม? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ฉันเป็นโปรแกรมเมอร์ที่เรียนรู้ด้วยตนเองเป็นส่วนใหญ่ ในความเป็นจริงฉันเริ่มเขียนโปรแกรมประมาณครึ่งทางผ่านโรงเรียนระดับบัณฑิตศึกษาชีวฟิสิกส์และแม้ว่าฉันคิดว่าฉันทำงานได้ดีมากฉันไม่เคยทำงานเป็นส่วนหนึ่งของทีมพัฒนา 'จริงจัง' ที่มีมากกว่าหนึ่งหรือสอง นักพัฒนาอื่น ๆ (และฉันจะไม่ลังเลที่จะเรียกพวกเขาอย่างเท่าเทียมกันที่ไม่มีประสบการณ์ในการพัฒนาซอฟต์แวร์เป็นอาชีพ) หลังจากเรียนจบปริญญาเอกของฉันฉันยังคงมุ่งเน้นไปที่การเขียนโปรแกรมอย่างเป็นทางการในฐานะ postdoc แต่อย่างไม่เป็นทางการในฐานะโปรแกรมเมอร์วิจัยเจ้าหน้าที่ ในเวลานั้นฉันได้สัมภาษณ์สองครั้งที่ Google แต่ไม่ใช่ข้อเสนอจริง เนื่องจากฉันได้วางรากฐานบางอย่างและอาจจะไม่สามารถทำงานต่อไปได้ บ้าน + ภรรยาที่มีงานจ่ายดีมาก ฯลฯ ประมาณสามปีที่ผ่านมาและการประเมินที่ซื่อสัตย์ของฉันคือฉันได้เรียนรู้มากขึ้น แต่ฉันต้องการกลุ่มเพื่อนมากขึ้นเพื่อรักษาหรือเร่งการเติบโตของฉัน ปัญหาคือเมื่อใดก็ตามที่ฉันมองรายการงานส่วนใหญ่มีข้อกำหนดที่ดูเหมือนยิ่งใหญ่อย่างเหลือเชื่อและฉันลังเลที่จะสมัคร หรืองานหรือโครงการนั้นดูน่าเบื่ออย่างไม่น่าเชื่อ ฉันสงสัยว่าคนส่วนใหญ่มีความสมจริงน้อยกว่าฉันมากเมื่อเทียบกับการประเมินว่าจะใช้เวลานานแค่ไหนในการเร่งความเร็วให้สูงขึ้นหรือไม่สนใจ ความกลัวของฉันคือการที่ฉันไม่มีเงื่อนไขสำหรับงานนักพัฒนาที่น่าสนใจและมีรายได้ดี IE: ฉันมั่นใจว่าฉันสามารถเปลี่ยนกลับไปเป็นโหมด C ++ ได้อย่างสมบูรณ์โดยทำงานสองสามสัปดาห์ (ส่วนใหญ่ฉันใช้ C, Python, C # ทุกวัน) แต่ฉันไม่ได้ระบุว่าตัวเอง 'เชี่ยวชาญ' ใน C …

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

5
ความแตกต่างระหว่างข้อความและวิธีการ?
ใน Objective C คุณมีแนวคิดในการส่งข้อความไปยังวัตถุอื่นและสิ่งนี้คล้ายกับวิธีการโทรในภาษาเช่น C # และ Java แต่สิ่งที่แน่นอนคือความแตกต่างที่ลึกซึ้ง? ฉันควรคิดถึงการส่งข้อความเมื่อคิดถึงรหัสของฉันอย่างไร หมายเหตุ: เพียงแค่พื้นหลังเล็กน้อยที่นี่ฉันเป็นนักพัฒนา C # / Java ที่พยายามเข้าใจแนวคิดบางอย่างเกี่ยวกับ Objective C
13 methods 

6
QA มีบทบาทอย่างไรในโครงการ BDD
หากดำเนินโครงการโดยใช้ BDD ที่มีเนื้อหาครอบคลุม 100% ของเรื่องราวของผู้ใช้ด้วยการทดสอบการยอมรับอัตโนมัติสิ่งที่จะเป็นบทบาทของผู้ทดสอบ / ประกันคุณภาพ ฉันเดาว่าฉันจะจินตนาการว่านักพัฒนาจะเขียนการทดสอบการยอมรับร่วมกับเจ้าของผลิตภัณฑ์แจ้งให้เราทราบหากนั่นดูเหมือนว่าเป็นข้อสมมุติที่โง่เขลา

7
วิธีง่ายๆในการดึงดูดผู้ที่ไม่ใช่โปรแกรมเมอร์ (เช่นผู้ออกแบบ) ให้เข้าสู่การใช้การควบคุมเวอร์ชันคืออะไร?
อะไรคือวิธีสำคัญในการทำให้ทีมของคุณมีส่วนร่วมในการใช้การควบคุมเวอร์ชันในระหว่างการพัฒนาการพัฒนาเว็บหรืออื่น ๆ ฉันปฏิเสธที่จะทำงานโดยปราศจากมันซึ่งหมายความว่าทุกคนที่เกี่ยวข้องในโครงการจะต้องใช้ด้วย มันเป็นแค่แนวปฏิบัติที่ดี GUIs เช่น Tower ได้ช่วย แต่แนวคิดของมันพบกับความโกรธ ('ไม่ใช่งานของฉัน!' ทัศนคติที่ดี) ความขี้ขลาดหรือตรงไปตรงมาไม่ได้ใช้ (ใช้ FTP แทนหลีกเลี่ยงการควบคุมเวอร์ชันสำหรับการพูด dev หรือการปรับใช้ ) แก้ไข: ฉันควรจะชี้แจงเล็กน้อยที่ฉันไม่ได้หมายถึงภาพ / PSDs

8
คุณจัดการการกระโดดที่ซับซ้อนได้อย่างไร
ดูเหมือนว่าจะมีประสบการณ์ไม่บ่อยนัก แต่บ่อยครั้งที่บางครั้งคุณกำลังทำโปรเจ็กต์และมีบางอย่างเกิดขึ้นโดยไม่คาดคิดขว้างประแจขนาดใหญ่ในงานและเพิ่มความซับซ้อนให้มากขึ้น ตัวอย่างเช่นฉันทำงานกับแอพพลิเคชั่นที่คุยกับบริการ SOAP ในเครื่องอื่น ๆ ฉันสร้างต้นแบบที่ใช้งานได้ดีจากนั้นก็พัฒนาส่วนหน้าเป็นประจำและโดยทั่วไปจะทำให้ทุกอย่างทำงานในแบบที่ดีค่อนข้างง่ายและง่ายต่อการติดตามแฟชั่น มันใช้งานได้ดีจนกระทั่งเราเริ่มทดสอบในเครือข่ายที่กว้างขึ้นและทันใดนั้นหน้าเว็บก็เริ่มหมดเวลาเนื่องจากเวลาแฝงของการเชื่อมต่อและเวลาที่ต้องใช้ในการคำนวณบนเครื่องระยะไกลส่งผลให้คำขอบริการสบู่หมดเวลา ปรากฎว่าเราจำเป็นต้องเปลี่ยนสถาปัตยกรรมเพื่อหมุนคำขอออกไปยังเธรดของตัวเองและแคชข้อมูลที่ส่งคืนเพื่อให้สามารถอัปเดตอย่างต่อเนื่องในพื้นหลังแทนที่จะทำการคำนวณตามคำขอตามคำขอ รายละเอียดของสถานการณ์นั้นไม่สำคัญเกินไป - แน่นอนว่ามันไม่ใช่ตัวอย่างที่ดีเนื่องจากค่อนข้างมองเห็นได้และผู้ที่เขียนแอพประเภทนี้จำนวนมากสำหรับสภาพแวดล้อมประเภทนี้อาจคาดการณ์ไว้ - ยกเว้นว่ามันแสดงวิธีที่ หนึ่งสามารถเริ่มต้นด้วยหลักฐานที่เรียบง่ายและรูปแบบและทันใดนั้นมีการเพิ่มความซับซ้อนในการพัฒนาโครงการ คุณมีกลยุทธ์อะไรในการจัดการกับการเปลี่ยนแปลงการทำงานประเภทนี้ซึ่งความต้องการเกิดขึ้นบ่อยครั้งซึ่งเป็นผลมาจากปัจจัยด้านสิ่งแวดล้อมมากกว่าการเปลี่ยนแปลงรายละเอียดในภายหลังในกระบวนการพัฒนาหรือจากการทดสอบ คุณจะทำอย่างไรความสมดุลระหว่างการหลีกเลี่ยงการเพิ่มประสิทธิภาพก่อนวัยอันควร / YAGNI / overengineering ความเสี่ยงของการออกแบบโซลูชันที่ช่วยลดผลกระทบกับความเป็นไปได้ แต่ไม่จำเป็นต้องน่าจะเป็นปัญหาที่ตรงข้ามกับการพัฒนาโซลูชั่นที่ง่ายและง่ายที่น่าจะเป็นที่มีประสิทธิภาพ แต่ไม่ได้รวมการเตรียมความพร้อมสำหรับ ทุกเหตุการณ์ที่เป็นไปได้? แก้ไข: คำตอบของ Crazy Eddie รวมถึง "คุณดูดมันและหาวิธีที่แพงที่สุดในการใช้ความซับซ้อนใหม่" นั่นทำให้ฉันคิดถึงบางสิ่งที่แฝงอยู่ในคำถาม แต่ฉันไม่ได้เจาะจงเฉพาะ เมื่อคุณกดปุ่มนั้นและคุณรวมการเปลี่ยนแปลงที่จำเป็น คุณทำสิ่งที่จะทำให้โครงการใกล้เคียงกับกำหนดเวลามากที่สุด แต่อาจส่งผลต่อการบำรุงรักษาหรือคุณกลับไปที่สถาปัตยกรรมของคุณและนำกลับมาทำใหม่ในระดับที่มีรายละเอียดมากขึ้นซึ่งอาจบำรุงรักษาได้มากกว่า

8
เหตุใด IDE ของฉันจึงไม่รวบรวมพื้นหลัง / สิ่งปลูกสร้าง
วันนี้ฉันพัฒนาบนคอมพิวเตอร์ที่ค่อนข้างซับซ้อนมันมีหลายคอร์ไดรฟ์ SSD และสิ่งที่ไม่ ยังคงส่วนใหญ่เวลาฉันเขียนโปรแกรมคอมพิวเตอร์ไม่สบายทำอะไร เมื่อฉันต้องการคอมไพล์และรัน / ปรับใช้โครงการที่ค่อนข้างซับซ้อนที่สุดก็ยังคงใช้เวลาสองสามวินาที ทำไม? ตอนนี้เรากำลังมีชีวิตอยู่มากขึ้นเรื่อย ๆ ใน "อายุทันที" ทำไมฉันไม่สามารถกด F5 ใน Visual Studio และเปิด / ปรับใช้แอปพลิเคชันของฉันได้ทันที สองสามวินาทีอาจไม่ฟังดูแย่นัก แต่ก็ยังมีความเสียดทานทางปัญญาและเวลาที่เพิ่มขึ้นและตรงไปตรงมาทำให้การเขียนโปรแกรมสนุกน้อยลง ดังนั้นการรวบรวมได้อย่างไรในทันที? คนเรามักจะแก้ไขไฟล์ในแอสเซมบลีต่าง ๆ จะเกิดอะไรขึ้นถ้า Visual Studio / The IDE ทำการคอมไพล์ / และสร้างทุกสิ่งที่ฉันแก้ไขตลอดเวลาเพื่อให้เหมาะสม Heck ถ้าพวกเขาต้องการที่จะก้าวไปข้างหน้าจริงๆพวกเขาสามารถรวบรวมต่อชั้น การรวบรวมอาจไม่ทำงาน แต่ก็ไม่สามารถทำอะไรได้อย่างเงียบ ๆ (ยกเว้นการเพิ่มข้อความแสดงข้อผิดพลาดในหน้าต่างข้อผิดพลาด) คอมพิวเตอร์ในปัจจุบันแน่นอนสามารถอุทิศหลักหรือสองในงานนี้และถ้ามีคนพบว่ามันน่ารำคาญมันอาจถูกปิดการใช้งานโดยตัวเลือก ฉันรู้ว่าอาจมีปัญหาทางเทคนิคหลายพันรายการและการคัดลอกเงาแฟนซีที่จะต้องได้รับการแก้ไขเพื่อให้ราบรื่นและใช้งานได้จริง แต่จะทำให้การเขียนโปรแกรมราบรื่นยิ่งขึ้น มีเหตุผลจริงหรือไม่ที่สถานการณ์นี้ไม่สามารถเกิดขึ้นได้? การสึกหรอของไบนารีที่เขียนต่อเนื่องจะมากเกินไปหรือไม่ แอสเซมบลีไม่สามารถเก็บไว้ในหน่วยความจำจนกว่าจะมีการปรับใช้ / รัน

13
SQL Devs สร้างแบบสอบถาม SQL โดยใช้ SQL Query Designers หรือไม่
ฉันแค่อยากรู้ว่า SQL Devs เขียนโค้ดด้วยมือเปล่าหรือพวกมันใช้ประโยชน์จากนักออกแบบคิวรี่ภาพเพื่อสร้างคิวรี? ในกรณีส่วนใหญ่ตัวออกแบบคิวรีสามารถสร้างคิวรีที่ไม่ซับซ้อนได้ใช่หรือไม่ (ฉันเป็น WinForms dev เพิ่งเริ่มต้นกับ SQL Server)
13 sql  sql-server 

3
เครื่องมือใดที่สามารถใช้เพื่ออำนวยความสะดวกในการตรวจสอบโค้ดหลังจากคอมมิท? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันได้ประเมินเครื่องมือตรวจสอบโค้ดจำนวนหนึ่ง (ส่วนใหญ่เป็นเครื่องมือฟรี) แต่พวกเขาดูเหมือนจะมุ่งไปที่การตรวจสอบแพตช์ก่อนที่พวกเขาจะทำ สิ่งนี้จะไม่พอดีกับขั้นตอนการทำงานในการโค่นล้มของเราดังนั้นฉันจึงมองหาทางเลือกที่สนับสนุนการตรวจสอบการแก้ไขที่ดีขึ้นแทนที่จะดีกว่า คำแนะนำใด ๆ ฉันต้องการเครื่องมือฟรีหรือราคาไม่แพง

7
TDD ที่มีทรัพยากร จำกัด
ฉันทำงานใน บริษัท ขนาดใหญ่ แต่มีทีมงานชายเพียงสองคนที่พัฒนาแอพพลิเคชั่น LOB บนเดสก์ท็อป ฉันได้ทำการวิจัย TDD มาระยะหนึ่งแล้วและถึงแม้ว่ามันจะง่ายต่อการรับรู้ประโยชน์ของแอปพลิเคชันขนาดใหญ่ แต่ฉันมีเวลายากที่จะพิสูจน์ให้เห็นถึงเวลาที่จะเริ่มใช้ TDD ในระดับของแอปพลิเคชันของเรา ฉันเข้าใจข้อดีของมันในการทดสอบอัตโนมัติปรับปรุงการบำรุงรักษา ฯลฯ แต่ในระดับของเราการเขียนการทดสอบหน่วยขั้นพื้นฐานสำหรับส่วนประกอบทั้งหมดของเราสามารถเพิ่มเวลาการพัฒนาได้อย่างง่ายดายสองเท่า เนื่องจากเราถูกกำหนดเส้นตายที่รุนแรงแล้วฉันไม่แน่ใจว่าจะต้องไปทางไหน ในขณะที่การปฏิบัติอื่น ๆ เช่นการพัฒนาแบบวนซ้ำคล่องแคล่วทำให้สมบูรณ์แบบมาตั้งแต่ฉันรู้สึกขาดความสามารถในการเพิ่มผลผลิตของ TDD ในทีมเล็ก ๆ ข้อดีของ TDD นั้นคุ้มค่ากับการพัฒนาเป็นพิเศษสำหรับทีมเล็ก ๆ ที่มีตารางงานที่แน่นมากหรือไม่?
13 tdd 

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

5
สิ่งที่จะเรียกเก็บเงินจากลูกค้าอย่างถูกกฎหมายสำหรับ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันไม่ได้พูดถึงงานที่มีราคาคงที่พวกเขาค่อนข้างตรงไปตรงมา แต่ฉันทำโครงการอัตราทุกชั่วโมงคำถามของฉันเกี่ยวข้องเฉพาะกับสิ่งที่คิดค่าใช้จ่าย หากฉันมีปัญหา IE / CSS ที่ต้องใช้เวลาหนึ่งชั่วโมงในการแก้ไข CSS เพื่อกำจัดสิ่งนั่นจะมีค่าใช้จ่ายหรือไม่ หากฉันตัดสินใจที่จะใช้แอนิเมชั่น jQuery เจ๋ง ๆ บนไซต์ของพวกเขา แต่ฉันต้องใช้มันให้ได้ฉันจะชาร์จมันสำหรับการทดลองที่ทำกับอนิเมชั่น คุณคิดค่าบริการกับลูกค้าตามที่ลูกค้าต้องการหรือไม่และคุณจำเป็นต้องใช้เวลาในการเรียนรู้หรือไม่? เป็นพื้นที่สีเทาเท่าที่ฉันกังวลและไม่ได้ระบุไว้อย่างชัดเจนในเครื่องหมายคำพูด (อาจเป็นเพราะมีลูกค้าไม่มากที่ยินดีจ่ายค่าสกรู / การเรียนรู้ของคุณ) ข้อสรุปเกี่ยวกับเรื่องนี้คืออะไร?

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