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

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

4
ทรัพยากรที่แนะนำสำหรับผู้นำทีมพัฒนา [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เมื่อเร็ว ๆ นี้ฉันได้สร้างหัวหน้าทีมของฐานข้อมูล (95% MS SQL Server, 5% misc-Oracle, Sybase, Access) ทีมพัฒนาที่จัดการและพัฒนาฐานข้อมูลจำนวนมากในสภาพแวดล้อมขององค์กร ฉันกำลังมองหาแหล่งข้อมูล (รายการตรวจสอบสาธารณูปโภคแนวปฏิบัติที่ดีที่สุดขั้นตอนเว็บไซต์หนังสือ ฯลฯ ) ที่จะช่วยฉันในการใช้พื้นฐานที่ขาดในกลุ่มการพัฒนานี้ในอดีตเช่นบทวิจารณ์โค้ดการฝึกอบรมข้ามเอกสาร บังคับใช้มาตรฐานการแบ่งปันความรู้ให้คำปรึกษาและอื่น ๆ สิ่งที่ฉันค้นหาส่วนใหญ่เป็นทรัพยากรทักษะการจัดการทั่วไป แต่ฉันต้องการค้นหาสิ่งที่อาจเฉพาะเจาะจงกับผู้นำทีมนักพัฒนา กระบวนการขององค์กรคือ "มาตรฐาน" ประเภทน้ำตก SDLC ดังนั้นทรัพยากรที่มีต่อ Agile จึงไม่ใกล้เคียง
10 team  team-leader 

7
ความสามารถในการนำกลับมาใช้ใหม่มีความหมายเหมือนกันกับการออกแบบที่ดีหรือไม่?
สามารถนำมาใช้เป็นคุณลักษณะของดีออกแบบซอฟต์แวร์ ความสามารถนำกลับมาใช้ใหม่เป็นเงาที่ยอมรับได้("สัญกรณ์สั้น ๆ ของความหมาย") สำหรับการออกแบบซอฟต์แวร์ที่ดีหรือไม่? ทำไม?

4
จุดอ่อนที่มีฐานข้อมูล NoSQL ประเภทต่างๆ
นี่คือคำถามของฉัน: อะไรคือจุดอ่อนที่มีฐานข้อมูล NoSQL ประเภทต่าง ๆ ? โดยเฉพาะอย่างยิ่งจุดอ่อนของร้านค้าคีย์ - ค่าร้านข้อมูลกราฟและร้านขายเอกสารคืออะไร? ฉันมีเวลาง่าย ๆ ในการค้นหาจุดแข็ง แต่เอกสารเกี่ยวกับจุดอ่อนดูเหมือนจะเป็นสิ่งที่น่ากลัว แก้ไข: เมื่อเปรียบเทียบกับแต่ละอื่น ๆ และฐานข้อมูลเชิงสัมพันธ์

5
มีข้อบกพร่องใด ๆ กับรูปแบบการแยกทาง Git หรือไม่
ฉันกำลังถามเกี่ยวกับรูปแบบการแยกสาขาหรือเวิร์คโฟล ฉันชอบสิ่งนี้มาก มันทำให้ฉันเป็นคนเข้าใจง่ายและมีประสิทธิผล แต่สิ่งที่ฉันขอคือว่ามีข้อบกพร่องหรือข้อเสียใด ๆ ต่อวิธีการนี้ที่ยังไม่ชัดเจนสำหรับฉัน (มาจากโลกอื่นที่ ClearCase ปกครองวัน) (คุณไม่จำเป็นต้องตอบทุกคำถามสิ่งที่คุณสามารถทำได้มีประโยชน์) คุณใช้เวิร์กโฟลว์การแยกสาขาแบบนี้หรือคล้ายกันหรือไม่ คุณคิดว่านี่เป็นแนวทางการผลิตหรือไม่? คุณเห็นข้อบกพร่องด้วยวิธีนี้หรือไม่? ข้อเสียใด ๆ ที่อาจเกิดขึ้น? หากคุณมีวิธีที่ดีกว่าคุณจะแบ่งปันหรือเสนอลิงก์ไปยังบทความหรือการสนทนาเกี่ยวกับเรื่องนี้หรือไม่?
10 git  workflows 

4
นักพัฒนาสามารถเรียนรู้อะไรจากการศึกษามัลแวร์หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มัลแวร์ใช้เทคนิคที่น่าสนใจเพื่อซ่อนตัวเองจากซอฟต์แวร์ป้องกันมัลแวร์และอื่น ๆ พวกเขาสามารถ "polymorph" ตัวเอง: จริงเปลี่ยนรหัสในขณะที่มันยังคงหมายถึงเหมือนกันมากกับเครื่องที่ดำเนินการทำให้คำจำกัดความของโปรแกรมป้องกันไวรัสที่ไม่ถูกต้อง ฯลฯ ฉันสงสัยว่ามีอะไรนักพัฒนา (ไม่ประสงค์ร้าย) สามารถเรียนรู้จากการศึกษาแหล่งที่มาของสิ่งนั้นหรือย้อนกลับพวกเขาและศึกษาสิ่งที่คุณได้รับจากกระบวนการนั้นหากแหล่งที่มานั้นไม่มีอยู่นั่นอาจเป็นประโยชน์ภายนอก (มืด) ดินแดน ฉันไม่สนใจเขียนมัลแวร์ (อย่างน้อยไม่ใช่เพื่อการศึกษา) คำถามนี้ไม่ได้มีไว้เพื่อเป็นคำถามเกี่ยวกับวิธีการเขียนมัลแวร์หรือสิ่งนั้น แต่สิ่งที่คุณสามารถเรียนรู้จากมัลแวร์ที่เขียนแล้ว นอกจากนี้อาจผิดจรรยาบรรณเล็กน้อย (ฉันหวังว่าจะไม่) จะมีผลกำไรจากการเขียนมัลแวร์ของคุณเองเพียงเพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับช่องโหว่ / ช่องโหว่ / การรักษาความปลอดภัยหรือระบบปฏิบัติการพื้นฐานหรือไม่?

3
MVC: รุ่นที่มีประชากรเต็มหรือรุ่นที่เต็มไปบางส่วน?
อันนี้หลอกหลอนฉันมานาน เมื่อใดที่คุณทำการเขียนโปรแกรม MVC คุณคิดว่าอะไรคือวิธีการเขียนโปรแกรมที่ดีกว่า ควรใช้แบบจำลองที่มีคนเต็มหรือคนที่เต็มไปบางส่วนโดยเฉพาะอย่างยิ่งเมื่อฉันรู้ว่าสำหรับงานนี้โดยเฉพาะฉันจะต้องการเพียง 2 ฟิลด์จากวัตถุแบบจำลองที่มี 5 คน บางครั้งดูเหมือนผิดกฎหมายที่จะเติมรายการของวัตถุจำลอง 20 แบบด้วยค่าทั้งหมดจากฐานข้อมูลเมื่อคุณรู้ว่าคุณต้องการเพียงบางส่วนเท่านั้น แน่นอนว่าโมเดลบางส่วนหมายความว่าคุณจะต้องเขียนอีกหนึ่งวิธีใน DAO ของคุณนอกเหนือจากวิธีที่ดึงข้อมูลทุกอย่าง ซึ่งหมายถึงรหัสเพิ่มเติมในการรักษา? ในทางตรงกันข้ามการดึงทุกอย่างจากฐานข้อมูลด้วยโมเดลที่มีประชากรเต็มหมายความว่าวิธีการหนึ่งให้บริการทั้งหมด แต่สิ่งนี้จะช่วยให้คุณได้รับประสิทธิภาพ ฉันสามารถดู ORM (เช่น Hibernate หรือ ActiveRecord of Rails) ซึ่งเป็นที่นิยมในแนวโน้มการเขียนโปรแกรม MVC และฐานข้อมูลเช่น BigTable ของ Google ซึ่งเป็นโมเดลเต็มรูปแบบที่เป็นที่ยอมรับ แต่ถ้าคุณยังใช้ JDBC รุ่นเก่าอยู่ล่ะ? ฮาร์ดแวร์ราคาถูกการพัฒนามีราคาแพง เป็นเรื่องจริงหรือไม่ที่แอพจำเป็นต้องเพิ่มจำนวนคำขอเป็นสองสามแสนครั้งต่อชั่วโมง
10 mvc 

5
จะเป็นไรไหมถ้าฉันตัดสินใจเขียน Ruby ทั้งหมดของฉันราวกับว่าเป็น Haskell
ระบุว่า Ruby มีความสามารถในการดำเนินการรายการที่ดีในตัว - ลดแผนที่เลือกรวบรวม ฯลฯ มันมี Procs บล็อกและ Lambdas และมีการสนับสนุนการทำซ้ำที่ดี ( eachครอบครัว) มันจะเป็นการตัดสินใจที่ไม่ดีถ้าฉันพยายาม เขียนข้อมูล Ruby ทั้งหมดของฉันด้วยวิธีการที่บริสุทธิ์ที่สุด โดยเฉพาะอย่างยิ่งสำหรับโค้ดที่มี I / O น้อยหรือไม่มีเลย ฉันได้เรียนรู้ Haskell (เรียกว่าภาษาแฮ็กเกอร์ 'ของจริง') และฉันรักมันเป็นวิธีการทำสิ่งต่าง ๆ - ฉันรัก Ruby แต่คิดว่ามันน่าสนุกกว่าเดิมเมื่อวิญญาณ Haskell ไหลเข้ามา Ruby ยืม / เรียนรู้อะไรมากมายตั้งแต่แรก) ยินดีต้อนรับคำแนะนำที่สร้างสรรค์ ...

