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

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

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

16
ฉันใช้ IDE (Eclipse) เพื่อพัฒนาซอฟต์แวร์ เหตุใดฉันจึงควรเปลี่ยนเป็นกลุ่มหรือ emacs [ปิด]
งานประจำวันของฉันคือผู้พัฒนา java / เว็บ ฉันใช้ eclipse เป็นเวลา ~ 5 ปี ฉันคิดว่ามันยอดเยี่ยมและฉันยังใช้ Webstorm สำหรับ javascript และ html / jsp ฉันทำในบางครั้งต้อง ssh เข้าสู่เซิร์ฟเวอร์และยุ่งกับไฟล์ config; สำหรับสิ่งนี้ฉันใช้ vi และมันทำให้ฉันเจ็บปวด ฉันจะต้องได้รับการขึ้นหน้าเว็บรายชื่อไวยากรณ์ / คำสั่ง: กดหลบหนีแล้ว Asterix หันไปรอบ ๆ สามครั้งและข้อความจะถูกป้อนสองบรรทัดข้างต้นเคอร์เซอร์ของคุณ มันไม่ง่ายเลยสำหรับฉันและฉันคิดว่าทุกคนที่เติบโตขึ้นมาในช่วงปลายยุคแปดสิบ นี่คือเหตุผลหลักที่ฉันคิดว่า eclipse นั้นยอดเยี่ยม (และฉันถือว่า IDE อื่น ๆ ) และอย่าเปลี่ยนเป็น emacs และ / หรือ vim เกิดข้อผิดพลาดในการไฮไลต์โดยไม่จำเป็นต้องคอมไพล์โครงการซ้ำ รหัสช่วย …
31 ide  eclipse  vim  emacs 

4
สิ่งใดที่นับว่าเป็น IDE
เมื่อเร็ว ๆ นี้อ่านคำถามคุณใช้ภาษาอะไรโดยไม่มี IDE? คำถามหนึ่งที่ถามในคำตอบสองสามข้อคือ "คือ Notepad ++ และ IDE" หนึ่งคำตอบสำหรับคำถามเดิมกล่าวว่า "ไม่มีฉันใช้เสียงเรียกเข้า ... " ซึ่งหมายความว่าเสียงเรียกเข้านั้นเป็น IDE แต่แล้วคำตอบอื่นที่แนะนำคือกลุ่มไม่ใช่ IDE ดังนั้นสายอยู่ที่ไหน แล้วสมุดบันทึก ed หรือนาโนล่ะ เป็นเพียงคนเดียวไม่ใช่ IDE เทคนิคการเข้ารหัสเทคนิคผีเสื้อ ?
31 ide 

10
บริษัท ของคุณมีมาตรฐานการเข้ารหัสหรือไม่? [ปิด]
ฉันเพิ่งเห็นว่า Microsoft เปิดตัวเอกสารมาตรฐานการเข้ารหัส ( All-In-One Code Framework มาตรฐานการเข้ารหัส ) และทำให้ฉันคิดว่า ... บริษัท ที่ฉันทำงานให้ไม่มีมาตรฐานการเข้ารหัสที่เป็นทางการเลย มีนักพัฒนาเพียงไม่กี่คนและเราอยู่ด้วยกันนานพอที่จะพัฒนาเป็นสไตล์ที่คล้ายคลึงกันและไม่เคยมีปัญหามาก่อน บริษัท ที่คุณทำงานมีมาตรฐานการเข้ารหัสที่เป็นเอกสารหรือไม่ ถ้าไม่ทำไมล่ะ การมีมาตรฐานสร้างความแตกต่างหรือไม่? คุ้มค่าที่จะเขียนมาตรฐานตั้งแต่เริ่มต้นหรือคุณควรใช้มาตรฐานอื่นเป็นของคุณเอง (เช่นทำให้มาตรฐานของ Microsoft เป็นของคุณ)

