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

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

11
นักพัฒนาซอฟต์แวร์ควรถูกบังคับให้จำรายละเอียดหรือไม่? [ปิด]
หลายครั้งที่ฉันลืมสิ่งต่าง ๆ เกี่ยวกับแอปพลิเคชันของฉัน ฉันจำชื่อตารางไม่ได้หรือมีการสืบค้นอะไรและฉันค้นหาเพื่อให้ได้สิ่งที่ต้องการ หัวหน้าทีมของฉันบอกฉันว่าฉันควรจะจดจำชื่อตารางที่ฉันใช้ นักพัฒนาจำเป็นต้องจดจำชื่อตารางในฐานข้อมูลชื่อคลาส ฯลฯ หรือไม่? และถ้าคำตอบคือ "ใช่ตลอดเวลา" ฉันควรทำอย่างไรเพื่อจำสิ่งเหล่านั้น
33 skills 

4
MVC / REST ควรส่งคืน 403 หรือ 404 สำหรับทรัพยากรที่เป็นของผู้ใช้รายอื่นหรือไม่
เมื่อทำงานกับไซต์ที่ใช้ทรัพยากร (เช่นแอปพลิเคชัน MVC หรือบริการ REST) ​​เรามีสองตัวเลือกหลักเมื่อไคลเอ็นต์พยายามเข้าถึงGETทรัพยากรที่พวกเขาไม่สามารถเข้าถึง: 403ซึ่งบอกว่าลูกค้าไม่ได้รับอนุญาต ; หรือ 404ซึ่งบอกว่าไม่มีทรัพยากร(หรือไม่สามารถหาได้) ภูมิปัญญาทั่วไปและการปฏิบัติทั่วไปดูเหมือนว่าจะตอบสนองกับความจริง - นั่นคือ 403 แต่ฉันสงสัยว่านี่เป็นสิ่งที่ถูกต้องหรือไม่ ระบบการเข้าสู่ระบบที่ปลอดภัยไม่เคยบอกเหตุผลที่ทำให้การล็อกอินล้มเหลว กล่าวคือตราบใดที่ลูกค้ามีความกังวลไม่มีความแตกต่างที่ตรวจพบได้ระหว่างชื่อผู้ใช้ที่ไม่มีอยู่และรหัสผ่านที่ไม่ถูกต้อง วัตถุประสงค์คือเพื่อไม่ให้ ID ผู้ใช้ - หรือที่แย่กว่านั้นคือที่อยู่อีเมล - ค้นพบได้ จากมุมมองความเป็นส่วนตัวดูเหมือนว่าปลอดภัยกว่าที่จะคืนค่า 404 ฉันนึกถึงเหตุการณ์ที่มีคนรายงานว่ามีผู้ชนะรายการเรียลลิตี้โชว์ (ผู้รอดชีวิตฉันคิดว่า) โดยดูว่าทรัพยากรใดไม่มีอยู่ใน ไซต์กับสิ่งที่ทำ ฉันกังวลเกี่ยวกับ 403 ที่อาจให้ข้อมูลที่ละเอียดอ่อนเช่นหมายเลขผลิตภัณฑ์หรือหมายเลขบัญชี มีเหตุผลที่น่าสนใจที่จะไม่ส่งคืน 404 หรือไม่? นโยบาย 404 อาจมีผลข้างเคียงเชิงลบหรือไม่ ถ้าไม่เป็นเช่นนั้นทำไมการปฏิบัติจึงไม่เป็นเรื่องปกติ

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

