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

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

2
คำอธิบายของเคล็ดลับ Google Gravity
ฉันไม่ได้เป็นนักพัฒนา JS มากนัก แต่ฉันสะดุดกับเว็บไซต์นี้ชื่อGoogle Gravity (ผู้ที่ไม่ได้ใช้ลองลองค้นหาที่นั่นคุณจะประหลาดใจ) ซึ่งเป็นหน้าแรกของ Google ที่สร้างใหม่ จากนั้นฉันก็คิดและสงสัยเกี่ยวกับการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีที่ผู้ชายใช้มัน ฉันลองใช้ Google แต่ไม่สามารถหาคำอธิบายที่ดีเกี่ยวกับการใช้งานได้ JS / CSS gurus ทั้งหมดคุณช่วยชี้ตำแหน่งของฉันให้ฉันเรียนรู้เพิ่มเติมได้ไหม? ฉันรู้พื้นฐานการทำงานกับ jQuery และ AJAX แล้ว
9 google 

3
WinRT และ. NET: มันคืออะไรฉันจะวางมันไว้ที่ไหนและมันเปลี่ยนอะไร?
สมมติว่าฉันเป็นผู้พัฒนา. NET และต้องการสร้างแอปพลิเคชันของฉันบน WinRT สิ่งที่ฉันได้อ่านคือมันเป็น API ใหม่สำหรับ Windows 8 ที่เกี่ยวข้องอย่างยิ่งกับแอพสไตล์เมโทร ฉันสมมติว่าฉันสามารถพัฒนาสำหรับ WinRT ใน. NET / C #? มันเกี่ยวข้องกับตัวอย่างเช่น WPF หรือ Silverlight อย่างไร WinRT จัดเตรียมกรอบงาน UI ของตนเองหรือฉันสามารถสร้างแอปพลิเคชัน WPF บน WinRT ได้หรือไม่? พื้นฐานเกี่ยวกับ I / O .NET จัดเตรียมวิธีการสำหรับสิ่งนั้นหากฉันพัฒนาด้วย / สำหรับ WinRT ฉันต้องใช้วิธีอื่นหรือไม่หรือกรอบงาน. NET จะใช้ WinRT ภายใต้ประทุนหรือไม่ นอกจากคำถามเฉพาะเหล่านี้คำถามที่พบบ่อยคือคำถามนั้นเกี่ยวข้องกับ API และกรอบงานอื่น ๆ ที่ฉันคุ้นเคยในฐานะนักพัฒนา. NET …
9 .net  windows-8 

2
รูปแบบการสังเกตการณ์ผ่าน HTTP และ TCP / IP (เซิร์ฟเวอร์ - ไคลเอ็นต์)
ฉันมีเซิร์ฟเวอร์และไคลเอนต์จำนวนมาก (ประมาณ 50 ไคลเอนต์) ที่เชื่อมต่อกับเซิร์ฟเวอร์นั้นขึ้นอยู่กับแอปพลิเคชันเว็บซึ่งแน่นอนว่าใช้โปรโตคอล HTTP ซึ่งใช้ TCP / IP ในทางกลับกัน (แก้ไขฉันหากฉันผิดเพราะฉัน เครือข่ายไม่เก่งจริงๆ) ปัญหาคือว่าฉันควรพัฒนากลไกการแจ้งเตือนซึ่งเมื่อใครบางคนส่งแบบฟอร์มที่มีค่าอันตรายผู้จัดการ (ผู้ที่เชื่อมต่อผ่านเว็บแอปพลิเคชันเดียวกัน) ควรได้รับป๊อปอัปแจ้งเตือนบนหน้าจอของเขาเกือบจะเป็นจริง - เวลา (ทันที) อย่างไรก็ตามเนื่องจากโปรโตคอล HTTP นั้นไร้สัญชาติฉันจึงสับสนเล็กน้อยที่นี่ ฉันไม่รู้ว่าฉันจะใช้สิ่งนี้ได้อย่างไร หนึ่งในวิธีแก้ปัญหาคือการใช้ JavaScript ข้างsetInterval()ฟังก์ชั่นเพื่อดึงข้อมูลในแต่ละวินาทีจากเซิร์ฟเวอร์ แต่ดูเหมือนว่าสกปรกเล็กน้อยสำหรับฉันและไม่เป็นมืออาชีพ พวกคุณมีความคิดที่จะนำโซลูชันอื่นมาใช้หรือไม่?

