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

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

30
อะไรคือสัญญาณเตือนของการลงโทษที่ใกล้เข้ามาที่ต้องระวังในโครงการ? [ปิด]
การทำงานในโครงการที่ล้มเหลวเป็นหนึ่งในบางสิ่งที่โปรแกรมเมอร์ส่วนใหญ่มีเหมือนกันไม่ว่าจะใช้ภาษาอุตสาหกรรมหรือประสบการณ์อย่างไร โครงการเหล่านี้อาจเป็นประสบการณ์การเรียนรู้ที่ยอดเยี่ยมหายนะที่เกิดจากวิญญาณ (หรือทั้งสองอย่าง!) และสามารถเกิดขึ้นได้ด้วยเหตุผลหลายประการ: การเปลี่ยนแปลงผู้บริหารระดับสูงของหัวใจ ทีมที่มีฝีมือต่ำกว่า / ต่ำกว่าทรัพยากร การเกิดขึ้นของคู่แข่งที่เหนือกว่าในระหว่างรอบการพัฒนา การจัดการสูง / ต่ำ เมื่อคุณทำงานกับโครงการสองสามอย่างแล้วเป็นไปได้ไหมที่จะรับรู้ในระยะแรกว่าโครงการจะล้มเหลวหรือไม่ สำหรับผมเป็นสัญญาณที่มีขนาดใหญ่จะมีฮาร์ดดิสก์ภายนอกและรวดเร็วเส้นตายรวมกับคุณลักษณะคืบ ฉันเคยเห็นโปรเจ็กต์ที่วางแผนมาอย่างดีและดำเนินการตามกำหนดเวลาออกไปอย่างน่ากลัวเมื่อมีการร้องขอฟีเจอร์ล่าช้าเริ่มที่จะหมุนและเพิ่มเข้าไปใน "ส่งมอบ" ขั้นสุดท้าย ข้อเสนอของคำขอเหล่านี้ได้รับฉายาของColumboเนื่องจากไม่ค่อยออกจากห้องโดยไม่ขอ "อีกสิ่งหนึ่ง" อะไรคือสัญญาณเตือนที่คุณระวังสำหรับสัญญาณเตือนภัยที่กำลังจะมาถึงในหัวของคุณ?

25
ตรงไปตรงมาคุณชอบรหัสคาวบอยหรือไม่ [ปิด]
โปรแกรมเมอร์ส่วนใหญ่ปกป้องวิธีการทางการเมืองที่ถูกต้องเช่น Agile, Waterfall, RUP และอื่น ๆ บางคนทำตามวิธีการ แต่ไม่ทั้งหมด ตรงไปตรงมาถ้าคุณสามารถเลือกวิธีการที่แน่นอนคุณจะไปที่วิธีการ "ถูกต้อง" ที่สำคัญหรือคุณต้องการวิธีการ "ง่ายขึ้น" เช่นการเขียนโปรแกรมคาวบอย? ทำไม? ฉันรู้ว่ามันขึ้นอยู่กับ กรุณาอธิบายว่าคุณจะใช้อย่างใดอย่างหนึ่ง กรุณาพูดว่าคุณเห็นข้อได้เปรียบอะไรในการเข้ารหัสคาวบอย ดูเกี่ยวกับการเข้ารหัสคาวบอยใน Wikipedia

3
ภาษาการเขียนโปรแกรมใดที่ใช้ในการเขียนโปรแกรม BIOS
ตามที่ฉันเข้าใจรหัส BIOS / บิตสตรีมที่เก็บไว้ใน ROM ควรเป็นแบบทั่วไป (ทำงานร่วมกับหลายประเภท CPU หรือ ISAs) นอกจากนี้ฉันเห็นบนเว็บว่าเป็นไปได้ที่จะทิ้งโค้ดของมัน (และ "แยกส่วน" มัน) ดังนั้นในภาษาชุดคำสั่งหรือรหัสเครื่องที่เขียน? ไม่ต้องการตัวประมวลผลใด ๆ เพื่อดำเนินการหรือไม่ ถ้าเป็นเช่นนั้นฉันเดาว่ามันจะใช้ซีพียูภายนอกแล้วจะรู้ได้อย่างไรว่าชุดคำสั่งเฉพาะของชุดที่ใช้ อาจมีโปรเซสเซอร์ภายในหรือไม่
65 cpu  bios 

