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

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

6
ความคิดเห็นเป็นรูปแบบของเอกสารหรือไม่
เมื่อฉันเขียนสคริปต์ขนาดเล็กสำหรับตัวเองฉันสแต็ครหัสของฉันสูงด้วยความคิดเห็น (บางครั้งฉันแสดงความคิดเห็นมากกว่าฉันรหัส) ผู้คนจำนวนมากที่ฉันพูดคุยเพื่อบอกว่าฉันควรจะบันทึกสคริปต์เหล่านี้แม้ว่าพวกเขาจะเป็นส่วนตัวดังนั้นถ้าฉันจะขายพวกเขาฉันจะพร้อม แต่ไม่ได้แสดงความคิดเห็นในรูปแบบของเอกสารใช่หรือไม่ จะไม่นี้: $foo = "bar"; # this is a comment print $foo; # this prints "bar" ได้รับการพิจารณาเอกสารโดยเฉพาะอย่างยิ่งหากนักพัฒนาซอฟต์แวร์กำลังใช้รหัสของฉันหรือไม่ หรือเอกสารประกอบนั้นถูกพิจารณาว่าอยู่นอกรหัสหรือไม่

4
สแตกการโทรเริ่มที่ด้านล่างหรือด้านบน?
สแต็คเป็นสิ่งที่ซ้อนจากล่างขึ้นบน ดังนั้นสแต็กการโทรจะเพิ่มไอเท็มใหม่บนสแต็กเมื่อเรียกใช้ฟังก์ชันโดยไอเท็มจะถูกลบออกจากสแต็กเมื่อแต่ละฟังก์ชันสิ้นสุดลงจนกว่าสแต็กจะว่างเปล่าจากนั้นโปรแกรมจะสิ้นสุด หากข้อมูลด้านบนถูกต้องเหตุใดผู้คนจึงอ้างถึงการควบคุมการย้าย "up" ของ call stack? การควบคุมอย่างแน่นอนเลื่อนลงไปสแตกการโทรจนกว่าจะถึงด้านล่าง
11 functions  stack 

3
รุ่นต่อตารางฐานข้อมูล?
ฉันกำลังใช้ codeigniter และพบว่าตัวเองอยู่ในสถานการณ์ที่คล้ายคลึงกันซึ่งฉันได้ใช้วิธีการจำลองซ้ำ ฉันกำลังสร้างแบบจำลองต่อตัวควบคุม แต่ฉันจะสร้างรุ่นต่อตารางฐานข้อมูลถือว่าเป็นแนวปฏิบัติที่ดี? วิธีนั้นจะไม่ถูกเขียนสองครั้ง แทนที่จะเป็นรุ่นต่อตัวควบคุมหรือรุ่นเล็ก ๆ หลายตัวที่ใช้ร่วมกัน ตัวอย่างถ้าฉันมี model model get_user ($ user_id) ฉันสามารถเขียนมันบน users_models.php ... ข้อเสียอย่างหนึ่งที่ฉันเห็นในที่นี้คือฉันอาจต้องโทรหลายรุ่นแทนที่จะเป็นแค่ชื่อผู้ใช้งาน สามารถโหลดหลายรุ่นที่ไม่สามารถใช้วิธีการหลายวิธีจากคอนโทรลเลอร์มีผลต่อประสิทธิภาพและความเร็วได้หรือไม่? อะไรจะเป็นวิธีที่ดีที่สุดในการจัดการกับปัญหานี้? หมายเหตุ: มีคำถามที่คล้ายกัน แต่ไม่ครอบคลุมถึงโมเดลต่อตารางฐานข้อมูล

1
ใบอนุญาตใดที่ฟรีสำหรับใช้ในเชิงพาณิชย์
ฉันแพ้ใบอนุญาตจำนวนมาก - GPL, LGPL, ครีเอทีฟคอมมอนส์, BSD, Apache และอื่น ๆ และกำลังมองหาคู่มือสำหรับผู้เริ่มต้น เมื่อใช้ส่วนประกอบภายใต้ลิขสิทธิ์ที่ได้รับความนิยมเช่นนี้ข้อ จำกัด ในการใช้งานโดยไม่ต้องจ่ายในผลิตภัณฑ์เชิงพาณิชย์คืออะไร เช่น ฉันจะต้องเผยแพร่แหล่งที่มาใหม่หรือไม่ ฉันต้องให้เครดิตพวกเขาหรือไม่ ถ้าฉันแก้ไขส่วนประกอบ เป็นต้น จากสิ่งที่ฉันสามารถบอกได้จากhttp://www.codeproject.com/info/Licenses.aspxเฉพาะ GPL และครีเอทีฟคอมมอนส์เท่านั้นที่บังคับให้คุณกระจายแหล่งที่มาใหม่
11 licensing 

