คุณจะรับมือกับข้อผิดพลาดที่แปลกประหลาดจริงๆที่ทำให้คุณงงมานานกว่า 10 ชั่วโมงได้อย่างไร? [ปิด]


29

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


3
คำอธิบายของคุณอาจถูกต้อง - รีบูตและลองอีกครั้ง!
NoChance

5
โพสต์ไว้ใน StackOverflow แน่นอน :)
วิลเลียม

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

5
“ เมื่อการเดินทางยากขึ้นการนอนหลับยากและปล่อยให้จิตใต้สำนึกทำงานได้” - อานนท์
Michael Easter

2
1. หาคนมาช่วย คนสองคนเป็นสิ่งจำเป็น 2. จำกัด ให้แคบลงโดยใช้คำสั่ง debug ในจำนวนที่มากเกินไป มีไฟล์ที่ทุก ๆ หนึ่งบรรทัดถูกนำหน้าด้วยแมโครดีบั๊กเพื่อระบุไฟล์ที่ถูกแยก
เอสเอฟ

คำตอบ:


9

สำหรับปัญหาที่น่ากลัวจริงๆกลยุทธ์ของฉันมักจะเป็นดังนี้

  • การทดลองและ google พยายามแก้ปัญหาต่อไป ส่วนใหญ่เวลานี้แก้ปัญหาได้ในหนึ่งชั่วโมงหรือน้อยกว่า

  • ดังนั้นมันจึงไม่ได้ผล หยุดพัก. ทานกาแฟคุยเรื่องที่ไม่เกี่ยวข้องกับเพื่อนร่วมงาน ผลักปัญหาออกจากใจของคุณ เมื่อคุณมองปัญหา 5 หรือ 10 นาทีหลังจากนั้นคุณกำลังมองจากมุมมองที่แตกต่างออกไปเล็กน้อย ส่วนใหญ่เวลานี้ใช้งานได้

  • ในกรณีนี้มันไม่ได้ ดังนั้นใช้เวลาอีก 10 - 30 นาทีดูมัน จากนั้นโทรหาเพื่อนร่วมงาน แต่ก่อนที่คุณจะทำบันทึกบางอย่าง; คุณต้องการแสดงปัญหาทำซ้ำจากนั้นทำรายการสิ่งที่คุณได้ลองและที่สำคัญที่สุดพิสูจน์ว่าคุณได้ลองแล้ว ดังนั้นควรทำแห้งก่อน ตั้งเครื่องหมายหนังสือไว้ในรหัสให้ปิดเอกสารที่เปิดฟุ่มเฟือยอื่น ๆ ด้วยวิธีนี้คุณอาจแก้ปัญหาด้วยตัวคุณเองหรือเมื่อคุณแสดงให้เห็นถึงปัญหาที่คุณไม่ต้องเสียเวลา

  • ขอให้เพื่อนร่วมงานของคุณทำให้คุณพิสูจน์สมมติฐานทั้งหมดของคุณ setter นั้นถูกเรียกจริงหรือไม่? เป็นวิธีการที่คืนสิ่งที่คุณอ้างว่าจริง ๆ หรือไม่ คุณคิดว่าวัตถุนั้นไม่เป็นโมฆะ - แสดงให้พวกมันเห็นว่าไม่เป็นโมฆะ

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

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

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

  • ทำอย่างอื่นถ้าคุณใช้เวลา 5 ชั่วโมงกับปัญหาในการทิ้งเวลาไว้อีกวัน บางทีคุณอาจได้รับคำตอบที่มีประโยชน์ บางทีเมื่อคุณโจมตีปัญหาในวันถัดไปมันจะชัดเจน

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

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


79

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


17
คุณสามารถลองเป็ดยางได้ด้วย en.wikipedia.org/wiki/Rubber_duck_debugging
Dave Nay

2
19 จาก 20 ใช่ สิ่งที่แย่ที่สุดของฉันไม่เคยได้รับการแก้ไขเพียงแก้ไขได้ ไม่มีสภาพแวดล้อมการทดสอบที่แสดงให้เห็นเพียงสภาพแวดล้อมการผลิตเต็มรูปแบบในการดำเนินงาน - เราไม่สามารถทำซ้ำได้หลังจากชั่วโมง
Loren Pechtel