4
มีพื้นที่ที่ TDD ให้ผลตอบแทนการลงทุนสูงและพื้นที่อื่น ๆ ที่ ROI ต่ำมากจนไม่คุ้มกับการติดตามหรือไม่? [ปิด]
ทดสอบการพัฒนาขับเคลื่อน ฉันเข้าใจแล้วชอบ แต่การทดสอบการเขียนจำเป็นต้องมีค่าใช้จ่าย ดังนั้นควรใช้ TDD อย่างครอบคลุมทั่วฐานรหัสหรือมีพื้นที่ที่ TDD ให้ผลตอบแทนการลงทุนที่สูงและพื้นที่อื่น ๆ ที่ ROI ต่ำดังนั้นจึงไม่คุ้มค่าที่จะติดตาม

29
คุณจะใช้บรรทัดว่างในรหัสของคุณได้อย่างไร
มีข้อสังเกตเกี่ยวกับพื้นที่สีขาวอยู่แล้วในการสนทนาเกี่ยวกับตำแหน่งเครื่องมือจัดฟันแบบหยิก ตัวฉันเองมักจะโรยโค้ดของฉันด้วยบรรทัดว่างเปล่าเพื่อพยายามแยกสิ่งต่าง ๆ ที่รวมกันเป็นกลุ่ม "ตรรกะ" และหวังว่าจะช่วยให้บุคคลต่อไปมาอ่านโค้ดที่ฉันเพิ่งสร้างขึ้นได้ง่ายขึ้น ในความเป็นจริงฉันจะบอกว่าฉันจัดโครงสร้างโค้ดเหมือนที่เขียน: ฉันสร้างย่อหน้าไม่เกินสองสามบรรทัด (สั้นกว่า 10 แน่นอน) และพยายามทำให้แต่ละย่อหน้ามีอยู่ในตัวเอง ตัวอย่างเช่น: ในชั้นเรียนฉันจะจัดกลุ่มวิธีการที่ไปด้วยกันในขณะที่แยกพวกเขาด้วยบรรทัดว่างจากกลุ่มถัดไป ถ้าฉันต้องการเขียนความคิดเห็นฉันมักจะใส่บรรทัดว่างไว้ข้างหน้าความคิดเห็น ในวิธีการฉันทำหนึ่งย่อหน้าต่อขั้นตอนของกระบวนการ โดยรวมแล้วฉันไม่ค่อยมีกลุ่มมากกว่า 4/5 บรรทัดรวมกันซึ่งหมายถึงโค้ดที่กระจัดกระจายมาก ฉันไม่ได้คิดว่าของเสียในพื้นที่สีขาวทั้งหมดนี้เพราะฉันใช้มันในการสร้างรหัส (เพราะฉันใช้การเยื้องในความเป็นจริง) และดังนั้นฉันจึงรู้สึกว่ามันคุ้มค่ากับการใช้งานหน้าจอ ตัวอย่างเช่น: for (int i = 0; i < 10; ++i) { if (i % 3 == 0) continue; array[i] += 2; } ฉันพิจารณาว่าทั้งสองข้อความมีจุดประสงค์ที่ชัดเจนและสมควรที่จะแยกออกเพื่อให้ชัดเจน ดังนั้นคุณจะใช้บรรทัดว่างเปล่า (หรือไม่) ในรหัสได้อย่างไร

17
โปรแกรมเมอร์มีสุขภาพดีอย่างไร? [ปิด]
การเป็นโปรแกรมเมอร์ไม่ใช่อาชีพที่มีสุขภาพดี - การนั่งอยู่หน้าคอมพิวเตอร์เป็นเวลานานหลายชั่วโมง สิ่งนี้ต้องใช้ทั้งร่างกายและจิตใจ ดังนั้นคุณมีเคล็ดลับอะไรบ้างสำหรับโปรแกรมเมอร์เพื่อสุขภาพที่ดี?

7
ทำไมมาโครไม่รวมอยู่ในภาษาการเขียนโปรแกรมที่ทันสมัยที่สุด?
ฉันรู้ว่าพวกเขานำมาใช้อย่างไม่ปลอดภัยใน C / C ++ พวกเขาไม่สามารถนำไปใช้ในทางที่ปลอดภัยยิ่งขึ้น? ข้อเสียของมาโครนั้นแย่มากพอที่จะเทียบกับพลังมหาศาลที่พวกเขามีให้หรือไม่?

