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

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

4
อะไรคือคำศัพท์สำหรับการฟื้นฟูสภาพประเภทนี้
ฉันแน่ใจว่ามีคำศัพท์สำหรับการรีแฟคเตอร์ต่อไปนี้ แต่ฉันจำไม่ได้และ Google-fu ของฉันกำลังทำให้ฉันล้มเหลว! refactor จะย้ายถ้าข้อความไปยังตำแหน่งที่พวกเขาจะได้รับผลกระทบมากที่สุดเช่นการเปลี่ยนแปลง $test = someFunctionThatReturnsABool(); for($x = 0; $x < 10000; $x++) { if ($test) { echo $x; } } สำหรับสิ่งนี้ $test = someFunctionThatReturnsABool(); if ($test) { for($x = 0; $x < 10000; $x++) { echo $x; } }

5
อะไรคือข้อดีของ myBatis over Hibernate [ปิด]
ฉันได้ทำการค้นคว้าด้วยตัวเองและเข้าใจแนวคิดพื้นฐานแล้ว แต่ข้อมูลเชิงลึกบางอย่างสามารถรับได้จากประสบการณ์จริงเท่านั้น อะไรคือข้อดีของ myBatis ที่จะทำให้คุ้มค่าในการเรียนรู้กรอบใหม่ คุณจะหลีกเลี่ยงการใช้งานในกรณีใด

4
Dart มีคุณสมบัติที่มีประโยชน์สำหรับโปรแกรมเมอร์เว็บหรือไม่?
http://www.dartlang.org/ ฉันตรวจสอบเว็บไซต์อย่างรวดเร็วและอยากรู้อยากเห็น มีข้อดีของการใช้ Dart หรือไม่? มันเป็นเพียงการแทนที่สำหรับ JavaScript? ดูเหมือน Java ที่ง่ายกว่า การเขียนภาษา C # ในที่ทำงานค่อนข้างมากภาษารู้สึกเหมือนกับที่ฉันคุ้นเคยดังนั้นการเรียนรู้ไวยากรณ์จึงดูเหมือนเป็นเรื่องง่ายที่จะเรียนรู้ มีใครมีความคิดเห็นหรือประสบการณ์เกี่ยวกับภาษาบ้างไหม? (เทียบกับ CoffeeScript (= ฉันไม่ได้ทำไวยากรณ์ Ruby) ไวยากรณ์นั้นดูคุ้นเคยสำหรับฉัน)
33 javascript  dart 

6
ซอฟต์แวร์ของฉันโฮสต์บนเว็บไซต์ "ไม่ดี" ฉันสามารถทำอะไรกับมันได้หรือไม่
แก้ไข:ขอบคุณสำหรับคำตอบทั้งหมดพวกคุณ! ฉันคิดว่าฉันจะรวมข้อความบางอย่างไว้ในหน้าเว็บของฉันเพื่อบอกให้ผู้ใช้ดาวน์โหลดเฉพาะจากลิงก์ที่ให้ไว้ ประเด็นก็คือมีบางเว็บไซต์ที่ถูกกฎหมายและผิดกฎหมายที่ได้รับซอฟต์แวร์ของฉันดังนั้นจึงปลอดภัยกว่าที่จะบอกผู้ใช้ให้หลีกเลี่ยงเว็บไซต์ใด ๆ ที่ฉันไม่ได้เชื่อมโยง ขอบคุณมากสำหรับความช่วยเหลือ! เดิม: ซอฟต์แวร์ที่ฉันสร้างขึ้นนั้นโฮสต์กับสิ่งที่คุณสามารถเรียกได้ว่าเป็นเว็บไซต์ "ไม่ดี" มันยากที่จะอธิบายดังนั้นฉันจะยกตัวอย่าง ฉันสร้างรหัสผ่านฟรี พร้อมด้วยซอฟต์แวร์ฟรีอื่น ๆ ของฉันส่วนใหญ่มีอยู่ในเว็บไซต์นี้ นี่คือคำอธิบายซอฟต์แวร์ของพวกเขา: Platform: 7/7 x64/Windows 2K/XP/2003/Vista Size: 61.6 Mb License: Trial File Type: .7z Last Updated: June 4th, 2011, 15:38 UTC Avarage Download Speed: 6226 Kb/s Last Week Downloads: 476 Toatal Downloads: 24908 ขนาดที่เอียงไม่เพียง แต่ไม่ใช่ซอฟต์แวร์ทดลองใช้ แต่เป็นซอฟต์แวร์ฟรี สิ่งนี้ไม่ใช่คำอธิบายที่ฉันกังวล …

