คำถามติดแท็ก projects-and-solutions

12
แนวทางปฏิบัติที่ดีที่สุดสำหรับการแบ่งปันตัวอย่างโค้ดขนาดเล็กข้ามโครงการ
ฉันพยายามทำตามหลักการของDRYอย่างเคร่งครัดในที่ทำงานเสมอ ทุกครั้งที่ฉันทำซ้ำรหัสจากความเกียจคร้านมันกัดอีกครั้งในภายหลังเมื่อฉันต้องการรักษารหัสนั้นในสองแห่ง แต่บ่อยครั้งที่ฉันเขียนวิธีเล็ก ๆ (อาจเป็นรหัส 10 - 15 บรรทัด) ที่ต้องนำมาใช้ซ้ำในสองโครงการที่ไม่สามารถอ้างอิงซึ่งกันและกัน วิธีอาจเป็นสิ่งที่ต้องทำกับระบบเครือข่าย / สาย / MVVM ฯลฯ และเป็นวิธีที่มีประโยชน์โดยทั่วไปไม่เฉพาะเจาะจงกับโครงการที่ตั้งอยู่ในตอนแรก วิธีมาตรฐานในการนำรหัสนี้มาใช้ซ้ำจะเป็นการสร้างโครงการที่เป็นอิสระสำหรับรหัสที่ใช้ซ้ำได้และอ้างอิงโครงการนั้นเมื่อคุณต้องการ ปัญหาเกี่ยวกับสิ่งนี้คือเราจบลงในหนึ่งในสองสถานการณ์ที่ไม่เป็นอุดมคติ: เราจบลงด้วยโครงการเล็ก ๆ นับสิบ / ร้อยคน - แต่ละหลังมีชั้นเรียน / วิธีการเล็ก ๆ น้อย ๆ ซึ่งเราจำเป็นต้องนำมาใช้ซ้ำ มันคุ้มค่าที่จะสร้างรหัสใหม่.DLLเพียงเล็กน้อยหรือไม่? เราจบลงด้วยโครงการเดียวที่รวบรวมวิธีและชั้นเรียนที่ไม่เกี่ยวข้องเพิ่มมากขึ้น วิธีนี้เป็นสิ่งที่ บริษัท ที่ฉันเคยทำงานด้วย พวกเขามีโปรเจ็กต์base.commonที่มีโฟลเดอร์สำหรับสิ่งต่าง ๆ เช่นที่ฉันกล่าวถึงข้างต้น: เครือข่าย, การจัดการสตริง, MVVM ฯลฯ มันมีประโยชน์อย่างเหลือเชื่อ แต่การอ้างอิงมันลากโดยไม่จำเป็นด้วยรหัสที่ไม่เกี่ยวข้องทั้งหมดที่คุณไม่ต้องการ ดังนั้นคำถามของฉันคือ: ทีมซอฟต์แวร์ทำงานอย่างไรดีที่สุดเกี่ยวกับการนำรหัสขนาดเล็กไปมาระหว่างโครงการ ฉันสนใจเป็นพิเศษหากใครก็ตามที่ทำงานใน บริษัท …

2
ควรจัดรหัสทดสอบหน่วย C ++ เพื่อประสิทธิภาพการทดสอบหน่วยสูงสุดอย่างไร
คำถามนี้ไม่เกี่ยวกับกรอบการทดสอบหน่วย คำถามนี้ไม่เกี่ยวกับการเขียนการทดสอบหน่วย คำถามนี้เกี่ยวกับสถานที่ที่จะวางโค้ด UT และวิธี / เวลา / สถานที่ในการรวบรวมและเรียกใช้ ในการทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดก Michael Feathers ยืนยันว่า ทดสอบหน่วยที่ดี ... ทำงานเร็ว และนั่น การทดสอบหน่วยที่ใช้เวลา 1 / 10th ของวินาทีในการทำงานคือการทดสอบหน่วยช้า ฉันคิดว่าคำจำกัดความเหล่านี้สมเหตุสมผล ฉันยังคิดว่าพวกเขาบอกเป็นนัยว่าคุณต้องเก็บชุดการทดสอบหน่วยและชุดการทดสอบรหัสเหล่านั้นที่ใช้เวลานานกว่าแยกจากกัน แต่ฉันคิดว่านั่นคือราคาที่คุณจ่ายสำหรับการโทรหาการทดสอบหน่วยเท่านั้น . เห็นได้ชัดว่าปัญหาใน C ++ คือการ "เรียกใช้" การทดสอบหน่วยของคุณคุณต้อง: แก้ไขรหัสของคุณ (การผลิตหรือการทดสอบหน่วยขึ้นอยู่กับ "รอบ" ที่คุณอยู่) รวบรวม ลิงค์ เริ่มการทดสอบหน่วยปฏิบัติการ ( s ) แก้ไข(หลังจากลงคะแนนเสียงแปลก ๆ ) : ก่อนลงรายละเอียดฉันจะลองสรุปประเด็นที่นี่: รหัสการทดสอบหน่วย C ++ …