13
การล่าบั๊กที่ยากที่สุดของคุณคืออะไรและคุณค้นหามันและฆ่ามันได้อย่างไร?
นี่คือคำถาม "แบ่งปันความรู้" ฉันสนใจที่จะเรียนรู้จากความสำเร็จและ / หรือความล้มเหลวของคุณ ข้อมูลที่อาจเป็นประโยชน์ ... พื้นหลัง: บริบท: ภาษาแอปพลิเคชันสภาพแวดล้อม ฯลฯ ข้อผิดพลาดระบุได้อย่างไร? ใครหรือสิ่งที่ระบุข้อผิดพลาด? การสร้างข้อบกพร่องมีความซับซ้อนเพียงใด การล่าสัตว์ แผนของคุณคืออะไร คุณเจอปัญหาอะไรบ้าง? ในที่สุดรหัสผิดที่พบได้อย่างไร ฆ่า. การแก้ไขซับซ้อนแค่ไหน? คุณกำหนดขอบเขตของการแก้ไขได้อย่างไร รหัสเกี่ยวข้องกับการแก้ไขมากแค่ไหน? การชันสูตรศพ อะไรคือสาเหตุที่ทำให้เกิดปัญหาทางเทคนิค? บัฟเฟอร์โอเวอร์รัน ฯลฯ อะไรคือสาเหตุที่ทำให้เกิดอาการ 30,000 ฟุต? ท้ายที่สุดกระบวนการใช้เวลานานเท่าใด? มีฟีเจอร์ใดบ้างที่ได้รับผลกระทบจากการแก้ไขหรือไม่ คุณคิดว่ามีเครื่องมือเครื่องมือแรงจูงใจอะไรเป็นพิเศษ ... ไร้ประโยชน์อย่างน่ากลัวใช่ไหม ถ้าคุณทำได้ทั้งหมดอีกครั้ง ............ ตัวอย่างเหล่านี้เป็นเรื่องทั่วไปไม่สามารถใช้ได้ในทุกสถานการณ์และอาจไร้ประโยชน์ โปรดปรุงรสตามที่ต้องการ
31 experience  bug 

24
สิ่งที่ควรนำมาในการสัมภาษณ์การเขียนโปรแกรม [ปิด]
ฉันเพิ่งสำเร็จการศึกษาระดับปริญญาโทสาขาวิทยาศาสตร์คอมพิวเตอร์และได้รับการสัมภาษณ์งานครั้งแรกในฐานะนักพัฒนาซอฟต์แวร์ ฉันไม่ได้มีประสบการณ์มากในโครงการพัฒนาขนาดใหญ่ แต่ฉันหวังว่าการศึกษาในมหาวิทยาลัยของฉันจะมีความสำคัญ ฉันสงสัยว่าฉันควรนำสื่อใดที่จะทำให้ผู้สัมภาษณ์ประทับใจ? ผู้สัมภาษณ์ส่วนใหญ่คาดหวังอะไรโดยเฉพาะจากบัณฑิตใหม่ ** แก้ไข: การสัมภาษณ์งานก็โอเคยกเว้นฉันลืมกางเกง ขอบคุณสำหรับคำแนะนำที่ยอดเยี่ยม!
31 interview 

5
การนำอินเตอร์เฟสไปใช้เมื่อคุณไม่ต้องการคุณสมบัติใดคุณสมบัติหนึ่ง
ตรงไปตรงมาสวย ฉันกำลังใช้อินเทอร์เฟซ แต่มีคุณสมบัติหนึ่งที่ไม่จำเป็นสำหรับคลาสนี้และอันที่จริงแล้วไม่ควรใช้ แนวคิดแรกของฉันคือทำสิ่งที่ชอบ: int IFoo.Bar { get { raise new NotImplementedException(); } } ฉันคิดว่าไม่มีอะไรผิดปกติกับเรื่องนี้ แต่มันก็ไม่รู้สึก "ถูก" มีใครเคยเจอสถานการณ์ที่คล้ายกันมาก่อนหรือไม่ ถ้าเป็นเช่นนั้นคุณเข้าหามันได้อย่างไร?

