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

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

10
เหตุใดจึงไม่มีภาษาสคริปต์ฝั่งไคลเอ็นต์อื่น ๆ สำหรับเว็บไซต์ [ปิด]
ทำไมถึงมีเพียงรองรับจาวาสคริปต์และ VBScript บางตัวในเบราว์เซอร์ในวันนี้? ฉันรู้ว่า JavaScript เป็นสิ่งที่ดีและทั้งหมด แต่จะไม่มีตัวเลือกในการใช้ภาษาการเขียนโปรแกรมอื่นช่วยส่งเสริมรูปแบบการพัฒนาที่แตกต่างกันใช่ไหม

8
การเรียนรู้หลายภาษาพร้อมกัน [ปิด]
เมื่อเรียนรู้ภาษาใหม่จะดีกว่าหรือไม่ที่จะผูกมัดตัวเองกับภาษาใดภาษาหนึ่ง 100% และรอจนกว่าคุณจะ "เชี่ยวชาญ" เพื่อย้ายไปยังภาษาอื่นหรือทำงานเพื่อเรียนรู้ภาษาต่าง ๆ ในเวลาเดียวกัน? ถ้ามันสำคัญฉันกำลังเรียนรู้ C ++ และฉันต้องการรู้จัก Java และ Python เช่นกัน

11
Ageism ในการพัฒนาซอฟต์แวร์ขึ้นอยู่กับสิ่งอื่นใดนอกเหนือจากอคติ [ปิด]
ฉันแน่ใจว่าคำถามนี้จะฉี่คนบางคน แต่นั่นไม่ใช่ความตั้งใจของฉัน เราทุกคนอยู่ในเรือลำเดียวกัน - ฉันจะอยู่ภายใต้มันวันเดียวเช่นกัน ตามทัศนะของมิลตันฟรีดแมนซึ่งไม่ใช่นักทฤษฎีการเลือกปฏิบัติในสถานที่ทำงานสามารถไปได้ไกลเพราะจะมีนายจ้างออกมาเต็มใจที่จะรับความสามารถที่ถูกมองข้ามโดยดูจากประสิทธิภาพการทำงานเพียงอย่างเดียวและผู้ที่จ้าง / การตัดสินใจเรื่องเงินเดือนเกี่ยวกับการรับรู้ผิด ๆ จะได้รับการดูแลโดยคู่แข่งที่ฉลาดกว่า การเริ่มต้นธุรกิจของตัวเองเป็นรูปแบบหนึ่งของการแข่งขัน เห็นได้ชัดว่าอายุเป็นปัจจัยสำคัญในการเล่นกีฬาหรืองานที่ต้องใช้แรงงานคนมาก แล้วอุตสาหกรรมซอฟต์แวร์ล่ะ Ageism มีอยู่ (หรือไม่?) แต่ทำไม? บางคำถามตรง: เป็น บริษัท ที่ชั่วร้ายโดยเนื้อแท้และชอบที่จะทำร้ายคนเพียงเพราะ? นายจ้างโง่ / ไม่มีการรวบรวมเพราะพวกเขายังคงเปรียบซอฟต์แวร์กับอุตสาหกรรมก่อสร้างหรือไม่? คนที่มีอายุมากกว่ามีประสิทธิผลน้อยลงหรือไม่ พวกเขาไม่เต็มใจที่จะทำงานหนักหรือไม่? พวกเขาต้องการค่าแรงที่สูงเกินไปหรือไม่? มันลดลงมาที่ฮอร์โมนและสัญชาติญาณดั้งเดิมหรือไม่? ในสังคมลิงเทสโทสเตอโรนเป็นทุกสิ่ง แล้วสังคมลิงรหัสคืออะไร? Ageism เป็นตำนานหลังจากทั้งหมดหรือไม่ เฉพาะคนที่ "ขี้เกียจ" (ผู้ที่ไม่ติดตาม) เท่านั้นที่จะได้รับเงินเดือนที่ต่ำลง? มันไม่ได้เกี่ยวกับอายุของคน แต่เกี่ยวกับการมีครอบครัวและเด็ก ๆ หรือไม่ได้มีดังนั้นจึงมีอิทธิพลต่อเวลาเท่าไรในการใช้สิ่งต่าง ๆ ? นายจ้างต้องการที่จะจ่ายเงินให้คนหนุ่มสาวมากขึ้นเพราะพวกเขาชอบวิธีที่พวกเขามอง? อื่น ๆ ? คำถามของฉันมีความเกี่ยวข้องหรือไม่? ถ้าเป็นเช่นนั้นทำไม ฉันเองยังไม่ได้แต่งงาน แต่ฉันไม่ต้องการทำงานเพิ่มชั่วโมง …

