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

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

14
ฉันควรถาม / บอกหัวหน้าของฉันก่อนทำอาชีพอิสระหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังทำงานเป็นฝึกงานที่ บริษัท ที่ปรึกษา ฉันจะย้ายไปทำงานพนักงานเต็มเวลาในไม่ช้าเมื่อฉันเรียนจบภาคเรียนถัดไปและฉันชอบทำงานที่นั่น อย่างไรก็ตามในฐานะนักเรียนฉันไม่มีเงินและได้พบกับเจ้าของธุรกิจนอกที่ทำงานซึ่งได้เสนอให้จ้างฉันสำหรับการพัฒนาเว็บไซต์ฟรีแลนซ์ เนื่องจากฉันได้พบบุคคลนี้นอกที่ทำงานฉันจึงรู้สึกว่ามันจะไม่ขัดแย้งกับผลประโยชน์ของเขา อย่างไรก็ตามงานที่เขาต้องการให้ฉันทำนั้นคล้ายกับสิ่งที่ฉันทำเพื่อเจ้านายปัจจุบันของฉัน ฉันควรพูดกับเจ้านายของฉันก่อนพิจารณาข้อเสนอหรือไม่ แก้ไข : ฉันเข้าใจว่าฉันไม่สามารถใช้ IP จากการทำงานและฉันไม่ได้ทำสัญญา

12
นักเขียนที่ไม่ดีทำโปรแกรมเมอร์ที่ไม่ดีหรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันกำลังอ่านCoders at Workโดย Peter Seibel และหลายครั้งที่มีการกล่าวถึงว่าโปรแกรมเมอร์ที่ไม่สามารถเขียนได้มักจะทำให้โปรแกรมเมอร์ไม่ดี - Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra (และฉัน) อ่านเพียงครึ่งเล่ม) คุณคิดอย่างไรกับเรื่องนี้? การไม่สามารถแสดงความสามารถในการเขียนด้วยภาษาธรรมชาติเช่นภาษาอังกฤษเป็นอุปสรรคในการเขียนรหัสที่ดีหรือไม่?
16 writing 

4
“ ไม่พลิกโฉมพวงมาลัย” ไม่สนใจขีด จำกัด ของความทรงจำของมนุษย์หรือไม่?
สิ่งหนึ่งที่ทำงานใน Haskell และ F # สอนให้ฉันคือคนที่อยู่ในมหาวิทยาลัยอย่างชาญฉลาดกว่าฉันอาจจะพบสิ่งที่เป็นนามธรรมสำหรับสิ่งที่ฉันกำลังทำอยู่ ในทำนองเดียวกันใน C # และการเขียนโปรแกรมเชิงวัตถุอาจมีห้องสมุดสำหรับ "มัน" ไม่ว่าฉันจะทำอะไรก็ตาม มีการเน้นย้ำว่าการนำเอา abstractions มาใช้ในการเขียนโปรแกรมซึ่งบ่อยครั้งฉันรู้สึกว่าลำบากใจระหว่าง: 1) แค่เขียนโค้ดบางอย่างที่สั้นและสกปรกด้วยตัวเองหรือ 2) ใช้เวลาในการค้นหาไลบรารี่ / โซลูชันที่แข็งแกร่งกว่า เช่นเดียวกับเมื่อเร็ว ๆ นี้หนึ่งในผู้เขียนที่นี่เขียนขึ้น (de) serializer สำหรับไฟล์ CSV และฉันไม่สามารถช่วย แต่คิดว่าบางสิ่งบางอย่างเช่นนั้นอาจเป็นเรื่องง่ายมากที่จะหาออนไลน์ถ้ามันไม่ได้มาพร้อมกับมาตรฐาน. NET APIs ผมไม่ตำหนิเขา แต่หลายครั้งการทำงานใน .NET ฉันได้ปะกันแก้ปัญหาขึ้นอยู่กับสิ่งที่ฉันรู้เท่านั้นที่จะรู้ว่ามีบางอย่างที่เรียกวิธีการหรือวัตถุหรือสิ่งที่ มักจะอยู่ในห้องสมุดเดียวกันที่ทำในสิ่งที่ ฉันต้องการและฉันก็ไม่รู้เกี่ยวกับมัน นี่เป็นเพียงสัญลักษณ์ของการไม่มีประสบการณ์หรือมีองค์ประกอบของการแลกเปลี่ยนระหว่างการเขียนใหม่และเก่าซ้ำ? สิ่งที่ฉันเกลียดที่สุดคือเมื่อฉันวิ่งข้ามทางออกที่ฉันรู้และลืมไปแล้ว ฉันรู้สึกเหมือนว่าคน ๆ หนึ่งไม่สามารถแยกแยะรหัสที่เต็มไปด้วยภาษาส่วนใหญ่ในทุกวันนี้

