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

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

8
คุณส่งเสริมองค์กรของคุณให้ย้ายจาก Java เป็น Scala อย่างไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา องค์กรของใครเริ่มการโยกย้ายจาก Java ไปยัง Scala หรือไม่? ถ้าใช่คุณจะทำอย่างไร ฉันจะทำอย่างไรเพื่อกระตุ้นให้เพื่อนร่วมงานทำเช่นเดียวกัน
15 java  scala  migration 

8
คุณคิดว่าระบบปฏิบัติการที่จัดการเป็นความคิดที่ดีหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ระบบปฏิบัติการที่มีการจัดการเช่นMicrosoft SingularityและJNodeค่อนข้างเป็นแนวคิดที่น่าสนใจ โดยพื้นฐานแล้วระบบปฏิบัติการจะบู๊ตด้วยโค้ดที่เขียนด้วยภาษาระดับต่ำ (C / C ++ / Assembly) ซึ่งใช้เครื่องเสมือนเป็นหลัก ส่วนที่เหลือของ OS (และแอพผู้ใช้ทั้งหมด) ทำงานบนเครื่องเสมือน มีบางสิ่งที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้ ตัวอย่างเช่นคุณทำตัวชี้โดยพลการล้าสมัย และถ้าเขียนได้ดีคุณก็จะกำจัดสิ่งที่เป็นมรดกตกทอดมากมายที่ระบบปฏิบัติการสมัยใหม่ส่วนใหญ่มีอยู่ในปัจจุบัน อย่างไรก็ตามในฐานะผู้เสียเปรียบคุณอยู่ห่างจากฮาร์ดแวร์มากและในฐานะนักพัฒนาคุณสูญเสียความสามารถในการเลื่อนลงไปสู่ระดับที่เป็นนามธรรมและทำให้มือสกปรก คุณมีความคิดเห็นอย่างไรกับเรื่องนี้?

30
IDEs ที่นิยมมากที่สุดต่อภาษาคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ สิ่งนี้ไม่เกี่ยวกับการมีโปรแกรมแก้ไขรายการโปรดหรืออะไรทำนองนั้น ฉันแค่สงสัยว่าต่อหนึ่งภาษาสภาพแวดล้อมการพัฒนาแบบบูรณาการที่ได้รับความนิยมมากที่สุดคืออะไร? อาจจะติดอันดับ 2-3 ถ้ามีข้อโต้แย้งบ้าง (การรับรู้ความนิยมก็เพียงพอแล้ว) ป่านนี้: C # - Visual Studio, SharpDevelop Java - Eclipse, NetBeans, IDEA Objective-C - Xcode Delphi - RAD Studio Object Pascal - Delphi, Lazarus C, C ++ - Visual Studio, กลุ่ม PL …

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

2
ข้อยกเว้นสำหรับการควบคุมการไหลที่ดีที่สุดใน Python หรือไม่?
ฉันกำลังอ่าน "Learning Python" และเจอสิ่งต่อไปนี้: ข้อยกเว้นที่ผู้ใช้กำหนดยังสามารถส่งสัญญาณเงื่อนไขที่ไม่ใช่ผู้ใช้ ตัวอย่างเช่นรูทีนการค้นหาสามารถเขียนโค้ดเพื่อเพิ่มข้อยกเว้นเมื่อพบการจับคู่แทนที่จะส่งกลับค่าสถานะสถานะเพื่อให้ผู้โทรตีความ ในต่อไปนี้ตัวจัดการข้อยกเว้นลอง / ยกเว้น / อื่นทำงานของตัวทดสอบ if / else return-value: class Found(Exception): pass def searcher(): if ...success...: raise Found() # Raise exceptions instead of returning flags else: return เนื่องจาก Python นั้นถูกพิมพ์แบบไดนามิกและ polymorphic ไปที่แกนกลาง, ข้อยกเว้น, แทนที่จะเป็น Sentinel return values ​​นั้นเป็นวิธีที่นิยมใช้ในการส่งสัญญาณเงื่อนไขดังกล่าว ฉันได้เห็นสิ่งต่าง ๆ ที่กล่าวถึงหลายครั้งในฟอรัมต่าง ๆ และการอ้างอิงถึง Python …