6
การจัดเก็บในพื้นที่ปลอดภัยแค่ไหน?
คำถามบอกว่ามันทั้งหมดจริงๆ ฉันต้องการให้บริการ แต่ฉันไม่ต้องการเก็บข้อมูลใด ๆ ด้วยตัวเองในฐานข้อมูล จากข่าวล่าสุดเกี่ยวกับการแฮ็กข้อมูล ฯลฯ ดูเหมือนว่าฉันจะดีกว่าที่ลูกค้าสามารถควบคุมข้อมูลได้อย่างสมบูรณ์ ปัญหาคือข้อมูลที่เก็บไว้อาจอ่อนไหว สิ่งที่ฉันจะทำคือ ... เมื่อลูกค้าเยี่ยมชมเว็บไซต์จะมีคำถามถามว่า 'คุณใช้คอมพิวเตอร์ส่วนบุคคลหรือคอมพิวเตอร์สาธารณะ' หากพวกเขาอยู่ในคอมพิวเตอร์สาธารณะไซต์จะปฏิเสธการเข้าถึง หากพวกเขาอยู่บนคอมพิวเตอร์ส่วนบุคคลมันจะพร้อมท์ให้พวกเขาตั้งรหัสผ่าน ข้อมูลทั้งหมดของพวกเขาจะถูกเข้ารหัสด้วยรหัสผ่านนี้ ตอนนี้เห็นได้ชัดว่ามันไม่ปลอดภัยเกินไป วิธีการเข้ารหัสจะอยู่ใน JavaScript และรหัสผ่านเป็นข้อความธรรมดาดังนั้นฉันคิดว่ามันเป็นไปได้สำหรับผู้ใช้ที่มีความชำนาญในการค้นหารหัสผ่านใน localStorage และเข้าถึงข้อมูล ฉันรู้สึกว่านี่ไม่ใช่ปัญหามากเกินไป หากคุณใช้คอมพิวเตอร์ส่วนบุคคลโอกาสในการเกิดเหตุการณ์นี้จะอยู่ในระยะไกลเนื่องจาก ... คนอื่นจะต้องเข้าถึงบัญชีผู้ใช้เฉพาะของพวกเขาบนคอมพิวเตอร์คนอื่นจะต้องรู้เกี่ยวกับเว็บไซต์ ... คนอื่นจะต้องเข้าใจ localStorage และวิธีการเข้าถึง ข้อมูลที่ละเอียดอ่อนไม่ใช่สิ่งใดที่จะลดความเป็นตัวตนของพวกเขาหรือสิ่งอื่นใด เพียงบันทึกสิ่งที่คนส่วนใหญ่ไม่ต้องการเผยแพร่ต่อสาธารณะ ดังนั้นคำถามคือ localStorage ปลอดภัยเพียงพอหรือไม่ คำถามเพิ่มเติม .. การล้างข้อมูลในพื้นที่เก็บข้อมูลทำได้อย่างไร ฉันไม่ต้องการให้ผู้ใช้ลบข้อมูลโดยไม่ตั้งใจ สุดท้าย - มันคุ้มค่าในการเข้ารหัส / ถอดรหัสข้อมูลของพวกเขาราวกับว่าคุณมีรหัสผ่านที่คุณสามารถเข้าถึงเว็บไซต์ ..

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

16
ปริญญาวิทยาการคอมพิวเตอร์จะมีผลต่อการจ้างงานของฉันหรือไม่ [ปิด]
บ่อยครั้งที่ฉันเห็นว่ามีโปรแกรมเมอร์ที่ทำงานได้หลายคนที่ไม่มีวุฒิวิทยาลัยในสาขาวิทยาการคอมพิวเตอร์สารสนเทศและอื่น ๆ ตอนนี้ฉันได้อ่านบทความเพิ่มเติมเกี่ยวกับการศึกษาที่ต่ำกว่าและความสำคัญขององศาวิทยาลัย (โดยเฉพาะอย่างยิ่งในฐานะโปรแกรมเมอร์) ปริญญาวิทยาลัยจะมีผลต่อการจ้างงานของฉันหรือไม่? (คิดเป็นสี่ปีนับจากนี้เมื่อฉันเรียนจบ) ป.ล. ฉันจะไปที่ UC Irvine; โรงเรียนจะมีความสำคัญในระดับปริญญาหรือไม่