6
ควรใช้ Latin-1 มากกว่า UTF-8 เมื่อพูดถึงการกำหนดค่าฐานข้อมูลหรือไม่?
เรากำลังใช้งาน MySQL ที่ บริษัท ที่ฉันทำงานอยู่และเราสร้างทั้งแอปพลิเคชันสำหรับลูกค้าและภายในโดยใช้ Ruby on Rails เมื่อฉันเริ่มทำงานที่นี่ฉันพบปัญหาที่ฉันไม่เคยพบมาก่อน ฐานข้อมูลบนเซิร์ฟเวอร์ที่ใช้งานถูกตั้งค่าเป็น Latin-1 ซึ่งหมายความว่า MySQL มีข้อผิดพลาดเมื่อใดก็ตามที่มีการป้อนข้อมูลของผู้ใช้ที่ผู้ใช้คัดลอกและวางอักขระ UTF-8 เจ้านายของฉันเรียกว่า "ตัวละครที่ไม่ดี" เหล่านี้เนื่องจากส่วนใหญ่เป็นตัวละครที่ไม่สามารถพิมพ์ได้และบอกว่าเราต้องถอดมันออก ฉันได้พบวิธีในการทำเช่นนี้ แต่ในที่สุดเราก็ลงเอยด้วยสถานการณ์ที่จำเป็นต้องใช้อักขระ UTF-8 นอกจากนี้ยังเป็นเรื่องยุ่งยากโดยเฉพาะอย่างยิ่งเนื่องจากดูเหมือนว่าทางออกเดียวที่ฉันเคยอ่านเกี่ยวกับปัญหานี้คือการตั้งค่าฐานข้อมูลเป็น UTF-8 (เหมาะสมกับฉัน) อาร์กิวเมนต์เดียวที่ฉันได้ยินมาสำหรับการใช้ภาษาละติน -1 คือการอนุญาตให้ใช้ตัวอักษร UTF-8 ที่ไม่สามารถพิมพ์ได้สามารถทำให้การค้นหาข้อความ / ข้อความแบบเต็มใน MySQL นี่เป็นเรื่องจริงหรือ มีเหตุผลอื่นอีกหรือไม่ที่เราควรใช้ Latin-1 แทน UTF-8 ฉันเข้าใจว่ามันยอดเยี่ยมและแพร่หลายมากขึ้น