5
REST และ HATEOAS เป็นสถาปัตยกรรมที่ดีสำหรับบริการเว็บหรือไม่?
หากฉันเข้าใจอย่างถูกต้อง REST ได้รับการยอมรับอย่างเป็นทางการจาก Roy Fielding เป็นแบบจำลองเชิงพรรณนาของสถาปัตยกรรมของเว็บ AFAIK Fielding ไม่ได้เรียกร้อง REST ว่าดีอะไรเขาแค่อธิบายสถาปัตยกรรมแบบพฤตินัยของเว็บ เว็บได้มาถึงจุดนี้พิสูจน์แล้วว่าระบบไฮเปอร์เท็กซ์แบบกระจายที่ประสบความสำเร็จอย่างมากดังนั้นการตรวจสอบ REST ในรูปแบบนี้จึงเป็นสถาปัตยกรรมที่ประสบความสำเร็จสำหรับโดเมนของไฮเปอร์มีเดียแบบกระจาย บริการเว็บ REST สร้างขึ้นโดยใช้สถาปัตยกรรม REST กับ API แต่จริงๆแล้วมีเหตุผลใดที่จะคิดว่า REST เป็นสถาปัตยกรรมที่ต้องการสำหรับโดเมนนี้หรือไม่? มีหลักฐานที่ระบุว่า HATEOAS เป็นหลักการออกแบบที่มีประโยชน์สำหรับการสื่อสารระหว่างเครื่องจักรกับเครื่องหรือไม่? ความกังวลของฉันคือ HATEOAS เหมาะสมกับไฮเปอร์มีเดียเนื่องจากมีประเภทเนื้อหาที่รู้จักกันน้อย (HTML, ภาพ, วิดีโอและอื่น ๆ ) และลูกค้ารู้วิธีใช้ แต่สำหรับ API ประเภทเนื้อหานั้นมีความเฉพาะเจาะจงมากและสามารถบริโภคได้ในลักษณะที่มีความหมายโดยลูกค้าหากลูกค้าได้รับการตั้งโปรแกรมให้บริโภคโดยเฉพาะ การส่งคืน URL ไปยังไคลเอ็นต์ไม่ได้ทำให้ตัวเองสามารถใช้ทรัพยากรที่ระบุได้
15 rest  hateoas 

