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

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

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

1
หลักการตั้งชื่อสำหรับโครงการโอเพ่นซอร์ส iOS / OSX
ไม่เสมอไป แต่ส่วนใหญ่คุณจะพบโครงการโอเพ่นซอร์ส iOS หรือ Mac OS X ที่มีชื่อขึ้นต้นด้วยตัวอักษรเริ่มต้นของชื่อและนามสกุลของผู้แต่ง NLMyProjectหากเป็นโครงการที่ได้รับจะได้รับการประพันธ์โดยนิคเลอบลังโครงการจะได้รับการอ่านเป็น ตัวอย่าง: RMSwipeTableViewCellโดย Rune Madsen EBCardCollectionViewLayoutโดย Ezequiel Becerra, SDiPhoneVersionโดย Sebastian Dobrincu LNNotificationsUIโดย Leo Natan สิ่งนั้นมาจากไหน มีคนคนหนึ่งเขียนด้วยวิธีนี้ก่อนจากนั้นคนอื่นตามมา ฉันไม่สามารถหาอะไรเกี่ยวกับมันแม้จะอยู่ในหลักเกณฑ์ของแอปเปิ้ล เป็นสำนวนที่เขียนได้ทุกที่หรือไม่?

3
“ การเป็นตัวแทนที่ยกขึ้น” คืออะไร?
เพิ่งวิ่งข้ามคำนี้ที่นี่: http://www.codemesh.io/codemesh2014/viktor-klang "เราจะแสดงให้เห็นถึง Flow API - การนำเสนอแบบยก - เช่นเดียวกับวิธีที่เปลี่ยนแปลงได้ในการเปลี่ยนการนำเสนอแบบยกเป็นการดำเนินการแทน - Flow Materialization" Googling ไม่ได้ช่วยอะไรมาก