13
การปฏิบัติที่แย่ที่สุดใน C ++, ข้อผิดพลาดทั่วไป [ปิด]
หลังจากอ่านคำพูดที่โด่งดังของ Linus Torvaldsฉันสงสัยว่าจริงๆแล้วอะไรคือข้อผิดพลาดทั้งหมดของโปรแกรมเมอร์ใน C ++ ฉันไม่ได้อ้างถึง typos หรือโปรแกรมที่ไม่ดีตามที่ได้รับการรักษาในคำถามนี้และคำตอบของมันแต่สำหรับข้อผิดพลาดระดับสูงที่ไม่ได้ตรวจพบโดยคอมไพเลอร์และไม่ส่งผลให้เกิดข้อบกพร่องที่เห็นได้ชัดในตอนแรก สิ่งที่ไม่น่าจะเป็นใน C แต่น่าจะเกิดขึ้นใน C ++ โดยผู้มาใหม่ที่ไม่เข้าใจความหมายของรหัสทั้งหมด ฉันยังยินดีต้อนรับคำตอบที่ชี้ให้เห็นถึงประสิทธิภาพที่ลดลงอย่างมากซึ่งมักจะไม่เกิดขึ้น ตัวอย่างของสิ่งที่อาจารย์คนหนึ่งของฉันเคยบอกฉันเกี่ยวกับตัวแยกวิเคราะห์ LR (1) ที่ฉันเขียน: คุณใช้อินสแตนซ์ของการสืบทอดและเวอร์ชวลไลซ์ที่ไม่จำเป็นจำนวนมากเกินไป การสืบทอดทำให้การออกแบบมีความซับซ้อนมากขึ้น (และไม่มีประสิทธิภาพเนื่องจากระบบย่อย RTTI (การอนุมานชนิดรันไทม์) และดังนั้นจึงควรใช้เฉพาะเมื่อมีความเหมาะสมเท่านั้นเช่นสำหรับการกระทำในตารางแยก เนื่องจากคุณใช้เทมเพลตอย่างเข้มข้นคุณจึงไม่จำเป็นต้องรับมรดก "

30
เครื่องมือการเขียนโปรแกรมที่ประเมินต่ำที่สุดส่วนใหญ่ [ปิด]
เรามีเครื่องมือที่ยอดเยี่ยมมากมายซึ่งช่วยได้มากเมื่อการเขียนโปรแกรมเช่นโปรแกรมเมอร์ตัวแก้ไขข้อความที่ดี IDEs, debuggers, ระบบควบคุมเวอร์ชันเป็นต้นเครื่องมือบางอย่างมีมากหรือน้อย "ต้องมี" เครื่องมือสำหรับการทำงานให้สำเร็จ (เช่นคอมไพเลอร์) . ยังมีเครื่องมือที่ช่วยได้มากอยู่เสมอ แต่ก็ยังไม่ได้รับความสนใจมากนักเช่นด้วยเหตุผลต่าง ๆ เช่นเมื่อพวกเขาเปิดตัวพวกเขาอยู่ก่อนเวลาและตอนนี้ก็ถูกลืมไปมากหรือน้อย คุณทำอะไรประเภทของเครื่องมือการเขียนโปรแกรมคิดว่าเป็นประเมินมากที่สุดคนหนึ่ง? กระตุ้นคำตอบของคุณ

6
การกำหนดประเภทข้อมูลตัวแปรอย่างชัดเจนเมื่อเทียบกับการใช้คำหลัก 'var' [ปิด]
ใน C # ฉันขอแนะนำให้ใช้คำหลัก var all-purpose สำหรับการประกาศตัวแปรทั้งหมดหรือไม่ ถ้าใช่ฉันต้องพูดถึงอักขระพิเศษเหล่านั้นสำหรับค่าตัวอักษรภายในการประกาศตัวแปรเช่น M สำหรับทศนิยมในคำสั่งต่อไปนี้: var myDecimal = 14.5M; ถ้ามันสร้างความแตกต่างฉันพยายามที่จะพัฒนาเว็บไซต์ด้วย C #

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

11
คุณจะตอบคำถามว่า“ คุณเห็นตัวเองใน 5 ปีที่ไหน” [ปิด]
นายหน้าคนใดคาดหวังให้คุณตอบเมื่อพวกเขาถามว่า "คุณเห็นตัวคุณเองในอีก 5 ปีข้างหน้า" สิ่งที่ต้องการ: ฉันต้องการพัฒนาทักษะด้านเทคนิคของฉัน ... blah-blah-blah ... สถาปนิก? เป็นเพียงการตรวจสอบความทะเยอทะยานของคุณและหากคุณไม่ออกเดินทางในหนึ่งเดือน?
35 interview 

3
กลไกที่ดีที่สุดสำหรับการสร้างคีย์ใบอนุญาต [ปิด]
ผู้คนจะแนะนำวิธีการใด / ไลบรารี่ / เครื่องมือสำหรับการสร้างคีย์ใบอนุญาต (สิ่งที่น่ารักที่ AAAAA-AAAAA-AAAAA-AAAAA-AAAAA-AAAAA ที่คุณใส่เมื่อคุณลงทะเบียนซอฟต์แวร์)? gotchas ใด ๆ ที่ต้องระวังเมื่อใช้งานพวกเขา? (ในขณะนี้ฉันสนใจสิ่งนี้เป็นเรื่องทั่วไปมากกว่าเฉพาะภาษาดังนั้นเพียงระบุว่าคุณใช้ภาษาใดหากโซลูชันของคุณเฉพาะภาษา)
35 licensing 

16
มือใหม่ควรใช้การเติมข้อความอัตโนมัติ IDE (Intellisense) หรือไม่ [ปิด]
ฉันมักจะพบสิ่งนี้เมื่อฉันช่วยคนที่เพิ่งเริ่มเขียนโปรแกรมและเรียนรู้มันเป็นครั้งแรก ฉันกำลังพูดถึงมือใหม่ใหม่จริง ๆ ยังคงเรียนรู้เกี่ยวกับ OOness การสร้างวัตถุการเรียกใช้เมธอดและสิ่งต่าง ๆ เช่นนั้น โดยปกติแล้วพวกเขามีแป้นพิมพ์และฉันก็แค่ให้คำแนะนำ ในอีกด้านหนึ่งคุณสมบัติการเติมข้อความอัตโนมัติของ IDE ช่วยให้พวกเขาได้รับข้อเสนอแนะว่าพวกเขากำลังทำอย่างถูกต้องและพวกเขาจะชอบและเชื่อถือได้อย่างรวดเร็ว ในทางกลับกันฉันกลัวว่าการพึ่งพาการเติมข้อความอัตโนมัติ IDE ก่อนหน้านี้จะทำให้พวกเขาไม่เข้าใจแนวคิดหรือสามารถทำงานได้หากพวกเขาพบตัวเองในวันเดียวด้วยเครื่องมือแก้ไขง่ายๆ ใครสามารถมีประสบการณ์มากขึ้นในเรื่องนี้ได้โปรดแบ่งปันความคิดเห็นของพวกเขา? สิ่งใดดีสำหรับมือใหม่การเติมข้อความอัตโนมัติหรือการพิมพ์ด้วยตนเอง ปรับปรุง ขอบคุณสำหรับการป้อนข้อมูลทุกคน! คำตอบมากมายดูเหมือนจะเน้นไปที่การใช้งานหลักของการเติมข้อความอัตโนมัติเช่นการทำวิธีการให้วิธีการค้นหาและเอกสารเป็นต้น แต่ปัจจุบันนี้ IDEs ทำอะไรได้มากกว่า เมื่อสร้างวัตถุประเภทรายการ IDE จะเติมข้อความอัตโนมัติให้กับ ArrayList ใหม่ทางด้านขวามือ อาจไม่ชัดเจนสำหรับมือใหม่ในทันทีว่าทำไมมันไม่สามารถเป็น List ใหม่ได้ แต่เฮ้มันใช้ได้ผลดังนั้นพวกเขาจึงเดินหน้าต่อไป การกรอกพารามิเตอร์วิธีการขึ้นอยู่กับตัวแปรท้องถิ่นในบริบท กำลังทำการคัดลอกวัตถุ เพิ่มคำสั่ง 'นำเข้า' หรือ 'ใช้' โดยอัตโนมัติ และอีกมากมาย นี่คือสิ่งที่ฉันหมายถึง จำไว้ว่าฉันกำลังพูดถึงคนที่กำลังเขียนโปรแกรม 101 จริงๆเพิ่งเริ่มต้น ฉันได้ดู IDE ทำสิ่งเหล่านี้ซึ่งพวกเขาไม่ทราบ แต่พวกเขาก็ดำเนินการต่อไป อาจมีคนแย้งว่ามันช่วยให้พวกเขามุ่งเน้นไปที่การไหลของโปรแกรมและการเข้าใจสิ่งต่าง ๆ …
35 ide  intellisense 

14
Java เป็นตัวเลือกที่ดีสำหรับการพัฒนาเว็บไซต์เมื่อใด [ปิด]
Java เป็นตัวเลือกที่ดีสำหรับการพัฒนาเว็บไซต์เมื่อใด กรุณาอย่าพูดว่า "เมื่อคุณมีทีมพัฒนาที่รู้จักจาวาเท่านั้น"

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


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

14
คุณควรเวอร์ชั่นเว็บแอปพลิเคชัน?
เมื่อเร็ว ๆ นี้ฉันได้พูดคุยกับเพื่อนร่วมงานเกี่ยวกับการใช้งานเว็บเวอร์ชัน ฉันไม่คิดว่าคุณต้องการมันเลยและถ้าคุณแค่ต้องการให้มีสติตรวจสอบเพื่อยืนยันการเปิดตัวล่าสุดของคุณคือการถ่ายทอดสดฉันคิดว่าวันที่ (YYMMDD) น่าจะดีพอ ฉันอยู่นอกฐานหรือไม่ ฉันไม่มีจุดหรือไม่ ฉันควรใช้หมายเลขรุ่นของแอปพลิเคชันบนเว็บ

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