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

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

6
ทำไม Java 8 ถึงไม่รวมคอลเลกชันที่ไม่เปลี่ยนรูป?
ทีมงาน Java ได้ทำงานอย่างยอดเยี่ยมในการขจัดอุปสรรคในการเขียนโปรแกรมการทำงานใน Java 8 โดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงของ java.util Collections ทำหน้าที่ได้อย่างยอดเยี่ยมในการแปลงสายสัมพันธ์ให้เป็นการดำเนินการที่รวดเร็วมาก เมื่อพิจารณาว่างานที่พวกเขาทำเพิ่มฟังก์ชันชั้นหนึ่งและวิธีการทำงานในคอลเลกชันได้ดีเพียงใดทำไมพวกเขาถึงล้มเหลวในการจัดหาคอลเลกชันที่ไม่เปลี่ยนรูปแบบหรือแม้แต่อินเตอร์เฟสคอลเล็กชันที่ไม่เปลี่ยนรูปแบบโดยสิ้นเชิง โดยไม่ต้องเปลี่ยนรหัสใด ๆ ที่มีอยู่ทีม Java สามารถเพิ่มอินเทอร์เฟซที่ไม่เปลี่ยนรูปได้ซึ่งเป็นอินเทอร์เฟซที่ไม่เปลี่ยนรูปได้ลบเมธอด "set" และทำให้อินเตอร์เฟสที่มีอยู่ขยายออกจากพวกเขาเช่นนี้ ImmutableIterable ____________/ | / | Iterable ImmutableCollection | _______/ / \ \___________ | / / \ \ Collection ImmutableList ImmutableSet ImmutableMap ... \ \ \_________|______________|__________ | \ \___________|____________ | \ | \___________ | …

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

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

30
การให้นักพัฒนาซอฟต์แวร์ที่พัฒนาช้าลงส่งผลให้รหัสเร็วขึ้น / มีประสิทธิภาพมากขึ้นหรือไม่? [ปิด]
สมมติว่าฉันให้นักพัฒนาของฉันมีเครื่องที่รวดเร็ว VS2010 ที่ใช้ WPF โหลดเร็วมาก ผู้พัฒนาจึงสร้างแอปพลิเคชัน WPF หรือ WPF / e ที่ทำงานได้ดีบนกล่องของเขา แต่ช้าลงมากในโลกแห่งความเป็นจริง คำถามนี้มีสองส่วน ... 1) ถ้าฉันให้นักพัฒนาเครื่องช้าลงนั่นหมายความว่ารหัสผลลัพธ์อาจเร็วขึ้นหรือมีประสิทธิภาพมากขึ้น 2) ฉันสามารถทำอะไรได้บ้างเพื่อให้ผู้พัฒนาได้รับประสบการณ์ IDE ที่รวดเร็วในขณะที่ให้ประสบการณ์รันไทม์ 'ทั่วไป' ปรับปรุง: สำหรับบันทึกนี้ฉันกำลังเตรียมคำตอบที่ตรงกับการจัดการ นี่ไม่ใช่ความคิดของฉันและคุณก็ช่วยฉันแก้ไขคำขอที่ผิดของลูกค้าของฉัน ขอบคุณที่ให้กระสุนแก่ฉันมากขึ้นและอ้างอิงถึงตำแหน่งและเวลาที่จะเข้าใกล้สิ่งนี้ ฉันได้ +1 กรณีการใช้งานที่ถูกต้องเช่น: - การเพิ่มประสิทธิภาพการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์เฉพาะ - ห้องปฏิบัติการทดสอบ - เป็นไปได้ที่จะซื้อเซิร์ฟเวอร์ที่ดีกว่าแทนที่จะเป็นกราฟิกการ์ดสายด้านบน
130 ide  testing  performance 