6
ผู้ประกอบการยอมรับว่าผู้พัฒนาได้รับค่าตอบแทนต่ำและไม่คุ้มค่า ใช้เวลาในการแบ่งวิธี? [ปิด]
นายจ้างของฉันเพิ่งโพสต์เปิดสำหรับนักพัฒนา C # ด้วยประสบการณ์ 3-5 ปี ข้อกำหนดและความคาดหวังสำหรับตำแหน่งมีความเป็นธรรมจนถึงเกณฑ์ในการกำหนดเงินเดือน มันระบุไว้อย่างชัดเจนว่าค่าตอบแทนจะขึ้นอยู่กับประสบการณ์กับ C # เท่านั้นและประสบการณ์การเขียนโปรแกรมกับภาษาและกรอบงานอื่น ๆ จะถือเป็นเรื่องที่ไม่เกี่ยวข้องและไม่ได้รับการพิจารณาฉันได้นำข้อกังวลของฉันกับ HR ว่าผู้สมัครที่ดี ธงและคัดท้ายไป ฉันพยายามอธิบายว่าการพัฒนาซอฟต์แวร์เป็นมากกว่าภาษาเฉพาะและการจ่ายเงินให้ใครบางคนเพื่อประสบการณ์ในภาษาเดียวเป็นวิธีที่สั้นมากในการว่าจ้างนักพัฒนาที่ดี (ฉันบอกเรื่องนี้กับฝ่ายทรัพยากรบุคคลของ บริษัท ซอฟต์แวร์) . การตอบสนอง: "เรารู้สึกเบื่อหน่ายกับการเสียเวลาสัมภาษณ์นักพัฒนาที่คาดหวังว่า 'เงินเดือนสูง' เพราะพวกเขามีประสบการณ์การเขียนโปรแกรมเพิ่มเติมในภาษาอื่นนอกเหนือจากที่เราต้องการ" ปัญหา # 1 ที่นี่คือ 'เงินเดือนมาก' = อัตราการตลาด หลังจากการพูดคุยกันอย่างจริงจังพวกเขายอมรับว่าไม่มีใครที่ บริษัท จะได้รับค่าตอบแทนใกล้เคียงกับอัตราตลาดสำหรับทักษะของพวกเขาและไม่มีอะไรที่สามารถทำได้เกี่ยวกับเรื่องนี้ C-suite มีความคิดที่ว่าพนักงานควรได้รับค่าจ้างสำหรับทักษะที่ได้รับการพิสูจน์มานานหลายปีภายใต้การดูแลของพวกเขา นักพัฒนาระดับเริ่มต้นได้รับน้อยกว่า $ 38K และอาจสูงถึง 50K หลังจาก 3 ปีซึ่งฉันคิดว่าเป็นสิ่งที่พวกเขาวางแผนที่จะเสนอผู้สมัครตำแหน่ง C # การค้นพบที่น่าสนใจอีกอย่าง (ไม่เกี่ยวข้อง) - …

12
ภาษาการเขียนโปรแกรมใด ๆ สามารถเข้าใจได้ง่ายหากพื้นฐานของการเขียนโปรแกรมมีความแข็งแกร่ง ความจริงหรือตำนาน? [ปิด]
เป็นเรื่องจริงหรือไม่ที่บุคคลที่มีพื้นฐานดีพอสมควรในการเขียนโปรแกรมสามารถเรียนรู้ภาษาการเขียนโปรแกรมได้อย่างง่ายดาย? เมื่อฉันพูดภาษาโปรแกรมฉันหมายถึงภาษาเปรียวและไดนามิกเช่น PHP, Perl, Ruby ฯลฯ แต่ไม่ใช่ภาษาโปรแกรมเก่าของอดีตอันไกลโพ้น ฉันทำงานเฉพาะบน java, groovy และยืดหยุ่นในระดับหนึ่ง ดังนั้นเมื่อพิจารณาจากความจริงที่ว่าฉันเป็นโปรแกรมเมอร์มือสมัครเล่น แต่เป็นผู้เรียนที่รวดเร็วโดยพื้นฐานแล้วจะใช้เวลานานเท่าใดจึงจะตั้งหลักในภาษาใดภาษาหนึ่งได้