7
การเปรียบเทียบ 1 <10 ราคาถูกกว่า 1 <1000000 หรือไม่
ฉันเพิ่งใช้จำนวนประมาณ 1 พันล้านz-indexใน CSS และคิดเกี่ยวกับการเปรียบเทียบที่ต้องดำเนินต่อไป มีความแตกต่างของประสิทธิภาพในระดับ ALU ในการเปรียบเทียบระหว่างตัวเลขขนาดใหญ่มากและเล็กมากหรือไม่? ตัวอย่างเช่นหนึ่งในสองตัวอย่างนี้จะมีราคาแพงกว่าอีกตัวอย่างหนึ่งหรือไม่ snippet 1 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 10000000000000) { //do nothing } } snippet 2 for (int i = 0; i &lt; 10000000; i++){ if (i &lt; 1000) { //do nothing } }
65 performance  cpu 

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

8
ฉันจะจัดการกับโปรแกรมเมอร์ยาก ๆ ที่เข้าร่วมโครงการโอเพ่นซอร์สได้อย่างไร
ฉันมีสคริปต์โอเพนซอร์ซสำหรับเว็บไซต์หนึ่ง ๆ (ฉันพยายามไม่เรียกชื่ออะไรเลยที่นี่) ซึ่งฉันและนักพัฒนาซอฟต์แวร์รายอื่นเพิ่งย้ายมาที่ GitHub เราได้นักพัฒนาใหม่หลายคนตั้งแต่เราย้ายไปที่ระบบใหม่รวมถึงหนึ่งที่ใช้งานมากโดยเฉพาะ อย่างไรก็ตามสิ่งนี้ที่ใช้งานอยู่ได้เริ่มเปลี่ยนโครงการเป็นจำนวนมาก ก่อนอื่นเขาลบระบบการกำหนดเวอร์ชันของเรา (ไม่เหมือน Git แต่เป็นแบบนั้น - เราเรียกมันว่ารุ่นv4.1.16) และบอกว่ามันจะเป็นการดีกว่าที่จะส่งรหัสไปยังเว็บไซต์เมื่อเราคิดว่ามันพร้อม ขณะนี้ไม่มีสถานที่รวมศูนย์สำหรับวางบันทึกย่อประจำรุ่นซึ่งทำให้เกิดความรำคาญ สิ่งที่ทำให้ฉันพร้อมที่จะแพ็คกระเป๋าของฉันและไปคือสคริปต์การผลักดัน ผู้พัฒนารายอื่นในโครงการเขียนสคริปต์พุชแบบ Python เนื่องจากเราเก็บสคริปต์หลายเวอร์ชันออนไลน์ไว้ในที่ต่าง ๆ ฉันจึงเริ่มเขียนโปรแกรม Java ที่ใหญ่ขึ้นด้วยส่วนต่อประสานกราฟิกที่จะแทนที่สคริปต์ Python ฉันไปที่ IRC เพื่อแจ้งให้ทุกคนทราบเกี่ยวกับเรื่องนี้และฉันได้รับคำตอบที่น่ารำคาญจากโปรแกรมเมอร์ว่าสคริปต์ Python แบบเก่าสามารถทำทุกอย่างที่ฉันสามารถทำได้และมีน้ำหนักเบากว่ามาก (เขายังแสดงความคิดเห็นเกี่ยวกับข้อเท็จจริงที่ Python ดีกว่า Java และอื่น ๆ ) ฉันตรวจดูรหัสสำหรับสคริปต์การพุชเก่าและเห็นว่าไม่มีฟีเจอร์ใด ๆ ที่เขากล่าวว่ามีอยู่ ตอนนี้ฉันอยากรู้ว่าต้องทำอะไร ฉันใช้เวลาส่วนใหญ่ในโครงการนี้ดังนั้นฉันจึงไม่ต้องการลุกขึ้นและจากไป แต่ฉันพบว่ามันยากที่จะทำงานร่วมกับนักพัฒนาใหม่นี้ ในทางกลับกันตอนนี้เขาเป็นผู้ร่วมเดินทางอันดับ 1 ในโครงการโดยมีความมุ่งมั่นมากกว่าผู้พัฒนากลุ่มเป้าหมาย ฉันไม่แน่ใจจริงๆว่าจะทำอย่างไรกับเรื่องนี้ มีใครประสบปัญหานี้อีกหรือไม่ ถ้าเป็นเช่นนั้นคุณทำอะไร อัปเดต 1 …
65 open-source  team 

8
ฉันจะกอบกู้ฝึกงานได้อย่างไร [ปิด]
ตอนนี้ฉันทำงานเป็นนักศึกษาฝึกงานที่ บริษัท พัฒนาซอฟต์แวร์ที่ใหญ่และไม่ใช่ซอฟต์แวร์ ตำแหน่งที่ฉันสมัครไม่ใช่ตำแหน่งการพัฒนาโดยเฉพาะ แต่ทีมที่จ้างฉันต้องการ CS สำคัญเพื่อช่วยพยายามพัฒนาโครงการภายในบางอย่างสำหรับพวกเขา ฉันอยู่ที่นี่มาสี่สัปดาห์แล้วความสับสนเริ่มแรกก็เริ่มเสื่อมลง อย่างไรก็ตามฉันเป็น CS คนเดียวที่สำคัญในสำนักงานทั้งหมด - ไม่มีใครในทีมของฉันในอาคารหรือแม้แต่ในสถานที่ใกล้เคียงมีพื้นหลังใด ๆ ในการพัฒนาซอฟต์แวร์ สิ่งที่ดีที่สุดที่ฉันมีคือผู้จัดการฐานข้อมูลและแผนกของพวกเขาไม่ว่างที่จะสนับสนุนฉันกับโครงการของฉัน เพื่อนร่วมทีมของฉันกำลังช่วยฉันเรียนรู้ว่าพวกเขาทำงานอย่างไร (ซึ่งเป็นสิ่งสำคัญสำหรับฉันที่จะทำงานของฉัน) แต่ไม่มีใครช่วยงานของฉันเช่นพัฒนา โครงการที่พวกเขาให้ฉันมีขนาดใหญ่กว่าสิ่งที่ฉันทำในโรงเรียน เมื่อรวมกับความจริงที่ว่าฉันทำงานคนเดียวพยายามพัฒนาแอพพลิเคชั่นตั้งแต่เริ่มต้นโดยไม่มีรูปแบบของการชี้แนะหรือแม้กระทั่งเป้าหมายที่กำหนดไว้อย่างชัดเจน ฉันเพิ่งจะรู้ว่าฉันควรเริ่มต้นที่ไหนและตอนนี้ฉันอาจเหลือน้อยกว่าสองเดือน ฉันรู้สึกว่าฉันควรจะเรียนรู้กระบวนการพัฒนาซอฟต์แวร์ แต่ตอนนี้มันเหมือนกับว่าฉันรู้สึกถึงทางผ่านความมืด นี่เป็นเรื่องที่หนักใจสำหรับฉันเนื่องจากฉันไม่มั่นใจในทักษะการพัฒนาของฉันตั้งแต่แรก ฉันค้นคว้าและสอนตัวเองแล้ว แต่ฉันได้รับเพียงเล็กน้อยเท่านั้น พวกเขามีความคาดหวังสูงจากฉัน แต่ฉันไม่แน่ใจในความสามารถของฉันในการส่งมอบ เห็นได้ชัดว่าฉันต้องนั่งลงและพูดคุยกับผู้จัดการของฉันเกี่ยวกับตำแหน่งที่ฉันอยู่และฉันตั้งใจที่จะทำโดยเร็วที่สุด (พวกเขามักจะเดินทางและออกจากสำนักงาน) ฉันจะจัดการกับสิ่งนี้ได้อย่างไร การฝึกงานนี้จะจบลงก่อนที่ฉันจะรู้และฉันไม่ต้องการออกไปโดยไม่มีอะไรให้แสดงในช่วงเวลาที่ฉันอยู่ที่นี่ พวกเขาไม่ต้องการสิ่งนั้นและพวกเขาก็พร้อมที่จะช่วยเหลือฉันเสมอ แต่หากปราศจากความรู้เกี่ยวกับการเขียนโปรแกรมมีเพียงพวกเขาเท่านั้นที่สามารถทำได้ ฉันกลัวที่จะบอกพวกเขาว่าฉันไม่สามารถผลิตสิ่งที่ต้องการได้ ฉันจะเล่าเรื่องนี้ให้พวกเขาฟังได้อย่างไร ฉันเห็นนักศึกษาฝึกงานด้านวิศวกรรมได้รับความช่วยเหลือจากวิศวกรคนอื่น ๆ เรียนรู้วิธีทำงานของพวกเขาและฉันรู้สึกว่าฉันกำลังนั่งอยู่ที่นี่เพื่อควบคุมเวลาของฉัน คำแนะนำเกี่ยวกับวิธีการแก้ไขสถานการณ์ของฉันจะได้รับการชื่นชมอย่างมาก ปรับปรุง ฉันขอขอบคุณข้อเสนอแนะที่เป็นประโยชน์จากทุกคนมันช่วยทำให้ฉันสบายใจ สิ่งแรกที่ฉันได้พบกับผู้จัดการและหัวหน้างานของฉัน เราพูดถึงสิ่งที่คาดหวังจากเวลาของฉันที่นี่ พวกเขาเข้าใจว่าฉันไม่มีเวลามากพอสำหรับการฝึกงานและสิ่งนี้ช่วยกำหนดขอบเขตประเภทของกรอบงานที่เราต้องการบรรลุซึ่งจะช่วยให้ผู้ฝึกงานหรือพนักงานในอนาคตคาดหวังต่อสิ่งที่ฉันทิ้งไว้ ฉันยังได้แจ้งข้อกังวลของฉันเกี่ยวกับความสามารถของฉันด้วยเวลาที่กำหนดซึ่งพวกเขาเข้าใจและคาดหวัง ฉันได้รับโทรศัพท์จากผู้ดูแลฐานข้อมูลในที่อื่นผู้จัดการของฉันได้พูดคุยกับหัวหน้างานของเขาและพวกเขาจะสนับสนุนโครงการของฉันซึ่งตอนนี้จะให้ทรัพยากรแก่ฉันเพื่อใช้งานดังนั้นฉันจึงไม่ได้นั่งอยู่เฉยๆ ฉันกำลังทำ นั่นเป็นเพียงครึ่งเดียว …

13
มันสมเหตุสมผลที่จะป้องกัน null ทุกตัวชี้ dereferenced หรือไม่
ในงานใหม่ฉันได้รับการตั้งค่าสถานะในการตรวจสอบรหัสสำหรับรหัสเช่นนี้: PowerManager::PowerManager(IMsgSender* msgSender) : msgSender_(msgSender) { } void PowerManager::SignalShutdown() { msgSender_-&gt;sendMsg("shutdown()"); } ฉันบอกว่าวิธีสุดท้ายควรอ่าน: void PowerManager::SignalShutdown() { if (msgSender_) { msgSender_-&gt;sendMsg("shutdown()"); } } นั่นคือฉันจะต้องใส่NULLยามรอบmsgSender_ตัวแปรแม้ว่ามันจะเป็นข้อมูลส่วนตัว มันยากสำหรับฉันที่จะควบคุมตัวเองจากการใช้คำไม่สุภาพเพื่ออธิบายว่าฉันรู้สึกอย่างไรกับ 'ปัญญา' ชิ้นนี้ เมื่อฉันขอคำอธิบายฉันได้รับเรื่องราวสยองขวัญเกี่ยวกับวิธีการเขียนโปรแกรมจูเนียร์บางปีสับสนว่าชั้นเรียนควรจะทำงานอย่างไรและลบสมาชิกที่เขาไม่ควรมี (โดยไม่ตั้งใจ) และNULLหลังจากนั้น เห็นได้ชัด) และสิ่งที่พัดขึ้นในด้านขวาหลังจากการเปิดตัวผลิตภัณฑ์และเราได้ "เรียนรู้วิธีที่ยากไว้วางใจเรา" ว่ามันจะดีกว่าที่จะเพียงแค่NULLตรวจสอบทุกอย่าง สำหรับฉันแล้วมันให้ความรู้สึกเหมือนการเขียนโปรแกรมลัทธิคาร์โก้ง่ายและเรียบง่าย เพื่อนร่วมงานที่มีความหมายดีบางคนพยายามอย่างจริงจังที่จะช่วยฉัน 'เข้าใจ' และดูว่าสิ่งนี้จะช่วยให้ฉันเขียนรหัสที่มีประสิทธิภาพมากขึ้นได้อย่างไร แต่ ... ฉันไม่สามารถรู้สึกเหมือนพวกเขาเป็นคนที่ไม่ได้รับมัน . มันสมเหตุสมผลสำหรับมาตรฐานการเข้ารหัสที่ต้องการให้ทุกตัวชี้เดียวที่ถูกอ้างถึงในฟังก์ชั่นถูกตรวจสอบNULLก่อน - แม้แต่สมาชิกข้อมูลส่วนตัว? (หมายเหตุ: เพื่อให้เป็นไปตามบริบทเราได้จัดทำอุปกรณ์อิเล็กทรอนิกส์สำหรับผู้บริโภคไม่ใช่ระบบควบคุมการจราจรทางอากาศหรือผลิตภัณฑ์ 'ความล้มเหลวเท่ากับคนตาย') แก้ไข : ในตัวอย่างข้างต้นผู้msgSender_ทำงานร่วมกันไม่จำเป็น …