9
มีข้อยกเว้นในฐานะโฟลว์คอนโทรลที่ถือว่าเป็น antipattern ที่ร้ายแรง ถ้าเป็นเช่นนั้นทำไม
ย้อนกลับไปในช่วงปลายยุค 90 ฉันทำงานค่อนข้างน้อยด้วยรหัสฐานที่ใช้ข้อยกเว้นเป็นตัวควบคุมการไหล มันใช้เครื่องจักรสถานะ จำกัด เพื่อขับเคลื่อนแอปพลิเคชั่นโทรศัพท์ เมื่อไม่นานมานี้ฉันนึกถึงวันนั้นเพราะฉันทำเว็บแอป MVC พวกเขาทั้งคู่มีControllers ที่ตัดสินใจว่าจะไปที่ไหนต่อไปและให้ข้อมูลกับตรรกะปลายทาง การกระทำของผู้ใช้จากโดเมนของโทรศัพท์เก่าโรงเรียนเช่นโทน DTMF กลายเป็นพารามิเตอร์กับวิธีการดำเนินการ แต่แทนที่จะกลับสิ่งที่ต้องการพวกเขาโยนViewResultStateTransitionException ฉันคิดว่าความแตกต่างที่สำคัญคือวิธีการดำเนินการเป็นvoidหน้าที่ ผมจำไม่ได้ทุกสิ่งที่ฉันทำกับความเป็นจริงนี้ แต่ผมเคยลังเลที่จะได้ไปลงที่ถนนในการจดจำมากเพราะตั้งแต่งานที่เหมือน 15 ปีที่ผ่านมาผมไม่เคยเห็นนี้ในรหัสการผลิตที่งานอื่น ๆ ฉันสันนิษฐานว่านี่เป็นสัญญาณว่าเป็นรูปแบบการต่อต้านที่เรียกว่า เป็นกรณีนี้หรือไม่และถ้าเป็นเช่นนั้นทำไม อัปเดต: เมื่อฉันถามคำถามฉันมีคำตอบในใจของ @ MasonWheeler ดังนั้นฉันจึงไปพร้อมกับคำตอบที่เพิ่มความรู้ให้มากที่สุด ฉันคิดว่าเขาเป็นคำตอบที่ดีเช่นกัน

16
มีวิธีใดที่จะได้เร็วขึ้นในการแก้ข้อบกพร่อง? ฉันเพิ่งได้รับคำเตือนจากหัวหน้าของฉัน [ปิด]
เจ้านายของฉันเพิ่งบอกฉันว่าฉันจะได้รับการตรวจสอบประสิทธิภาพเชิงลบในวันจันทร์ เขาต้องการพูดคุยกับฉันเกี่ยวกับสาเหตุที่ฉันช้ามากและทำไมอัตราการแก้ไขข้อบกพร่องของฉันจึงต่ำมาก ฉันรักการเขียนโปรแกรมและการแก้ปัญหา แต่จริง ๆ แล้วฉันหางานของฉันได้ยากจริงๆ ฉันเป็นโปรแกรมเมอร์มาประมาณ 10 ปีแล้ว แต่นี่เป็นงานลินุกซ์ฝังตัวแบบมัลติเธรดครั้งแรกของฉัน - ฉันอยู่ที่นี่มา 2 ปีแล้วและเห็นได้ชัดว่าทุกคนยังคงดิ้นรนอยู่ และฉันคิดว่าฉันกลายเป็นคนขวัญเสียและรู้สึกว่าด้อยโอกาสฉันได้สูญเสียไฟจำนวนมากที่เกิดขึ้นตอนเริ่มงาน มีใครเคยอยู่ในสถานการณ์ที่คล้ายคลึงกันและคุณจะเพิ่มอัตราการแก้ไขข้อบกพร่องอย่างไร? อัปเดต: ฉันมีความเห็น ฉันได้รับ 'โปรแกรมการพัฒนาพนักงาน' 3 เดือน (ประเภทที่ Dunk กล่าวถึง) ไม่แน่ใจว่าฉันจะหันไปทางนี้ได้ไหม แต่ถึงแม้ว่าฉันต้องเดินหน้าต่อไปฉันก็ได้เรียนรู้มากมายจากประสบการณ์นี้ การปรับปรุงอื่น ตอนนี้ประมาณ 6 สัปดาห์ตั้งแต่รีวิวครั้งแรก คำแนะนำของฉันกับทุกคนที่เผชิญสถานการณ์เดียวกันคือการอ่อนน้อมถ่อมตนพอที่จะวิจารณ์และเรียนรู้จากความผิดพลาด และไม่ต้องกลัวที่จะดูโง่ ถามคำถามมากมาย บอกให้ทุกคนรู้ว่าคุณกำลังพยายามเรียนรู้และถามต่อไปจนกว่าคุณจะเข้าใจ แต่ต้องเตรียมพร้อมสำหรับมันที่จะไม่ออกไปทำงาน ฉันกำลังสร้างแฟ้มสะสมผลงานของรหัส ... รวมทั้งให้ภาพที่ดีที่สุดของฉัน ยังเป็นอีกหนึ่งการปรับปรุง ฉันลังเลที่จะใส่สิ่งนี้ไว้ที่นี่เนื่องจากฉันกังวลว่าฉันจะไม่สามารถอ้างถึงนายจ้างในอนาคตไปยังโปรไฟล์สแต็คโอเวอร์โฟลว์ของฉัน ... แต่อย่างไรก็ตามมันอาจจะเป็นที่สนใจสำหรับใครบางคนที่อ่านคำถามนี้ งานไม่กี่สัปดาห์ที่ผ่านมา ฉันอยู่ท่ามกลางการแปรงของทักษะทั้งหมดที่ฉันต้องการ - ฉันได้รับมากจากคำแนะนำที่ได้รับที่นี่

