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

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

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

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

8
จะหยุด / หลีกเลี่ยงการต่อเวลากับทีมการต่อสู้ได้อย่างไร?
จริงๆแล้วฉันกำลังช่วยร้านขายซอฟต์แวร์เล็ก ๆ ในการดำเนินการต่อสู้ เมื่อเร็ว ๆ นี้อาจารย์ Scrum รายงานว่าเขามีปัญหาเพราะทีมทำงานเมื่อเวลาผ่านไปเพื่อให้บรรลุขอบเขต ดังนั้นพวกเขาจึงมีความเร็วลวงตา คำถามทางการของฉันคือ / คือ: นอกเหนือจากการพูดคุยเกี่ยวกับการประชุมย้อนหลัง; คุณคิดว่าเป็นความคิดที่ดีที่จะใช้ฮาร์ดบล็อคเพื่อหลีกเลี่ยงช่วงเวลาหรือไม่? ถ้าเป็นเช่นนั้นคุณแนะนำเทคนิคหรือเครื่องมืออะไร? ระบบควบคุมการแก้ไข (SVN, GIT, HG, ฯลฯ ... ), บล็อกต่อชั่วโมง (8 ถึง 5) บล็อกสถานีงานตามชั่วโมง (8 ถึง 5) หรือชั่วโมงสะสม (มากถึง 8 ชม. / วัน)? อื่น ๆ (s) ... หรือบางทีอย่าปิดกั้นสิ่งนี้ แต่ใช้"ระบบการลงโทษ"สำหรับชั่วโมงที่ไม่ยุติธรรมเพิ่มหรือไม่ ครั้งแรก: Tks ทั้งหมดสำหรับการตอบสนองที่รวดเร็วของคุณ @Baqueta (และคนอื่น ๆ ที่มีคำถามคล้ายกัน): ไม่มีการจ่ายเงินสำหรับชั่วโมงพิเศษ …
14 agile  scrum 

12
ใบรับรอง SSL มีความสำคัญต่อเว็บไซต์เพียงใด
ฉันกำลังเริ่มต้นโครงการของตัวเองมีพื้นที่ลงทะเบียน / เข้าสู่ระบบ (ผ่านการประดิษฐ์ด้วย RoR, แฮชอย่างถูกต้องและเค็มแน่นอน) ขณะที่ฉันใช้โดเมนย่อยและฉันจำเป็นต้องเข้าถึงพวกเขาด้วย iframes (มันเป็นธรรมจริง ๆ !) ฉันต้องการใบรับรองราคาแพงที่ครอบคลุมโดเมนย่อย เมื่อฉันทำสิ่งนี้ด้วยเวลาและเงินของตัวเองดังนั้นฉันลังเลที่จะทิ้งใบรับรองสองสามร้อยใบรวมถึงสองสามชั่วโมงในการค้นหาสิ่งที่ฉันไม่เคยลองมาก่อน ฉันไม่ได้จัดเก็บข้อมูลที่ละเอียดอ่อนใด ๆ นอกเหนือจากที่อยู่อีเมลและรหัสผ่าน เท่าที่ฉันเข้าใจช่องโหว่เดียวเท่านั้นที่เกิดขึ้นเมื่อผู้ใช้ล็อกหรือลงทะเบียนจากเครือข่ายที่ไม่ได้เข้ารหัส (เช่นร้านกาแฟ) และมีคนกำลังฟังเครือข่าย ฉันถูกหรือไม่ นี่คือสิ่งที่ฉันควรแก้ไขก่อนที่จะปล่อยสู่ป่า ฉันน่าจะพูดถึงฉันมีผู้ใช้ 25,000 คนที่ลงทะเบียนเพื่อรับการแจ้งเตือนเมื่อฉันเปิดตัวดังนั้นฉันกังวลเกี่ยวกับมัน
14 security  ssl 

1
ความแตกต่างที่เด็ดขาดระหว่าง LGPL และ AGPL
ความแตกต่างระหว่าง LGPL (v3) และ AGPL (v3) แตกต่างกันอย่างไร? ทั้งสองสามารถใช้ในการผลิตเชิงพาณิชย์ทั้งยังสามารถบรรจุภายในผลิตภัณฑ์ที่ต้องชำระเงิน ตราบใดที่ฉันไม่ได้เปลี่ยนซอร์สโค้ดเหล่านี้ฉันไม่ได้บังคับให้ใส่ซอร์สโค้ดกับผลิตภัณฑ์ของฉัน ดังนั้นความแตกต่างที่เด่นชัดอยู่ที่ไหน? (ถามคำถามนี้ได้ที่/programming/10996160/the-decisive-difference-between-lgpl-and-agplแต่ผู้ใช้แนะนำให้ถามที่นี่)
14 licensing  gpl  lgpl  agpl 