4
ทำไมฉันต้องใช้ MSBuild แทนไฟล์ Visual Studio Solution
เรากำลังใช้ TeamCity เพื่อการรวมอย่างต่อเนื่องและมันกำลังสร้างการเผยแพร่ของเราผ่านทางไฟล์โซลูชัน (.sln) ฉันเคยใช้ Makefiles ในอดีตสำหรับระบบต่าง ๆ แต่ไม่เคย msbuild (ซึ่งฉันได้ยินมาว่า sorta เหมือนกับ Makefiles + XML mashup) ฉันเห็นโพสต์มากมายเกี่ยวกับวิธีใช้ msbuild โดยตรงแทนที่จะเป็นไฟล์โซลูชัน แต่ฉันไม่เห็นคำตอบที่ชัดเจนว่าทำไมต้องทำ เหตุใดเราจึงต้องกังวลเกี่ยวกับการย้ายจากไฟล์โซลูชันไปยัง 'ไฟล์' ของ MSBuild เรามีสองรุ่นที่แตกต่างกันโดย #define (สร้างความน่าเชื่อถือ) แต่ส่วนใหญ่แล้วทุกอย่างทำงานได้ ข้อกังวลที่ใหญ่กว่าคือตอนนี้เราต้องบำรุงรักษาสองระบบเมื่อเพิ่มโปรเจ็กต์ / ซอร์สโค้ด UPDATE: ผู้คนสามารถมองเห็นวงจรชีวิตและการทำงานร่วมกันขององค์ประกอบทั้งสามต่อไปนี้ได้หรือไม่? ไฟล์. sln ของ Visual Studio หลายระดับโครงการไฟล์. csproj (ซึ่งฉันเข้าใจสคริปต์ msbuild "sub") สคริปต์ msbuild ที่กำหนดเอง มันปลอดภัยหรือไม่ที่จะบอกว่า. sln และ. …

7
สมาชิกในทีมที่สงสัยจะย้ายจาก VBA ไปยัง C #
พื้นหลัง เมื่อปีที่แล้วฉันถูกขอให้สร้างเครื่องมือที่จะใช้สำหรับการวางแผนธุรกิจสำหรับผู้ใช้ประมาณ 10 คน สิ่งนี้ทำในนามของทีมงานไอทีอีกคนที่ "ทำสัญญาย่อย" ทำงานให้ฉันและเนื่องจากกำหนดเวลาโครงการไม่ได้วางแผนมาก่อนที่ด้านข้างของพวกเขาฉันจึงต้องดำเนินการอย่างเร่งด่วน ในเวลานั้นเราตัดสินใจว่าวิธีที่เร็วที่สุดคือการสร้างเวิร์กบุ๊ก Excel ด้วย VBA จากนั้นให้ผู้ใช้ดาวน์โหลดเวิร์กบุ๊กที่ปรับปรุงด้วย VBA นี้จากอินทราเน็ตเพื่อใช้บนพีซีของพวกเขา Excel เป็นข้อ จำกัด ในกรณีนี้เนื่องจากระบบการวางแผน (เช่นฐานข้อมูล) ที่เราใช้สามารถโต้ตอบผ่านทาง Add-in ของ Excel เท่านั้นซึ่งจะต้องโหลดในเวลาเดียวกันเมื่อสมุดงานการวางแผนเปิดอยู่ อย่างไรก็ตาม VBA ไม่ใช่ข้อ จำกัด ในเวลานั้น สมุดงานที่ฉันสร้างขึ้นประมาณ 4,000 บรรทัดของรหัส VBA และในขณะที่ฉันพยายามแยกข้อมูลและเลเยอร์การนำเสนอฉันไม่สามารถทำได้ในทุกกรณีเนื่องจากกำหนดเวลาโครงการ จริงๆแล้วในขณะที่ฉันภูมิใจในการสร้างเวิร์กบุคนี้ฉันก็รู้สึกผิดหวังเล็กน้อยที่มันสามารถทำได้ดีกว่าทั้งในแง่ของการเข้ารหัสและการปรับใช้กับผู้ใช้ ในวันนี้ ย้อนกลับไปวันนี้และทีมไอทีได้มาหาฉันอีกครั้งเพื่อขอสมุดงานที่คล้ายกัน (ดังนั้นฉันจึงสามารถใช้ซ้ำบางส่วนของสมุดงานอื่นด้านบนได้) แต่คราวนี้มันซับซ้อนมากขึ้นและจะมีผู้ใช้จำนวนมากขึ้น ( ประมาณ 200) อย่างไรก็ตามในครั้งนี้มันเป็นการวางแผนที่ดีขึ้นเล็กน้อยและฉันเห็นว่าเรามีเวลาอีกเล็กน้อยในการวางแผนสิ่งต่าง ๆ จากนี้ฉันคิดเกี่ยวกับโซลูชันและโครงสร้างพื้นฐานเนื่องจากการเขียนโปรแกรมสำหรับผู้ใช้ 100 คนมีผลกระทบมากกว่าผู้ใช้ 10 คน ดังนั้นฉันแนะนำทีมว่าบางทีเราควรพิจารณาย้ายรหัสที่มีอยู่ไปยังโซลูชัน …