14
แสดงให้เห็นถึงรหัสที่ไม่ดีให้กับลูกค้า?
ลูกค้าขอให้ฉันออกแบบเว็บไซต์ของพวกเขาใหม่ซึ่งเป็นแอพพลิเคชั่น ASP.NET Webforms ที่พัฒนาโดยที่ปรึกษาอื่น ดูเหมือนว่างานจะค่อนข้างตรงไปตรงมา แต่หลังจากดูรหัสแล้วมันชัดเจนว่าไม่ใช่กรณี แอปพลิเคชันนี้เขียนได้ไม่ดี เลย มันมีความเสี่ยงอย่างยิ่งต่อการโจมตีด้วยการฉีด SQL, ตรรกะทางธุรกิจถูกกระจายไปทั่วทั้งแอปพลิเคชั่น, มีการทำซ้ำจำนวนมาก, และรหัสสิ้นสุดที่ไม่ทำอะไรเลย ยิ่งไปกว่านั้นมันยังทำการขว้างข้อยกเว้นที่ถูกปกปิดดังนั้นไซต์ดูเหมือนจะทำงานได้อย่างราบรื่น งานของฉันคือเพียงแค่อัปเดต HTML และ CSS แต่ HTML ส่วนใหญ่ถูกสร้างขึ้นในตรรกะทางธุรกิจและจะเป็นฝันร้ายที่จะสังคายนา การประเมินของฉันในการออกแบบใหม่นานกว่าที่ลูกค้าคาดหวัง พวกเขาถามว่าทำไมนาน ฉันจะอธิบายให้ลูกค้าฟังว่ารหัสนี้แย่แค่ไหน? ในความคิดของพวกเขาแอปพลิเคชั่นทำงานได้ดีและการออกแบบควรจะเป็นแบบครั้งเดียวที่รวดเร็ว มันเป็นคำของฉันกับที่ปรึกษาก่อนหน้านี้ ฉันจะยกตัวอย่างง่ายๆที่เป็นรูปธรรมที่ลูกค้าที่ไม่ใช่ด้านเทคนิคจะเข้าใจได้อย่างไร ปรับปรุง ขอขอบคุณสำหรับการตอบสนองทุก. การสาธิตการโจมตีการฉีด SQL นั้นสมเหตุสมผลและฉันจะสาธิตสิ่งนี้ในสภาพแวดล้อมการทดสอบ นั่นเป็นเพียงส่วนหนึ่งของปัญหามากมายในแอปพลิเคชันนี้ ฉันกำลังมองหาวิธีที่จะอธิบายว่าทำไมส่วนอื่น ๆ (เช่น html ที่ถูกสร้างขึ้นในชั้นข้อมูล) จะต้องถูกแทนที่ด้วยแนวทางปฏิบัติที่ดีกว่าเพื่อให้การอัปเดต html และ css เกิดขึ้น มีคำแนะนำที่ดีมากมายที่นี่ซึ่งฉันจะพูดคุยด้วยกันเมื่อฉันพูดคุยกับลูกค้าของฉัน

