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

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

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

30
โปรแกรมและสมการหนึ่งซับหรือสองซับที่มีชื่อเสียงคืออะไร? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังทดลองกับแพลตฟอร์มใหม่และฉันพยายามเขียนโปรแกรมที่เกี่ยวข้องกับสตริงที่มีความยาวไม่เกิน 60 ตัวอักษรและฉันต้องการเติมที่เก็บข้อมูลด้วยโค้ดขนาดเล็กที่มีชื่อเสียงหรือที่รู้จักกันดีและ สมการเนื่องจากการเขียนโปรแกรมและคณิตศาสตร์สอดคล้องกับธีมของซอฟต์แวร์ของฉัน รหัสสามารถเป็นภาษาใด ๆ และสมการจากวินัยคณิตศาสตร์ใด ๆ ตราบใดที่พวกเขามีความยาวน้อยกว่า 60 ตัวอักษร ฉันสงสัยว่าผู้คนจะแยกสมองออกมาสำหรับอันนี้ ตัวอย่างเช่น, #include<stdio.h> int main(){printf ("Hi World\n");return 0;} แน่นอนว่า 60 ตัวอักษร! ขอบคุณมากสำหรับภูมิปัญญาของคุณ!

3
C # 8 การอ้างอิงที่ไม่เป็นโมฆะและรูปแบบลอง
มีรูปแบบในคลาส C # เป็นแบบสุดขั้วโดยDictionary.TryGetValueและint.TryParse: วิธีการส่งคืนบูลีนที่ระบุความสำเร็จของการดำเนินการและพารามิเตอร์ out ที่มีผลลัพธ์จริง หากการดำเนินการล้มเหลวพารามิเตอร์ out จะถูกตั้งค่าเป็น null สมมติว่าฉันใช้การอ้างอิงที่ไม่ใช่โมฆะ C # 8 และต้องการเขียนวิธี TryParse สำหรับคลาสของฉันเอง ถูกต้องลายเซ็นคือ: public static bool TryParse(string s, out MyClass? result); เนื่องจากผลลัพธ์เป็น null ในกรณีเท็จตัวแปร out ต้องถูกทำเครื่องหมายเป็น nullable อย่างไรก็ตามโดยทั่วไปจะใช้รูปแบบลองดังนี้: if (MyClass.TryParse(s, out var result)) { // use result here } เนื่องจากฉันป้อนสาขาเมื่อการดำเนินการสำเร็จผลลัพธ์ไม่ควรเป็นโมฆะในสาขานั้น แต่เนื่องจากฉันทำเครื่องหมายว่าเป็นโมฆะฉันจึงต้องตรวจสอบสิ่งนั้นหรือใช้!เพื่อแทนที่: if (MyClass.TryParse(s, out …
22 c#  .net  null 

4
การถ่ายโอนไฟล์ / ข้อมูลขนาดใหญ่ในสถาปัตยกรรม Microservice
บริษัท ของฉันกำลังทำงานเกี่ยวกับการใช้สถาปัตยกรรมไมโครเซอร์วิส แต่เรากำลังเผชิญกับความเจ็บปวดที่เพิ่มขึ้นเรื่อย ๆ หนึ่งในประเด็นสำคัญที่เราเผชิญคือการสื่อสารข้อมูลจำนวนมากระหว่างบริการต่างๆของเรา ในฐานะที่เป็นพื้นหลังเรามีที่เก็บเอกสารที่ทำหน้าที่เป็นที่เก็บเอกสารใด ๆ ที่เราอาจต้องจัดการข้าม บริษัท การโต้ตอบกับร้านค้าดังกล่าวจะกระทำผ่านบริการที่ให้ลูกค้ามี ID ที่ไม่ซ้ำกันและสถานที่ในการสตรีมเอกสาร ตำแหน่งของเอกสารสามารถเข้าถึงได้ในภายหลังผ่านการค้นหาด้วย ID ที่ระบุ ปัญหาคือสิ่งนี้ - มันสมเหตุสมผลหรือไม่ที่ microservices ของเราทั้งหมดจะยอมรับ ID ที่ไม่ซ้ำกันนี้เป็นส่วนหนึ่งของ API ของพวกเขาเพื่อวัตถุประสงค์ในการโต้ตอบกับเอกสารหรือไม่? สำหรับฉันนี้รู้สึกผิดโดยเนื้อแท้ - บริการไม่เป็นอิสระอีกต่อไปและพึ่งพาบริการของที่เก็บเอกสาร ในขณะที่ฉันยอมรับว่าสิ่งนี้อาจทำให้การออกแบบ API ง่ายขึ้นและบางทีอาจมีประสิทธิภาพบางอย่างที่ทำให้เกิดการเชื่อมโยงมากกว่าผลประโยชน์ถ่วงดุล ไม่มีใครรู้ว่ารุ้งยูนิคอร์น (Netflix, Amazon, Google, ฯลฯ ) จัดการกับไฟล์ / การแลกเปลี่ยนข้อมูลขนาดใหญ่ระหว่างบริการของพวกเขา?