2
ใน C ++, SFINAE และ metaprogramming ตั้งใจหรือเป็นเพียงแค่ผลพลอยได้ของแม่แบบหรือไม่?
SFINAEและtemplatemetaprogramming สามารถทำสิ่งมหัศจรรย์ได้และห้องสมุดหลายแห่งก็ใช้พวกมันอย่างมาก ในอดีตทั้งสอง "แนวคิดเกี่ยวกับเวทมนต์" เหล่านี้ได้รับการแนะนำ / สนับสนุนใน C ++ อย่างจงใจ? หรือพวกเขาเพิ่งค้นพบในภายหลังว่าเป็นผลพลอยได้ที่มีประโยชน์ (ผลิตภัณฑ์ด้านข้าง) ของtemplateการเขียนโปรแกรมต้นฉบับ?

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

2
อัลกอริทึมสำหรับการจัดทำโค้ด SQL
ฉันต้องการเครื่องมือ (สำหรับใช้ในบ้าน) ที่จะฟอร์แมตโค้ด SQL (SQL Server / MySQL) มีเครื่องมือของบุคคลที่สามที่หลากหลายและเว็บไซต์ออนไลน์ที่ทำ แต่ไม่ว่าฉันต้องการมันอย่างแน่นอน ดังนั้นฉันต้องการเขียนเครื่องมือของตัวเองที่จะตอบสนองความต้องการของฉัน คำถามแรกมีมาตรฐานหรืออนุสัญญาว่าควรจัดรูปแบบรหัส SQL อย่างไร (เครื่องมือที่ฉันลองฟอร์แมตมันแตกต่างกัน) คำถามที่สองฉันจะเข้าใกล้ภารกิจนี้ได้อย่างไร ในตอนแรกควรแปลงแบบสอบถาม SQL เป็นโครงสร้างข้อมูลบางอย่างเช่นต้นไม้หรือไม่

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

3
การเขียนความคิดเห็น java doc สำหรับกรณีทดสอบหน่วย
ในความคิดของฉันกรณีทดสอบหน่วยทำหน้าที่เป็นเอกสารสำหรับรหัส บริษัท ของฉันต้องการให้ฉันเขียนข้อคิดเห็นเกี่ยวกับ java doc แบบละเอียดด้านบนของกล่องทดสอบหน่วย จำเป็นหรือไม่ คุณเขียนความเห็นเช่นนั้น?

2
ตัวจัดการคำสั่งและ DDD
ฉันมีแอพพลิเคชั่น ASP.NET MVC ที่ใช้บริการสอบถามเพื่อรับข้อมูลและบริการคำสั่งเพื่อส่งคำสั่ง คำถามของฉันเกี่ยวกับส่วนคำสั่ง หากมีการร้องขอเข้ามาบริการคำสั่งจะใช้โปรแกรมเลือกจ่ายงานคำสั่งที่จะกำหนดเส้นทางคำสั่งไปยังตัวจัดการคำสั่งที่กำหนดไว้ ตัวจัดการคำสั่งนี้ตรวจสอบความถูกต้องของ comand ก่อนและหากทุกอย่างเป็นที่ยอมรับก็จะดำเนินการคำสั่ง ตัวอย่างที่เป็นรูปธรรม: AddCommentToArticleCommandHandler ได้รับ AddCommentToArticleCommand ซึ่งมี ArticleId, CommentText และ EmailAddress ครั้งแรก; การตรวจสอบจะต้องเกิดขึ้นเช่น: - ตรวจสอบว่ามีบทความอยู่หรือไม่ - ตรวจสอบว่าบทความไม่ได้ปิดอยู่หรือไม่ - ตรวจสอบว่ามีการกรอกข้อความแสดงความคิดเห็นและระหว่าง 20 ถึง 500 อักขระหรือไม่ - ตรวจสอบว่ากรอกอีเมลแล้วหรือไม่ ฉันสงสัยว่าจะใช้การตรวจสอบนี้ที่ไหน 1 / ในตัวจัดการคำสั่งเอง แต่จะไม่สามารถนำกลับมาใช้ใหม่ได้ในตัวจัดการคำสั่งอื่น 2 / ในนิติบุคคลโดเมน แต่เป็นนิติบุคคลที่โดเมนไม่ทราบเกี่ยวกับที่เก็บหรือบริการจึงไม่สามารถทำการตรวจสอบที่จำเป็น (ไม่สามารถตรวจสอบว่ามีบทความ) แต่ในทางกลับกันหากเอนทิตีไม่มีตรรกะมากกว่าจะกลายเป็นที่เก็บข้อมูลอย่างง่ายซึ่งไม่เป็นไปตามหลักการ DDD 3 / ตัวจัดการคำสั่งใช้ตัวตรวจสอบความถูกต้องเพื่อให้การตรวจสอบสามารถนำกลับมาใช้ในตัวจัดการคำสั่งอื่น ๆ 4 / …