9
เป็นไปได้ไหมที่จะเขียนข้อความยืนยันมากเกินไป?
ฉันเป็นแฟนตัวยงของการassertตรวจสอบการเขียนในรหัส C ++ เป็นวิธีการตรวจสอบกรณีในระหว่างการพัฒนาที่ไม่สามารถเกิดขึ้นได้ แต่จะเกิดขึ้นเพราะข้อบกพร่องตรรกะในโปรแกรมของฉัน เป็นการปฏิบัติที่ดีโดยทั่วไป อย่างไรก็ตามฉันสังเกตเห็นว่าบางฟังก์ชั่นที่ฉันเขียน (ซึ่งเป็นส่วนหนึ่งของคลาสที่ซับซ้อน) มีการยืนยันมากกว่า 5+ ครั้งซึ่งรู้สึกว่ามันอาจเป็นการฝึกเขียนโปรแกรมที่ไม่ดีในแง่ของความสามารถในการอ่านและการบำรุงรักษา ฉันคิดว่ามันยังยอดเยี่ยมเพราะแต่ละคนต้องการให้ฉันคิดเกี่ยวกับฟังก์ชั่นก่อนและหลังการทำงานและพวกเขาช่วยดักจับแมลง อย่างไรก็ตามฉันแค่อยากจะเอามันออกไปถามว่ามีกระบวนทัศน์ที่ดีกว่าสำหรับการจับข้อผิดพลาดทางตรรกะในกรณีที่จำเป็นต้องใช้เช็คจำนวนมากหรือไม่ ความเห็นของ Emacs : เนื่องจาก Emacs เป็นตัวเลือกของฉันฉันจึงขอแสดงความคิดเห็นเล็กน้อยซึ่งช่วยลดความรู้สึกรกรุงรังที่พวกเขาสามารถให้ได้ นี่คือสิ่งที่ฉันเพิ่มลงในไฟล์. emacs ของฉัน: ; gray out the "assert(...)" wrapper (add-hook 'c-mode-common-hook (lambda () (font-lock-add-keywords nil '(("\\<\\(assert\(.*\);\\)" 1 '(:foreground "#444444") t))))) ; gray out the stuff inside parenthesis with a slightly lighter …

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

10
ทีมการต่อสู้บัญชีสำหรับงานโครงสร้างพื้นฐานในการประชุมวางแผนอย่างไร
ทีมงานการแย่งชิงกันอย่างไรสำหรับงาน dev / โครงสร้างพื้นฐานในการประชุมวางแผน จากภาพรวมในครั้งแรกพวกเขาไม่ดูเหมือนเรื่องราวของผู้ใช้เนื่องจากพวกเขาไม่ได้ให้คุณค่าแก่ผู้ใช้ อย่างไรก็ตามการแนบพวกเขาเป็นงานกับเรื่องราวของผู้ใช้บางครั้งก็ไม่สมเหตุสมผลเช่นกัน ตัวอย่างเช่นสมมติว่าภารกิจคือ: "Setup Bamboo" งานนั้นไม่จำเป็นต้องทำเรื่องราวของผู้ใช้ให้สมบูรณ์เนื่องจากทีมสามารถสร้างและปรับใช้ด้วยตนเอง ดังนั้นการแนบไปกับเรื่องราวของผู้ใช้จึงไม่สมเหตุสมผลเนื่องจากงานนี้ไม่จำเป็นต้องทำให้เรื่องราวของผู้ใช้สมบูรณ์ ดังนั้นสิ่งนี้ชี้ให้เห็นว่างานเหล่านี้กลายเป็นเรื่องราวของผู้ใช้ แต่ถ้าเรื่องราวของทีมชี้ไปที่พวกเขาแล้วนี่เป็นการเปลี่ยนแปลงความเร็วที่แปลกเนื่องจากเจ้าของผลิตภัณฑ์ต้องการทราบความเร็วกับงานในมือของเขาไม่ใช่งานในมือที่ค้างอยู่กับเรื่องราวทางเทคนิคของผู้ใช้
33 scrum  planning 

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


9
อะไรคือข้อเสียของการเขียนโค้ดก่อนที่จะทำการทดสอบหน่วย?
ฉันเห็นคำแนะนำเสมอว่าเราควรเขียนการทดสอบหน่วยแล้วเริ่มเขียนโค้ด แต่ฉันรู้สึกว่าวิธีอื่นจะสะดวกสบายกว่า (สำหรับฉัน) - เขียนโค้ดและทดสอบหน่วยเพราะฉันรู้สึกว่าเรามีความชัดเจนมากขึ้นหลังจากที่เราเขียนรหัสจริง ถ้าฉันเขียนรหัสและจากนั้นการทดสอบฉันอาจต้องเปลี่ยนรหัสของฉันเล็กน้อยเพื่อให้สามารถทดสอบได้แม้ว่าฉันจะมีสมาธิมากในการสร้างการออกแบบที่ทดสอบได้ ในทางกลับกันถ้าฉันเขียนการทดสอบและจากนั้นรหัสการทดสอบจะเปลี่ยนค่อนข้างบ่อยเป็นและเมื่อรหัสรูปร่างขึ้น เมื่อฉันเห็นข้อเสนอแนะจำนวนมากเพื่อเริ่มเขียนการทดสอบจากนั้นไปยังการเขียนโปรแกรมข้อเสียเปรียบถ้าฉันทำอย่างอื่น - เขียนโค้ดแล้วทดสอบหน่วย?

21
การทดสอบซอฟต์แวร์จำเป็นหรือไม่
ฉันเป็นนักเรียนที่ทำงานเกี่ยวกับ BE (CS) และคำถามของฉันคือ: จำเป็นต้องทำการทดสอบในสาขาซอฟต์แวร์หรือไม่? ถ้าเราสร้างซอฟต์แวร์ด้วยความระมัดระวังเราจะทดสอบทำไม หลังจากการทดสอบเรามั่นใจได้หรือไม่ว่าเราบรรลุเป้าหมายนี้ (ผลิตภัณฑ์ / ซอฟต์แวร์ทำงานตามที่ตั้งใจ) เพราะเราทำการทดสอบเสร็จแล้ว? มันเป็นไปได้? คำถามของฉัน: จำเป็นต้องมีการทดสอบซอฟต์แวร์หรือไม่

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