3
หนีจากสิ่งที่ทำให้คุณรำคาญได้ยาก - แต่ฉันพบมาหลายปีแล้วว่ามันเป็นสิ่งที่ดีที่สุดที่จะทำ จิตใต้สำนึกสามารถทำงานกับปัญหาในขณะที่คุณกินนอนหลับดีดูทีวี ... และในวันถัดไป (หรือวันรุ่งขึ้น) สิ่งต่าง ๆ จะดีขึ้น หนึ่งคำเตือน: รวบรวมข้อมูลก่อนที่คุณจะเดินออกไป ... การเดินออกไปนั้นไม่เหมือนกับการเพิกเฉยและไม่แสร้งทำที่นั่น คุณยังต้องทำงานหนัก!
quick_now

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

3
มีวิทยาศาสตร์โนวาที่น่าทึ่งซึ่งจัดโดย Neil deGrasse Tyson ซึ่งได้พูดคุยเกี่ยวกับศาสตร์แห่งการนอนหลับ ในนั้นมีการกล่าวถึงปรากฏการณ์ของการต่อสู้กับปัญหาหัวของคุณเป็นเวลาหลายชั่วโมงไปนอนหลับและตื่นขึ้นมาและแก้ไขได้ทันที เมื่อเรานอนหลับสมองของเราจะเปลี่ยนเหตุการณ์ในแต่ละวันของเราซ้ำแล้วซ้ำอีกวิเคราะห์จากมุมที่แตกต่างกัน สิ่งที่ทิ้งไว้ข้างหลังคือเส้นทางประสาทใหม่ที่สามารถช่วยให้เราเห็นปัญหาด้วยวิธีการใหม่ทั้งหมดโดยไม่รู้ตัวและจากนั้นก็แก้ปัญหาได้จริง น่ากลัวมาก
Byrne Reese

44

ก่อนถึงสิบชั่วโมงฉันจะได้รับความช่วยเหลือ

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

12
+1 สำหรับการลบทุกอย่างจนกว่าปัญหาจะหายไป
โจนาห์

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

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

17

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

ดวงตาคู่นั้นและอีกดวงตาหนึ่งมีค่ามากกว่าทุกครั้งที่คุณเสียเวลาจ้องมองอะไรบางอย่าง

ฉันจะไม่ใช้จ่ายเกินกว่า 45 นาทีถึงหนึ่งชั่วโมงเพื่อพยายามแก้ปัญหาในการนั่งเพียงครั้งเดียวซึ่งเป็นการฝ่าฝืนกฎหมายว่าด้วยผลตอบแทนที่ลดลง


ขอบคุณมากฉันอ่านบทความบอกเวลาเกี่ยวกับวิกิพีเดียมีประโยชน์มาก
Adel

7

อธิบายปัญหาให้คนอื่นฟัง

โดยการอธิบายปัญหาให้ผู้อื่นคุณต้องชี้แจง: นี่มักจะช่วยให้คุณเห็นวิธีแก้ปัญหา

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

ฉันพบว่าการนอนหลับที่มีปัญหา (บางครั้งสองสามวัน) ก็สามารถช่วยได้เช่นกัน


1
"คนอื่น" ไม่จำเป็นต้องเป็นมนุษย์ บางครั้งฉันอธิบายสิ่งต่าง ๆ กับแมวและ aha! ฉันพบปัญหา
DarenW

ฉันควรซื้อแมวจริงๆด้วย ฉันจะฝึกให้เกาหัวตามต้องการ
Adel

ใครบางคนควรทำให้กระดาษแข็งขนาดเท่าชีวิตจริงถูกตัดออกจาก Jon Skeet
ดอน Roby

5

ฉันมีแผนสามขั้นตอน:

  1. รับกาแฟหรือเครื่องดื่มแสนอร่อยอื่น ๆ
  2. ทำงานอย่างอื่นตลอดทั้งวัน
  3. "โทรศัพท์เพื่อน" และดูเดิลบนไวท์บอร์ด

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


คำแนะนำที่ดี! ดังนั้น "Phone a friend" จึงถูกอ้างถึงเพราะมันควรจะถูก จำกัด ไว้ที่ 60 วินาทีเช่นเดียวกับเศรษฐีใช่ไหม? ฉันชอบความคิดไวท์บอร์ดเช่นกัน
Adel

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

4

นอนเหนือมัน

มิฉะนั้นโทรหาใครบางคนที่อยู่ใกล้ ๆ และขอให้เขาดูรหัสอย่างรวดเร็ว

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


3

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


3