5
การอ้างอิงที่ดีสำหรับตัวอย่างเอกสารผู้ใช้ปลายทางและแนะนำ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ซอฟต์แวร์ภายใน บริษัท ของเราถูกใช้สำหรับผู้ใช้จำนวนมากและฝ่ายฝึกอบรมขอให้เราทราบเคล็ดลับเกี่ยวกับรูปแบบเอกสารผู้ใช้ปลายทาง มีใครรู้บ้างว่าฉันสามารถหาตัวอย่างที่ดีของเอกสารคู่มือผู้ใช้ซอฟต์แวร์ที่แผนกฝึกอบรมใช้เป็นแรงบันดาลใจหรือเว็บไซต์ใด ๆ ที่มีคำแนะนำที่ดี นี่คล้ายกับคำถามนี้แต่ฉันกำลังมองหาเอกสารสำหรับผู้ใช้เพื่อใช้งานโดยผู้ใช้ที่ไม่ใช่ด้านเทคนิค

3
ภาษาโปรแกรมการทำงานมีโอกาสมากขึ้นในการรวบรวมการปรับเวลาให้เหมาะสมหรือไม่
ฉันกำลังอ่านหนังสือ "ฟังก์ชั่นการเขียนโปรแกรมสำหรับโลกแห่งความจริง" มันเริ่มต้นด้วยการเปรียบเทียบระหว่างภาษาการเขียนโปรแกรมที่จำเป็นและใช้งานได้ และมันระบุว่า 'ค่า' และ 'นิพจน์' ในการโปรแกรมเชิงฟังก์ชันนั้นแตกต่างจาก 'ตัวแปร' และ 'หน้าที่' ของการเขียนโปรแกรมที่จำเป็น จากการอภิปรายฉันได้เรียงลำดับความคิดที่พัฒนาขึ้น - ฟังก์ชั่นการเขียนโปรแกรมภาษามีโอกาสมากขึ้นในการรวบรวมการเพิ่มประสิทธิภาพเวลากว่าคู่ที่จำเป็นของพวกเขา จริงป้ะ?