3
รูปแบบการออกแบบที่ดีสำหรับการสร้างไฟล์ Excel (xlsx) เป็นรหัสคืออะไร
ดูการอัปเดตของฉันที่ด้านล่างสำหรับข้อมูลเพิ่มเติม บางครั้งฉันมีโครงการที่ฉันต้องส่งออกข้อมูลบางอย่างเป็นไฟล์ Excel (รูปแบบ xlsx) กระบวนการมักจะ: ผู้ใช้คลิกปุ่มบางปุ่มในแอปพลิเคชันของฉัน รหัสของฉันเรียกใช้แบบสอบถาม DB และประมวลผลผลลัพธ์อย่างใด รหัสของฉันสร้างไฟล์ * .xlsx โดยใช้ห้องสมุด Excel com interop หรือห้องสมุดบุคคลที่สาม (เช่น Aspose.Cells) ฉันสามารถค้นหาตัวอย่างรหัสได้อย่างง่ายดายสำหรับวิธีการออนไลน์นี้ แต่ฉันกำลังมองหาวิธีที่มีประสิทธิภาพมากขึ้นในการทำเช่นนี้ ฉันต้องการให้รหัสของฉันเป็นไปตามหลักการออกแบบเพื่อให้แน่ใจว่ารหัสของฉันสามารถบำรุงรักษาและเข้าใจได้ง่าย นี่คือความพยายามครั้งแรกของฉันในการสร้างไฟล์ xlsx ที่มีลักษณะ: var wb = new Workbook(); var ws = wb.Worksheets[0]; ws.Cells[0, 0].Value = "Header"; ws.Cells[1, 0].Value = "Row 1"; ws.Cells[2, 0].Value = "Row 2"; ws.Cells[3, …

4
มีอันตรายในการเขียนข้อมูลดิบไปยังไฟล์หรือไม่? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังทำงานกับปัญหาในการเขียนโปรแกรม Pearls - โดยเฉพาะการใช้งานโปรแกรมที่เรียงลำดับไฟล์ที่มีอย่างน้อย 10,000,000 จำนวนเต็ม (คอลัมน์ 1 ปัญหา 3) เนื่องจากหนังสือไม่ได้ระบุวิธีการจัดเก็บข้อมูลในไฟล์ฉันจึงพิจารณาจัดเก็บจำนวนเต็มเป็นไบต์ดิบ (มีข้อ จำกัด อื่น ๆ ที่ทำให้ตัวเลือกดิบเป็นตัวเลือกที่ดี) ฉันไม่เคยทำงานที่ระดับต่ำนี้มาก่อนดังนั้นฉันต้องการทราบว่ามีสิ่งใดที่อันตรายที่ฉันควรระวัง ฉันต้องกังวลเกี่ยวกับการใช้ลำดับจุดสิ้นสุดของไฟล์โดยไม่ตั้งใจเมื่อฉันเขียนไบต์ดิบไปยังไฟล์หรือไม่? แก้ไข: ตอนนี้ฉันรู้แล้วว่าคำถามของฉันกว้างแค่ไหน ฉันหมายถึงปัญหาของความหายนะมากขึ้นเช่นเขียนทับไฟล์อื่น ๆ บนดิสก์โดยไม่ตั้งใจ ขออภัยฉันไม่ชัดเจนในตอนแรก
12 low-level  byte 

1
เวิร์กโฟลว์ GIT สำหรับการพัฒนาเว็บ
นานมาแล้วทีมเล็ก ๆ ของนักพัฒนาเว็บที่ฉันทำงานด้วยเริ่มใช้ git เพื่อการพัฒนาเว็บ ย้อนกลับไปเราเพิ่งมุ่งมั่นที่จะจัดเตรียมหรือเป็นผู้เชี่ยวชาญโดยตรงจากนั้นจึงรวมเข้าด้วยกันระหว่างสองรายการนี้บ่อยครั้ง มันดีกว่าไม่มีอะไร แต่มันก็เป็นระเบียบ เมื่อไม่นานมานี้เราได้นำขั้นตอนการทำงานของ gitflow มาใช้ ในขณะที่มันดีกว่าความสับสนวุ่นวายที่เกิดขึ้นก่อนหน้านี้ดูเหมือนว่าจะค่อนข้างยุ่งยากและปล่อยวาง / เหตุการณ์สำคัญมากเกินไป เพื่อน devs ของฉันมักจะขอให้ฉันชี้แจงว่ามันควรจะทำงานอย่างไรและสิ่งที่ควรผสานและไม่ควร โดยทั่วไปดูเหมือนว่าจะไม่เหมาะสมสำหรับงานพัฒนาเว็บไซต์ที่เรากำลังปรับใช้โค้ดบ่อยครั้งและไม่มีการติดตามเหตุการณ์สำคัญที่เฉพาะเจาะจงสำหรับการเปิดตัว เกี่ยวกับข้อเสนอแนะที่ผ่านมาเพื่อนผมได้เริ่มมองหาที่GitHub ไหล การอ่านโพสต์ของสก็อตต์ชาคอนตรงจุดปวดอย่างสมบูรณ์แบบด้วยสิ่งนี้: ดังนั้นทำไมเราไม่ใช้ git-flow ที่ GitHub? ปัญหาหลักคือเราปรับใช้ตลอดเวลา กระบวนการ git-flow นั้นถูกออกแบบมาเพื่อ“ ปล่อย” เราไม่มี“ รีลีส” เพราะเราปรับใช้กับการผลิตทุกวัน - บ่อยครั้งต่อวัน FWIW ฉันได้ดูที่เวิร์กโฟลว์รอบนี้บนเว็บไซต์ของ Atlassian: https://www.atlassian.com/git/workflows#!workflow-feature-branch อย่างไรก็ตามพวกเขาดูเหมือนตัวเลือกที่ไม่ดีสำหรับการพัฒนาเว็บในทีมเล็ก ๆ และมุ่งเน้นไปที่การเผยแพร่แอปพลิเคชันที่สำคัญไม่ใช่การเผยแพร่ประจำวัน เป็นคำถามเกี่ยวกับ SE ที่ขอให้เปรียบเทียบ git-flow กับ github-flow /programming/18188492/what-are-the-pros-and-cons-of-git-flow-vs-github -ไหล …

4
ทำไม Microsoft ยังคงจัดส่ง VBA ภายในผลิตภัณฑ์ Office แทนที่จะรวม. NET โดยตรง? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันรู้ว่าเป็นไปได้ที่จะเรียกรหัส. NET จากรหัส VBA ของคุณ แต่ทำไม VBA ยังคงมีอยู่? เหตุผลเดียวที่ฉันคิดได้ก็คือมรดก ฉันต้องเรียงลำดับScripting.Dictionaryและจำนวนของรหัสที่ต้องการก็น่ากลัว IDE ดูเหมือนว่า Visual Studio 2003 และมีรายละเอียดเล็ก ๆ น้อย ๆ มากมายที่ทำให้คุณเสียสติ (เช่นเปลี่ยนสายและได้รับคำเตือนเนื่องจากมีข้อผิดพลาดในการรวบรวม) หรือถ้าคุณเปิดสเปรดชีตมากกว่าหนึ่งแผ่นมันจะรวมเข้ากับคุณ "VBAProject" และนี่ทำให้เกิดความสับสนจริงๆ การแบ่งโมดูล / classmodule / form ทั้งหมดนั้นไม่ได้แย่ขนาดนั้น แต่ฉันลงเอยด้วยการเขียนตรรกะในรูปแบบโดยตรงหรือมีโมดูลขนาดใหญ่ที่จัดการทุกอย่างได้ ทำไมฉันกด Alt + F11 ไม่ได้และแฮ็กใน C #
12 .net  vba 

1
ทำไมฟังก์ชั่นของ Haskell จึงมีประเภทที่ได้รับในหมวดหมู่เป้าหมายเท่านั้น
ใน Haskell, functor typeclass functor ถูกกำหนดดังนี้ (ดูตัวอย่างHaskell wiki ): class Functor (f :: * -> *) where fmap :: (a -> b) -> f a -> f b เท่าที่ผมเข้าใจ (โปรดถูกต้องฉันหากฉันผิด) เช่น functor สามารถมีเป้าหมายเป็นหมวดหมู่หมวดหมู่นี้สร้างขึ้นโดยใช้ตัวสร้างประเภทเช่นเพียง[], Maybeฯลฯ บนมืออื่น ๆ หนึ่งอาจคิดว่า functors มีหมวดหมู่ใด ๆ เป็นเป้าหมายของ functor เช่นหมวดหมู่ของ Haskell ทุกประเภท ยกตัวอย่างเช่นIntอาจจะเป็นวัตถุที่อยู่ในหมวดหมู่ที่กำหนดเป้าหมายของ functor หนึ่งไม่เพียงหรือMaybe Int[Int] แรงจูงใจสำหรับข้อ …
12 haskell 

10
ภาษาการเขียนโปรแกรมแบบโอเพ่นซอร์สสามารถอยู่รอดได้หรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา เพื่อนเขียนภาษาโปรแกรม มันมีไวยากรณ์ที่ระลึกถึง SGML เขาเขียนล่ามสำหรับมันและ IDE เขาและเพื่อนร่วมงานของเขาใช้งานภายใน บริษัท เป็นภาษาฝั่งเซิร์ฟเวอร์ นอกจากนี้ยังสามารถใช้ในการเขียนเครื่องมือบรรทัดคำสั่ง เขาต้องการให้บริการแก่สาธารณชนโดยคาดหวังว่าผู้คนจะซื้อใบอนุญาตเพื่อใช้งาน เขาต้องการให้รหัสแสดงการใช้ภาษากับตัวเองเนื่องจากมีทรัพย์สินทางปัญญาที่ผูกติดอยู่กับมัน ฉันบอกเขาต่อไปว่าวันแห่งการเขียนโปรแกรมภาษาโอเพนซอร์ซหายไป ฉันพูดว่า "ดูภาษาหลักทั้งหมด: ส่วนใหญ่เป็นโอเพ่นซอร์สคุณจะต้องไปเปิดโอเพ่นซอร์สด้วยเช่นกันถ้าคุณต้องการให้ใครก็ตามที่อยู่นอก บริษัท ต้องใส่ใจกับสิ่งที่คุณสร้างขึ้น" ฉันจะให้คำแนะนำที่ดีกับเขาหรือยังมีที่ว่างสำหรับภาษาที่คุณจ่าย LATER Den ถามว่า "... คุณช่วยอธิบายได้ไหมว่าภาษาสามารถเป็นแหล่งปิดได้หรือไม่" ฉันพูดว่า "@ เมื่อคุณทำคะแนนได้ดีสิ่งที่เพื่อนของฉันต้องการหลีกเลี่ยงคือสถานการณ์ที่ Microsoft ปรุงภาษา Java เหมือนกันเรียกมันว่า J ++ จากนั้นก็ฟ้องร้อง Sun เกี่ยวกับ Java-ness ของ Sun คุณจะปกป้องไวยากรณ์และวิธีการเขียนโปรแกรมจากการถูกแย่งชิงโดย บริษัท ที่การติดตั้งใช้งานสามารถนำคุณออกจากธุรกิจได้อย่างไร "

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

2
เหตุใดจึงไม่สามารถส่งอาร์เรย์เป็นอาร์กิวเมนต์ของฟังก์ชันใน C
ติดตามความคิดเห็นนี้ฉันได้ลอง google ทำไม แต่ google-fu ของฉันล้มเหลว ความคิดเห็นจากลิงค์: [... ] แต่สิ่งสำคัญคืออาร์เรย์และพอยน์เตอร์นั้นต่างกันในซี สมมติว่าคุณไม่ได้ใช้ส่วนขยายคอมไพเลอร์คุณจะไม่สามารถส่งค่าอาร์เรย์ไปยังฟังก์ชั่นได้ แต่คุณสามารถส่งตัวชี้และจัดทำดัชนีตัวชี้ราวกับว่าเป็นอาร์เรย์ คุณกำลังบ่นอย่างมีประสิทธิภาพว่าตัวชี้ไม่มีความยาวติดอยู่ คุณควรจะบ่นว่าไม่สามารถส่งผ่านอาร์เรย์ได้เนื่องจากอาร์กิวเมนต์ของฟังก์ชันหรืออาร์เรย์นั้นลดระดับลงไปถึงพอยน์เตอร์โดยปริยาย
12 c  history 

2
อาร์กิวเมนต์สำหรับคำนามเอกพจน์ในการตั้งชื่อทรัพยากร RESTful API คืออะไร
ฉันเข้าใจว่าเมื่อตั้งชื่อ RESTful URI เป็นที่ยอมรับกันโดยทั่วไปในการใช้คำพหูพจน์เพื่อแสดงชุดของทรัพยากร ฉันอยากรู้ว่าอาร์กิวเมนต์สำหรับการใช้คำนามเอกพจน์แทน
12 api  rest  uri 

6
วิธีการหลีกเลี่ยงการ downcasting?
คำถามของฉันเกี่ยวกับกรณีพิเศษของ Animal super class ฉันAnimalสามารถและ moveForward()eat() SealAnimalขยาย DogAnimalขยาย และมีสิ่งมีชีวิตพิเศษที่ยังขยายที่เรียกว่าAnimalHuman Humanใช้วิธีการspeak()(ไม่ได้ใช้Animal) ในการใช้วิธีนามธรรมซึ่งยอมรับAnimalฉันต้องการใช้speak()วิธี ดูเหมือนว่าจะเป็นไปไม่ได้หากไม่มีการลดทอนลง Jeremy Miller เขียนไว้ในบทความของเขาว่ามีกลิ่นเหม็น อะไรจะเป็นวิธีการแก้ปัญหาเพื่อหลีกเลี่ยง downcasting ในสถานการณ์นี้?

5
การแปลงพา ธ ของไฟล์ Windows เป็นพา ธ ของไฟล์ Unix นั้นปลอดภัยหรือไม่?
ตัวอย่างเช่นบอกว่าฉันมีมันเพื่อให้ไฟล์ทั้งหมดของฉันจะถูกถ่ายโอนจากเครื่อง windows ไปยังเครื่องยูนิกซ์เช่น: C:\test\myFile.txtไปที่{somewhere}/test/myFile.txt(ตัวอักษรไดรฟ์ไม่เกี่ยวข้องในจุดนี้) ขณะนี้ไลบรารียูทิลิตี้ของเราที่เราเขียนเองให้วิธีที่ง่าย ๆ ในการแทนที่แบ็กสแลชทั้งหมดด้วยสแลชสแลช: public String normalizePath(String path) { return path.replaceAll("\\", "/"); } เครื่องหมายทับถูกสงวนไว้และไม่สามารถเป็นส่วนหนึ่งของชื่อไฟล์ได้ดังนั้นโครงสร้างไดเรกทอรีควรถูกสงวนไว้ อย่างไรก็ตามฉันไม่แน่ใจว่ามีภาวะแทรกซ้อนอื่น ๆ ระหว่าง windows และเส้นทาง unix ที่ฉันอาจต้องกังวลเกี่ยวกับ (เช่น: ไม่ใช่ชื่อ ASCII ฯลฯ )

2
CI runner บนเซิร์ฟเวอร์เดียวกันของ GitLab
ฉันกำลังตั้งค่าเซิร์ฟเวอร์ GitLab ใน บริษัท ของฉันและตอนนี้ฉันกำลังเพิ่ม GitLab CI ลงไป ก่อนที่จะเริ่มงานนี้ฉันต้องการที่จะเข้าใจว่ามีข้อเสียใด ๆ ที่รันนักวิ่งของฉันบนเซิร์ฟเวอร์เดียวกับที่ใช้โดย GitLab และ GitLab CI ฉันอ่านว่ามีข้อกังวลด้านความปลอดภัย แต่เราใช้ภายในเท่านั้นดังนั้นฉันจึงไม่คิดว่านี่จะเป็นปัญหา ฉันพลาดอะไรไปรึเปล่า?

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