1
Dijkstra ทำหน้าที่อะไรให้อาสาสมัครซึ่งถูกกล่าวถึงในกระดาษ“ The Humble Programmer” ของเขา?
ในกระดาษ "Humble Programmer" ของ Dijkstraเขากล่าวว่าเขาได้ให้ปัญหาแก่อาสาสมัครเพื่อแก้ปัญหา: “ ฉันใช้การทดลองเขียนโปรแกรมเล็กน้อยกับอาสาสมัครที่มีประสบการณ์จริง ๆ แต่มีบางอย่างที่ไม่ได้ตั้งใจและไม่คาดคิดเกิดขึ้น อาสาสมัครของฉันไม่พบวิธีแก้ไขที่ชัดเจนและงดงามที่สุด จากการวิเคราะห์อย่างใกล้ชิดสิ่งนี้กลับกลายเป็นว่ามีแหล่งที่มาทั่วไป: ความคิดของพวกเขาเกี่ยวกับการทำซ้ำนั้นเชื่อมโยงอย่างแน่นแฟ้นกับความคิดของตัวแปรควบคุมที่เกี่ยวข้องที่จะก้าวขึ้นมา วิธีแก้ปัญหาของพวกเขามีประสิทธิภาพน้อยลงโดยไม่จำเป็นต้องเข้าใจยากและใช้เวลานานมากในการค้นหาพวกเขา” ปัญหาที่ Dijkstra ให้กับอาสาสมัครคืออะไร การแก้ปัญหาคืออะไร?