5
Multi-tenancy - ฐานข้อมูลเดียวเทียบกับหลายฐานข้อมูล
เรามีลูกค้าจำนวนมากที่มีระบบแบ่งปันฟังก์ชั่นบางอย่าง แต่ก็มีความหลากหลายในระดับหนึ่ง จำนวนลูกค้ากำลังเติบโต - เป็นสิ่งที่ดีต่อสุขภาพเสมอ! - และความหลากหลายระหว่างธุรกิจของพวกเขาก็เพิ่มขึ้นเช่นกัน ในปัจจุบันมีเว็บไซต์ ASP.Net (แบบฟอร์มบนเว็บ) เดียว (ตรงข้ามกับโครงการเว็บ) ซึ่งมีโฟลเดอร์ย่อยสำหรับผู้เช่าแต่ละรายโดยมีหน้าที่ไม่ได้มาตรฐานของผู้เช่ารายนั้น มีโครงการแบบแยกต่างหากซึ่งเกี่ยวข้องกับการเข้าถึงฐานข้อมูลและตรรกะทางธุรกิจ ข้อไหนดีกว่าและที่สำคัญที่สุดคือทำไมระหว่างการมี (a) 1 ฐานข้อมูลต่อลูกค้าโดยมีเฉพาะคุณสมบัติที่เกี่ยวข้องกับไคลเอ็นต์นั้น หรือ (b) ฐานข้อมูลเดียวที่ใช้ร่วมกันโดยไคลเอนต์ทั้งหมดที่มีเพียงส่วนย่อยของตารางที่จะใช้โดยลูกค้ารายใดรายหนึ่ง ความกังวลหลักภายในธุรกิจมีมากกว่า: การบำรุงรักษาสินทรัพย์หลายรายการ - การสำรองข้อมูลการควบคุมเวอร์ชันและสิ่งที่คล้ายกัน ส่งเสริมการใช้ซ้ำให้มากที่สุด คุณจะมั่นใจได้อย่างไรว่าปัญหาเหล่านี้ได้รับการแก้ไขซึ่งเป็นวิธีที่เหมาะสมกว่าและทำไม (ฉันได้รวบรวมคำตอบสำหรับคำถามที่คล้ายกันด้วย)

3
ฉันจะกำหนดเป้าหมายทั้ง Windows 10 UWP และ Windows Phone 8.1 ในแอพเดียวกันได้อย่างไร
พื้นหลัง จากมุมมองของนักพัฒนาจุดขายหลักของ Windows 10 คือUniversal * Windows Platform (UWP)ใหม่ * ที่ "สากล" จริงๆหมายถึง "สากลไปยังอุปกรณ์ทั้งหมดที่เรียกใช้ Windows 10" และไม่ "สากลไปยังอุปกรณ์ที่ทำงานไม่เพียง แต่วินโดวส์ 10 แต่ยังใช้ Windows 8.1 และบางที Windows 7" ดังนั้นถ้าคุณสร้างแอพ UWP คุณก็แค่สร้าง "แอพ Windows 10" แอพ UWP จะไม่ทำงานแม้กระทั่งบนอุปกรณ์ Windows 8.1 และ Windows Phone 8.1 นั่นคือมันไม่สามารถใช้งานร่วมกับรุ่นเก่าได้ ขณะที่ไตรมาสที่ 3 ปี 2015 ของ Windows 10 สามารถใช้ได้สำหรับเครื่องคอมพิวเตอร์และอุปกรณ์ …