ฉันมักจะทำหนึ่งในสามของ:

  1. เดินเล่น / ขี่จักรยาน ... บางอย่างที่ทำให้คุณไม่อยู่กับคอมพิวเตอร์
  2. เล่นกับสุนัขหรือแมวของฉัน
  3. หากคุณมีงานอดิเรกลองทำสักพัก

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


3

สร้างชุดการทดสอบเพื่อกำหนดเป้าหมายข้อบกพร่องที่แน่นอนและแยกมันออก

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

การอ่านที่แนะนำ: Pragmatic Programmerโดยเฉพาะตอนที่ 10: Tracer bullets


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

โปรแกรมเมอร์ในทางปฏิบัติเป็นเลิศ
Adel

2

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


2

แก้ไข:

คำตอบสั้น ๆ :

ถาม: คุณจัดการข้อผิดพลาดที่แปลกประหลาดจริง ๆ ที่ทำให้คุณงงงวยนานกว่า 10 ชั่วโมงได้อย่างไร?

ตอบ: ให้แน่ใจว่าสิ่งเหล่านั้นจะไม่เกิดขึ้น: เข้าใจการออกแบบของคุณรู้รหัสของคุณเรียนรู้วิธีใช้ดีบักเกอร์ของคุณ


คำอธิบาย:

"ในที่ที่ดูเหมือนว่าเครมลินเพิ่งกระโดดลงไปลึกเข้าไปในชิปของคุณและทำอะไรซักอย่าง"

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

ยิ่งเมื่อคุณเขียนรหัสของคุณคุณควรรู้อยู่แล้วว่าทำไมและทำไมจึงน่าจะล้มเหลว

ต้องบอกว่า - ถามเพื่อน, โพสต์บน SO, retracing และย้อนกลับขั้นตอนของคุณและหยุดพัก - คำแนะนำทั้งหมดที่กล่าวถึงข้างต้นจะช่วย

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


ความสามารถในการหวนกลับขั้นตอนของตัวเองมีความสำคัญ ขอขอบคุณ!
Adel

> ความสามารถในการหวนกลับขั้นตอนของบุคคลนั้นมีความสำคัญ ซอฟต์แวร์ SourceControl เป็นกุญแจสำคัญในการย้อนกลับ / ย้อนกลับ เป็นเรื่องเกี่ยวกับมันและถ้าคุณสามารถตั้งค่าการตั้งค่าของคุณเพื่อบังคับให้คุณแสดงความคิดเห็นเมื่อเช็คอิน
เวกเตอร์

3
น่าเสียดายที่ไม่ว่าคุณจะรู้รหัสได้ดีแค่ไหน แต่บางครั้งปัญหาก็คือการมีปฏิสัมพันธ์กับโค้ดของคนอื่น
Nate CK

2
+1 @Nate CK- จริงมาก ข้อผิดพลาดประเภทที่เลวร้ายที่สุดเกิดขึ้นเมื่อคุณกลับมาพูดพล่อยๆบางอย่างจากบริการเว็บที่คุณไว้ใจ ฉันมีผู้ขาย Saas อยู่พักหนึ่งซึ่งเปลี่ยนฟังก์ชั่นบางอย่างโดยไม่มีการเตือนในบริการเว็บ ฉันต้องอธิบายให้นักพัฒนาทราบถึงวิธีแก้ไขบั๊กของตัวเองทางโทรศัพท์ในขณะที่เขาอธิบายให้ฉันฟังว่าโค้ดของเขาเป็นอย่างไร
Morgan Herlocker

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

1

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

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


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

1

ป้อนคำอธิบายรูปภาพที่นี่

อาบน้ำ.

แฟนๆ ของRodney McKay ?

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

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


ความคิดที่ดี .... ตอนนี้ฉันแค่ต้องการให้เจ้านายใส่อ่าง soaker ครึ่งโหลในสำนักงาน
Dave Nay

หากกองทหารกุฏิเท่านั้นที่มีห้องแบบนั้น
Adel

1

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

ถ้าไม่เดินเล่น


1