5
เหตุใดบางโครงการขนาดใหญ่เช่น Git และ Debian ให้ใช้รายการส่งเมลเท่านั้นไม่ใช่ตัวติดตามปัญหา
ตัวติดตามบั๊กสำหรับโปรเจคที่มีขนาดเหมาะสมดูเหมือนจะเป็นเรื่องง่ายสำหรับฉัน - มันทำให้การจัดระเบียบปัญหานับแสนเป็นเรื่องง่ายโดยไม่เกิดปัญหาการชนหรือการมั่วสุมกัน ดังนั้นเมื่อฉันเห็นโครงการขนาดใหญ่จริง ๆ เช่น Git โดยใช้รายชื่อผู้รับจดหมายเป็นวิธีหลักในการประสานงานการบำรุงรักษาและการพัฒนาฉันก็รู้สึกปลิวไปนิดหน่อย ตัวอย่าง: Git -หน้าชุมชน : ... รายงานข้อผิดพลาดควรถูกส่งไปยังรายการจดหมายนี้ ระบบติดตามบั๊ก Debianตาม Wikipedia: ... คุณสมบัติที่เป็นเอกลักษณ์คือมันไม่มีรูปแบบของเว็บอินเตอร์เฟสเพื่อแก้ไขรายงานบั๊ก - การแก้ไขทั้งหมดจะกระทำผ่านอีเมล เครื่องมือติดตามบั๊กสมัยใหม่หลายรุ่นมีการรวมที่ดีมากกับอีเมล (คุณสามารถรับความคิดเห็นหรือการแจ้งเตือนเกี่ยวกับข้อผิดพลาดที่คุณกำลังรับชมหรือที่ได้รับมอบหมายให้คุณ) รวมถึงระบบควบคุมเวอร์ชัน (คอมมิชชัน .) สิ่งนี้จะต้องทำด้วยตนเองพร้อมกับรายชื่อผู้รับจดหมายและคุณจะได้รับอีเมลจำนวนมากเกี่ยวกับข้อบกพร่องที่คุณไม่สนใจ ดังนั้นอะไรคือข้อดีหลักของรายชื่อผู้รับจดหมายผ่านตัวติดตามบั๊กบนเว็บ เหตุใดบางโครงการขนาดใหญ่จึงใช้รายการส่งจดหมายเท่านั้น