4
การใช้คอมไพล์อย่างถูกต้องในทีมเล็ก ๆ
อะไรจะเป็นวิธีที่ง่ายที่สุดในการใช้คอมไพล์อย่างถูกต้องในทีมเล็ก ๆ ของนักพัฒนาประมาณ 5 คนโดยมีเซิร์ฟเวอร์หนึ่งตัวที่ใช้งานแอปพลิเคชันสด

5
พฤติกรรมที่ไม่ได้กำหนดใน Java
ฉันอ่านคำถามนี้เกี่ยวกับ SOที่กล่าวถึงพฤติกรรมที่ไม่ได้กำหนดทั่วไปใน C ++ และฉันสงสัยว่า: Java มีพฤติกรรมที่ไม่ได้กำหนดหรือไม่ หากเป็นเช่นนั้นแล้วสาเหตุทั่วไปของพฤติกรรมที่ไม่ได้กำหนดใน Java คืออะไร ถ้าไม่เช่นนั้นคุณสมบัติใดของ Java ที่ทำให้ปราศจากพฤติกรรมดังกล่าวและเพราะเหตุใด C และ C ++ รุ่นล่าสุดจึงไม่ถูกนำไปใช้กับคุณสมบัติเหล่านี้

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

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

9
TDD: ฉันทำถูกไหม?
ฉันเป็นโปรแกรมเมอร์คนใหม่ (เพิ่งเรียนรู้มาประมาณหนึ่งปี) และในเป้าหมายของฉันที่จะดีขึ้นฉันเพิ่งเรียนรู้เกี่ยวกับ TDD ฉันต้องการใช้มันให้เป็นนิสัยเพราะมันมีประโยชน์มาก ฉันต้องการตรวจสอบและตรวจสอบให้แน่ใจว่าฉันใช้อย่างถูกต้อง ฉันกำลังทำอะไรอยู่: คิดวิธีการใหม่ที่ฉันต้องการ สร้างการทดสอบสำหรับวิธีการนั้น การทดสอบล้มเหลว วิธีการเขียน ผ่านการทดสอบ วิธีการ Refactor ทำซ้ำ ฉันใช้วิธีนี้ทุกวิธีที่ฉันเขียนมีบางอย่างที่ฉันไม่ควรกังวล ต่อมาฉันมักจะนึกถึงวิธีทดสอบวิธีการที่มีอยู่แล้วของฉันในแบบหรือสถานการณ์อื่น ฉันควรทำแบบทดสอบใหม่ที่ฉันคิดหรือเพราะแต่ละวิธีมีการทดสอบของตัวเองแล้วฉันไม่ควรรำคาญหรือไม่? ฉันขอทดสอบรหัสของฉันได้ไหมฉันคิดว่าเป็นปัญหาหลักของฉันในการถามเรื่องนี้ แก้ไข นอกจากนี้ยังเป็นสิ่งที่ฉันเพิ่งสงสัย เมื่อทำอะไรบางอย่างเช่นการสร้าง GUI TDD จำเป็นไหมในสถานการณ์นั้น? โดยส่วนตัวฉันคิดไม่ออกเลยว่าจะเขียนข้อสอบอย่างไร
14 tdd 