1
กระทู้: เธรดเคอร์เนลกับเธรดที่สนับสนุนเคอร์เนลเทียบกับเธรดระดับผู้ใช้?
ไม่มีใครรู้ว่าความแตกต่างระหว่างสิ่งเหล่านี้คืออะไร? สำหรับฉันแล้วดูเหมือนว่าเคอร์เนลเธรดจะสอดคล้องกับรหัสที่ใช้เคอร์เนล (อย่างสังหรณ์ใจ) แต่ฉันไม่แน่ใจเกี่ยวกับอีกสอง ... นอกจากนี้มาตรฐาน pthreads จะถูกพิจารณาเป็นระดับผู้ใช้และสนับสนุนเคอร์เนลเนื่องจากคุณกำลังเข้าถึงไลบรารีในขณะที่เคอร์เนลทำการตั้งเวลา / สลับเธรดทั้งหมดหรือไม่

6
ถัดไปในการทำงานพร้อมกัน
สำหรับปีที่ผ่านมาฉันทำงานหลายอย่างเกี่ยวกับการทำงานพร้อมกันใน Java และมีการสร้างและทำงานบนแพคเกจพร้อมกันจำนวนมาก ดังนั้นในแง่ของการพัฒนาในโลกที่เกิดขึ้นพร้อมกันฉันค่อนข้างมั่นใจ ต่อไปฉันสนใจที่จะเรียนรู้และทำความเข้าใจเพิ่มเติมเกี่ยวกับการเขียนโปรแกรมพร้อมกัน แต่ฉันไม่สามารถตอบตัวเองในสิ่งต่อไปได้ ฉันควรเรียนรู้อะไรเพิ่มเติมหรือทำงานเพื่อเพิ่มพูนทักษะที่เกี่ยวข้องกับการประมวลผลแบบมัลติคอร์ หากมีหนังสือดีๆ (อ่านและสนุกกับ 'การทำงานพร้อมกันในทางปฏิบัติ' และ 'การเขียนโปรแกรมพร้อมกันใน java') หรือทรัพยากรที่เกี่ยวข้องกับการประมวลผลแบบมัลติคอร์เพื่อให้ฉันสามารถไปยังระดับถัดไปได้หรือไม่

2
ต้องใช้ความพยายามมากแค่ไหนในการดูแลรักษาระบบการสร้าง?
ในStackExchange Podcast # 09มีการกล่าวถึง: การศึกษาอื่น ๆ เมื่อเร็ว ๆ นี้ได้พิจารณาว่าความพยายามในการบำรุงรักษาระบบการสร้างนั้นมีมากเพียงใด 5 ถึง 30% ของความพยายามในการพัฒนาทั้งหมดนั้นใช้ในการบำรุงรักษาระบบการสร้าง ด้วยรูปแบบที่หลากหลายแม้ว่าจะทำงานในโครงการที่คล้ายกันก็ตาม ชื่อของการศึกษาอ้างอิงคืออะไรและสามารถพบได้ที่ไหน? เสียงของพอดแคสต์ไม่มีรายละเอียดเพิ่มเติม นอกจากนี้ไม่มีใครมีลิงค์ไปยังการศึกษาอื่น ๆ ที่ครอบคลุมหัวข้อเดียวกัน

7
Bogarting Data Access Layer
สถานการณ์: dba เป็นผู้รับเหมาภายนอกที่เก็บรหัส DAL ทั้งหมดไว้ใน TFS มันจะดีในฐานะนักพัฒนาส่วนหน้าที่จะสามารถเพิ่มคอลัมน์และปรับแต่ง procs และอะไรก็ได้โดยไม่ต้องพึ่งพารอเพื่อนคนนี้เพื่อตอบอีเมลของคุณเพื่อทำงาน คำถาม: อะไรคือโซลูชั่น / กระบวนการที่แนะนำที่จะช่วยให้การพัฒนารวดเร็วขึ้น / คล่องตัวขึ้นในขณะที่รักษาความถูกต้องของข้อมูลรวมถึงความรักและความสงบสุขในหมู่ทีม?

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