7
URL ส่วนบุคคลที่ไม่สามารถคาดเดาได้นั้นเทียบเท่ากับการตรวจสอบด้วยรหัสผ่านหรือไม่
ฉันต้องการที่จะเปิดเผยทรัพยากรบนเว็บ ฉันต้องการปกป้องทรัพยากรนี้: เพื่อให้แน่ใจว่าบุคคลบางคนสามารถเข้าถึงได้เท่านั้น ฉันสามารถตั้งค่าการรับรองความถูกต้องด้วยรหัสผ่านบางประเภท ตัวอย่างเช่นฉันสามารถอนุญาตการเข้าถึงทรัพยากรผ่านเว็บเซิร์ฟเวอร์ที่ตรวจสอบคำขอขาเข้าสำหรับข้อมูลรับรองที่ถูกต้อง (อาจเทียบกับฐานข้อมูลสำรองบางส่วนของผู้ใช้) ก่อนแสดงไฟล์ อีกวิธีหนึ่งคือฉันเพียงแค่สามารถใช้URL ส่วนตัว นั่นคือฉันสามารถโฮสต์ทรัพยากรในเส้นทางที่คาดเดาไม่ได้บางตัวอย่างเช่นhttps://example.com/23idcojj20ijf...ซึ่ง จำกัด การเข้าถึงผู้ที่รู้จักสตริงที่แน่นอน จากมุมมองของผู้ชั่วร้ายที่ต้องการเข้าถึงทรัพยากรนี้วิธีการเหล่านี้เทียบเท่าหรือไม่ ถ้าไม่สิ่งที่ทำให้พวกเขาแตกต่างกันอย่างไร และเท่าที่การบำรุงรักษามีข้อดีข้อเสียของวิธีการอย่างใดอย่างหนึ่งที่ฉันควรทราบก่อนดำเนินการอย่างใดอย่างหนึ่งหรือไม่?

16
การแก้ไขข้อผิดพลาดจะเกิดขึ้นมากเกินไปถ้าเคย?
ลองนึกภาพคุณกำลังสร้างเครื่องเล่นวิดีโอใน JavaScript เครื่องเล่นวิดีโอนี้ลูปวิดีโอของผู้ใช้ซ้ำ ๆ โดยใช้ฟังก์ชั่นวนซ้ำและด้วยเหตุนี้เบราว์เซอร์จะทริกเกอร์too much recursion RangeErrorในบางครั้ง อาจไม่มีใครจะใช้คุณสมบัติลูปที่มาก แอปพลิเคชันของคุณจะไม่ทิ้งข้อผิดพลาดนี้แม้ว่าผู้ใช้จะออกจากลูปแอปพลิเคชันเป็นเวลาหนึ่งสัปดาห์ แต่ก็ยังคงมีอยู่ การแก้ไขปัญหาจะทำให้คุณต้องออกแบบวิธีการวนซ้ำในแอปพลิเคชันของคุณซึ่งจะใช้เวลานานพอสมควร คุณทำอะไร? ทำไม? แก้ไขข้อบกพร่อง ออกจากบั๊ก คุณไม่ควรแก้ไขข้อบกพร่องที่คนจะสะดุดหรือไม่ การแก้ไขข้อผิดพลาดจะกลายเป็น overkill เมื่อใด? แก้ไข: หากวิธีการเวียนเกิดไม่ได้ก่อให้เกิดข้อผิดพลาดที่เกิดขึ้นจริงเป็นกังวลสำหรับคุณสมมติว่าแต่ละครั้งที่ผู้เล่น loops 1วิดีโอตัวแปรที่เพิ่มขึ้นด้วย หลังจาก 2 53ลูปตัวแปรนี้จะล้นและโปรแกรมของคุณจะไม่สามารถจัดการได้โดยส่งข้อยกเว้น