8
สร้างระบบฐานข้อมูลของฉันเอง [ปิด]
ฉันต้องการเรียนรู้วิธีการทำงานของฐานข้อมูลเพื่อใช้งานได้อย่างมีประสิทธิภาพมากขึ้นและวิธีการเรียนรู้ของฉันก็คือการทำ ฉันต้องการสร้างระบบฐานข้อมูลของตัวเอง ฉันไม่ได้หมายถึงการสร้างฐานข้อมูลเทียมที่จะใช้แบบสอบถามเพื่อแยกไฟล์ นี่จะเป็นเพียงระบบไฟล์ที่มีภาษาคิวรี ฉันกำลังพูดถึงโครงสร้างที่แท้จริงของโปรแกรมฐานข้อมูล และเนื่องจากสิ่งที่ฉันมีอยู่ในใจคือไม่เกี่ยวข้องหรือไม่เกี่ยวข้องกับเอกสาร (เป็น "โหนดที่มุ่งเน้น" หากยังมีอยู่) ฉันจะต้องมีทรัพยากรใด ๆ ที่จะเป็นนามธรรมและระดับสูงที่สุดเท่าที่จะทำได้ ดังนั้นฉันจะไปเกี่ยวกับการสร้างที่ได้อย่างไร ฉันสามารถอ่านทรัพยากร / บทช่วยสอน / หนังสือใดให้เข้าใจ ภาษาไม่สำคัญเลยแม้แต่น้อย ตามหลักการแล้วรหัสนั้นจะเป็นรหัสเทียมเพื่อแสดงแนวคิดไม่ผูกติดกับภาษาใดภาษาหนึ่ง แต่จะทำทุกอย่าง ฉันไม่สามารถพบสิ่งใดในเรื่องบน google (เนื่องจากฉันไม่รู้หนังสือในเรื่องนี้บางทีฉันอาจไม่ได้เข้าสู่การค้นหาที่ถูกต้อง) หากทรัพยากรดังกล่าวไม่พร้อมใช้งานฉันคาดเดาบางอย่างเกี่ยวกับวิธีการสร้างลูกค้าอย่างน้อยก็จะเป็นขั้นตอนในทิศทางที่ถูกต้อง