2
วิธีจัดโครงสร้างโซลูชัน / โครงการที่ทับซ้อนกันหลายรายการใน. Net
ฉันเพิ่งเริ่มทำงานกับลูกค้าใหม่ที่มีมรดกเก่า codebaseซึ่งมีโซลูชัน. net หลายรายการโดยทั่วไปแต่ละโฮสต์โฮสต์บางโครงการที่ไม่ซ้ำกันกับโซลูชันนั้น แต่แล้วลิงก์ "ยืม" / "ใน" (เพิ่มโครงการที่มีอยู่) บางโครงการอื่น ๆ ซึ่งทางเทคนิคเป็นของโซลูชั่นอื่น ๆ (อย่างน้อยถ้าคุณไปตามโครงสร้างโฟลเดอร์ใน TFS) ฉันไม่เคยเห็นการตั้งค่านี้พันกันไม่มีคำสั่งสร้างที่ชัดเจนบางครั้งโครงการในการแก้ปัญหาการอ้างอิงที่กำลังโดยตรงจากไดเรกทอรีผลลัพธ์ของโครงการที่โฮสต์ในโซลูชัน B บางครั้งโครงการได้รวมโดยตรงแม้ว่ามันจะอยู่ ไกลออกไปในโครงสร้างโฟลเดอร์ ดูเหมือนว่าทุกอย่างได้รับการปรับปรุงเพื่อความเกียจคร้านของนักพัฒนาซอฟต์แวร์ เมื่อฉันเผชิญหน้ากับพวกเขาว่าทำไมพวกเขาถึงไม่มีเซิร์ฟเวอร์ CI พวกเขาตอบว่ามันยากที่จะตั้งค่าด้วยรหัสที่จัดระเบียบแบบนี้ (ฉันกำลังตั้งค่าตอนนี้และสาปแช่งรหัสองค์กร) การแก้ปัญหาถูกจัดระเบียบรอบ ๆ สิ่งประดิษฐ์การปรับใช้ (สิ่งที่ต้องมีการปรับใช้ร่วมกันอยู่ในโซลูชันเดียวกัน) ซึ่งฉันคิดว่าเป็นการตัดสินใจที่ชาญฉลาด แต่เนื้อหาของการแก้ปัญหาเหล่านั้น (โครงการ) อยู่ทั่วสถานที่ มีมติของวิธีปฏิบัติที่ดีที่สุดที่จะใช้เมื่อนำไลบรารีคลาสทั่วไปกลับมาใช้ซ้ำในหลายโซลูชัน / การปรับใช้ส่วน วิธีการโครงสร้างรหัสใน VCS วิธีอำนวยความสะดวกในการแบ่งปันตรรกะทางธุรกิจระหว่างส่วนการปรับใช้แยกต่างหาก

1
วิธีที่ดีที่สุด: ปรับโครงสร้างโซลูชัน Team Foundation Server (TFS) ที่มีอยู่
ในแผนกของฉันเรากำลังพัฒนา AddOns ที่เล็กกว่าหลายตัวสำหรับเซิร์ฟเวอร์การสื่อสารแบบรวม สำหรับการกำหนดเวอร์ชันและการพัฒนาแบบกระจายเราใช้ Team Foundation Server 2012 แต่: มีโซลูชัน TFS ขนาดใหญ่เพียงรายการเดียวสำหรับแอปพลิเคชันและห้องสมุดทั้งหมดของเรา: ทางออกหลัก การประยุกต์ใช้งาน แอพ 1 แอพ 2 แอพ 3 externals ห้องสมุด Lib 1 Lib 2 เครื่องมือ เส้นทาง "แอปพลิเคชัน" มีแอปพลิเคชันหลักทั้งหมด สิ่งเหล่านี้ไม่ได้ขึ้นอยู่กับแต่ละอื่น ๆ แต่ขึ้นอยู่กับโครงการห้องสมุดและภายนอก เส้นทาง "Externals" ประกอบด้วย DLLs ภายนอกบางตัวที่อ้างอิงใน Applications and Libraries ของเรา เส้นทาง Libraries มี libs ที่ใช้กันทั่วไป (เทมเพลต UI, คลาส …

5
อะไรคือสิ่งที่มอบให้ลูกค้าสำหรับเว็บแอปพลิเคชัน [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันได้ทำเว็บแอพพลิเคชั่นเสร็จแล้วซึ่งพัฒนาโดยทั่วไปใน PHP และเป็นอีกเว็บแอปพลิเคชั่นปกติ โดยปกติเมื่อฉันส่งมอบการผลิตครั้งสุดท้ายฉันเพิ่งส่งเอกสารรหัสและข้อมูลสถาปัตยกรรมให้กับลูกค้า อย่างไรก็ตามสำหรับโครงการนี้ลูกค้ายืนยันว่ามีข้อมูลที่สมบูรณ์เกี่ยวกับโครงการ ดังนั้นฉันแค่สงสัยว่า ... อะไรคือเอกสารด้านเทคนิคและไม่ใช่ด้านเทคนิคที่บังคับที่ฉันสามารถมอบให้กับลูกค้าของฉันนอกเหนือจากรหัสและเอกสารทางสถาปัตยกรรม? (นอกจากนี้ยังเป็นการดีที่จะตีลูกค้าเกี่ยวกับสถิติและข้อมูลต่าง ๆ เกี่ยวกับโครงการเพื่อที่เขาจะได้ทราบปริมาณงานที่เกี่ยวข้องและความยอดเยี่ยมของผลิตภัณฑ์จริง ๆ )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.