11
การเพิ่มความซับซ้อนของระบบส่งผลต่อโปรแกรมเมอร์รุ่นต่อ ๆ ไปอย่างไร?
ในฐานะโปรแกรมเมอร์ "ใหม่" (ฉันเขียนบรรทัดของรหัสในปี 2009 เป็นครั้งแรก) ฉันสังเกตว่ามันค่อนข้างง่ายที่จะสร้างโปรแกรมที่แสดงองค์ประกอบที่ค่อนข้างซับซ้อนในปัจจุบันด้วยสิ่งต่าง ๆ เช่น. NET Framework การสร้างส่วนต่อประสานที่มองเห็นหรือการเรียงลำดับรายการสามารถทำได้ด้วยคำสั่งน้อยมากในขณะนี้ เมื่อฉันเรียนรู้ที่จะเขียนโปรแกรมฉันก็ได้เรียนรู้ทฤษฎีการคำนวณแบบขนาน สิ่งต่าง ๆ เช่นการเรียงลำดับอัลกอริธึมหลักการทำงานร่วมกันของฮาร์ดแวร์พีชคณิตแบบบูลและเครื่องจักรสถานะ จำกัด แต่ฉันสังเกตว่าถ้าฉันต้องการทดสอบหลักพื้นฐานบางอย่างที่ฉันได้เรียนรู้ในทางทฤษฎีมันเป็นเรื่องยากมากที่จะเริ่มต้นเพราะเทคโนโลยีมากมายถูกบดบังด้วยสิ่งต่าง ๆ เช่นห้องสมุดกรอบและระบบปฏิบัติการ การสร้างโปรแกรมที่ใช้หน่วยความจำนั้นมีความจำเป็น 40/50 ปีที่แล้วเพราะมีหน่วยความจำไม่เพียงพอและมีราคาแพงดังนั้นโปรแกรมเมอร์ส่วนใหญ่จึงให้ความสำคัญกับชนิดข้อมูลและวิธีการจัดการตัวประมวลผล ทุกวันนี้บางคนอาจโต้แย้งว่าเนื่องจากกำลังการประมวลผลที่เพิ่มขึ้นและหน่วยความจำที่มีอยู่ความกังวลเหล่านั้นจึงไม่ใช่เรื่องสำคัญ คำถามของฉันคือถ้าโปรแกรมเมอร์เก่าเห็นนวัตกรรมเช่นนี้เป็นสวรรค์หรือเลเยอร์เพิ่มเติมที่เป็นนามธรรมผ่านและทำไมพวกเขาอาจคิดอย่างนั้น? และโปรแกรมเมอร์ที่อายุน้อยกว่าจะได้รับประโยชน์จากการเรียนรู้การเขียนโปรแกรมระดับต่ำมากขึ้นก่อนที่จะสำรวจอาณาจักรของห้องสมุดที่กว้างขวางหรือไม่? ถ้าเป็นเช่นนั้นทำไม

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

15
ค่าคงที่แบบอักขระเดียวดีกว่าตัวอักษรจริงหรือไม่
เมื่อเร็ว ๆ นี้ฉันได้พบกับชั้นเรียนที่ให้ตัวละครทุกตัวเป็นค่าคงที่ ทุกอย่างจากการCOMMA BRACKET_OPENสงสัยว่าสิ่งนี้จำเป็นหรือไม่ ฉันอ่าน"บทความ"ซึ่งแสดงว่าอาจเป็นประโยชน์ในการดึงตัวอักษรเดียวให้อยู่ในค่าคงที่ ดังนั้นฉันสงสัย ความสนใจหลักของการใช้ค่าคงที่คือลดการบำรุงรักษาเมื่อจำเป็นต้องมีการเปลี่ยนแปลง แต่เมื่อไหร่เราจะเริ่มใช้สัญลักษณ์ที่แตกต่างจาก ',' เพื่อเป็นตัวแทนของเครื่องหมายจุลภาค? เหตุผลเดียวที่ฉันเห็นการใช้ค่าคงที่แทนตัวอักษรคือการทำให้โค้ดอ่านง่ายขึ้น แต่เป็นcity + CharacterClass.COMMA + stateตัวอย่างที่อ่านได้ง่ายกว่าจริงcity + ',' + stateหรือ สำหรับฉันข้อเสียมากกว่าข้อดีส่วนใหญ่ที่คุณแนะนำชั้นอื่นและนำเข้าอีก และฉันเชื่อในรหัสน้อยที่สุด ดังนั้นฉันสงสัยว่าฉันทามติทั่วไปอยู่ที่นี่

