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

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

4
จะปรับการโยกย้ายจาก Java 6 เป็น Java 7 ได้อย่างไร
เราถูกย้ายจากJava 6เพื่อJava 7 โครงการนี้ล่าช้ากว่ากำหนดและความเสี่ยงจะลดลงในกรณีนี้จะยังคงใช้ Java 6 ต่อไป อะไรคือการปรับปรุงเฉพาะใน Java 7 ที่เราสามารถกลับไปที่ผู้จัดการของเราด้วยและโน้มน้าวเขาว่ามันสำคัญที่จะต้องใช้ JDK 7? กำลังมองหาการแก้ไขข้อบกพร่องที่ฉันสามารถเน้นได้ใน Oracle Java 7 (เทียบกับ Java 6) การแก้ไขในด้านความปลอดภัยประสิทธิภาพการทำงานJava 2D / การพิมพ์ ฯลฯ จะขายได้มากกว่าในกรณีของฉัน คอมไพเลอร์แก้ไขเช่นจะไม่ใช้มาก [ฉันกำลังดูเว็บไซต์จำนวนมากเช่นคู่มือการใช้งาน Oracle , ฐานข้อมูลบั๊ก, คำถามเกี่ยวกับ Stack Overflow] ปรับปรุง: ขอบคุณสำหรับคำตอบ เรากำหนดเวลาอัปเดตเป็นรุ่นถัดไปอีกครั้ง ที่ใกล้ที่สุดที่เราได้รับคือความปลอดภัย ยอมรับคำตอบที่โหวตสูงสุด
28 java  migration 

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

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

3
คำสำหรับคุณสมบัติ 'ลวง' หรือข้อผิดพลาดโดยเจตนาคืออะไร [ปิด]
ฉันลืมคำศัพท์การเขียนโปรแกรมสแลง สิ่งนี้เป็นข้อผิดพลาดโดยเจตนาหรือคุณสมบัติล่อที่ใช้เป็นสิ่งที่ทำให้ไขว้เขว ตัวอย่างการใช้งาน "สวัสดี Bob, QA กำลังทำการตรวจสอบวันนี้ใส่$THINGลงในโมดูลเพื่อให้พวกเขามีปัญหาในการค้นหาจริง" สิ่งนี้สามารถนำไปใช้ในเชิงลบเพื่อให้มีข้อบกพร่องโดยเจตนาที่ชัดเจนมากที่จะค้นพบว่าเป็นสิ่งที่ทำให้ไขว้เขวจากปัญหาจริง นอกจากนี้ยังสามารถใช้ในเชิงบวก มันเหมือนกับวิธีที่คุณปล่อยให้สุนัขกู้ภัย 'ค้นหา' ผู้ที่ตกเป็นเหยื่อเมื่อค้นหาพื้นที่ภัยพิบัติ นอกจากนี้ยังสามารถใช้ในการตรวจสอบว่ากระบวนการ QA จับข้อบกพร่องได้จริง คำศัพท์ที่ฉันกำลังมองหาคืออะไร?