การรวมกันของสิ่งเหล่านี้:

  • หลีกหนีจากมันซักพักหนึ่งเพื่อที่จะได้นั่งบนหลังเตา นอนหลับพักผ่อนกินเดินอะไรก็ได้

  • ตรวจสอบปัญหาเพิ่มเติมมีอะไรอีกที่ทำผิดมีอาการอะไรอีกบ้างที่คุณสามารถพบได้

  • วิจัยปัญหาดูว่าคุณสามารถค้นหาอะไร อย่าลืมลองใช้คำหลักอื่น

  • ลองอะไรที่แตกต่างกัน หลีกเลี่ยง เทคนิคการดีบักที่แตกต่างกัน เครื่องมือตรวจสอบ คอมพิวเตอร์เครื่องอื่น

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

  • เริ่มต้นใหม่! หากเหมาะสมให้ลองรีสตาร์ทคอมพิวเตอร์เซิร์ฟเวอร์ ฯลฯ หากไม่มีอะไรอื่นคุณสามารถใช้เวลาคิด

  • สอบถาม StackOverflow! เราพร้อมให้ความช่วยเหลือ


1

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

  1. ยืนยันว่าไม่เพียงเกิดขึ้นกับคุณ สิ่งนี้สามารถช่วยคุณประหยัดเวลาได้มาก บางทีคุณอาจถอนการติดตั้งองค์ประกอบที่จำเป็นหรือทำการเปลี่ยนแปลงในสภาพแวดล้อมของคุณและข้อยกเว้นจะถูกกลืนบางส่วนในรหัสของคุณ หากเกิดขึ้นเฉพาะคุณฉันจะใช้เครื่องมือเปรียบเทียบสภาพแวดล้อม ฉันเพิ่งอ่านเกี่ยวกับซอฟต์แวร์ที่เรียกว่า Envy ซึ่งอนุญาตให้คุณทำเช่นนั้นแม้ว่าจะไม่ใช่ฟรีแวร์ แต่มีราคา 10 USD

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

  3. ไม่มีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้? หากเป็นข้อผิดพลาดที่เฉพาะเจาะจงมาก (ข้อยกเว้น) ให้เรียก 'stackoverflow' ตอนนี้ไม่ได้ฟังดูดีกว่า 'google it' แต่ฉันรู้สึกดีที่จะบอกว่าฉันค้นหา stackoverflow ครั้งแรกสำหรับการวิจัยการเขียนโปรแกรมมากกว่า google หากเป็นปัญหาที่ทราบกันดีมีโอกาสมากที่คุณจะพบวิธีแก้ปัญหาที่นี่ ถ้าไม่เช่นนั้นโพสต์คำถามบนไซต์ stackexchange ที่เกี่ยวข้อง คุณอาจได้รับคำตอบที่รวดเร็วมากหรือไม่เช่นนั้นคำถามของคุณก็จะอยู่ที่นั่นในขณะที่คุณทำการค้นคว้าเพิ่มเติม นั่นเป็นประโยชน์

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

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

  6. เมื่อมาถึงจุดนี้ถ้าเป็นไปได้ให้เดินออกไปสักพักหรือทั้งวัน ฉันอ่านทวีตที่แท้จริงมากเมื่อวานนี้ที่พูดว่า "ฉันเข้านอนคิดว่า 'วิธีการที่ fck' และตื่นขึ้นมาคิด 'แต่แน่นอน'" จริงอยู่

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

  8. เพิ่มการใช้เครื่องมือลงในรหัสของคุณ

  9. ทวีตเกี่ยวกับมัน ??


1

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

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

ในยุคปัจจุบันมีสิ่งอื่น ๆ อีกมากมายที่โต้ตอบกับระบบ - ไฟร์วอลล์, AV, สปายแวร์, การอัปเดตอัตโนมัติที่เกิดขึ้นทุกคืน - คุณต้องจัดการกับเป้าหมายที่เคลื่อนไหว


เป็นความจริงที่ว่า 'ผู้ทำให้ปัญหาเกิดความผิดพลาดผู้แก้ปัญหา'
Adel

-1

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


-1
  1. จดบันทึกปัญหา
  2. คิดหนัก
  3. ใช้งานโซลูชัน

กระชับดีมาก!
Adel

1
จริงๆแล้วไม่มี การคิดหนักเกินไปในแทร็กเดียวกันนั้นเป็นสิ่งที่แย่ที่สุดที่คุณสามารถทำได้ 'ท้าทายแจกแจงทบทวนและทดสอบสมมติฐานแต่ละข้อของคุณอย่างเป็นระบบ'เป็นวิธีแก้ปัญหาที่นี่ ผู้คนกำลังพูดถึงกลวิธีต่าง ๆ เพื่อให้บรรลุเป้าหมายนั้น
smci
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.