สร้างแรงจูงใจให้ตัวคุณเองในการเขียนโค้ดหลังจากที่คุณออกแบบบางสิ่ง [ปิด]


27

เกิดขึ้นกับฉันเท่านั้นหรือคุณคุ้นเคยเช่นนี้หรือไม่

มันเป็นอย่างนี้คุณต้องสร้างบางสิ่งบางอย่าง โมดูลคุณสมบัติแอปพลิเคชั่นทั้งหมด ... ไม่ว่าอะไรก็ตาม มันเป็นสิ่งที่น่าสนใจที่คุณไม่เคยทำมาก่อนมันท้าทาย

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

ในที่สุดคุณก็จบลงด้วยการออกแบบที่คุณชอบบางสิ่งที่เรียบง่ายชัดเจนสำหรับทุกคนบำรุงรักษาง่าย ... คุณตั้งชื่อมัน คุณครอบคลุมทุกฐานคุณคิดถึงทุกสิ่ง คุณรู้ว่าคุณจะมีคลาสนี้และไฟล์นั้นและสคีมาฐานข้อมูล กำหนดค่าที่นี่ปรับตัวเข้ากับสิ่งนี้ ฯลฯ

แต่ตอนนี้หลังจากที่ทุกอย่างเรียบร้อยแล้วคุณต้องนั่งลงและเขียนรหัสจริง ๆ และไม่ท้าทายอีกต่อไป .... มาถึงแล้วทำอย่างนั้น! การเขียนโค้ดตอนนี้เป็นเพียง "ระเบียบ" และทำให้ดูเหมือนซ้ำสิ่งที่คุณเพิ่งเสร็จสิ้น

ที่งานก่อนหน้าของฉันบางครั้งฉันก็ออกไปเพราะบางคนทำรหัสตามข้อกำหนดของฉัน แต่ที่กิ๊กใหม่ของฉันฉันอยู่ในความดูแลของกระบวนการทั้งหมดดังนั้นฉันต้องทำเช่นนี้ด้วย (เพราะฉันได้รับเงินไปทำ มัน).

แต่ฉันมีโครงการสัตว์เลี้ยงฉันกำลังทำงานที่บ้านหลังเลิกงานและมีเพียงฉันและไม่มีใครจ่ายเงินให้ฉันทำ ฉันทำงานสร้างสรรค์และเมื่อถึงเวลาเขียนมันฉันก็ไม่รู้สึกเหมือนมัน (ให้ดูเว็บนิดหน่อยดูว่ามีอะไรใหม่ในP.SEหรือSOเป็นต้น)

ฉันแค่ต้องการจะย้ายไปยังสิ่งที่ท้าทายต่อไปแล้วต่อไปและต่อไป ...

สิ่งนี้เกิดขึ้นกับคุณด้วยหรือไม่ คุณจัดการกับมันอย่างไร

คุณจะโน้มน้าวตัวเองให้เข้าไปเขียนโค้ดที่ผิดพลาดได้อย่างไร?

ฉันจะตอบทุกคำถาม


คุณประเมินขนาดโครงการของคุณเป็นอย่างไร? เป้าหมายของคุณคืออะไร ใครจะได้ประโยชน์จากโครงการนี้ถ้าประสบความสำเร็จ ประโยชน์อะไรบ้าง
ร. ว.

2
@rwong: เป้าหมายหลักของฉันคือการขยายความรู้ของฉัน ฉันทดลองโครงการส่วนตัวที่มีแนวคิดเทคนิค libs ต่าง ๆ เพื่อการพัฒนาตนเอง แต่ฉันต้องการสร้างบางสิ่งด้วยสถานการณ์กรณีการใช้งานจริงไม่ใช่เพียงต้นแบบที่ไม่เกี่ยวข้อง

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

ฉันตอบคำถามนี้เมื่อ 3 ปีที่แล้ว แต่เมื่อฉันอ่านคำถามของคุณอีกครั้งฉันสงสัยว่านี่ไม่ใช่สัญญาณของโรคสมาธิสั้น (ซึ่งฉันเกิดขึ้น) ฉันยังต่อสู้กับสิ่งที่คำถามของคุณอธิบายและถึงแม้ว่าสิ่งที่ฉันตอบจะช่วยฉันบิตก็ยังคงเป็นอย่างมากยาก Russell Barkley อธิบายว่าทำไมค่อนข้างดี: youtu.be/LyDliT0GZpE
Mark Freedman

