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

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

5
ฉันสามารถใช้ Dependency Injection โดยไม่ทำลาย Encapsulation ได้ไหม
นี่คือโซลูชันและโครงการของฉัน: ร้านหนังสือ (โซลูชัน) BookStore.Coupler (โครงการ) Bootstrapper.cs BookStore.Domain (โครงการ) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (โครงการ) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (โครงการ) Global.asax BookStore.BatchProcesses (โครงการ) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), typeof(CreateBookCommandHandler).Assembly); container.RegisterDecorator(typeof(ICommandHandler<>), typeof(ValidationCommandHandlerDecorator<>)); container.RegisterManyForOpenGeneric(typeof(IValidate<>), AccessibilityOption.PublicTypesOnly, …

3
หลักการตั้งชื่อสำหรับฟังก์ชั่นการสั่งซื้อที่สูงขึ้น? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว มีแบบแผนการตั้งชื่อสำหรับฟังก์ชันคำสั่งซื้อที่สูงขึ้นหรือไม่? นั่นคือฟังก์ชันที่ส่งคืนฟังก์ชันอื่น ตัวอย่างใน Javascript: function onlyDivisibleBy(div) { // <-- higher order function return function (n) { return n % div === 0; } } var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.filter(onlyDivisibleBy(3)); // [0, 3, 6, 9] …

1
ฉันจะรู้ได้อย่างไรว่าฉันใช้มัลติเธรดมากเกินไป?
ตอนนี้ฉันรู้สึกว่าฉันใช้งานมัลติเธรดมากเกินไป ฉันมีข้อมูล 3 ประเภทคือ A, B และ C แต่ละคนAสามารถแปลงเป็นหลายBs และแต่ละคนBสามารถแปลงเป็นหลายCs ฉันสนใจเพียงแค่รักษาCs ฉันสามารถเขียนได้อย่างง่ายดายด้วยฟังก์ชันแปลงสองอย่าง แต่ผมจับตัวเองดำเนินการกับกระทู้, สามคิว ( queue_a, queue_bและqueue_c) มีสองเธรดที่ทำการแปลงต่างกันและผู้ปฏิบัติงานหนึ่งคน: ConverterAอ่านจากqueue_aและเขียนถึงqueue_b ConverterBอ่านจากqueue_bและเขียนถึงqueue_c Worker จัดการแต่ละองค์ประกอบจาก queue_c การแปลงค่อนข้างธรรมดาและฉันไม่รู้ว่ารุ่นนี้ซับซ้อนเกินไปหรือไม่ แต่ดูเหมือนว่าแข็งแกร่งสำหรับฉันมาก "ตัวแปลง" แต่ละตัวสามารถเริ่มทำงานได้ก่อนที่ข้อมูลจะมาถึงคิวและเมื่อใดก็ตามในรหัสที่ฉันสามารถ "ส่ง" ใหม่AหรือBs และมันจะทริกเกอร์ไปป์ไลน์การแปลงซึ่งจะเรียกใช้งานโดยคนงาน เกลียว. แม้แต่รหัสผลลัพธ์ก็ดูเรียบง่ายขึ้น แต่ฉันก็ยังไม่แน่ใจว่าฉันใช้เธรดอย่างไม่เหมาะสมหรือไม่

1
เหตุใด Microsoft จึงละทิ้ง IronRuby และ IronPython [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เมื่อหลายปีก่อน Microsoft ประกาศว่า Ruby และ Python กำลังจะมาที่. net โครงการที่เรียกว่า IronRuby และ IronPython ตามลำดับ Microsoft กล่าวว่าโครงการจะสร้างขึ้นจาก. DLR สุทธิ WIKIpedia ระบุว่าสำหรับโครงการและวัตถุประสงค์ทั้งหมด Microsoft ได้ละทิ้งโครงการเหล่านี้ เหตุใด Microsoft จึงละทิ้งโครงการเหล่านี้
15 .net  python  ruby  microsoft 

2
ตัวอย่างของความต่อเนื่องที่ไม่ได้นำไปใช้เป็นขั้นตอนคืออะไร?
การสนทนาที่น่าสนใจเกี่ยวกับความแตกต่างระหว่างการเรียกกลับและการดำเนินการต่อบน SO ได้กระตุ้นคำถามนี้ ตามคำนิยามความต่อเนื่องเป็นตัวแทนของตรรกะที่จำเป็นในการคำนวณให้เสร็จสมบูรณ์ ในภาษาส่วนใหญ่สิ่งนี้แสดงให้เห็นว่าเป็นหนึ่งในขั้นตอนการโต้แย้งที่คุณผ่านสิ่งที่มีค่าต้องการการประมวลผลอย่างต่อเนื่อง ในภาษาที่ใช้งานได้อย่างหมดจด (ที่ทุกฟังก์ชั่นล้วน แต่เป็นพลเมืองชั้นหนึ่ง) ฉันคิดว่าความต่อเนื่องอาจเป็นรูปแบบที่สมบูรณ์ นี่คือท้ายที่สุดแล้วที่ฉันได้เข้าใจถึงการสืบเนื่องถึงจุดนี้มาก่อน อย่างไรก็ตามโลกที่เต็มไปด้วยรัฐ (ถอนหายใจ .. ) และดังนั้นคำจำกัดความทั่วไปไม่จำเป็นต้องให้สถานะโปรแกรมจับภาพต่อเนื่อง - มันต้องการเพียงความตั้งใจ เพื่อช่วยในการทำความเข้าใจฉันสามารถให้ตัวอย่างเป็นภาษาที่ใช้งานได้ซึ่งความต่อเนื่องถูกแสดงออกในรูปแบบที่เป็นนามธรรมมากกว่าฟังก์ชั่นหรือไม่? ฉันรู้ว่า Scheme ช่วยให้คุณสามารถคว้าความต่อเนื่องในปัจจุบันในรูปแบบของคลาส (call / cc) แต่ถึงกระนั้นดูเหมือนว่าขั้นตอนการโต้แย้งหนึ่งที่ส่งผ่านไปยัง call / cc นั้นจะได้รับความต่อเนื่องในปัจจุบันในรูปแบบของอีกแบบหนึ่ง ขั้นตอนการโต้แย้งที่ฟังก์ชั่นการโทร / cc'd สามารถใช้ผลของมัน

5
XSLT และทางเลือกที่เป็นไปได้ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันดู XSLT สำหรับการแปลงไฟล์ XML หนึ่งไฟล์เป็นอีกไฟล์หนึ่ง (HTML เป็นต้น) ตอนนี้ในขณะที่ฉันเห็นว่ามีประโยชน์กับ XSLT (เป็นเครื่องมือมาตรฐานและใช้แล้ว) ฉันลังเลด้วยเหตุผลสองประการ โปรเซสเซอร์ XSLT ดูเหมือนจะค่อนข้างหิวโหย / ทรัพยากร XML เป็นสัญกรณ์ที่ไม่ดีสำหรับการเขียนโปรแกรมและนั่นคือสิ่งที่ XSLT เกี่ยวข้อง ไม่ต้องการหมุนรอบ XSLT ที่นี่ แต่ฉันต้องการชี้ให้เห็นสิ่งที่ฉันไม่ชอบเกี่ยวกับเรื่องนี้เพื่อให้คุณมีความคิดในสิ่งที่ฉันคาดหวังจากทางเลือก มีพื้นหลังเสียงกระเพื่อมบางฉันสงสัยว่ามีวิธีที่ดีกว่าสำหรับการเปลี่ยนแปลงโครงสร้างต้นไม้ตามเสียงกระเพื่อมบาง ฉันได้เห็นการอ้างอิงถึง DSSSL น่าเศร้าที่ลิงก์ส่วนใหญ่เกี่ยวกับ DSSSL นั้นตายแล้วดังนั้นจึงเป็นเรื่องยากที่จะเห็นรหัสที่แสดงให้เห็น DSSSL ยังคงใช้งานอยู่หรือไม่ ฉันจำได้ว่าฉันได้ติดตั้ง openjade ครั้งเดียวเมื่อตรวจสอบสิ่งที่ docbook โพสต์บล็อกของ Jeff Atwoodดูเหมือนจะบอกใบ้ให้ใช้ …
15 xml  lisp  linq  xslt 

9
การเรียนรู้ C จำเป็นสำหรับวิทยาศาสตร์คอมพิวเตอร์หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเป็นผู้พัฒนาส่วนหน้าซึ่งแทบไม่เห็นแม้แต่ไฟล์.hหรือ.cส่วนขยาย ฉันรู้ไวยากรณ์ C พื้นฐานฉันได้เรียนรู้ใน Unreality แต่ไม่เคยสนใจการเขียนโปรแกรมระดับต่ำเช่นนี้เพราะเป็นการตั้งค่าที่ง่ายเกินไปสำหรับสิ่งที่เรียบง่าย ฉันสนใจที่จะเรียนรู้ทุกแง่มุมของวิทยาการคอมพิวเตอร์ แต่ฉันต้องการที่จะเชื่อว่าฉันไม่จำเป็นต้องรู้ภาษาใดภาษาหนึ่งเพื่อเข้าใจแนวคิดส่วนใหญ่ทางวิทยาศาสตร์คอมพิวเตอร์ แต่เมื่อฉันเริ่มอ่านหนังสือและบทความเกี่ยวกับแนวคิดพื้นฐานทางวิทยาศาสตร์คอมพิวเตอร์เช่นโครงสร้างข้อมูลและการออกแบบอัลกอริทึมดูเหมือนว่าฉันต้องเรียนรู้ C เพราะตัวอย่างทั้งหมดและแม้แต่บทเรียนอยู่ใน C (และบางครั้ง Java) คำถามของฉันคือ C เป็นภาษาการเขียนโปรแกรมที่จำเป็นสำหรับวิทยาการคอมพิวเตอร์หรือเราเพิ่งจะมีทรัพยากรทั้งหมดของเราใน CS เขียนใน C หรือไม่? สามารถเรียนรู้วิทยาศาสตร์คอมพิวเตอร์โดยไม่ต้องเรียนรู้ C หรือไม่?

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

6
วิธีการรับรองผู้ใช้ว่าเว็บไซต์และรหัสผ่านมีความปลอดภัย [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ในเว็บไซต์ที่เชื่อถือได้ฉันจะเห็นการอ้างสิทธิ์เช่น "ข้อมูลทั้งหมดได้รับการเข้ารหัส" หรือ "รหัสผ่านทั้งหมดจะถูกเข้ารหัสโดยใช้การเข้ารหัสแบบ 128 บิต" และอื่น ๆ อย่างไรก็ตามฉันไม่เคยเจอการอ้างสิทธิ์เช่น "รหัสผ่านทั้งหมดถูกแฮช" ในเว็บไซต์ของฉันฉันจะเก็บรหัสผ่านผู้ใช้ทั้งหมดในฐานข้อมูลหลังจากใช้ SHA-512 (ส่วนใหญ่) hashing ด้วยเกลือแบบสุ่ม ฉันต้องการเพิ่ม snipet ที่ทำให้ผู้ใช้มั่นใจว่ารหัสผ่านของพวกเขาปลอดภัยดังนั้นพวกเขาจะไม่ถูกขัดขวางจากการใช้เว็บไซต์ของฉันเพราะมันต้องใช้รหัสผ่าน ฉันต้องการให้ผู้ใช้รู้สึกปลอดภัย แต่ฉันไม่คิดว่าทุกคนรู้ว่าการแฮ็กคืออะไร คำถามของฉัน: การส่งข้อความโดยบอกว่า "รหัสผ่านทั้งหมดมีการเข้ารหัสและปลอดภัย" เนื่องจากฉันไม่คิดว่าผู้ใช้โดยเฉลี่ยจะรู้ว่าความแตกต่างระหว่างการแฮชและการเข้ารหัสคืออะไรและมีแนวโน้มที่จะรู้สึกปลอดภัยมากขึ้นเพราะพวกเขาเห็น คำว่า "เข้ารหัส" ที่สะดวกสบายคืออะไร? หรือมีข้อความอื่นที่ฉันควรให้? ในหมายเหตุด้านบนฉันยังใหม่กับการเข้ารหัสและการแฮ็กรหัสผ่านและฉันสงสัยว่าสิ่งนี้จะปลอดภัยพอสำหรับตอนนี้เมื่อฉันเปิดไซต์หรือไม่ ฉันไม่ต้องการบอกผู้ใช้ว่าปลอดภัยหากไม่เป็นเช่นนั้น ข้อมูลใด ๆ ที่จะได้รับการชื่นชมอย่างมาก ขอบคุณ

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

5
ประสิทธิภาพค่าใช้จ่ายสัมพัทธ์ของการทดสอบขับเคลื่อน (ยอมรับ)
ฉันต้องการทราบว่าผลกระทบโดยรวมของการวางแผนทรัพยากรในโครงการซอฟต์แวร์คืออะไรซึ่งความต้องการและการออกแบบของโครงการนั้นเกิดจากการทดสอบการยอมรับอัตโนมัติและการทดสอบหน่วยในทางตรงกันข้ามกับแนวทางการพัฒนาซอฟต์แวร์แบบดั้งเดิม จากประสบการณ์ของคุณผลกระทบโดยรวมต่อความต้องการทรัพยากรสำหรับการทำโครงการซอฟต์แวร์ภายใต้ TDD นั้นตรงข้ามกับวิธีการพัฒนาแบบ "ดั้งเดิม" มากกว่านี้หรือไม่? ดูเหมือนว่าฉันจะเห็นได้ชัดว่าคุณภาพจะเพิ่มขึ้นและปริมาณของความไม่แน่นอนลดลงเนื่องจากการทดสอบเสร็จสิ้นก่อนหน้านี้ แต่การทดสอบที่ต้องดำเนินการล่วงหน้าดูเหมือนว่าจะต้องใช้เวลานักพัฒนามากขึ้น ความพยายามในการพัฒนาเพิ่มขึ้นเท่าใดหรือลดลงจริงหรือไม่เนื่องจากการกำจัดข้อบกพร่องล่วงหน้า ต้องใช้ความพยายามมากแค่ไหนจากลูกค้า? พวกเขาต้องเปลี่ยนวิธีการที่เกี่ยวข้องกับโครงการโดยเฉพาะอย่างยิ่งหากพวกเขาคุ้นเคยกับการออกแบบที่ยิ่งใหญ่หรือไม่? จำนวนชั่วโมงที่ต้องการโดยรวมของลูกค้าเพิ่มขึ้นหรือลดลงจริงหรือไม่ ฉันคิดว่าการประมาณเวลาจะคลุมเครือมากในกระบวนการ TDD วนซ้ำเมื่อเริ่มต้นโครงการ TDD (เนื่องจากไม่มีแผนพัฒนาซอฟต์แวร์) มีจุดพูด 20% ในโครงการที่ความเชื่อมั่นเพิ่มขึ้นเพียงพอที่จะให้เวลาและเงินที่แน่นอนมากขึ้นหรือน้อยลงสำหรับลูกค้า หมายเหตุ: ฉันไม่ได้มองหาความคิดเห็นส่วนตัวหรือทฤษฎีที่นี่ดังนั้นโปรดอย่าคาดเดา ฉันกำลังมองหาประสบการณ์การใช้งานจริงใน TDD มากขึ้น
15 tdd  estimation 

4
วิธีใช้งานการลงชื่อเข้าใช้อัตโนมัติอย่างปลอดภัย
ฉันได้อ่านหลายกระทู้หลายโพสต์ว่า "คุณอาจเก็บรหัสผ่านผิด" พวกเขามักจะหมายถึงการจัดเก็บรหัสผ่านบนเซิร์ฟเวอร์ที่ผู้ใช้เข้าสู่ระบบ; พวกเขาโดยทั่วไปทำใหม่ (ปุนตั้งใจ) คำแนะนำที่แพร่หลายเช่นให้แน่ใจว่าใส่เกลือรหัสผ่าน ฯลฯ ฯลฯ อย่างไรก็ตามฉันไม่เคยเห็นบทความเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดเก็บรหัสผ่านบนไคลเอนต์เพื่อให้ลูกค้าไม่ต้องเข้าสู่ระบบ ทุกครั้งที่ต้องการล็อกอินด้วยตนเองทุกครั้ง คุณลักษณะ "จดจำฉัน" ซอฟต์แวร์หลายชิ้นมีคุณสมบัตินี้ตั้งแต่เบราว์เซอร์ไปจนถึงโปรแกรมอย่าง Dropbox เมื่อเร็ว ๆ นี้ฉันได้อ่านบทความเก่าเกี่ยวกับวิธีที่ Dropbox จัดเก็บ ID บนคอมพิวเตอร์ของคุณซึ่งคุณสามารถคัดลอก / วางไปยังคอมพิวเตอร์เครื่องอื่นแล้วเริ่ม Dropbox และเข้าสู่ระบบในฐานะอุปกรณ์ที่คุณได้รับ ID ไม่มีการเข้าสู่ระบบไม่มีอะไรและเข้าถึงบัญชี Dropbox ได้อย่างสมบูรณ์ ดูเหมือนว่าการออกแบบที่โง่จริงๆ แต่ฉันไม่สามารถคิดวิธีที่ดีกว่านี้ได้ ฉันไม่แน่ใจด้วยซ้ำว่าจะหลีกเลี่ยงการเก็บบางสิ่งเช่นคุกกี้ในข้อความล้วน หากคุณเข้ารหัสคุณจะเก็บกุญแจไว้เพื่อถอดรหัสที่ไหน วิธีเดียวที่ฉันเห็นว่าไม่แนะนำช่องโหว่ด้านความปลอดภัยคือการลบคุณลักษณะ autologin และทำให้ผู้ใช้พิมพ์รหัสผ่านทุกครั้งที่ต้องการใช้บริการ แต่นั่นเป็นการต่อสู้ที่ใช้งานง่ายและผู้ใช้มักจะถูกคาดหวังว่าจะไม่ต้องทำเช่นนั้น ฉันจะอ่านอะไรเกี่ยวกับการจัดเก็บข้อมูลประจำตัวในท้องถิ่นอย่างปลอดภัยเพื่อใช้คุณสมบัติการเข้าสู่ระบบอัตโนมัติ? หากหลักการเรียบง่ายเกินไปสำหรับบทความทั้งหมดมันคืออะไร? ซอฟต์แวร์ที่เป็นปัญหาไม่ควรขึ้นอยู่กับฟีเจอร์ที่ไม่มีในทุกแพลตฟอร์ม (เช่น "keychain" บางตัวมีการแจกแจงลินุกซ์)
15 security  login 

3
องค์ประกอบบริการ SOA ใช้งานได้จริงหรือไม่
หนึ่งในหลักการออกแบบการบริการ SOA หลักคือหลักการบริการการรวมบริการ ( https://en.wikipedia.org/wiki/Service_composability_principle ) แนวคิดก็คือการสร้างบริการใหม่โดยใช้สิ่งที่มีอยู่เป็นหน่วยการสร้างจะสามารถพัฒนาบริการใหม่ได้อย่างรวดเร็ว ชนิดคล้ายกับวิธีที่คุณเรียกวิธีการที่มีอยู่ของวัตถุเมื่อคุณใช้วิธีการใหม่ นี่คือสิ่งที่การเพิ่มประสิทธิภาพการผลิตส่วนใหญ่จาก SOA ควรมาจาก มีคนทำสิ่งนี้จริงๆในทางปฏิบัติหรือไม่? ฉันได้เห็นสิ่งนี้ซ้ำไปซ้ำมาอย่างไม่มีที่สิ้นสุดในข้อความที่เป็นลายลักษณ์อักษร แต่ยังไม่เคยมีประสบการณ์การใช้งานจริงมาใช้ ข้อความส่วนใหญ่ไม่ได้กล่าวถึงการจัดการธุรกรรมใด ๆซึ่งดูเหมือนว่าฉันจะเป็นอุปสรรคที่ใหญ่ที่สุดในการตระหนักถึงบริการที่รวบรวมได้ ก่อนอื่นคุณต้องแก้ไขปัญหาการทำธุรกรรมก่อนที่จะสามารถเขียนบริการที่ไม่สำคัญ แน่นอนถ้าตัวอย่างมีบริการ "findCurrentTime ()" และ "writeLogMessage ()" มันง่ายที่จะไม่กังวลเกี่ยวกับการทำธุรกรรม แต่ไม่เมื่อมีตัวอย่างในโลกแห่งความจริงเช่น "depositMoney ()" และ "drawMoney () " ฉันรู้สองตัวเลือก: ใช้งานธุรกรรมจริงกับ WS-Atomic Transaction หรือ ใช้โซลูชันที่อิงตามค่าตอบแทนซึ่งชดเชยการเรียกไปยัง A ด้วย "CancA ()" หรือ somesuch หากการเรียกไปยัง B ล้มเหลว ทั้งสองอย่างดูมีปัญหามาก / ใกล้จะใช้ไม่ได้กับฉัน: ธุรกรรม …

4
มีช่องโหว่ใน GPL ที่อนุญาตให้ซอฟต์แวร์ลิขสิทธิ์เชื่อมโยงกับไลบรารี GPL หรือไม่
ตรวจสอบสถานการณ์สมมุติ: Company X เขียนโปรแกรมที่เป็นกรรมสิทธิ์ (A) ที่เชื่อมโยงกับไลบรารีที่เป็นกรรมสิทธิ์ (B) บริษัท Y ต้องการใช้ไลบรารี่ทดแทน (C) ที่ได้รับสิทธิการใช้งานภายใต้ GPL และเขียนไลบรารีแรปเปอร์ (D) ที่ลิงก์ไปยังทั้ง A และ C แบบไดนามิกและแปลการเรียก API ที่ใช้โดย A เป็นการเรียก API ที่ C ใช้ เนื่องจาก D มีวัตถุประสงค์เพื่อใช้กับ C และใช้การเรียก API ของ C จึงเป็นงานที่ต่อเนื่องของ C ดังนั้นจึงต้องเผยแพร่ภายใต้ข้อกำหนดของ GPL * เป็นผลให้การทำงานร่วมกันของ A และ D ต้องถูกแจกจ่ายภายใต้เงื่อนไขของ GPL ซึ่งเป็นไปไม่ได้เนื่องจาก บริษัท Y …
15 gpl 

5
อะไรคือλx.λf.fx (เช่น reverse Apply) ใน lambda แคลคูลัส? ฟังก์ชั่นที่เกี่ยวข้องมีชื่อมาตรฐานในการเขียนโปรแกรมหรือไม่?
λx.λf.fxในแคลคูลัสแลมบ์ดาคืออะไร? ฟังก์ชั่นที่เกี่ยวข้องมีชื่อมาตรฐานในภาษาโปรแกรมการใช้งานเช่น Haskell หรือไม่? ในการเขียนโปรแกรมเชิงวัตถุมีชื่อปกติสำหรับวิธีการfooที่ใช้ฟังก์ชั่นเป็นอาร์กิวเมนต์เช่นนั้นx.foo(f)จะส่งกลับf(x)?

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