10
คุณส่งวัตถุหรือตัวแปรสมาชิกไปยังฟังก์ชั่นหรือไม่?
ซึ่งเป็นวิธีปฏิบัติที่ยอมรับกันโดยทั่วไประหว่างสองกรณีนี้: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } หรือ function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } กล่าวอีกนัยหนึ่งโดยทั่วไปแล้วการส่งวัตถุทั้งหมดไปรอบ ๆ

10
ทำไม Math.Sqrt () เป็นฟังก์ชันคงที่
ในการอภิปรายเกี่ยวกับวิธีการแบบคงที่และอินสแตนซ์ฉันคิดเสมอว่าSqrt()ควรเป็นวิธีการแบบอินสแตนซ์ของชนิดตัวเลขแทนวิธีแบบคงที่ ทำไมถึงเป็นอย่างนั้น? เห็นได้ชัดว่ามันทำงานกับค่า // looks wrong to me var y = Math.Sqrt(x); // looks better to me var y = x.Sqrt(); ToString()ชนิดของมูลค่าชัดสามารถมีวิธีการเช่นเดียวกับในหลายภาษามีวิธีการเช่น เพื่อตอบคำถามจากความคิดเห็น: ทำไม1.Sqrt()ไม่ควรถูกกฎหมาย? 1.ToString()คือ. บางภาษาไม่อนุญาตให้มีวิธีการในประเภทค่า แต่บางภาษาสามารถ ฉันกำลังพูดถึงสิ่งเหล่านี้รวมถึง Java, ECMAScript, C # และ Python (พร้อมคำ__str__(self)จำกัดความ) เช่นเดียวกับฟังก์ชั่นอื่น ๆ เช่นceil(), floor()ฯลฯ

5
ถือว่าเป็น Pythonic ที่มีหลายคลาสที่กำหนดไว้ในไฟล์เดียวกันหรือไม่?
ในการทำงานกับ python เป็นครั้งแรกฉันพบว่าฉันเขียนหลายคลาสในไฟล์เดียวกันซึ่งตรงข้ามกับภาษาอื่นเช่น Java ซึ่งใช้หนึ่งไฟล์ต่อหนึ่งคลาส โดยปกติแล้วคลาสเหล่านี้จะประกอบไปด้วยคลาสฐานนามธรรม 1 ชุดโดยมีการใช้งานอย่างเป็นรูปธรรม 1-2 รายการซึ่งการใช้งานแตกต่างกันเล็กน้อย ฉันโพสต์ไฟล์ดังกล่าวหนึ่งไฟล์ด้านล่าง: class Logger(object): def __init__(self, path, fileName): self.logFile = open(path + '/' + filename, 'w+') self.logFile.seek(0, 2) def log(self, stringtoLog): self.logFile.write(stringToLog) def __del__(self): self.logFile.close() class TestLogger(Logger): def __init__(self, serialNumber): Logger.__init__('/tests/ModuleName', serialNumber): def readStatusLine(self): self.logFile.seek(0,0) statusLine = self.logFile.readLine() self.logFile.seek(0,2) return StatusLine …

1
ด้วยเฟรมเวิร์คของ PHP ทำไมคอนเซปของ“ เส้นทาง” จึงถูกใช้?
เหตุผลที่ฉันถามนี้เพราะสคริปต์ PHP ไม่ใช่เส้นทางใช่ไหม ตัวอย่างเช่นถ้าคุณมี article.php แล้วเส้นทางของคุณเป็นเพียงhttp://mysite.com/article.php เหตุใดจึงเป็นนามธรรมเพิ่มเติมแนวคิดของเส้นทางเมื่อมันมีอยู่แล้วเป็นไฟล์ง่ายๆ?

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