คำตอบ:


6

หากความท้าทายสำหรับคุณคือในการออกแบบและไม่ใช้งานบางทีคุณอาจต้องการปัจจัยกระตุ้นอื่น:

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

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

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

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


6

คุณต้องทำต้นแบบอย่างรวดเร็วที่บ้าน

เมื่อคุณใช้ความแม่นยำระดับมืออาชีพในโครงการส่วนตัวส่วนตัวมันจะส่งผลให้เกิดการวิศวกรรมมากเกินไป

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

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


5

ฉันเดาว่ามันเป็นแค่ฉัน แต่ฉันมีปัญหาตรงข้าม ฉันมักจะมีปัญหาในการคิดรายละเอียดทั้งหมดก่อนที่จะเริ่มเขียนโค้ดและพบปัญหาที่เกี่ยวข้อง โดยปกติแล้วฉันมักจะมีการออกแบบที่คลุมเครือในหัวเมื่อเริ่มเขียนโค้ดบางอย่าง ความท้าทายที่ยิ่งใหญ่ของฉันคือการทำให้ตัวเองคิดถึงรายละเอียดทั้งหมดและมีการออกแบบล่วงหน้า


5
ทำไมคะแนนนี้ถึงสูงมากมันไม่ได้ตอบคำถามหลักว่า "คุณจะโน้มน้าวให้ตัวคุณเข้าไปเขียนโค้ดที่ผิดปกติได้อย่างไร"?
dan_waterworth

1
@dan_waterworth: ฉันคิดว่าเพราะผู้คนจำนวนมากสามารถเกี่ยวข้องกับคำตอบ เมื่อตอนที่ฉันยังเป็นเด็กฉันก็ทำสิ่งเดียวกันกระโดดหัวก่อนเข้าสู่การเขียนโค้ดโดยไม่มีการวางแผนล่วงหน้า ตั้งแต่นั้นฉันเรียนรู้ (วิธีที่ยาก) ที่ดีกว่าที่จะนั่งลงและคิดก่อนไปที่ขั้นตอนการพิมพ์

2

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

ฉันยังอยู่กับคุณในสิ่งนี้เกิดขึ้นที่บ้านมากกว่าการทำงานในสำนักงาน ฉันไม่รู้ว่ามันรบกวนสมาธิมากกว่าเดิมถูกไฟไหม้จากการทำงานหรืออะไร


2

ฉันเข้าใจความคับข้องใจของคุณอย่างที่ฉันเคยทำมาก่อน

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

คว้าทั้งโครงการและแบ่งเป็น 'แพ็คเกจ' แต่ละอันประกอบด้วยชิ้นส่วนที่จะโต้ตอบกันบ่อยครั้ง จากนั้นแบ่งแต่ละแพ็คเกจออกเป็นชิ้นเล็ก ๆ (คิดว่าไม่กี่ชั่วโมงสูงสุด) ที่คุณสามารถออกแบบและกำหนดรหัสได้

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

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

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

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

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

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

ในที่สุดเมื่อคุณหมดแพ็คเกจฉันมักจะปล่อยมันไปสองสามวันให้ตัวเองพักและให้ความสนใจกับสิ่งอื่น

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

หวังว่านี่จะช่วยให้คุณมีความพยายาม


2

ฉันพบเสมอว่าข้อสันนิษฐานเดิมไม่ได้ถือไว้ทั้งหมดและมากหรือน้อยกว่าของการออกแบบดั้งเดิมจะต้องเปลี่ยนไปตามประสบการณ์ที่รวบรวมมาในขณะที่ทำการใช้งานจริง

ถ้าคุณคิดว่าการออกแบบของคุณจะสมบูรณ์และสมบูรณ์แบบหลังจากวาดกล่องบางส่วน แต่ก่อนที่จะลองจริง ๆ ฉันจะถือว่าคุณเป็นผู้สมัครที่สมบูรณ์แบบสำหรับการใช้งานบางโครงการ

การจัดส่งสินค้าเป็นคุณสมบัติ หากคุณไม่ไปไกลคุณเป็นเพียงสถาปนิก


1
+1 โดยรวมแล้วสถาปนิกที่เป็นกังวลหนึ่งคนมีที่ของพวกเขา "แค่เป็นสถาปนิก" ฟังดูเป็นเรื่องเล็กน้อยและไม่ได้ตั้งใจ
Orbling