6
แสดงถึงกฎธุรกิจที่มีข้อยกเว้น
ฉันรู้ว่ามันแพง แต่ (IMO) ฉันเชื่อว่านี่เป็นวิธีปฏิบัติที่ดีมาก ฉันกำลังพูดถึงกฎอย่างเช่นพูดว่าคุณไม่สามารถบันทึกใบแจ้งหนี้ได้หากคุณไม่ใช่พนักงานขาย ... ดังนั้นในกรณีนี้ให้ยกเว้นว่า "คุณไม่ได้รับอนุญาต" หรือเช่น ... อีกวิธีหนึ่งที่จะมีวัตถุที่มีสถานะหรืออะไรทำนองนั้น มีวิธีอื่นอีกไหม? คุณรู้สึกอย่างไรเกี่ยวกับเรื่องนี้?

5
ควรแปลซอร์สโค้ดในตำราและสิ่งที่คล้ายกันไหม
ไม่กี่สัปดาห์ที่ผ่านมาชั้นของฉันได้รับมอบหมายให้แปลภาษาโปรตุเกสเป็นหนังสือ Real World Haskell เมื่อฉันแปลข้อความและความคิดเห็นฉันเริ่มสงสัยว่าฉันควรแปลรหัสด้วยหรือไม่ตามที่ผู้สอนแนะนำ ตัวอย่างเช่น: data BookInfo = สตริง Int ของหนังสือ [String] แสดงที่ได้รับ จะกลายเป็น data InfoLivro = สตริงสตริง Livro [สตริง] แสดงที่ได้รับ เนื่องจากฉันไม่ได้อ่านหนังสือที่เกี่ยวข้องกับซอฟต์แวร์ในภาษาโปรตุเกสฉันไม่ทราบว่าเป็นวิธีปฏิบัติทั่วไปหรือไม่และควรทำเช่นนี้หรือไม่ ในท้ายที่สุดรหัสคือการผสมผสานภาษา (บางทีตัวอย่างใน Haskell อาจไม่ดีเพราะคุณสามารถสร้างคำพ้องความหมายได้อย่างรวดเร็วเหมือนtype CadeiaDeCaracteres = Stringแต่คุณได้ประเด็น) ดังนั้นไม่สำคัญว่าคุณจะพยายามอย่างหนักเพียงใดคุณจะต้องพึ่งพาผู้อ่านก่อนหน้านี้ด้วยคำศัพท์พื้นฐานบางอย่าง รู้สิ่งนี้ฉันไม่เห็นจุดในการแปลรหัสเนื่องจากเราเรียนรู้ในวันแรกของชีวิตการเข้ารหัสของเรามันควรจะเขียนในภาษาสากล อย่างไรก็ตามหากจำเป็นต้องแปลข้อความโดยรอบ (ความเห็นตัวอย่างและข้อความในหนังสือ) สิ่งใดที่เป็นไปได้และเป็นไปได้ในเรื่องนี้ คุณสามารถให้คำแนะนำฉันเกี่ยวกับสิ่งที่ต้องทำ
16 coding 