3
รหัสสะอาด: ผลที่ตามมาของวิธีการสั้น ๆ ที่มีพารามิเตอร์น้อย
เมื่อเร็ว ๆ นี้ระหว่างการตรวจสอบรหัสฉันพบรหัสซึ่งเขียนโดยเพื่อนร่วมงานคนใหม่ซึ่งมีลวดลายที่มีกลิ่น ฉันสงสัยว่าการตัดสินใจของเพื่อนร่วมงานขึ้นอยู่กับกฎที่เสนอโดยหนังสือ Clean Code ที่มีชื่อเสียง (และอาจเป็นโดยหนังสืออื่นที่คล้ายคลึงกันเช่นกัน) ฉันเข้าใจว่าตัวสร้างคลาสมีหน้าที่รับผิดชอบทั้งหมดในการสร้างวัตถุที่ถูกต้องและหน้าที่หลักของมันคือการกำหนดคุณสมบัติ (ส่วนตัว) ของวัตถุ มันอาจเกิดขึ้นได้ว่าอาจมีการตั้งค่าคุณสมบัติทางเลือกโดยวิธีการอื่นนอกเหนือจากตัวสร้างคลาส แต่สถานการณ์ดังกล่าวค่อนข้างหายาก (แม้ว่าจะไม่จำเป็นต้องผิดหากว่าส่วนที่เหลือของชั้นเรียนคำนึงถึงคุณสมบัติของทรัพย์สินนั้น) สิ่งนี้มีความสำคัญเนื่องจากช่วยให้มั่นใจได้ว่าวัตถุนั้นอยู่ในสถานะที่ถูกต้องเสมอ อย่างไรก็ตามในรหัสที่ฉันพบค่าคุณสมบัติส่วนใหญ่จริง ๆ แล้วถูกตั้งค่าโดยวิธีอื่นนอกเหนือจากตัวสร้าง ค่าที่เป็นผลมาจากการคำนวณถูกกำหนดให้กับคุณสมบัติที่จะใช้ในวิธีการส่วนตัวหลายวิธีตลอดทั้งชั้นเรียน ผู้เขียนดูเหมือนจะใช้คุณสมบัติคลาสราวกับว่าพวกเขาเป็นตัวแปรทั่วโลกที่ควรจะสามารถเข้าถึงได้ทั่วทั้งชั้นเรียนแทนที่จะเป็นพารามิเตอร์ของค่าเหล่านี้กับฟังก์ชั่นที่ต้องการพวกเขา นอกจากนี้วิธีการของชั้นเรียนควรจะเรียกว่าในลำดับที่เฉพาะเจาะจงเพราะชั้นเรียนจะไม่ทำอย่างอื่นมาก ฉันสงสัยว่ารหัสนี้ได้รับแรงบันดาลใจจากคำแนะนำเพื่อให้วิธีการสั้น (<= 5 บรรทัดของรหัส) เพื่อหลีกเลี่ยงรายการพารามิเตอร์ขนาดใหญ่ (พารามิเตอร์ <3) และตัวสร้างที่จะต้องไม่ทำงาน (เช่นการคำนวณบางประเภท ที่จำเป็นสำหรับความถูกต้องของวัตถุ) แน่นอนว่าตอนนี้ฉันสามารถสร้างรูปแบบนี้ได้หากฉันสามารถพิสูจน์ได้ว่าข้อผิดพลาดที่ไม่ได้กำหนดทุกประเภทอาจเกิดขึ้นเมื่อไม่ได้เรียกวิธีการตามลำดับที่เฉพาะเจาะจง อย่างไรก็ตามฉันคาดการณ์ว่าการตอบสนองต่อสิ่งนี้จะเพิ่มการตรวจสอบความถูกต้องซึ่งยืนยันว่าต้องตั้งค่าคุณสมบัติเมื่อมีการเรียกใช้เมธอดที่ต้องการคุณสมบัติเหล่านั้น อย่างไรก็ตามฉันอยากจะเสนอให้เปลี่ยนรหัสทั้งหมดเพื่อให้คลาสกลายเป็นสีน้ำเงินพิมพ์ไปยังวัตถุจริงแทนที่จะเป็นชุดของวิธีการที่ควรเรียกว่า (ขั้นตอน) ตามลำดับที่เฉพาะเจาะจง ฉันรู้สึกว่ารหัสที่ฉันพบมีกลิ่น ในความเป็นจริงฉันเชื่อว่ามีความแตกต่างค่อนข้างชัดเจนว่าเมื่อใดที่จะบันทึกค่าในคุณสมบัติคลาสและเมื่อนำไปใช้เป็นพารามิเตอร์สำหรับวิธีการที่แตกต่างกันในการใช้งาน - ฉันไม่เชื่อจริง ๆ ว่าพวกเขาสามารถเป็นทางเลือก . ฉันกำลังมองหาคำสำหรับความแตกต่างนี้