3
ความเข้ากันได้ของลิขสิทธิ์ MPL 1.1 และ APL 2.0
ฉันทำงานโครงการที่ได้รับอนุญาตภายใต้ MPL 1.1 และต้องการรวมรหัสบางส่วนที่ได้รับอนุญาตภายใต้ APL 2.0 ฉันรู้ว่าในปี 2010 Mozilla ประกาศว่าพวกเขากำลังอัปเดต MPL เพื่อให้ "Apache เข้ากันได้" มากกว่าสิ่งอื่นใด ฉันไม่มีทนาย ส่วนใดของ MPL 1.1 ที่ไม่พูดปดกับ APL 2.0 และในทางกลับกัน โครงการมีผู้ลักลอบดั้งเดิมน้อยมากที่ยังคงมีส่วนร่วมดังนั้นฉันสงสัยว่าฉันจะสามารถติดต่อพวกเขาทั้งหมดเพื่อขออนุญาตเปลี่ยนใบอนุญาต

5
ฉันจะเลือกโทรศัพท์ Android ที่เหมาะสมสำหรับการทดสอบแอพของฉันได้อย่างไร
ฉันต้องการซื้อโทรศัพท์ Android เพื่อทดสอบแอพ Android เครื่องแรกของฉัน ฉันควรใส่ใจสิ่งใดเพื่อให้แน่ใจว่าฉันเลือกอุปกรณ์ที่เหมาะสมที่สุด
11 android 

6
Scrum Master ต้องการทีมที่มีประสิทธิภาพสูงหรือไม่?
ความเข้าใจของฉันเกี่ยวกับหน้าที่ของอาจารย์การต่อสู้มีดังนี้: บังคับใช้กระบวนการ ลบสิ่งกีดขวาง (ที่ผู้พัฒนาไม่สามารถลบตนเองได้) ป้องกันการหยุดชะงักจากภายนอก อำนวยความสะดวกในการประชุมการต่อสู้ (ยืนขึ้นย้อนหลัง ฯลฯ ) หากนักพัฒนาในทีมมีระเบียบวินัยพวกเขาจะทำตามกระบวนการโดยไม่มีใครสอนพวกเขา พวกเขาจะไม่มีปัญหาในการจัดการประชุมย้อนหลังและการต่อสู้อื่น ๆ หากองค์กรที่เหลือเข้าใจขอบเขตของการวิ่งการขัดจังหวะและการกีดขวางภายนอกที่จะต้องใช้หลักการต่อสู้จะลดลงแล้ว เมื่อทีมทำงานได้อย่างมีประสิทธิภาพสูงและองค์กรเข้าใจถึงขอบเขตของการวิ่งดูเหมือนว่าความต้องการในการต่อสู้เพื่อแย่งชิงครู เป็นไปได้หรือไม่ที่ทีมจะไปถึงจุดที่ไม่ต้องมีการต่อสู้กับเจ้านายอีกต่อไป?

3
MVVM หรือ MVC ต้องการใช้คลาสชุดเดียวกันสำหรับ WPF และ ASP.NET
ฉันเป็นมือใหม่ในแง่ของรูปแบบการออกแบบ ฉันเพิ่งเริ่มเรียนรู้ MVC เมื่อฉันได้ยินเสียงกระหึ่มใหม่ MVVM ฉันต้องการเรียนรู้ข้อมูลเชิงลึกของทั้งสองสิ่งนี้โดยการออกแบบคลังโฆษณาเก่าและแอปพลิเคชันใบแจ้งหนี้ที่ฉันพัฒนาขึ้นสำหรับลูกค้า ฉันต้องการเขียนทั้งแอปพลิเคชัน WPF ที่ใช้ Windows และเวอร์ชันที่ใช้เว็บ ฉันต้องการใช้คลาสชุดเดียวกันถ้าเป็นไปได้ถ้าไม่ใช่อย่างน้อยก็มีการดัดแปลงเล็กน้อย ฉันอ่านบทความสองสามข้อ แต่ฉันไม่ได้ติดตามสถาปัตยกรรมและแนวคิดระดับสูงของ. NET 3.5 และ 4 ที่กล่าวถึง ฉันต้องการที่จะย้ายทีละขั้นตอนโดยการออกแบบเฉพาะสิ่งที่ฉันต้องการในโครงการในชีวิตจริงของฉัน มีการอ้างอิง MVVM ทีละขั้นตอนง่าย ๆ หรือไม่? MVVM เป็น super-set หรือ sub-set ของ MVC หรือไม่? รูปแบบใดที่ทันสมัยและฉันควรเลือกรูปแบบใดสำหรับแอพพลิเคชั่นของ Windows & Web? มีคลาสบางคลาสที่ฉันไม่จำเป็นต้องเชื่อมต่อกับมุมมอง ในกรณีนี้การออกแบบคลาสเดียวกันในแบบ MVVM จะพิสูจน์ว่าเป็นแรงงานเสริม
11 mvc  wpf  asp.net-mvc-3  mvvm 

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

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