3
ควรใช้ typedef เมื่อใด
ฉันสับสนเล็กน้อยเกี่ยวกับว่าและเมื่อไรฉันควรใช้ typedef ใน C ++ ฉันรู้สึกว่าเป็นการสร้างสมดุลระหว่างการอ่านและความชัดเจน นี่คือตัวอย่างโค้ดโดยไม่มีการพิมพ์ใด ๆ : int sum(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last) { static std::map<std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator>, int> lookup_table; std::map<std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator>, int>::iterator lookup_it = lookup_table.find(lookup_key); if (lookup_it != lookup_table.end()) return lookup_it->second; ... } IMO ที่น่าเกลียดทีเดียว ดังนั้นฉันจะเพิ่ม typedefs ภายในฟังก์ชันเพื่อให้ดูดีขึ้น: int sum(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last) { typedef std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator> Lookup_key; typedef …
14 c++  coding-style 

3
ฉันจะใช้ Six Sigma ในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ได้อย่างไร
ฉันเป็นผู้พัฒนา Java แต่ฉันถูกขอให้เรียนรู้เกี่ยวกับการใช้ Six Sigma กับเป้าหมายของการเพิ่มผลกำไรขององค์กรของเรา ฉันได้อ่านแล้วว่า Six Sigma สามารถใช้งานได้ในทุกสภาพแวดล้อม แต่ฉันสนใจในความแตกต่างของการประยุกต์ใช้กับการพัฒนาซอฟต์แวร์ แนวคิดใดของ Six Sigma ที่สามารถนำไปใช้กับสภาพแวดล้อมการพัฒนาซอฟต์แวร์และฉันจะนำไปใช้อย่างมีประสิทธิภาพได้อย่างไร ความเข้าใจของฉันคือ Six Sigma มุ่งเน้นไปที่: การระบุและลบสาเหตุของข้อบกพร่อง ลดความแปรปรวนในการใช้กระบวนการผลิตหรือธุรกิจ ฉันคิดว่าแนวคิดเหล่านี้สามารถนำไปใช้กับการพัฒนาซอฟต์แวร์ แต่สามารถนำไปใช้กับการพัฒนาซอฟต์แวร์ระยะเวลา (SDLC) ได้อย่างมีประสิทธิภาพหรือไม่

7
การป้องกันสำหรับสำเร็จรูป?
สำหรับฉันแล้วรหัสสำเร็จรูปนั้นแย่มาก อย่างไรก็ตามฉันได้พบกับนักพัฒนาที่แสดงความต้านทานในความพยายามใด ๆ เพื่อลดสำเร็จรูป ฉันรู้ว่าฉันไม่ได้มีรูปแบบที่พร้อมและคิดว่าการโต้แย้งที่ผ่านมาความเกลียดชังที่ฉันได้พัฒนามันเมื่อเวลาผ่านไป เพื่อที่ฉันจะได้สร้างข้อโต้แย้งที่น่าเชื่อถือสำหรับการสร้างหม้อไอน้ำให้น้อยลง กล่าวอีกนัยหนึ่งคืออะไรข้อโต้แย้ง (ถ้ามี) ในความโปรดปรานของสำเร็จรูป? (ฉันหมายถึงสิ่งที่ฉันคิดว่ามีความหมายโดยทั่วไปโดยสำเร็จรูป แต่ตัวอย่างที่ดีคือ getters และ setters ใน Java.)

3
ASP.NET MVC กับ WCF สำหรับ REST API + การใช้เว็บเพจ
ฉันคิดว่าการสนทนาสำหรับการใช้บริการเชิงโปรแกรมเทียบกับการโต้ตอบกับมนุษย์นั้นชัดเจน แต่ถ้าฉันต้องสร้างแอปพลิเคชั่นที่ใช้ทั้ง API เชิงโปรแกรมและเว็บไซต์ที่ใช้ประโยชน์จากข้อมูลที่เชื่อมต่อด้วย API เดียวกันมันจะให้ประโยชน์แก่ ASP.NET เพียงอย่างเดียวหรือไม่ การรวม ASP.NET และ WCF เข้ากับแอพพลิเคชันเดียวกันทำได้ง่ายเพียงใด?

3
การสื่อสารเซิร์ฟเวอร์แอพที่ปลอดภัยของ iPhone
อะไรจะเป็นวิธีที่ดีที่สุดในการบรรลุการสื่อสารส่วนตัวระหว่างแอพ iOS และส่วนประกอบเซิร์ฟเวอร์ การมี“ คีย์ลับ” ที่ไม่มีการเปลี่ยนแปลงเดียวถูกอบเข้าในแหล่งที่มาของแอปเพียงพอหรือไม่หรือฉันต้องตั้งค่ารุ่นของคีย์“ จับมือ” ดังกล่าวแบบไดนามิกบ้างไหม? เซิร์ฟเวอร์โดยตัวของมันเองไม่สามารถเข้าถึงข้อมูลที่ละเอียดอ่อนใด ๆ ได้ดังนั้นแม้ว่าผู้ใช้จะพบจุดปลายส่วนตัว แต่ก็ไม่สามารถเข้าถึงได้ทุกที่ แต่ฉันต้องการให้ผู้อื่นซ่อนตัวจากสาธารณะ โดยพื้นฐานแล้วฉันต้องการเพิกเฉยต่อการขอเส้นทางทั้งหมดโดยเฉพาะเว้นแต่พวกเขาจะมาจากแอพ iOS ของฉัน ส่วนประกอบของเซิร์ฟเวอร์ทำงานบน RoR ถ้าสำคัญ

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