8
ฉันจะเขียนชุดฟังก์ชั่นที่สามารถเรียกใช้จาก (เกือบ) ภาษาการเขียนโปรแกรมได้อย่างไร?
ฉันต้องการหาวิธีเขียน API ที่สามารถเข้าถึงได้จากภาษาโปรแกรมอื่น ๆ ผ่านการเชื่อมโยงภาษา (หรือกรอบงานอื่น ๆ ) เป็นไปได้ที่จะทำเช่นนี้? ถ้าใช่ภาษาการเขียนโปรแกรมใดจะเหมาะที่สุดสำหรับการเขียน "ข้ามภาษา" API เป้าหมายของฉันคือการสร้างฟังก์ชั่นชุดเดียวที่ฉันสามารถเข้าถึงได้จากภาษาการเขียนโปรแกรมใด ๆ ที่ฉันทำงานด้วยเพื่อที่ฉันจะได้ไม่ต้องเขียน API ใหม่ทั้งหมดในแต่ละภาษาด้วยตนเอง
33 api  languages  binding 

3
ทำไมไม่ Green Threads
ในขณะที่ฉันรู้ว่าคำถามนี้ได้รับการครอบคลุมแล้ว (เช่นhttps://stackoverflow.com/questions/5713142/green-threads-vs-non-green-threads ) ฉันไม่รู้สึกว่าฉันได้รับคำตอบที่น่าพอใจ . คำถามคือ: ทำไม JVM ไม่สนับสนุนเธรดสีเขียวอีกต่อไป? มันบอกว่านี้ในแบบโค้ด Java คำถามที่พบบ่อย : เธรดสีเขียวหมายถึงโหมดการทำงานของ Java Virtual Machine (JVM) ซึ่งโค้ดทั้งหมดจะถูกดำเนินการในเธรดระบบปฏิบัติการเดียว และสิ่งนี้จบบนjava.sun.com : ข้อเสียคือการใช้เธรดสีเขียวหมายถึงเธรดระบบบน Linux ไม่ได้รับประโยชน์และดังนั้นเครื่องเสมือน Java จึงไม่สามารถปรับขนาดได้เมื่อเพิ่มซีพียูเพิ่มเติม สำหรับฉันแล้วดูเหมือนว่า JVM อาจมีกระบวนการของระบบเท่ากับจำนวนแกนประมวลผลจากนั้นจึงรันเธรดสีเขียวที่ด้านบนของนั้น สิ่งนี้อาจมีข้อได้เปรียบที่ยิ่งใหญ่เมื่อคุณมีเธรดจำนวนมากซึ่งบล็อกบ่อยครั้ง (ส่วนใหญ่เป็นเพราะจำนวนสูงสุดของเธรด JVM ในปัจจุบัน) คิด?

1
คำทั่วไปสำหรับทั้งวิธีการและคุณสมบัติคืออะไร
ในแผนภาพคลาสแต่ละคลาสมีเมธอดและคุณลักษณะ คำที่ถูกต้องในการอธิบายทั้งสองคำนั้นนอกเหนือจากสิ่งทั่วไปเช่นเนื้อหาหรือรายการอะไร บริบท: ชั้นสีส้มขยายชั้นผลไม้และสืบทอดสิ่งต่างๆ โดยที่stuff = คำเดียวสำหรับทั้งเมธอดและแอตทริบิวต์

10
มุมมองและโมเดลควรสื่อสารหรือไม่?
ตามหน้าวิกิพีเดียสำหรับสถาปัตยกรรม MVCมุมมองนั้นจะได้รับการแจ้งเตือนจากตัวแบบได้อย่างอิสระและยังมีอิสระในการสอบถามตัวแบบเกี่ยวกับสถานะปัจจุบันของมัน อย่างไรก็ตามตามหลักสูตรของ Paul Hegarty บน iOS 5 ที่ Stanford การบรรยายที่ 1 หน้า 18การโต้ตอบทั้งหมดจะต้องผ่านตัวควบคุมด้วย Model and View ที่ไม่ควรจะรู้จักกัน มันไม่ชัดเจนสำหรับฉันถ้าคำแถลงของ Hegarty จะต้องทำให้ง่ายขึ้นสำหรับหลักสูตร แต่ฉันอยากพูดว่าเขาตั้งใจออกแบบเช่นนี้ คุณจะอธิบายมุมมองตรงข้ามทั้งสองนี้ได้อย่างไร
33 design  mvc 

6
การชนของ UUID [ปิด]
มีใครทำวิจัยจริงเกี่ยวกับความน่าจะเป็นของการชนของ UUID โดยเฉพาะกับ UUIDs รุ่นที่ 4 (สุ่ม) เนื่องจากเครื่องกำเนิดหมายเลขสุ่มที่เราใช้นั้นไม่ได้สุ่มอย่างแท้จริงและเราอาจมีเครื่องที่เหมือนกันหลายสิบหรือหลายร้อยเครื่องทำงานด้วยรหัสเดียวกัน สร้าง UUIDs หรือไม่ เพื่อนร่วมงานของฉันพิจารณาการทดสอบว่าการชนกันของ UUID นั้นเป็นการเสียเวลาอย่างสมบูรณ์ แต่ฉันมักจะใส่รหัสเพื่อตรวจสอบข้อยกเว้นคีย์ซ้ำจากฐานข้อมูลและลองใหม่ด้วย UUID ใหม่ แต่นั่นจะไม่แก้ปัญหาถ้า UUID มาจากกระบวนการอื่นและอ้างถึงวัตถุจริง
33 random  uuid 

10
ผ่านตัวแปรสมาชิกเป็นพารามิเตอร์วิธี
ในโครงการฉันพบรหัสเช่นนี้: class SomeClass { private SomeType _someField; public SomeType SomeField { get { return _someField; } set { _someField = value; } } protected virtual void SomeMethod(/*...., */SomeType someVar) { } private void SomeAnotherMethod() { //............. SomeMethod(_someField); //............. } }; ฉันจะโน้มน้าวให้เพื่อนร่วมทีมของฉันว่านี่เป็นรหัสไม่ดีได้อย่างไร ฉันเชื่อว่านี่เป็นภาวะแทรกซ้อนที่ไม่จำเป็น ส่งผ่านตัวแปรสมาชิกเป็นพารามิเตอร์เมธอดทำไมถ้าคุณสามารถเข้าถึงมันได้? นี่ก็เป็นการละเมิด encapsulation คุณเห็นปัญหาอื่น ๆ ของรหัสนี้หรือไม่?

4
เหตุใดชุมชน Git จึงไม่สนใจความแตกต่างแบบเคียงข้างกัน [ปิด]
ฉันเคยใช้ Windows, SVN, Tortoise SVN และ Beyond Compare มันเป็นการผสมผสานที่ยอดเยี่ยมสำหรับการทำรีวิวโค้ด ตอนนี้ฉันใช้ OSX และ Git ฉันจัดการเพื่อรวมสคริปต์ bash เข้าด้วยกันพร้อมกับ Gitx และ DiffMerge เพื่อหาวิธีแก้ปัญหาที่แทบจะไม่ได้รับการยอมรับ ฉันงงกับการตั้งค่านี้และสิ่งที่คล้ายกันมานานกว่าหนึ่งปี ฉันได้ลองใช้ Github diff Viewer และ Gitx diff Viewer แล้วดังนั้นฉันจึงไม่ได้ให้โอกาสพวกเขา มีคนฉลาดมากมายที่ทำสิ่งดีๆกับ Git เหตุใดจึงไม่เคียงข้างกันกับตัวเลือกในการดูไฟล์ทั้งหมด กับคนที่ใช้ทั้งคู่ฉันไม่เคยได้ยินใครที่ชอบ +/- ดูดีกว่าอย่างน้อยก็เป็นมากกว่าการตรวจสอบด่วน
33 git 

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

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

8
SOLID, หลีกเลี่ยงโดเมนโลหิตจาง, การฉีดพึ่งพา?
แม้ว่านี่อาจเป็นคำถามที่ไม่เชื่อเรื่องภาษา แต่ฉันก็สนใจที่จะตอบคำถามเกี่ยวกับระบบนิเวศ. NET นี่คือสถานการณ์สมมติว่าเราจำเป็นต้องพัฒนาแอปพลิเคชั่นคอนโซลอย่างง่ายสำหรับการบริหารสาธารณะ แอปพลิเคชันเกี่ยวกับภาษีรถยนต์ พวกเขา (เท่านั้น) มีกฎเกณฑ์ทางธุรกิจดังต่อไปนี้: 1.a) หากยานพาหนะเป็นรถยนต์และครั้งสุดท้ายที่เจ้าของชำระภาษีคือ 30 วันที่ผ่านมาเจ้าของจะต้องจ่ายอีกครั้ง 1.b) หากยานพาหนะเป็นมอเตอร์ไซค์และครั้งสุดท้ายที่เจ้าของชำระภาษีคือ 60 วันที่ผ่านมาเจ้าของจะต้องจ่ายอีกครั้ง กล่าวอีกนัยหนึ่งถ้าคุณมีรถคุณต้องจ่ายทุก ๆ 30 วันหรือถ้าคุณมีมอเตอร์ไซค์คุณต้องจ่ายทุก ๆ 60 วัน สำหรับยานพาหนะแต่ละคันในระบบแอปพลิเคชันควรทดสอบกฎเหล่านั้นและพิมพ์ยานพาหนะเหล่านั้น (หมายเลขทะเบียนรถและข้อมูลเจ้าของรถ) ที่ไม่เป็นที่พอใจ สิ่งที่ฉันต้องการคือ: 2.a) สอดคล้องกับหลักการ SOLID (โดยเฉพาะอย่างยิ่งหลักการ Open / Closed) สิ่งที่ฉันไม่ต้องการคือ (ฉันคิดว่า): 2.b) โดเมนโลหิตจางดังนั้นตรรกะทางธุรกิจจึงควรเข้าสู่องค์กรธุรกิจ ฉันเริ่มต้นด้วยสิ่งนี้: public class Person // You wanted a banana but what you …
33 c#  .net  design  architecture 

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

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