2
รูปแบบ (anti) รูปแบบต่อไปนี้คืออะไร? อะไรคือข้อดีและข้อเสีย?
ในช่วงสองสามเดือนที่ผ่านมาฉันสะดุดเทคนิค / รูปแบบต่อไปนี้สองสามครั้ง อย่างไรก็ตามฉันไม่สามารถหาชื่อเฉพาะได้และฉันก็ไม่แน่ใจ 100% เกี่ยวกับข้อดีและข้อเสียทั้งหมด รูปแบบไปดังนี้: ภายในอินเตอร์เฟส Java ชุดของวิธีการทั่วไปจะถูกกำหนดตามปกติ อย่างไรก็ตามการใช้คลาสภายในอินสแตนซ์เริ่มต้นจะถูกปล่อยออกมาผ่านส่วนต่อประสาน public interface Vehicle { public void accelerate(); public void decelerate(); public static class Default { public static Vehicle getInstance() { return new Car(); // or use Spring to retrieve an instance } } } สำหรับฉันดูเหมือนว่าข้อได้เปรียบที่ใหญ่ที่สุดคือความจริงที่ว่าผู้พัฒนาต้องการทราบเกี่ยวกับอินเทอร์เฟซไม่ใช่การใช้งานเช่นในกรณีที่เขาต้องการสร้างอินสแตนซ์อย่างรวดเร็ว Vehicle someVehicle = Vehicle.Default.getInstance(); …

3
ทำไมชื่อดั้งเดิมของบูลีนบูลีนจึงไม่ใช่ 'บูล'
Java มี int และ Integer boolean และ Boolean ดูเหมือนจะไม่สอดคล้องกันสักหน่อย boolvs Booleanเพื่อใช้ชื่อที่สั้นลงที่กำหนดไว้สำหรับประเภทดั้งเดิม? หรือ integerเทียบIntegerกับชื่อประเภทที่สอดคล้องกัน? ฉันคิดว่า C ++ ได้ตัดสินใจที่จะใช้boolไม่น้อยก่อนหน้านี้กว่า Java ตัดสินใจที่จะใช้booleanและอาจจะยังมีบางส่วน (ที่ไม่ได้มาตรฐานในเวลา?) ส่วนขยาย C boolเกินไปดังนั้นก็จะมีความสำคัญทางประวัติศาสตร์ ฉันสังเกตเห็นว่าฉันมักจะพยายามใช้สัญชาตญาณในboolตอนแรก (สิ่งดี ๆ ที่ทันสมัยแก้ไขได้ทันทีโดยไม่ต้องมีการคอมไพล์รอบพิเศษ) ดังนั้นจึงเป็นการดีที่จะทราบเหตุผลเบื้องหลังสถานการณ์ปัจจุบัน หากมีคนจำเรื่องราว (หรือบางส่วน) หรือแม้แต่สามารถค้นหาและเชื่อมโยงไปยังการสนทนาทางประวัติศาสตร์ที่เกี่ยวข้องในเน็ตนั่นก็คงจะดีมาก
28 java  history  boolean 

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

3
ทำไมคำหลัก rec จำเป็นใน F #
ใน F # มีความจำเป็นต้องใช้recคำหลัก ใน Haskell ไม่จำเป็นต้องบอกอย่างชัดเจนว่าฟังก์ชั่นที่ให้มานั้นเรียกซ้ำหรือไม่ ด้วยบทบาทของการเรียกซ้ำในการเขียนโปรแกรมเชิงฟังก์ชันการออกแบบ F # ดูเหมือนจะค่อนข้างแปลกสำหรับฉัน เป็นการตัดสินใจออกแบบภาษาที่ดีหรือมีเหตุผลทางประวัติศาสตร์หรือมีข้อ จำกัด ในการใช้งานเท่านั้น

10
คอมไพเลอร์และล่ามสามารถมีข้อบกพร่องและเรา (ในฐานะผู้ใช้) ทำอะไรเพื่อจัดการกับพวกเขา? [ปิด]
หากงานของคอมไพเลอร์คือการแปลซอร์สโค้ดเป็นรหัสระดับเครื่องจะมีความผิดพลาดใด ๆ ในคอมไพเลอร์หรือแปลผิดพลาดหรือไม่? เช่นเดียวกันกับล่าม: บางครั้งมันไม่สามารถส่งออกเนื้อหาที่ต้องการได้หรือไม่? ฉันไม่เคยได้ยินข้อบกพร่องใด ๆ ในคอมไพเลอร์ / ล่าม แต่มีอยู่หรือไม่?

6
รักษาเว็บแอปพลิเคชันเมื่อนักพัฒนาซอฟต์แวร์รายเดียวหายไป
ฉันเป็นโรคระยะสุดท้ายและมีโอกาสสูงมากที่ฉันจะไม่อยู่ในโลกนี้อีกต่อไปภายในสิ้นปีนี้ ฉันได้พัฒนาเว็บแอปพลิเคชันที่ใช้อย่างกว้างขวางในธุรกิจของครอบครัวของฉัน (ร้านทำผมเล็ก ๆ ) ไม่มีสมาชิกในครอบครัวของฉันไม่มีการเขียนโปรแกรมหรือทักษะการบริหารระบบ ฉันไม่มีเพื่อนสนิทที่มีทักษะเหล่านั้น ธุรกิจทำกำไรสุทธิได้สูงสุด 10k ต่อปี ในความเป็นจริงผลกำไรทางธุรกิจสามารถจ่ายเงินเดือนของพนักงาน 3 คน (พ่อแม่และน้องสาว) และผู้ที่ค่อนข้างต่ำและลดลงในแต่ละปีเนื่องจากวิกฤตการณ์ทางการเงิน ในความเป็นจริงฉันไม่ได้เป็นพนักงานของธุรกิจครอบครัวฉันทำงานให้กับ บริษัท พัฒนาซอฟต์แวร์ตามปกติ ฉันพัฒนาแอพพลิเคชั่นในช่วงเวลาว่างเพื่อช่วยเหลือพวกเขา จนถึงตอนนี้ฉันไม่สนใจว่าธุรกิจอื่นจะใช้แอปพลิเคชันของฉันหรือแม้ว่าแอปพลิเคชันจะเสียสิทธิ์การเป็นเจ้าของ ฉันต้องการให้ธุรกิจครอบครัวของฉันสามารถใช้งานได้ต่อไปซึ่งหมายถึงการสนับสนุนการดูแลระบบหากมีสิ่งผิดปกติและการพัฒนาสำหรับคุณสมบัติ / ข้อบกพร่องใหม่ ฉันอยากจะถามคุณว่าคุณสามารถให้มาตรการที่คุณคิดว่าฉันสามารถทำได้เพื่อรับประกันความต่อเนื่องของแอปพลิเคชันให้ได้มากที่สุด เทคโนโลยีของแอปพลิเคชันคือ: แพลตฟอร์ม: Tomcat (Java), MySQL และ Linux Frameworks: JPA และ ZK เป็นหลัก

7
วิธีการโน้มน้าวให้เพื่อนร่วมทีมปฏิบัติตามกฎพื้นฐานบางประการ
ฉันมีปัญหากับเพื่อนร่วมทีม เรื่องสั้นสั้น: เราเป็นนักเรียนสามคนที่ทำงานในโครงการเพื่อการแข่งขัน โครงการประกอบด้วยแอพพลิเคชั่นแยกกัน 2 แอพ: หนึ่งอันสำหรับ Windows (ที่ฉันพัฒนา) และอีกอันสำหรับ Android (เพื่อนร่วมงานของฉันมีหน้าที่รับผิดชอบในการพัฒนา) ฐานรหัสของเราจะไม่ตัดกันแอพจะสื่อสารผ่านเครื่องมือของบุคคลที่สาม ปัญหามีดังนี้ฉันมีประสบการณ์การทำงานเป็นทีมในขณะที่ฉันฝึกงานที่ บริษัท ใหญ่เมื่อปีที่แล้วและฉันพยายามบังคับใช้มาตรฐานการเข้ารหัสสำหรับรหัสของเรา ฉันยังตั้งค่าซอฟต์แวร์ที่เก็บ git / wiki / การทำงานร่วมกันที่เราสามารถใช้เพื่อผลักดันรหัส / เขียนความคิดโปรโตคอลเอกสารและอื่น ๆ แต่ดูเหมือนว่าฉันเป็นคนเดียวที่ใช้เครื่องมือเหล่านี้ ฉันพยายามบอกพวกเขาว่าการเขียนรหัสคุณภาพและการบันทึกทุกขั้นตอนจะเป็นประโยชน์ต่อเราในระยะยาว แต่พวกเขาดูเหมือนจะไม่เห็นประโยชน์ของมัน นอกจากนี้ฉันกำลังคิดที่จะเพิ่มการทดสอบการรวมบางอย่าง แต่จากสิ่งที่ฉันเห็นได้ตราบใดที่พวกเขาไม่ได้ใช้เครื่องมือปัจจุบันเพื่อทำให้ชีวิตของพวกเขาง่ายขึ้นฉันไม่คิดว่าฉันจะสามารถโน้มน้าวให้พวกเขามีประโยชน์ รหัสส่วนใหญ่ของคนรอบข้างอยู่ในคอมพิวเตอร์พวกเขาไม่แชร์ฐานรหัสทั่วไปและเมื่อฉันค้นพบพวกเขารวมชิ้นส่วนของตนโดยการประชุมและแบ่งปันรหัสผ่าน usb stick คำถามของฉันคือ: ฉันรุนแรงเกินไปในเรื่องนี้หรือไม่? ฉันจะบังคับใช้กฎบางอย่างที่ไร้สาระหรือไม่? โปรดทราบว่านี่เป็นโครงการขนาดเล็กข้อกำหนดมีความชัดเจนมาก (ฉันสร้างเอกสารที่ระบุว่าแอปพลิเคชันควรทำอะไร) นักพัฒนาที่มีทักษะสามคนสามารถทำได้ใน 3-4 วันดังนั้นพวกเขาอาจไม่เห็นความซับซ้อนเพิ่มขึ้นในการเขียนคุณภาพ รหัสตราบเท่าที่วิธีการปัจจุบันของพวกเขาใช้งานได้ มีวิธีใดบ้างที่ฉันสามารถแสดงให้พวกเขาเห็นถึงประโยชน์ของการจัดทำรหัสการใช้ git และอื่น ๆ ?

4
ประกาศฟังก์ชั่นเป็น var แทนฟังก์ชั่น
มากขึ้นเรื่อย ๆ ฉันเห็นว่ามีการประกาศฟังก์ชั่นเช่นนี้ var foo = function() { // things }; แทนที่จะเป็นวิธีที่ฉันได้เรียนรู้เช่น function foo() { // things } ความแตกต่างคืออะไร? ประสิทธิภาพที่ดีขึ้น? ขอบเขต? ฉันควรจะใช้วิธีนี้หรือไม่?

7
สิ่งใดดีกว่า: รวม HTML ไว้ในโค้ด PHP หรือภายนอก?
ดูนี่สิ: <?php echo "Hello World"; ?> <br /> <?php echo "Welcome"; ?> และตอนนี้ดูที่นี่: <?php echo "Hello World"; echo "<br />"; echo "Welcome"; ?> ตัวอย่างใดในตัวอย่างข้างต้นที่มีการพิจารณาว่าดีกว่า (อย่างน้อยจากมุมมองประสิทธิภาพ) ฉันรู้ว่าตัวอย่างเป็นเรื่องเล็กน้อย แต่ฉันต้องการติดตามนิสัยการฝึกฝนที่ดีตั้งแต่เริ่มต้นดังนั้นเมื่อฉันมีบรรทัดมากขึ้นเรื่อย ๆ พวกเขาจะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงานหรืออะไรก็ตามในทางลบ

6
มีประโยชน์จริง ๆ กับ Repository หรือไม่?
กำลังอ่านบทความบางอย่างเกี่ยวกับข้อดีของการสร้างแหล่งเก็บข้อมูลทั่วไปสำหรับแอปใหม่ ( ตัวอย่าง ) แนวคิดนี้ดูดีเพราะให้ฉันใช้พื้นที่เก็บข้อมูลเดียวกันเพื่อทำสิ่งต่าง ๆ สำหรับเอนทิตีที่แตกต่างกันหลายรายการพร้อมกัน: IRepository repo = new EfRepository(); // Would normally pass through IOC into constructor var c1 = new Country() { Name = "United States", CountryCode = "US" }; var c2 = new Country() { Name = "Canada", CountryCode = "CA" }; var c3 = …

10
ฉันควรเขียน HTML หรือ CSS ก่อนหรือไม่
มีการเปรียบเทียบจำนวนมากสำหรับการพัฒนา HTML / CSS ซึ่งอาจสับสนเล็กน้อยสำหรับผู้เริ่มต้น HTML = มูลนิธิ / บ้าน CSS = ผนัง / พิมพ์เขียว / วอลล์เปเปอร์ มีวิธีปฏิบัติที่ดีที่สุดที่นี่หรือไม่? เราควรเขียนอันไหนก่อน
28 coding-style  html  css 

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