9
คุณจะรู้ได้อย่างไรว่าเมื่อใดจะหยุดเพิ่มคุณสมบัติ
ก่อนหน้านี้ฉันเขียนสคริปต์ python ขนาดเล็กมากที่ตรวจสอบฟีด xml เป็นระยะ ๆ สำหรับรายการใหม่และแจ้งเตือนผู้ใช้ไปยังรายการใหม่เมื่อมี ฉันเขียนสิ่งนี้ด้วยตนเองดังนั้นจึงเป็นโปรแกรมที่ใช้คอนโซลเป็นหลักซึ่งทุกคนที่คุ้นเคยกับส่วนต่อประสานคอนโซลสามารถใช้งานได้ หลังจากที่ในขณะที่ฉันตัดสินใจว่ามันอาจเป็นประโยชน์กับคนอื่น ๆ และเริ่มที่จะเป็นระเบียบขึ้นอินพุตฆ่าเชื้อกำจัดแมลง มันเกิดขึ้นกับฉันเพราะฉันเขียนสคริปต์ฉันรู้วิธีใช้อย่างมีประสิทธิภาพถูกต้อง ฯลฯ คนอื่นอาจไม่ได้ดังนั้นฉันจึงเริ่มเพิ่ม GUI สิ่งนี้เริ่มต้นจากเมนูง่าย ๆ จากนั้นขยายเป็น GUI เต็มรูปแบบมากขึ้นด้วยทั้งเมนูอินเตอร์เฟสและตัวเลือก ฉันเพิ่มการตั้งค่าผู้ใช้ที่เก็บไว้และที่เก็บข้อมูลสำหรับฟีด xml ที่ค้นหาก่อนหน้านี้เพื่อเพิ่มความเร็วในการค้นหาซ้ำ ฉันเพิ่มการบันทึกเพื่อช่วยในการดีบักแอปพลิเคชันในกรณีที่มีสิ่งผิดปกตินำแอปพลิเคชั่นไปยังฐานข้อมูลหลามเสถียรล่าสุดสำหรับแพลตฟอร์มที่ฉันเลือกและปรับปรุงคุณสมบัติการโต้ตอบ ฉันได้แก้ไขข้อผิดพลาดและแสดงความคิดเห็นรหัสของฉันอย่างชัดเจน แต่ฉันยังมีสิ่งที่ฉันคิดว่าสามารถทำได้เพื่อปรับปรุงแอพก่อนที่ฉันจะเปิดให้ผู้ทดสอบอัลฟ่าใช้งานได้ มันเป็นหนทางไกลมากจากสคริปต์บรรทัดเดิมของฉัน 20-30 สิ่งที่ฉันคาดหวังจะใช้เวลาเพียงหนึ่งหรือสองชั่วโมงในการเปลี่ยนจากการพิสูจน์แนวคิดไปสู่โปรแกรมการใช้งานที่ยอมรับได้ซึ่งใช้เวลา 10-20 เท่า (ฉันยังคงเป็น noob และสิ่งต่าง ๆ ใช้เวลานาน แต่ก็ยัง .... ) คุณจะรู้ได้อย่างไรว่าเมื่อใดที่จะหยุดเพิ่ม / ปรับแต่ง / แก้ไขสิ่งต่าง ๆ และปล่อยให้ลูกของคุณคลานออกมาในที่โล่ง

8
captchas มีมูลค่าการใช้งานลดลงหรือไม่
เมื่อใดจึงมีประโยชน์ในการใช้ captcha มันเป็นอุปสรรคที่ไม่จำเป็นเมื่อใด captcha เป็นเพียงการแก้ไขด่วนสำหรับโปรแกรมเมอร์ที่ขี้เกียจ / ไม่มีประสบการณ์หรือเป็นวิธีที่ดีที่สุดในการป้องกันสแปมและบอท

9
ออกจากงานของฉัน (สำหรับงานใหม่) งานเก่าอยากให้ฉันพร้อมทำสัญญา ขั้นตอนในการใช้?
บริษัท ที่ฉันจากไปได้ขอให้ฉันพร้อมที่จะตอบคำถามและ / หรือโปรแกรมแก้ไขข้อบกพร่องในบางครั้งหากมีความจำเป็นเกิดขึ้น ฉันไม่ได้ต่อต้านสิ่งนี้ หลังจากค้นหา google สำหรับสัญญามาตรฐานบางประเภทสำหรับสิ่งนี้ฉันไม่เห็นเลย มีสัญญามาตรฐานสำหรับสิ่งที่คุณใช้หรือไม่? มีขั้นตอนอื่น ๆ ที่ฉันควรทำเพื่อให้มั่นใจว่าการจัดการแบบนี้ทำงานได้อย่างราบรื่นหรือไม่?