@Orbling: Thorbjørnได้งดเว้นจาก (มนุษย์ที่มีความประพฤติมากกว่า ) ในอวกาศ
ร. ว.

@Orbing อาจเป็นไปได้ คุณจะวลีความจริงที่ว่าคุณไม่สามารถทำสิ่งที่คุณบอกให้คนอื่นทำอย่างไร

1

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

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


1

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

เช่น: ถ้าฉันได้ออกแบบคลาสพื้นฐานของฉันฉันจะเขียนมันออกมาและทำการทดสอบบางอย่างกับมัน จากนั้นฉันได้ออกแบบฐานข้อมูลพื้นฐานฉันตั้งค่าและทดสอบมัน ต่อไปฉันมีวิธีการและฟังก์ชั่นที่ฉันต้องการเพื่อให้ได้ทุกอย่างเข้า / ออกจากฐานข้อมูลฉันดำเนินการต่อ การทดสอบทำได้ง่ายขึ้นเนื่องจากฉันมีชั้นเรียนพื้นฐานพร้อมอยู่แล้ว และในที่สุดเมื่อฉันมาออกแบบส่วนต่อประสานกับผู้ใช้ฉันก็มีรหัสทั้งหมดพร้อมที่จะเล่นด้วย

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

หวังว่านี่จะช่วยได้


1

จากนั้นเพียงเขียนแนวคิดการออกแบบของคุณเผยแพร่ (ในบล็อก) ทำสิ่งที่ดีที่สุดเพื่ออธิบายปัญหาและแนวทางแก้ไขที่คุณได้ทำกับผู้อื่น

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

และโพสต์โปรแกรมการรู้หนังสือเพื่อนำเสนอแนวคิดใหม่ของคุณต่อผู้อื่น!


1

นี่กำลังจะเกิดขึ้นซ้ำซาก แต่เพิ่งเริ่ม คุณอาจต้องเปิดสภาพแวดล้อมการพัฒนาของคุณเอง คุณอาจจะต้องกำหนดแต่ละคลาสในการออกแบบของคุณและเขียนวิธีการลงนามดังนั้นควรทำ คุณจะต้องเริ่มใช้วิธีการที่สำคัญที่สุด

โดยทั่วไปในช่วงเวลานี้ฉันลืมไปแล้วว่าฉันมีปัญหาในการเริ่มต้นและฉันอยู่ในโซน

ทำงานได้ประมาณ 80% ของเวลา สำหรับส่วนที่เหลือมี Tetris


0

มันไม่ใช่แค่คุณเท่านั้น! ตอนนี้ฉันกำลังปิดโครงการอยู่

ไม่มีใครสามารถจูงใจคุณได้นอกจากตัวคุณเอง

สร้างเส้นเวลาที่สมจริงและท้าทายตัวเองให้เสร็จในแต่ละส่วนให้ตรงเวลา คุณไม่มีอะไรจะแสดงสำหรับโครงการหากพวกเขาไม่เคยผ่านขั้นตอนการออกแบบ


0

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

งานสำคัญในการเขียนโปรแกรมไม่ได้ทำสิ่งที่น่าเบื่ออีกครั้งแต่ทำครั้งเดียวทำอย่างถูกต้องแล้วนำกลับมาใช้ใหม่ หรือดียิ่งขึ้น: หาคนที่เคยทำมาแล้วครั้งแล้วครั้งเล่า


0

ฉันเข้าใจว่าคุณมาจากไหน มันเป็นปัญหาที่คุณสนใจและเมื่อคุณเข้าใจแล้วการใช้งานก็ใช้งานได้

ทำไมคุณไม่เพียงออกแบบวิธีแก้ปัญหาและให้คนอื่นใช้


-1

สิ่งที่ฉันทำ:

  • วางตัวจับเวลาขนาดใหญ่ไว้ข้างหน้าฉัน (สามารถอยู่ในโหมดย้อนกลับเป็นหน่วยเป็นเวลา 1 ชั่วโมง)
  • บังคับให้ฉันต้องอยู่ให้ถึงจนกว่าจะถึงเป้าหมาย (บางครั้งมีเบียร์ฉันพบว่ามีแอลกอฮอล์เล็กน้อยช่วย)

ไม่ได้ผลเสมอไป

PS ฉันทำงานจากที่บ้าน

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