17
วิธีการเขียนลูปที่ถูกต้อง?
เวลาส่วนใหญ่ในขณะที่เขียนลูปฉันมักจะเขียนเงื่อนไขขอบเขตที่ไม่ถูกต้อง (เช่น: ผลลัพธ์ไม่ถูกต้อง) หรือข้อสันนิษฐานของฉันเกี่ยวกับการยุติลูปนั้นผิด (เช่นลูปที่รันไม่สิ้นสุด) แม้ว่าฉันจะได้สมมติฐานที่ถูกต้องหลังจากการทดลองและข้อผิดพลาดบางอย่าง แต่ฉันก็หงุดหงิดเกินไปเพราะขาดรูปแบบการคำนวณที่ถูกต้องในหัวของฉัน /** * Inserts the given value in proper position in the sorted subarray i.e. * array[0...rightIndex] is the sorted subarray, on inserting a new value * our new sorted subarray becomes array[0...rightIndex+1]. * @param array The whole array whose initial elements [0...rightIndex] are …

6
EAV - มันแย่จริง ๆ ในทุกสถานการณ์หรือไม่?
ฉันคิดว่าจะใช้โมเดลเอนทิตีแอตทริบิวต์ - ค่า (EAV)สำหรับบางสิ่งในโครงการหนึ่ง แต่คำถามทั้งหมดเกี่ยวกับเรื่องนี้ใน Stack Overflowจบลงด้วยคำตอบที่เรียกว่า EAV เป็นรูปแบบการต่อต้าน แต่ฉันสงสัยว่ามันผิดในทุกกรณีหรือไม่ สมมติว่าเอนทิตีผลิตภัณฑ์ของร้านค้ามันมีคุณสมบัติทั่วไปเช่นชื่อคำอธิบายรูปภาพและราคาที่มีส่วนร่วมในหลาย ๆ ตรรกะและมีคุณสมบัติที่เป็นเอกลักษณ์ (กึ่ง) เช่นนาฬิกาและลูกบอลชายหาดจะอธิบายด้วยแง่มุมที่แตกต่างกันโดยสิ้นเชิง ดังนั้นฉันคิดว่า EAV จะเหมาะสำหรับการจัดเก็บคุณลักษณะเฉพาะ (กึ่ง) เหล่านั้น ทั้งหมดนี้เป็นการสมมติว่าสำหรับการแสดงรายการผลิตภัณฑ์มันเป็นข้อมูลที่เพียงพอในตารางผลิตภัณฑ์ (นั่นหมายความว่าไม่มี EAV ที่เกี่ยวข้อง) และเมื่อแสดงผลิตภัณฑ์เดียว / เปรียบเทียบผลิตภัณฑ์สูงสุด 5 รายการ / ฯลฯ ใช้ข้อมูลที่บันทึกโดยใช้ EAV ฉันเคยเห็นวิธีการดังกล่าวในการค้าของวีโอไอพีและค่อนข้างเป็นที่นิยมดังนั้นมีกรณีที่ EAV เหมาะสมหรือไม่

14
เป็นเรื่องปกติหรือไม่ที่ บริษัท จะมีโปรแกรมเมอร์ในตารางที่เข้มงวดเช่นนี้ [ปิด]
ดังนั้นฉันจึงทำงานนี้มาสองสามเดือนแล้ว ฉันผิดหวังเล็กน้อยเพราะฉันทำงานได้ดีที่สุดตั้งแต่ 2 ถึง 7 ในงานก่อนหน้านี้ฉันมาที่ 9: 30-10: 00 และออกจากที่ 7 บาง บริษัท ก็โอเคกับเรื่องนี้คนอื่น ๆ ก็ไม่ได้ . แต่ บริษัท ปัจจุบันของฉันยืนยันว่าฉันอยู่ที่นั่นเวลา 8:30 น. การเบี่ยงเบนจากเรื่องนี้เป็นเรื่องใหญ่ เป็นเรื่องปกติหรือไม่ ฉันมีเพื่อนร่วมงานที่เป็น 9:30 ถึง 6:30, 10: 00-7: 00 คน ... แต่บางทีนั่นอาจเป็นเพียงวัฒนธรรมเริ่มต้น? ฉันไม่เห็นว่าทำไมเพราะฉันไม่ได้พบลูกค้า ฯลฯ สิ่งที่เป็นประโยชน์ในการมีสิ่งที่แข็งทื่อ ฉันไม่เห็นด้วยเช่นกันว่าทำไมบางครั้งความเคลื่อนไหว 15 ถึง 20 นาทีทำไมผู้คนไม่คิดว่าฉันจะปรับเวลาออกจาก ... ความคาดหวังที่ไม่สมเหตุสมผลเหล่านี้เป็นนักพัฒนาหรือฉันขาดอะไรไปหรือเปล่า?

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