5
RDBMS หลายเซิร์ฟเวอร์ของฉันหรือแอปพลิเคชันของฉันควรจัดการกับ Referential Integrity หรือไม่
รายการเช่น Foreign Keys, ข้อ จำกัด , ค่าเริ่มต้นและอื่น ๆ ควรได้รับการจัดการโดยระบบการจัดการฐานข้อมูล (ในกรณีนี้คือ MS SQL 2005) หรือแอปพลิเคชันหรือไม่ ฉันเคยได้ยินความคิดเห็นจากทั้งสองฝ่ายและฉันก็ไม่แน่ใจเหมือนกันว่าจะไปทางไหน มีโอกาสที่เราจะขยายเซิร์ฟเวอร์หลายตัว / ฐานข้อมูลและฉันไม่คิดว่า Foreign Keys สามารถใช้ข้ามเซิร์ฟเวอร์ที่เชื่อมโยงได้ นอกจากนั้นยังมีการอ้างอิงแบบวงกลมในการออกแบบฐานข้อมูลซึ่งทำให้ฉันไม่สามารถใช้ON UPDATE CASCADEกับทุกสิ่งได้ ฐานข้อมูลคือ MS SQL 2005 (อาจเป็น 2008) และการโต้ตอบทั้งหมดที่มีควรผ่านแอปพลิเคชัน

3
แบบแผนการตั้งชื่อที่ดีสำหรับสาขาที่มีชื่อใน {DVCS} ที่คุณเลือก
เรากำลังผสานรวม Mercurial อย่างช้าๆในสำนักงานของเราและทำการพัฒนาเว็บไซต์ที่เราเริ่มใช้สาขาที่มีชื่อ เราไม่พบธรรมเนียมที่ดีเท่าการตั้งชื่อสาขาของเรา พวกเราเหนื่อย: FeatureName (สามารถเห็นสิ่งนี้ทำให้เกิดปัญหาในบรรทัด) DEVInitial_FeatureName (อาจสับสนเมื่อนักพัฒนาเข้ามาและลงไปที่บรรทัด) {uniqueID (int)} _ คุณสมบัติ จนถึงตอนนี้ uniqueID_featureName กำลังชนะเรากำลังคิดที่จะเก็บมันไว้ในฐานข้อมูลขนาดเล็กเพื่อใช้อ้างอิง มันจะมี: branchID (int), featureName (varchar), featureDescription (varchar), วันที่, ใคร ฯลฯ ... สิ่งนี้จะทำให้เราสาขาเช่น: 1_NewWhizBangFeature, 2_NowWithMoreFoo, ... และเราจะมีการอ้างอิงง่าย ๆ ว่าสาขานั้นทำอะไรโดยไม่ต้องตรวจสอบบันทึก ทางออกที่ดีกว่าออกมี?

2
วิธีการรับรู้ลูกค้าที่ไม่ดีก่อนที่คุณจะเริ่มทำงานให้เขาได้อย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันแน่ใจว่าคุณหลายคนพบลูกค้าที่ไม่ดี ฉันแน่ใจว่าคุณใช้มาตรการบางอย่างเพื่อป้องกันการเผชิญหน้าในอนาคต อะไรคือคุณลักษณะที่มีอิทธิพลมากที่สุดของลูกค้าที่เตือนให้คุณเดินออกไป?