6
เริ่มต้นโครงการใหม่ด้วย TDD
ฉันกำลังศึกษา TDD และฉันอ่านว่ามันช่วยให้คุณกำหนดการออกแบบแอพได้ถูกต้องไหม? ดังนั้นฉันจึงตัดสินใจเริ่มสร้างโครงการใหม่เพื่อช่วยให้เข้าใจได้ดีขึ้น ฉันต้องการสร้างระบบการลงทะเบียนผู้ใช้แบบง่ายที่จะขอชื่อที่อยู่อีเมลประเทศ (จะเลือกจากรายการ) และหมายเลขโทรศัพท์ ดังนั้นคำถามคือ ... ฉันสร้างโซลูชันใหม่ใน VS 2010 เพิ่มโครงการทดสอบใหม่และฉันไม่รู้ว่าการทดสอบใดที่จะเขียน! เนื่องจากมันจะช่วยให้ฉันกำหนดการออกแบบได้ฉันจะเขียนแบบทดสอบอะไรได้บ้าง ขอบคุณสำหรับความช่วยเหลือใด ๆ !
10 c#  .net  tdd 

6
โครงการพัฒนาเว็บประเภทใดที่ได้รับประโยชน์จากการใช้ ORM
ฉันจะเริ่มด้วยการบอกว่าฉันได้ทำฐานข้อมูลของฉัน 95% โดยใช้ SQL เมื่อเร็ว ๆ นี้ฉันได้ทำการตรวจสอบ ORM ต่างๆเช่น NHibernate และ Doctrine ฉันสามารถเห็นข้อดีของการไม่จำเป็นต้องรู้ SQL และความสามารถในการพกพาฐานข้อมูลที่ ORM ให้ แต่ฉันสามารถเห็นได้ว่าการรู้ว่า SQL จะทำให้ ORM ทำงานได้อย่างมีประสิทธิภาพมากขึ้นและฉันสามารถคิดได้เพียงครั้งเดียวในอาชีพของฉันว่าการเปลี่ยนแปลงครั้งใหญ่ที่สุดของแอปพลิเคชันจะเป็นผู้จำหน่ายฐานข้อมูล เนื่องจากฉันรู้สึกสะดวกสบายในการเขียน SQL และเห็นได้ชัดว่าไม่ได้ตระหนักถึงประโยชน์ที่ได้รับการสอนบ่อยครั้งในการใช้ ORM คำถามของฉันสำหรับผู้ใช้ ORM ที่หนักหน่วงคือ: โครงการพัฒนาเว็บประเภทใดที่ได้รับประโยชน์สูงสุดจากการใช้ ORM