5
อัลกอริทึม: ฉันจะรวม O (n) และ O (nlog (n)) เข้าด้วยกันได้อย่างไร
ฉันมีอัลกอริทึมติดตามซึ่งพบการซ้ำและลบออก: public static int numDuplicatesB(int[] arr) { Sort.mergesort(arr); int numDups = 0; for (int i = 1; i < arr.length; i++) { if (arr[i] == arr[i - 1]) { numDups++; } } return numDups; } ฉันกำลังพยายามค้นหาเวลาที่ซับซ้อนที่สุดในกรณีนี้ ฉันรู้ว่าเป็น mergesort nlog(n)และในของฉันสำหรับห่วงฉัน iterating nกว่าชุดข้อมูลทั้งหมดเพื่อที่จะนับเป็น ฉันไม่แน่ใจว่าจะทำอย่างไรกับตัวเลขเหล่านี้ ฉันควรรวมพวกเขาเข้าด้วยกันไหม? ถ้าฉันจะทำอย่างนั้นฉันจะทำอย่างไร

4
รูปแบบสำหรับอินเทอร์เฟซที่ปลอดภัยใน C ++ คืออะไร
คำถามนี้ถูกโยกย้ายจาก Code Exchange Stack Stack เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 5 ปีที่ผ่านมา หมายเหตุ: ต่อไปนี้คือรหัส C ++ 03 แต่เราคาดว่าจะย้ายไปที่ C ++ 11 ในอีกสองปีข้างหน้าดังนั้นเราต้องจำไว้ ฉันกำลังเขียนแนวทาง (สำหรับมือใหม่และคนอื่น ๆ ) เกี่ยวกับวิธีเขียนอินเทอร์เฟซแบบนามธรรมใน C ++ ฉันได้อ่านบทความของซัทเทอร์ทั้งสองเรื่องแล้วค้นหาตัวอย่างและคำตอบจากอินเทอร์เน็ตและทำการทดสอบ รหัสนี้จะต้องไม่รวบรวม! void foo(SomeInterface & a, SomeInterface & b) { SomeInterface c ; // must not be default-constructible SomeInterface d(a); …
22 c++ 

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

6
สไตล์ sizeof: sizeof (ชนิด) หรือตัวแปร sizeof?
ฉันเห็นสองรูปแบบการใช้งานsizeofสำหรับการดำเนินการที่เกี่ยวข้องกับหน่วยความจำ (เช่นในmemsetหรือmalloc): sizeof(type)และ sizeof variable หรือ sizeof(variable) คุณต้องการเลือกแบบใดหรือคุณใช้การผสมผสานระหว่างสองสไตล์และเมื่อใดที่คุณจะใช้แต่ละสไตล์ อะไรคือข้อดีข้อเสียของแต่ละสไตล์และเมื่อคุณใช้พวกเขา? เป็นตัวอย่างฉันสามารถดูคู่ของสถานการณ์ต่อไปนี้ที่ลักษณะหนึ่งช่วยและอีกลักษณะหนึ่งไม่ได้: เมื่อคุณทำให้ตัวชี้ไปทางผิด: type *var; ... memset(var, 0, sizeof var); /* oops */ เมื่อประเภทเปลี่ยนแปลง: new_type var; /* changed from old_type to new_type */ ... memset(&var, 0, sizeof(old_type)); /* oops */
22 c  coding-style 

5
การทดสอบการคัดรหัสล่วงหน้า - นานแค่ไหนที่เหมาะสม? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา แก้ไข หลังจากคิดและไตร่ตรองในหัวข้อนี้เป็นอย่างดีฉันก็ตระหนักว่าปัญหาส่วนใหญ่ที่ฉันตั้งคำถามนี้มาจากเรื่องส่วนตัวไม่ใช่มุมมองระดับมืออาชีพ ดังนั้นผู้ดำเนินรายการจึงระงับคำถามนี้เนื่องจากปัญหาส่วนตัวที่เป็นส่วนตัวสูงของปัญหาที่ฉันพยายามจะพูดถึง ฉันคิดเกี่ยวกับการเรียบเรียงคำถามใหม่ แต่ฉันไม่สามารถหาวิธีที่เป็นไปได้ที่จะเปิดเผยคำถามด้วยวิธีการที่มีวัตถุประสงค์มากขึ้นเพื่อให้สามารถเป็นหัวข้อของการสนทนาที่สามารถตอบคำถามได้ด้วยหลักฐานหรือการอ้างอิงบางประเภท เพื่อประโยชน์ของผู้ที่ยังคงมีความสนใจฉันพยายามที่จะสรุปการอภิปรายที่เกิดขึ้นจากคำถามนี้: การสัมภาษณ์ล่วงหน้า 4 ชั่วโมงการทดสอบการเขียนโปรแกรมนอกสถานที่ไม่ใช่เรื่องปกติ แต่ หลายคนชี้ให้เห็นว่าสำหรับบาง บริษัท คุณจะสัมภาษณ์นานกว่านั้นมากด้วยกัน มันเป็นการตัดสินใจส่วนตัวของเราถ้าเราทำการทดสอบหรือไม่และเราสามารถประเมินสิ่งนี้ขึ้นอยู่กับสถานการณ์ของเราและการรับรู้ผลประโยชน์ของการได้รับการว่าจ้างให้กับ บริษัท บริษัท ทุกแห่งมีความแตกต่างกันตามที่เป็นคนและอาจเหมาะสมอย่างยิ่งสำหรับ บริษัท ที่จะทำการทดสอบนอกสถานที่ล่วงหน้าก่อนการสัมภาษณ์หากนั่นคือสิ่งที่เหมาะสมกับความต้องการหรือสถานการณ์ของพวกเขา ฉันต้องการให้คำถามดั้งเดิมของฉันเกี่ยวกับวิธีการที่เหมาะสมที่จะคาดหวังจากฉัน 4 ชั่วโมงและจริยธรรมที่จะให้ปัญหาดังนั้นวิธีแก้ปัญหา (ไม่ใช่รหัส แต่การออกแบบ) สามารถใช้กับ บริษัท ได้ เนื่องจากตอนนี้ฉันสามารถเห็นคำถามทั้งสองข้อนี้เท่านั้นที่สามารถสำรวจได้ในการอภิปรายในฟอรัมแทนที่จะใช้เครื่องมือคอมมิวนิตี้ตอบคำถามเช่น stackexchange อย่างไรก็ตามฉันพบว่าคำตอบของคุณมีค่าและขอบคุณสำหรับการแบ่งปัน โพสต์ต้นฉบับ ฉันกำลังสัมภาษณ์หลายตำแหน่งและส่วนใหญ่รวมขั้นตอนการคัดกรองก่อนที่ฉันจะต้องส่งการทดสอบการเข้ารหัสก่อนการสัมภาษณ์ทางโทรศัพท์หรือการสัมภาษณ์นอกสถานที่จะเกิดขึ้น ฉันค่อนข้างคุ้นเคยกับความคิดนี้และพบว่ามันค่อนข้างสมเหตุสมผลที่ บริษัท คาดหวังให้ฉันทำเช่นนี้เพื่อให้พวกเขาสามารถตรวจสอบประเภทของงานที่ฉันสามารถผลิตได้ด้วยตัวเอง โดยทั่วไปแล้วประสบการณ์ของฉันคือแบบฝึกหัดการเขียนโปรแกรมประเภทนี้ส่วนใหญ่เป็นงานการเขียนโปรแกรมขนาดเล็ก ทำตรรกะบางอย่างอาจจะใช้อัลกอริทึมเล็ก ๆ เปิดไฟล์และอ่าน / เขียนข้อมูลแบบนั้น แม้แต่งานที่ง่ายที่สุดก็สามารถนำไปปฏิบัติได้ด้วยการแยกตรรกะที่ดีส่วนประกอบที่สามารถทดสอบได้และอื่น ๆ …
22 interview 

4
จำเป็นต้องใช้คอลัมน์ ID ที่ไม่ซ้ำกันในตารางหลายต่อหลาย (ทางแยก) หรือไม่
การเริ่มโครงการเล็ก ๆ กับ EF แต่ฉันมีคำถามบางอย่างเกี่ยวกับการเข้าร่วมตารางและกุญแจเป็นต้นให้บอกว่าฉันมีตารางแอปพลิเคชันและตารางสิทธิ์ แอปพลิเคชันมีสิทธิ์มากมายและสิทธิ์แต่ละรายการสามารถเป็นของแอปพลิเคชันจำนวนมาก (หลายต่อหลายคน) ตอนนี้ตารางใบสมัครและสิทธิ์เป็นเรื่องง่าย: Applications -------------- PK ApplicationID Name Permissions -------------- PK PermissionID Name แต่วิธีที่ดีที่สุดที่จะทำตารางเข้าร่วมคืออะไร? ฉันมีสองตัวเลือกเหล่านี้: ApplicationPermissions ----------------------- PK ApplicationPermissionID CU ApplicationID CU PermissionID หรือ ApplicationPermissions ----------------------- CPK ApplicationID CPK PermissionID PK = Primary Key CPK = Composite Primary Key CU = Composite Unique Index คุณเคยถูกเผาไปทางอื่นหรือไม่? …

9
ทำไม Java ไม่อนุญาตให้มีคำจำกัดความของฟังก์ชั่นอยู่นอกคลาส?
ซึ่งแตกต่างจาก C ++ ใน Java เราไม่สามารถมีเพียงการประกาศฟังก์ชั่นในชั้นเรียนและคำนิยามนอกชั้นเรียน ทำไมถึงเป็นเช่นนั้น? เป็นการเน้นว่าไฟล์เดียวใน Java ควรมีเพียงหนึ่งคลาสและไม่มีอะไรอีกหรือไม่
22 java  class  functions 

7
แนวทางปฏิบัติที่ดีที่สุดสำหรับการบันทึกการทำงานของผู้ใช้ในการผลิต
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันวางแผนที่จะบันทึกสิ่งต่าง ๆ มากมายในสภาพแวดล้อมการผลิตของฉันสิ่งต่าง ๆ เช่นเมื่อผู้ใช้: เข้าสู่ระบบออกจากระบบ เปลี่ยนโปรไฟล์ แก้ไขการตั้งค่าบัญชี เปลี่ยนรหัสผ่าน ... ฯลฯ นี่เป็นวิธีปฏิบัติที่ดีที่จะทำกับสภาพแวดล้อมการผลิตหรือไม่? ยังเป็นวิธีที่ดีในการเข้าสู่ระบบทั้งหมดนี้คืออะไร ฉันกำลังใช้บล็อครหัสต่อไปนี้เพื่อเข้าสู่ระบบ: public void LogMessageToFile(string msg) { System.IO.StreamWriter sw = System.IO.File.AppendText( GetTempPath() + @"MyLogFile.txt"); try { string logLine = System.String.Format( "{0:G}: {1}.", System.DateTime.Now, msg); sw.WriteLine(logLine); } finally …
22 c#  asp.net  logging 

4
GPL - การกระจายคืออะไร
ประเด็นที่น่าสนใจเกิดขึ้นในหัวข้ออื่นเกี่ยวกับการยักยอกข้อกล่าวหาของโครงการ GPL ในกรณีนี้ซอฟต์แวร์ระดับองค์กรถูกใช้งานโดย บริษัท ขนาดใหญ่บางแห่งที่ใช้รหัสเป็นหลักเปลี่ยนชื่อลบประกาศ GPL และใช้ผลลัพธ์ ประเด็นก็คือ - ถ้า บริษัท ทำสิ่งนี้และใช้ซอฟต์แวร์ภายในเท่านั้นไม่มีการแจกจ่ายใด ๆ และถูกกฎหมายอย่างสมบูรณ์ภายใต้ GPL อนุญาตให้ดัดแปลงโดยพนักงานของตนเองเพื่อใช้ภายใน ดังนั้น ณ จุดใดมันจึงกลายเป็นการกระจายตัว สันนิษฐานว่าหากพวกเขานำผู้รับเหมาภายนอกภายใต้ 'งานให้เช่า' การปรับเปลี่ยนของพวกเขาก็จะเป็นภายในและไม่กระจาย หากพวกเขาจ้างชุดซอฟต์แวร์ภายนอกเพื่อทำการแก้ไขและการเปลี่ยนแปลงเหล่านั้นถูกใช้ภายใน บริษัท เท่านั้น - การเปลี่ยนแปลงเหล่านั้นจะถูกแจกจ่ายหรือไม่ GPL นำไปใช้กับลูกค้าหรือนักพัฒนาภายนอกหรือไม่ หาก บริษัท ให้ผลลัพธ์กับแผนกอื่นหน่วยธุรกิจอื่น บริษัท อื่นหรือไม่ เกิดอะไรขึ้นถ้า บริษัท อื่นเป็น บริษัท ย่อยที่ถือหุ้นทั้งหมด? PS ใช่ฉันรู้ว่าคำตอบคือถามทนายความ แต่การสนทนาทั้งหมดที่ฉันได้เห็นเกี่ยวกับการกระจาย GPL2 / GPL3 นั้นเกี่ยวกับการบริการเว็บไม่ใช่การใช้ภายใน
22 legal  gpl 

4
วิธีจัดโครงสร้างทีมพัฒนา
ฉันเป็นผู้จัดการทีมนักพัฒนาซอฟต์แวร์ 11 คนที่ดูแลเว็บไซต์ บริษัท / เว็บแอปพลิเคชันของฉันทำงานได้ถึง 4 โครงการพร้อมกันพร้อมการสนับสนุนแบบวันต่อวันได้ตลอดเวลา ภายในนักพัฒนา 11 คนนั้นมีการผสมผสานระหว่างทักษะทางเทคนิคตำแหน่งงานและประสบการณ์ถึงแม้ว่าโครงสร้างของทีมจะแบนราบกับนักพัฒนา 11 คนที่รายงานตรงถึงฉัน ทีมงานทั้งหมดที่มีผู้จัดการเดียวกำลังเริ่มพิสูจน์ให้เห็นว่าไม่ดีมาก ฉันเริ่มแพร่กระจายบางเบาเกินไปดังนั้นต้องการลดจำนวนรายงานโดยตรงของฉัน ทุกวิธีที่ฉันคิดว่าสามารถทำได้มีข้อเสียที่สำคัญ: มีผู้พัฒนารุ่นเยาว์รายงานถึงรุ่นพี่ สิ่งนี้จะช่วยลดเวลาที่ใช้ในการพัฒนาโดยช่างที่ดีที่สุด แบ่งทีมตามผลิตภัณฑ์ซอฟต์แวร์เช่นนักพัฒนา 1-6 ทำงานบนอินทราเน็ตและทำงาน 7-11 ในไซต์ภายนอกโดยแต่ละส่วนจะมีผู้นำทีมใหม่ (อาจเป็นคำอธิบายงานใหม่ที่มีความรับผิดชอบด้านการจัดการ / ให้คำปรึกษา / ฝึกสอนมากกว่าผู้พัฒนาอาวุโสในปัจจุบัน ) นี่เป็นการเพิ่มไซโลประดิษฐ์และอาจทำให้ "นักพัฒนาอินทราเน็ต" ทำงานบนเว็บไซต์ภายนอกได้ยากหากฉันต้องการให้พวกเขาทำ รักษาโครงสร้างให้เรียบและเพิ่มการสนับสนุนด้านการจัดการในรูปของ Project Managers / Team Administrators เพียงเพื่อลดแรงกดดัน สิ่งนี้ไม่ได้แก้ปัญหาเนื่องจากทีมไม่สามารถเติบโตอย่างนี้ตลอดไป มีวิธีมาตรฐานในการแก้ปัญหานี้ซึ่งฉันพลาดหรือไม่? ถ้าไม่คุณมีคนอื่นในการแก้ไขปัญหานี้อย่างไร?
22 management  team 

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

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