10
ฟังก์ชั่นการบรรทุกเกินพิกัด? ใช่หรือไม่ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังพัฒนาภาษาที่คอมไพล์และพิมพ์อย่างยิ่งและฉันขอทบทวนแนวคิดว่าจะรวมฟังก์ชั่นการโอเวอร์โหลดเป็นคุณลักษณะภาษาหรือไม่ ฉันรู้ว่าฉันลำเอียงเล็กน้อยมาจากC[++|#]ภูมิหลังเป็นส่วนใหญ่ อะไรคือข้อโต้แย้งที่น่าเชื่อถือที่สุดสำหรับและต่อต้านรวมถึงฟังก์ชั่นการโอเวอร์โหลดในภาษา? แก้ไข:ไม่มีใครที่มีความเห็นตรงข้ามหรือไม่? เบอร์ทรานด์เมเยอร์ (ผู้สร้างหอไอเฟลย้อนกลับไปในปี 1985/1986) เรียกวิธีการดังกล่าวว่า: (ที่มา) กลไกโต๊ะเครื่องแป้งที่ไม่นำอะไรมาสู่พลังความหมายของภาษา OO แต่การอ่านง่ายขึ้นและทำให้งานของทุกคนยุ่งยาก ตอนนี้สิ่งเหล่านี้เป็นภาพรวมที่กว้างใหญ่ไพศาล แต่เขาเป็นคนฉลาดดังนั้นฉันคิดว่ามันปลอดภัยที่จะบอกว่าเขาสามารถสำรองได้หากเขาต้องการ ในความเป็นจริงเขาเกือบจะมีแบรดเอบรัมส์ (หนึ่งในผู้พัฒนา CLSv1) เชื่อว่า. NET ไม่ควรสนับสนุนวิธีการโอเวอร์โหลด (แหล่งที่มา)นั่นคือบางสิ่งที่ทรงพลัง ทุกคนสามารถเข้าใจความคิดของเขาและมุมมองของเขายังคงเป็นธรรมเมื่อ 25 ปีต่อมาได้หรือไม่?

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

10
จอภาพที่ดีที่สุดสำหรับการเขียนโปรแกรมคืออะไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ในบางครั้งฉันได้ลองใช้จอภาพบางจอ งานหลักของฉันคือการเขียนโปรแกรม (งาน, ปริญญาเอก, ฯลฯ ) ที่ทำงานฉันมี LG Flatron L246WH ซึ่งฉันขอแนะนำ อย่างไรก็ตามที่บ้านฉันมี LG W2363V ซึ่งฉันรู้สึกอึดอัดเมื่อเขียนโปรแกรม แบบอักษร, subpixels หรืออะไรก็ตามที่อยู่ในใจของฉันเมื่อใช้แบบอักษรที่ราบรื่น ปัจจุบันมีจอภาพที่ดีที่สุดออกมาเพื่อให้เหมาะสมกับความต้องการของเรามากที่สุด?

6
“ A”,“ an” และ“ the” ในชื่อเมธอดและฟังก์ชัน: คุณใช้อะไร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันแน่ใจว่าพวกเราหลายคนเคยเห็นชื่อวิธีการเช่นนี้ในจุดหนึ่งหรืออื่น ๆ : UploadTheFileToTheServerPlease CreateATemporaryFile WriteTheRecordToTheDatabase ResetTheSystemClock นั่นคือชื่อวิธีการที่ถูกต้องตามหลักไวยากรณ์ประโยคภาษาอังกฤษและรวมถึงคำพิเศษเพื่อให้พวกเขาอ่านเหมือนร้อยแก้ว โดยส่วนตัวฉันไม่ได้เป็นแฟนตัวยงของชื่อวิธีการ "ตามตัวอักษร" และชอบที่จะประสบความสำเร็จในขณะที่ยังคงชัดเจนที่สุด สำหรับฉันแล้วคำเช่น "a", "an" และ "the" แค่ดูธรรมดา ๆ ในชื่อเมธอดและทำให้ชื่อเมธอดยาวโดยไม่จำเป็นโดยไม่ต้องเพิ่มอะไรที่มีประโยชน์จริงๆ ฉันต้องการชื่อวิธีการต่อไปนี้สำหรับตัวอย่างก่อนหน้านี้: UploadFileToServer CreateTemporaryFile WriteOutRecord ResetSystemClock จากประสบการณ์ของฉันนี่เป็นเรื่องธรรมดามากกว่าวิธีอื่นในการเขียนชื่อที่ยาวกว่า แต่ฉันได้เห็นทั้งสไตล์และอยากรู้อยากเห็นว่าความคิดของคนอื่นเป็นอย่างไรในสองแนวทางนี้ ดังนั้นคุณอยู่ใน "ชื่อเมธอดที่อ่านเหมือนร้อยแก้ว" หรือ "เมธอดชื่อที่พูดในสิ่งที่ฉันหมายถึง แต่อ่านออกมาดัง ๆ เช่นการแปลภาษาต่างประเทศเป็นภาษาอังกฤษที่ไม่ดี" ค่าย?

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