5
การพัฒนาที่ขับเคลื่อนด้วยการทดสอบและพัฒนาทักษะการทดสอบกล่องสีขาว
ฉันเป็นระดับเริ่มต้นของ Java โปรแกรมเมอร์โดยตรงจากโรงเรียน ฉันมีความรู้และประสบการณ์ที่ดีกับ J2SE ใครช่วยแนะนำฉันเกี่ยวกับวิธีการปรับปรุงหรือปรับทักษะของฉันไปสู่การเป็นผู้ทดสอบกล่องขาว Java? ยินดีต้อนรับอินพุตที่หลากหลาย และการทดสอบพัฒนาขับเคลื่อนคืออะไร?
9 java  testing  qa 

4
การสมัครมีบทคัดย่อชั้นเรียนจำนวนมากในใบสมัครของคุณหรือไม่?
เริ่มแรกเราต้องการใช้รูปแบบกลยุทธ์ด้วยการนำไปใช้งานที่แตกต่างกันของวิธีการในอินเทอร์เฟซ Commmon สิ่งเหล่านี้จะถูกเลือกที่รันไทม์ตามอินพุตของผู้ใช้ เมื่อมันปรากฏออกมาเรามีคลาสนามธรรมที่ใช้วิธีการทั่วไป 3 - 5 วิธีและเหลือเพียงวิธีเดียวสำหรับการใช้งานที่แตกต่างนั่นคือกลยุทธ์ อัปเดต: จากคลาสนามธรรมจำนวนมากฉันหมายถึงมีฟังก์ชันระดับสูงที่แตกต่างกัน 6 อย่างคือ 6 แพ็คเกจและแต่ละชุดมีอินเตอร์เฟส + AbstractImpl + (ชุดของ Actual Impl) นี่เป็นการออกแบบที่ไม่ดี แต่อย่างใด? มุมมองเชิงลบใด ๆ ในแง่ของการเพิ่มความสามารถในภายหลัง - ฉันเตรียมความพร้อมสำหรับการตรวจสอบรหัส / การออกแบบกับผู้สูงอายุ

9
เป็นวิธีที่ดีที่สุดในการแทรกชุดข้อมูลขนาดใหญ่ลงในฐานข้อมูล MySQL (หรือฐานข้อมูลทั่วไป)
เป็นส่วนหนึ่งของโครงการ PHP ฉันต้องแทรกแถวลงในฐานข้อมูล MySQL เห็นได้ชัดว่าฉันคุ้นเคยกับการทำสิ่งนี้ แต่สิ่งนี้จำเป็นต้องแทรกเข้าไปใน 90 คอลัมน์ในการสืบค้นเดียว ข้อความค้นหาผลลัพธ์น่ากลัวและเสาหิน (โดยเฉพาะการแทรกตัวแปร PHP ของฉันเป็นค่า): INSERT INTO mytable (column1, colum2, ..., column90) VALUES ('value1', 'value2', ..., 'value90') และฉันกังวลว่าฉันจะไม่ทำอย่างนี้ มันใช้เวลานาน (น่าเบื่อ) ในการพิมพ์ทุกอย่างและการทดสอบการเขียนรหัสทดสอบจะน่าเบื่อเท่า ๆ กัน มืออาชีพทำงานเกี่ยวกับการเขียนและทดสอบคิวรีเหล่านี้อย่างรวดเร็วได้อย่างไร มีวิธีที่ฉันสามารถเพิ่มความเร็วของกระบวนการหรือไม่
9 php  mysql  efficiency 

5
เครื่องมือคล้าย Wiki สำหรับการเขียนข้อมูลจำเพาะและเอกสาร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังมองหาระบบ wiki หรือ wiki-like system สำหรับการเขียนและจัดการข้อมูลจำเพาะและเอกสารประกอบสำหรับโครงการซอฟต์แวร์ ฉันรู้ว่ามีการใช้งานวิกิจำนวนมาก แต่มีบางอย่างที่เหมาะสมเป็นพิเศษสำหรับงานประเภทนี้หรือไม่? จริงๆแล้วมันไม่จำเป็นต้องเป็น wiki เพียงแค่ระบบที่ทำให้เขียนและนำทางรายละเอียดและเอกสารประกอบได้ง่ายและรองรับการติดตามการเปลี่ยนแปลง

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

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

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

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