4
ฉันจำเป็นต้องอัพเกรด log4j เป็น slf4j [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เรากำลังตรวจสอบเว็บแอปพลิเคชัน JEE ของเราเพื่อทำการรีแฟคเตอร์ตามแผนและหนึ่งในข้อเสนอแนะคือการแทนที่log4jด้วยlogbackหรือslf4j ทีมไม่ชัดเจนว่าเราควรทำเช่นนี้หรือไม่ - เนื่องจากในปัจจุบันเราต้องการติดตามหากมันยังไม่พังอย่าแก้ไขในส่วนนี้ แก้ไข:ฉันไม่ได้ขอให้เปรียบเทียบเฟรมเวิร์กการบันทึก แต่ไม่ว่าจะเป็นองค์ประกอบการรีแฟคเตอร์ที่มีคุณค่าเพื่อเปลี่ยนเฟรมเวิร์กหรือไม่เมื่อเราพอใจกับ log4j

5
วิธีการตัดสินใจระหว่างรูปแบบการจัดเก็บและกรณีตัวอย่างการใช้งานสำหรับบางรูปแบบ?
เรามีวิธีต่าง ๆ ในการจัดเก็บข้อมูลโปรแกรม (บันทึกไฟล์ในเกมฐานข้อมูลพนักงานการกำหนดค่าโปรแกรม ฯลฯ ): ข้อความล้วน (คิด.iniและ.conf) XML ฐานข้อมูล (MySQL, SQLite ... ) .zip และที่คล้ายกันมีหลายไฟล์ (ที่มีรูปแบบที่แตกต่างกัน) ไฟล์ไบนารี (คิดว่า.docเป็นต้นเช่นสร้างโดยเครื่องมือการทำให้เป็นอนุกรม) กรณีการใช้งานที่แตกต่างกันสำหรับรูปแบบที่ระบุไว้ข้างต้นคืออะไรและข้อได้เปรียบของพวกเขาคือข้อเสียอะไรบ้าง (คิดว่าความเร็วความยืดหยุ่นขนาดไฟล์ใช้งานง่าย ... )? วิธีการตัดสินใจระหว่างพวกเขาสำหรับงานที่แตกต่างกันอย่างไร เกี่ยวกับรูปแบบการซิป:นี่ใช้สำหรับบรรจุไฟล์อื่นเท่านั้น มันอาจเป็นรูปแบบการบีบอัดอื่นเช่นกัน สิ่งนี้ทำให้โครงสร้างของหลาย ๆ ไฟล์รวมถึงไฟล์รูปภาพไฟล์เสียงและไฟล์ข้อความ ตัวอย่างเช่นสมมติว่าคุณมีรูปแบบการจัดเก็บข้อมูลสำหรับข้อความซึ่งอาจมีไฟล์ คุณสามารถมีไฟล์ต่อไปนี้ในไฟล์ซิป: message.txt (containing the message) attachments (folder containing attachments) audio.wav picture.jpg

8
การศึกษาระดับปริญญา CS มีประโยชน์ต่อโปรแกรมเมอร์ที่มีอายุมากกว่าหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา มีผลประโยชน์ใด ๆ ในการรับการศึกษาระดับปริญญา CS ในคนกลางเดือน 40 ของอาชีพที่ชาญฉลาด ? โอกาสที่เพิ่มขึ้นในการผ่านตัวกรอง HR จะคุ้มค่าหรือไม่ มันเป็นสิ่งที่ฉันอาจสนุกกับการทำและฉันจะไม่รังเกียจที่จะทำให้พื้นฐานของฉันมั่นคง แต่ฉันจะลดความสามารถในการหารายได้ในช่วงหลายปีที่ผ่านมาซึ่งจะใช้เวลาในการเรียนจนจบปริญญา อาจเหลือ 15 ปีในอาชีพการงานของฉัน (ขณะนี้ฉันไม่มีวุฒิการศึกษาจากวิทยาลัย)

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

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