3
อะไรคือความหมายของชีวิตจริงสำหรับใบอนุญาต Apache 2 [ปิด]
ฉันต้องการใช้การแก้ไข SVGสำหรับโครงการ ซอฟต์แวร์นี้เผยแพร่ภายใต้ลิขสิทธิ์ Apache 2 ฉันเคยเห็นว่า: สำเนาทั้งหมดดัดแปลงหรือไม่ได้แก้ไขจะถูกแนบมาพร้อมกับสำเนาใบอนุญาต การดัดแปลงทั้งหมดมีการทำเครื่องหมายอย่างชัดเจนว่าเป็นงานของตัวดัดแปลง ประกาศเกี่ยวกับลิขสิทธิ์เครื่องหมายการค้าและสิทธิ์ในสิทธิบัตรทั้งหมดจะทำซ้ำอย่างถูกต้องในสำเนาแจกจ่าย ผู้รับใบอนุญาตจะไม่ใช้เครื่องหมายการค้าใด ๆ ที่เป็นของผู้อนุญาต สิ่งเหล่านี้เกี่ยวข้องกับรหัสหรือฉันควรแสดงใบอนุญาตที่ไหนสักแห่งใน GUI หรือไม่? ซอฟต์แวร์เดิมแสดง "powered by SVG แก้ไข" มันก็โอเคถ้าผมเอานี้หรือไม่? และที่สำคัญที่สุด: มารยาทที่ถูกต้องสำหรับการทำเช่นนี้คืออะไร? ฉันไม่ต้องการที่จะกระตุก แต่ในเวลาเดียวกันผมต้องการที่จะลดความซับซ้อนของ UI มากที่สุดเท่าที่เป็นไปได้และถอดการเชื่อมโยงจะเป็นส่วนหนึ่งของมันถ้ามันไม่ถือว่าหยาบคาย

18
ฉันจะเรียกเก็บเงินสำหรับการเขียนโปรแกรมสิ่งต่าง ๆ ซึ่งใช้เวลาสองนาทีในการแก้ไขอย่างไร [ปิด]
ฉันสับสนกับสิ่งนี้จริงๆ ฉันเชื่อว่ายิ่งฉันได้รับประสบการณ์มากเท่าไหร่ฉันยิ่งเป็นผู้เชี่ยวชาญในการค้นหาข้อผิดพลาดและแก้ไขได้อย่างรวดเร็วยิ่งขึ้น ตอนนี้หัวหน้าของฉันได้รับเว็บไซต์จากโปรแกรมเมอร์ผู้ทำการเขียนโค้ดแย่มาก ตอนนี้เขาส่งรายการปัญหาเพื่อแก้ไข สมมติว่าเป็นปัญหาสไตล์ชีทและชายชราไม่รู้วิธีแก้ไข แต่เนื่องจากประสบการณ์ของฉันฉันรู้ได้ทันทีว่าปัญหาคืออะไรและฉันสามารถแก้ไขได้ในสองนาทีและปัญหาที่คล้ายกันหลายอย่างเช่นนั้น แต่หลังจากแก้ไขทั้งหมดที่ฉันรู้แล้วว่าฉันได้แก้ไขปัญหาทั้งหมดใน 15 นาทีซึ่งคนอื่นไม่สามารถแก้ไขได้ ฉันได้รับ 25 $ ต่อชั่วโมงดังนั้นฉันจึงรู้สึกแย่มากที่คิดเงิน 6 $ สำหรับรายการสิ่งต่าง ๆ ซึ่งใช้เวลาหลายปีในการเรียนรู้ ตกลงหรือไม่ที่จะเรียกเก็บเงิน 6 $ หรือควรมีวิธีคิดค่าธรรมเนียม
127 freelancing 

11
มีอะไรที่สามารถทำได้ด้วยการเรียกซ้ำที่ไม่สามารถทำได้ด้วยการวนซ้ำ?
มีบางครั้งที่การใช้การเรียกซ้ำนั้นดีกว่าการใช้การวนซ้ำและเวลาที่การใช้การวนซ้ำนั้นดีกว่าการใช้การวนซ้ำ การเลือก "สิทธิ" สามารถบันทึกทรัพยากรและ / หรือส่งผลให้มีรหัสบรรทัดน้อยลง มีกรณีใดบ้างที่ภารกิจสามารถทำได้โดยใช้การเรียกซ้ำเท่านั้นแทนที่จะวนซ้ำหรือไม่?
126 recursion  loops 

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