2
ข้อมูลทั่วไปถูกนำไปใช้ในคอมไพเลอร์สมัยใหม่อย่างไร
สิ่งที่ฉันหมายถึงนี่คือเราจะเปลี่ยนจากเทมเพลตบางส่วนT add(T a, T b) ...เป็นรหัสที่สร้างได้อย่างไร ฉันคิดถึงวิธีที่จะบรรลุผลสองสามอย่างนี้เราเก็บฟังก์ชันทั่วไปไว้ใน AST Function_Nodeแล้วทุกครั้งที่เราใช้เราเก็บไว้ในโหนดฟังก์ชั่นดั้งเดิมสำเนาของตัวเองด้วยประเภททั้งหมดที่ถูกTแทนที่ด้วยประเภทที่ กำลังใช้. ยกตัวอย่างเช่นadd<int>(5, 6)จะเก็บสำเนาของฟังก์ชั่นทั่วไปหาaddและทดแทนทุกประเภทT ในการคัดลอกintด้วย ดังนั้นมันจะมีลักษณะดังนี้: struct Function_Node { std::string name; // etc. Type return_type; std::vector<std::pair<Type, std::string>> arguments; std::vector<Function_Node> copies; }; จากนั้นคุณสามารถสร้างรหัสสำหรับสิ่งเหล่านี้และเมื่อคุณเยี่ยมชมFunction_Nodeรายการของสำเนาที่copies.size() > 0คุณเรียกใช้visitFunctionในสำเนาทั้งหมด visitFunction(Function_Node& node) { if (node.copies.size() > 0) { for (auto& node : nodes.copies) { visitFunction(node); } // it's …

5
วิธีการประยุกต์ใช้หลักการจำแนกส่วนต่อประสานใน C?
ฉันมีโมดูลพูดว่า 'M' ซึ่งมีลูกค้าไม่กี่คนให้พูดว่า 'C1', 'C2', 'C3' ฉันต้องการที่จะแบ่งปัน namespace ของโมดูล M คือการประกาศของ API และข้อมูลที่มันเปิดเผยลงในไฟล์ส่วนหัวในลักษณะที่ - สำหรับลูกค้าใด ๆ จะเห็นเฉพาะข้อมูลและ API ที่ต้องการเท่านั้น ส่วนที่เหลือของเนมสเปซของโมดูลถูกซ่อนจากไคลเอนต์เช่นเป็นไปตามหลักการแยกส่วน การประกาศไม่ซ้ำในหลายไฟล์ส่วนหัวเช่นไม่ละเมิด แห้ง โมดูล M ไม่มีการพึ่งพาลูกค้า ลูกค้าไม่ได้รับผลกระทบจากการเปลี่ยนแปลงที่เกิดขึ้นในส่วนของโมดูล M ที่ไม่ได้ใช้ ลูกค้าที่มีอยู่ไม่ได้รับผลกระทบจากการเพิ่ม (หรือลบ) ของลูกค้าเพิ่มเติม ขณะนี้ฉันจัดการเรื่องนี้โดยการแบ่งเนมสเปซของโมดูลขึ้นอยู่กับความต้องการของลูกค้า ตัวอย่างเช่นในภาพด้านล่างส่วนต่างๆของเนมสเปซของโมดูลที่ลูกค้า 3 รายต้องการ ความต้องการของลูกค้ามีการทับซ้อนกัน namespace โมดูลแบ่งออกเป็น 4 ส่วนหัวของไฟล์ที่แยกต่างหาก - 'a', '1', '2' และ '3' อย่างไรก็ตามสิ่งนี้เป็นการละเมิดข้อกำหนดดังกล่าวบางประการเช่น R3 และ R5 …
15 c  interfaces  solid 

5
ระบบการอนุญาตและการรับรองความถูกต้องสำหรับไมโครไซต์และผู้บริโภค
เราวางแผนที่จะปรับระบบของ บริษัท ให้เป็นระบบที่ใช้บริการแบบไมโคร บริการไมโครนี้จะถูกใช้โดยแอปพลิเคชันภายใน บริษัท ของเราและโดยคู่ค้าบุคคลที่สามหากจำเป็น หนึ่งสำหรับการจองหนึ่งสำหรับผลิตภัณฑ์ ฯลฯ เราไม่แน่ใจว่าจะจัดการกับบทบาทและขอบเขตอย่างไร แนวคิดคือการสร้างบทบาทผู้ใช้พื้นฐาน 3 ประการเช่นผู้ดูแลระบบตัวแทนและผู้ใช้ขั้นปลายและให้แอพสำหรับผู้บริโภคปรับขอบเขตหากจำเป็น ผู้ดูแลระบบสามารถสร้างอัปเดตอ่านและลบทรัพยากรทั้งหมดตามค่าเริ่มต้น (สำหรับ บริษัท ของพวกเขา) ตัวแทนสามารถสร้างอัปเดตและอ่านข้อมูลสำหรับ บริษัท ของพวกเขา ผู้ใช้ปลายทางสามารถสร้างอัปเดตลบและอ่านข้อมูล แต่ไม่สามารถเข้าถึงจุดปลายเดียวกันกับตัวแทนหรือผู้ดูแลระบบ พวกเขาจะสามารถสร้างหรือแก้ไขข้อมูลได้ไม่เพียง แต่อยู่ในระดับเดียวกับตัวแทนหรือผู้ดูแลระบบ ตัวอย่างเช่นผู้ใช้ปลายทางสามารถอัปเดตหรืออ่านข้อมูลบัญชีของพวกเขาเช่นเดียวกับเอเจนต์จะสามารถทำได้สำหรับพวกเขา แต่พวกเขาไม่สามารถดูหรืออัปเดตบันทึกของผู้ดูแลระบบได้ สมมติว่าตัวแทนโดยค่าเริ่มต้นสามารถสร้างอ่านและอัปเดตแต่ละทรัพยากรสำหรับ บริษัท ของพวกเขาและนั่นคือขอบเขตสูงสุดของพวกเขาซึ่งสามารถขอโทเค็น / เซสชั่นของพวกเขา แต่นักพัฒนาของลูกค้า (ผู้บริโภค API) ได้ตัดสินใจว่า อ่านและสร้างทรัพยากรบางอย่างเท่านั้น เป็นวิธีปฏิบัติที่ดีกว่าในการจัดการเรื่องนี้ในการรักษาความปลอดภัยภายในของเราหรือไม่และปล่อยให้พวกเขาเขียนข้อมูลนั้นในฐานข้อมูลของเราหรือให้ลูกค้าจัดการกับสิ่งนั้นภายในโดยการร้องขอโทเค็นที่มีขอบเขตน้อยกว่า ? วิธีนี้เราจะต้องติดตามขอบเขตโทเค็นเท่านั้น ข้อเสียของสิ่งนี้คือทีมของเราจะต้องสร้างกลไกการเข้าถึงที่ปรับแต่งในแอปพลิเคชันภายในของเรา ด้วยวิธีคิดนี้บริการไมโครและระบบการอนุญาตไม่ควรใส่ใจกับความต้องการของลูกค้าเพราะพวกเขาเป็นเพียงผู้บริโภคและไม่ได้เป็นส่วนหนึ่งของระบบ (แม้ว่าผู้บริโภคเหล่านั้นจะเป็นแอพภายในของเราเอง)? การมอบหมายนี้เป็นแนวทางที่ดีหรือไม่?

1
เป็นไปได้ที่จะบรรลุถึงรูปแบบการเป็นเจ้าของของ Rust ด้วยเสื้อคลุม C ++ ทั่วไปหรือไม่
ดูบทความนี้เกี่ยวกับความปลอดภัยของการเกิดพร้อมกันของ Rust: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html ฉันสงสัยว่าความคิดเหล่านี้สามารถทำได้ใน C ++ 11 (หรือใหม่กว่า) โดยเฉพาะอย่างยิ่งฉันสามารถสร้างคลาสของเจ้าของที่โอนความเป็นเจ้าของไปยังวิธีการใด ๆ ที่มันอาจจะผ่าน? ดูเหมือนว่า C ++ มีหลายวิธีในการส่งผ่านตัวแปรที่เป็นไปไม่ได้ แต่บางทีฉันอาจวางข้อ จำกัด บางอย่างในคลาสหรือเทมเพลตเพื่อให้แน่ใจว่าโค้ดเทมเพลตบางตัวได้รับการประมวลผลด้วยวิธีการส่งผ่านทุกครั้งหรือไม่

5
จะรวม TDD และ DDD ที่เข้มงวดได้อย่างไร
TDD เป็นเรื่องเกี่ยวกับการออกแบบโค้ดซึ่งได้รับคำแนะนำจากการทดสอบ ดังนั้นเลเยอร์ทั่วไปมักจะไม่สร้างล่วงหน้า พวกเขาควรปรากฏขึ้นเล็กน้อยผ่านขั้นตอนการรีแฟคเตอร์ การออกแบบที่ขับเคลื่อนด้วยโดเมนนั้นเกี่ยวข้องกับรูปแบบทางเทคนิคมากมายการกำหนดเลเยอร์ที่ได้รับการยอมรับเช่นแอพพลิเคชั่นเลเยอร์โครงสร้างพื้นฐานเลเยอร์โดเมนเลเยอร์คงอยู่ ในการเริ่มต้นการเข้ารหัสส่วนของโครงการ DDD ตั้งแต่เริ่มต้นจะทำอย่างไร? ฉันควรปล่อยให้การออกแบบโผล่ออกมาจากการทดสอบอย่างเคร่งครัดหรือไม่หมายถึงไม่มีการแยกข้อกังวล (ไม่มีเลเยอร์) และ refactor เพื่อให้พอดีกับรูปแบบทางเทคนิคของ DDD? หรือฉันควรสร้างเลเยอร์ที่ว่างเปล่าเหล่านั้น (แอปพลิเคชันหน่วยงาน / บริการโดเมนโครงสร้างพื้นฐาน) และให้ TDD เหมาะสมกับแต่ละชั้นอย่างอิสระ (ใช้ mocks เพื่อแยกระหว่างเลเยอร์)

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

2
DDD CQRS - ต่อการสืบค้นและการอนุญาตตามคำสั่ง
สรุป ควรอนุญาตใน CQRS / DDD ต่อคำสั่ง / แบบสอบถามหรือไม่? ฉันกำลังพัฒนาเป็นครั้งแรกที่แอปพลิเคชันออนไลน์ที่ใช้รูปแบบ DDD CQRS มากหรือน้อยอย่างเคร่งครัด ฉันเจอปัญหาบางอย่างซึ่งฉันไม่สามารถไปไหนมาไหนได้ แอปพลิเคชันที่ฉันสร้างเป็นแอปพลิเคชันบัญชีแยกประเภทที่อนุญาตให้ผู้ใช้สร้างบัญชีแยกประเภทเช่นเดียวกับการอนุญาตให้บุคคลอื่นดู / แก้ไข / ลบพวกเขาเช่นพนักงาน ผู้สร้างบัญชีแยกประเภทควรสามารถแก้ไขสิทธิ์การเข้าถึงของบัญชีแยกประเภทที่เขาสร้างขึ้น สามารถเปลี่ยนความเป็นเจ้าของได้ โดเมนมีสองมวลTLedgerและTUser ฉันอ่านบทความจำนวนมากที่มีคำหลัก DDD / CQRS เกี่ยวกับความปลอดภัยการอนุญาต ฯลฯ ส่วนใหญ่ระบุว่าการอนุญาตเป็นGeneric Subdomainเว้นแต่มีใครกำลังสร้างแอปพลิเคชันความปลอดภัย ในกรณีนี้โดเมนหลักคือโดเมนการบัญชีที่มีความสนใจในการทำธุรกรรมการสร้างสมดุลและการบัญชี แต่ฟังก์ชั่นของความสามารถในการจัดการการเข้าถึงเม็ดเล็กที่ละเอียดไปยังบัญชีแยกประเภทก็จำเป็น ฉันสงสัยว่าจะออกแบบมันอย่างไรในเงื่อนไข DDD / CQRS มันระบุไว้ในบทเรียน DDD รอบ ๆ สถานที่ที่คำสั่งเป็นส่วนหนึ่งของภาษาที่แพร่หลาย พวกเขามีความหมาย พวกมันเป็นการกระทำที่เป็นรูปธรรมซึ่งเป็นตัวแทนของ เพราะคำสั่งและแบบสอบถามเหล่านั้นทั้งหมดเป็นการกระทำที่เกิดขึ้นจริงที่ผู้ใช้จะดำเนินการใน "ชีวิตจริง" การดำเนินการอนุญาตควรจะควบคู่ไปกับ "คำสั่ง" และ "แบบสอบถาม" เหล่านี้ทั้งหมด ผู้ใช้จะมีสิทธิ์ในการดำเนินการ …

3
มันเป็นการดีที่จะกำหนดตัวแปรภายในวงหรือไม่? [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ผู้สอนของฉันเคยบอกฉันว่าฉันไม่ควรกำหนดตัวแปรภายในลูปแต่ฉันก็ยังคงไม่เข้าใจว่าทำไม อะไรคือข้อเสียของสิ่งนั้น? มีร่างกายใดสามารถอธิบายสิ่งนั้นให้ฉันได้บ้าง

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