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

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

1
เหตุใดจึงไม่สามารถโอเวอร์โหลดตัวดำเนินการผสมใน C # ได้
ชื่อจะทำให้เข้าใจผิดดังนั้นโปรดอ่านคำถามทั้งหมด :-) โดย "ผู้ประกอบการที่ได้รับมอบหมายสารประกอบ" ผมมีในใจสร้างเช่นนี้ยกตัวอย่างเช่นop= +=ตัวดำเนินการกำหนดค่าบริสุทธิ์ ( =) ไม่ได้อยู่ในคำถามของฉัน โดย "ทำไม" ฉันไม่ได้หมายถึงความเห็น แต่เป็นแหล่งข้อมูล (หนังสือบทความ ฯลฯ ) เมื่อนักออกแบบบางคนหรือเพื่อนร่วมงาน ฯลฯ แสดงเหตุผลของพวกเขา(เช่นแหล่งที่มาของตัวเลือกการออกแบบ) ฉันงงงวยด้วยความไม่สมดุลที่พบใน C ++ และ C # ( ใช่ฉันรู้ว่า C # ไม่ใช่ C ++ 2.0 ) - ใน C ++ คุณต้องโอเวอร์โหลดโอเปอเรเตอร์+=แล้วเขียน+ตัวดำเนินการที่เหมาะสมโดยอัตโนมัติอาศัยโอเปอเรเตอร์ที่กำหนดไว้ก่อนหน้านี้ ใน C # เป็นแบบย้อนกลับ - คุณโอเวอร์โหลด+และ+=สังเคราะห์สำหรับคุณ หากฉันไม่เข้าใจผิดวิธีการในภายหลังจะฆ่าโอกาสในการปรับให้เหมาะสมในกรณีของจริง+=เนื่องจากต้องสร้างวัตถุใหม่ ดังนั้นจะต้องมีข้อได้เปรียบที่ยิ่งใหญ่ของวิธีการดังกล่าว แต่ MSDN อายเกินกว่าจะบอกได้ …

8
การเปิดและปิดคุณสมบัติ UI (หรืออื่น ๆ ) ขึ้นอยู่กับวันที่ - รหัสกลิ่นหรือไม่
เรามีระบบอันยิ่งใหญ่ที่เขียนใน ASP.NET 2.0 ที่เราต้องเพิ่มฟังก์ชั่นบางอย่าง ปัญหาคือผลิตภัณฑ์บางอย่างมีคุณสมบัติ UI ที่จะต้องเปิดใช้งานสำหรับธุรกิจที่เริ่มต้นหลังจากวันที่แน่นอน (และอื่น ๆ ปิด) ในขณะที่หน้าจะต้องเหมือนกันสำหรับธุรกิจที่มีอยู่ ฉันกำลังผลักดันให้มีการเขียนหน้าใหม่สำหรับธุรกิจใหม่เนื่องจากฉันพบความคิดเกี่ยวกับสวิตช์ JavaScript UI ที่อิงตามวันที่และการผสมตัวควบคุมเว็บสำหรับธุรกิจเก่าและใหม่ให้เป็น "ไม่เรียบร้อย" (สำหรับคำที่ดีกว่า ) การฝึกฝนให้มี UI ตามเวลาเป็นคุณลักษณะที่เป็นที่ยอมรับอย่างกว้างขวางและหากไม่เป็นเช่นนั้นความเสี่ยงที่ทราบกันดีในการใฝ่หาแนวทางปฏิบัตินั้นคืออะไร?

2
สิทธิ์รหัสพิเศษทำงานอย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ลูกค้าขอให้ฉันส่งข้อเสนอสำหรับเว็บแอปที่เขาต้องการสร้าง ลูกค้ารายนี้เป็นการเริ่มต้นที่มีแรงฉุดที่ค่อนข้างดี (เท่าที่ดูเหมือน) ฉันถูกขอให้ร่างสัญญาที่ป้องกันไม่ให้ฉันเขียนรหัสใด ๆ ที่ฉันเขียนให้พวกเขาที่อื่น จนถึงตอนนี้ฉันกำลังร่างสัญญาที่ฉันยังคงรักษาสิทธิพิเศษไว้ในซอร์สโค้ดของฉัน แต่ลูกค้ายังคงรักษาสิทธิ์ทั้งหมดไว้เช่นกัน (การขายการแก้ไข ฯลฯ ) ดังนั้นนี่ฟังดูแปลกประหลาดสำหรับฉัน: ถ้าฉันมีลูกค้ารายอื่นที่มีโครงการคล้ายกัน (แต่ไม่เหมือนกัน) และเขาต้องการให้ฉันพัฒนาแอปพลิเคชันของเขา? แน่นอนว่าฉันจะไม่คัดลอกและวางจากโปรเจ็กต์ก่อนหน้า - แต่ฟังดูแล้วว่าฉันจะไม่สามารถใช้ข้อมูลเชิงลึกที่ฉันได้รับจากโปรเจ็กต์ก่อนหน้านี้และฉันจะไม่สามารถเขียนโค้ดนี้อีก สำหรับลูกค้าใด ๆ ดังนั้นคำถามคือ - ถ้าฉันให้สิทธิ์ทั้งหมดของซอร์สโค้ดแก่ลูกค้านั่นหมายความว่าฉันไม่สามารถเขียนรหัสนี้ให้กับผู้อื่นได้หรือไม่? หมายเหตุ:ฉันรู้ว่าส่วนใหญ่ของคุณที่นี่ไม่ใช่นักกฎหมายและฉันไม่ได้มองหาคำแนะนำด้านกฎหมาย แต่สัญญาประเภทเหล่านี้มีความหมายในแง่ของการเป็นเจ้าของรหัสแหล่งที่มาสิ่งที่ปกติทำอะไร ฯลฯ

6
ในคอมไพล์วิธีการกำหนดเวอร์ชันสำหรับไลบรารีโหลทั้งหมดนั้นทำงานพร้อมกัน
เรากำลังทำโครงการ แต่เราใช้รหัสจำนวนมากระหว่างโครงการและมีห้องสมุดจำนวนมากที่มีรหัสทั่วไปของเรา ในขณะที่เราใช้งานโครงการใหม่เราค้นหาวิธีเพิ่มเติมในการแยกตัวประกอบของรหัสทั่วไปและใส่ลงในไลบรารี ห้องสมุดขึ้นอยู่กับแต่ละอื่น ๆ และโครงการขึ้นอยู่กับห้องสมุด แต่ละโปรเจ็กต์และไลบรารีทั้งหมดที่ใช้ในโปรเจ็กต์นั้นจำเป็นต้องใช้เวอร์ชันเดียวกันกับไลบรารีทั้งหมดที่อ้างถึง ถ้าเราปล่อยชิ้นส่วนของซอฟต์แวร์เราจะต้องแก้ไขข้อบกพร่องและอาจเพิ่มคุณสมบัติใหม่เป็นเวลาหลายปีบางครั้งก็เป็นเวลาหลายทศวรรษ เรามีห้องสมุดประมาณหนึ่งโหลการเปลี่ยนแปลงมักจะถูกตัดข้ามมากกว่าสองรายการและหลายทีมทำงานในหลายโครงการพร้อมกันโดยทำการเปลี่ยนแปลงพร้อมกันกับไลบรารีทั้งหมดเหล่านี้ เมื่อเร็ว ๆ นี้เราได้เปลี่ยนเป็นคอมไพล์และตั้งค่าที่เก็บสำหรับแต่ละไลบรารีและแต่ละโครงการ เราใช้ที่เก็บของเป็นที่เก็บข้อมูลทั่วไปทำสิ่งใหม่ ๆ ในฟีเจอร์สาขาจากนั้นทำการร้องขอการดึงและรวมเข้าด้วยกันหลังจากตรวจสอบแล้ว ปัญหาหลายอย่างที่เราต้องจัดการในโครงการต้องการให้เราทำการเปลี่ยนแปลงในหลาย ๆ ไลบรารีและรหัสเฉพาะของโครงการ สิ่งเหล่านี้มักจะรวมถึงการเปลี่ยนแปลงอินเทอร์เฟซของไลบรารีซึ่งบางอย่างไม่เข้ากัน (ถ้าคุณคิดว่ามันฟังดูแปลก ๆ : เราเชื่อมต่อกับฮาร์ดแวร์และซ่อนฮาร์ดแวร์ที่เฉพาะเจาะจงไว้ข้างหลังอินเตอร์เฟสทั่วไปเกือบทุกครั้งที่เรารวมฮาร์ดแวร์ของผู้ขายรายอื่นที่เราพบในกรณีที่อินเทอร์เฟซปัจจุบันของเราไม่ได้คาดหวัง ตัวอย่างเช่นสมมติว่าโครงการที่P1ใช้ห้องสมุดL1, และL2 ยังใช้และ, และใช้เช่นกัน กราฟการพึ่งพามีลักษณะดังนี้:L3L1L2L3L2L3 <-------L1<--+ P1 <----+ ^ | <-+ | | | | +--L2 | | ^ | | | | +-----L3---+ ตอนนี้คิดคุณลักษณะสำหรับโครงการนี้ต้องมีการเปลี่ยนแปลงในP1และที่เปลี่ยนอินเตอร์เฟซของL3 L3ตอนนี้เพิ่มโปรเจ็กต์P2และP3ลงในแบบผสมซึ่งยังอ้างถึงไลบรารีเหล่านี้ เราไม่สามารถเปลี่ยนทุกสิ่งให้เป็นอินเทอร์เฟซใหม่ทำการทดสอบทั้งหมดและปรับใช้ซอฟต์แวร์ใหม่ …

2
ประโยชน์ของ RTOS กับ Bare Metal สำหรับการเขียนโปรแกรม MCU?
โปรดทราบ:คำถามนี้กล่าวถึง RTOS สองตัวโดยเฉพาะ แต่มีความเป็นทั่วไปมากกว่าและใคร ๆ ก็สามารถตอบได้โดยเขียนรหัส C สำหรับ RTOSes แบบฝังตัวก่อนหน้านี้และให้ซอฟต์แวร์ทำงานโดยตรงบน MCU ฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ RTOS แบบฝังและการเขียนแอปพลิเคชันสำหรับพวกเขา ฉันกำลังดูEmboxและRIOTเพราะพวกเขาเป็นโอเพ่นซอร์สที่ทันสมัยใช้งานได้และดูเหมือนจะมีเอกสารที่ยอดเยี่ยม เป้าหมายของฉันมีสองขั้นตอน: ระยะที่ 1 คือการหาวิธีการคอมไพล์และแฟลชระบบปฏิบัติการเหล่านี้ไปยัง MCU (อาจเป็น AVR หรือ ARM) ขั้นตอนที่ 2 คือเขียนโปรแกรม C อย่างง่าย (โดยทั่วไปคือ daemon ไร้หัว) ซึ่งจะพัฒนาไปตามเวลาเป็น "งานอดิเรก" จากนั้นฉันจะแฟลช / ปรับใช้โปรแกรมนี้กับ MCU เดียวกันดังนั้นจึงประสบความสำเร็จในการปรับใช้ appstack ซึ่งประกอบด้วย Embox / RIOT และแอพของฉันอยู่ด้านบนของมัน ก่อนที่ผมจะไปลงถนนใด ๆ ที่ในที่สุดนำไปสู่การสิ้นสุดตายผมเจอบทความนี้ที่จะได้งานที่ดีงามของการอธิบายว่าทำไมปพลิเคชันแบบ real-time เขียนใน …

4
ฉันจะสร้างแบบจำลองวันที่บางส่วนใน Python ได้อย่างไร เช่นปีที่ไม่รู้จักหรือวันที่ไม่รู้จักของเดือน?
ฉันต้องการที่จะสามารถจับข้อเท็จจริงเหมือนและBob was born in 2000Bill's birthday is May 7th ในตัวอย่างทั้งสองเรารู้เพียงส่วนหนึ่งของวันเดือนปีเกิดของบุคคลนั้น ในกรณีหนึ่งเรารู้เพียงปีเท่านั้น ในกรณีอื่นเรารู้เดือนและวัน แต่ไม่ใช่ปี ฉันจะรวบรวมข้อมูลนี้ได้อย่างไร ตัวอย่างเล็ก ๆ น้อย ๆ ของการทำงานนี้: ลองนึกภาพห้องสมุดเช่นวันที่และเวลาที่อนุญาตให้ไม่มีในเขตข้อมูลเพื่อแสดงสิ่งที่ไม่รู้จัก ฉันอาจมีรหัสดังนี้: date_a = date(2000, 5, None) date_b = date(2000, 6, None) difference = date_b - date_a assert difference.min.days == 1 assert difference.max.days == 60 # Or something close to 60. …
11 python 

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

2
เป็นไปได้หรือไม่ที่จะเพิ่มความเร็วตารางแฮชโดยใช้แผนผังการค้นหาแบบไบนารีสำหรับการโยงแบบแยกกัน
ฉันต้องการใช้ตารางแฮชโดยใช้ Binary Search Trees เพื่อลดความซับซ้อนในการค้นหาในกระบวนการแยกการเชื่อมโยงจาก O (n) (โดยใช้รายการที่เชื่อมโยง) ถึง O (log n) (โดยใช้ BST) สามารถทำได้และถ้าใช่แล้วได้อย่างไร มันจะง่ายกว่าที่จะเข้าใจว่าการแก้ปัญหาเป็นขั้นตอนการดำเนินการตามตรรกะ ฉันต้องการลดเวลาการค้นหาใน hashtable (บิลด์โดยใช้การโยงแบบแยก) แต่ในเวลาเดียวกันฉันไม่ต้องการเพิ่มเวลาการแทรก สำหรับโครงการของฉันฉันไม่สามารถเปลี่ยนฟังก์ชันแฮชเพื่อลดการชน แต่เนื่องจากความสามารถในการขยายขนาดการชนจึงเกิดขึ้น ฉันพยายามหางานทำเพื่อที่ฉันจะได้ทำงานกับการเข้าถึงที่ดีที่สุดและแทรกเวลาในกรณีที่เกิดการชน ... คือการจัดการสถานะปัจจุบันของสิ่งต่าง ๆ มากกว่าที่จะปรับโครงสร้างอัลกอริทึมทั้งหมด หากไม่ได้เลื่อนออกไปจะต้องปรับโครงสร้าง ดังนั้นความคิดใด ๆ

3
วิธีการตรวจสอบโปรแกรมระยะยาวโดยทางโปรแกรม
สิ่งที่ฉันได้ในขณะนี้สามารถสรุปได้ด้วยรหัสหลอกนี้: public static void Main(string[] args) { var listOfObjects = Database.GetObjectsToUploadToOnlineService(); Parallel.ForEach(Upload) } private static void Upload(MyUploadObject obj) { //Build object (takes a few milliseconds) //Format to JSON (takes a few more milliseconds) //Upload (can take up to a max of 10 minutes) //Wait for a response (can take up …

1
เมื่อทำการแก้ไขเพื่อคอมมิชชันก่อนหน้าฉันควรรีบูทหรือเพิ่มการแก้ไขอัพคอมมิชชันแยกกันหรือไม่?
สถานการณ์ทั่วไปในการพัฒนาซอฟต์แวร์คือการตรวจสอบรหัสของผู้อื่น เครื่องมือทั่วไปสำหรับการทำเช่นนี้คือการเปิดคำขอดึง คำถามของฉันคือเมื่อพบปัญหาในการตรวจสอบการเปลี่ยนแปลงควร จะแยกกัน (กระทำใหม่) หรือควรกระทำการที่มีอยู่ได้รับการแก้ไข (สมมติว่าไม่มีใครแยกจากการกระทำก่อนหน้าของคุณ ... เนื่องจากการเขียนประวัติศาสตร์จากสาขาที่ใช้ร่วมกันเป็นข่าวร้าย) สำหรับสถานการณ์แรกนั้นง่ายต่อการติดตามการเปลี่ยนแปลงที่เพิ่มขึ้นแม้ว่าจะเพิ่มเสียงรบกวนบางอย่างในประวัติการกระทำ ตัวเลือกที่สองมีข้อดีข้อเสีย

1
แบ่งการพัฒนาสแต็ค - ตามแนวทแยง?
เรามีโครงการใหม่ที่เกิดขึ้นและในขณะที่นักพัฒนาได้ถูกแบ่งออกเป็นสองทีมทีม A และทีม B โครงการนี้มี 2 ส่วนซึ่งจำเป็นต้องมีการพัฒนาตลอดทั้งกองพัฒนา ตัวอย่างสแต็กของเราที่แสดงด้านล่างง่ายมาก: แต่ละส่วนของโครงการต้องการการพัฒนาข้ามสแต็คทั้งหมดดังนั้นโดยทั่วไปฉันคาดหวังว่าแนวทางการพัฒนาสแต็คเต็มรูปแบบซึ่งเป็นวิธีที่เราแยกย่อยงานของเราภายในทีม B การออกแบบและการโต้ตอบระหว่างส่วนต่าง ๆ อย่างไรก็ตามเมื่อเร็ว ๆ นี้ฉันได้เรียนรู้ว่าทีม A ต้องการรับผิดชอบบางส่วนของสแต็กและพวกเขากำลังเสนอการแบ่งแยกระหว่างสองทีมที่ Data Abstraction Layer (และวางเนื้อหาใน Data layer) ถูกจัดการโดย ตัวเองโดยไม่มีการพัฒนาจากทีม B. การแบ่งจะดูคล้ายกับ: สำหรับฉันแล้วมันรู้สึกไม่เป็นธรรมชาติมาก แต่ละทีมมีวัตถุประสงค์และระยะเวลาที่แตกต่างกันในการบรรลุเป้าหมายเหล่านี้ แต่ทีม B จะต้องพึ่งพาทีม A ในการใช้คุณสมบัติ วิธีแก้ปัญหาที่เสนอคืออินเตอร์เฟสทั่วไปถูกกำหนดไว้ล่วงหน้า (อาจมีระยะเวลา 2 ปีในโครงการเพื่อให้สามารถใช้งานได้จำนวนมาก) ทีม A จะพัฒนาบิตที่ต้องการให้กับอินเทอร์เฟซเหล่านี้ แต่เนิ่นๆแม้ว่าจะมีชุดเป้าหมายเป็นของตัวเองในขณะที่ทีม B จะเรียกสายทั้งหมดในระยะสั้นเพื่อให้พวกเขาสามารถดำเนินการต่อไปได้ ฉันมีความกังวลเกี่ยวกับวิธีการนี้เกี่ยวกับ: อินเทอร์เฟซอาจเปลี่ยนแปลงและทีม A อาจไม่มีแบนด์วิดท์หรือเวลาเพื่อรองรับความต้องการที่เปลี่ยนแปลง ข้อบกพร่องในรหัสของทีม A …

1
การแยก ASP.NET IdentityUser จากเอนทิตีอื่นของฉัน
ฉันมีProjectName.Coreห้องสมุดที่มีตรรกะทางธุรกิจของฉันและหน่วยงานของฉันและพฤติกรรมของพวกเขา ขณะนี้ไม่มีความสัมพันธ์ใด ๆ กับ Entity Framework หรือ DAL อื่นใดเพราะฉันต้องการแยกสิ่งเหล่านั้นออกจากกัน การกำหนดค่า Entity Framework (ใช้ Fluent API) อยู่ในProjectName.Infrastructureโครงการเพื่อดูแลผลักดันเอนทิตีของฉันไปที่ EF โดยทั่วไปฉันจะไปในทิศทางของสถาปัตยกรรมที่คล้ายกับหัวหอม อย่างไรก็ตามเมื่อเพิ่มกรอบงาน ASP.NET Identity ลงในการผสมฉันต้องทำให้ApplicationUserเอนทิตีของฉันสืบทอดจากIdentityUserคลาส แต่ApplicationUserคลาสของฉันมีความสัมพันธ์กับเอนทิตีอื่น ในการสืบทอดจากIdentityUserฉันแนะนำการอ้างอิงถึง Entity Framework ในโครงการเอนทิตีของฉันที่เดียวที่ฉันไม่ต้องการทำ การดึงApplicationUserคลาสออกจากโครงการเอนทิตีและเข้าสู่Infrastructureโครงการ (เนื่องจากใช้ระบบเอกลักษณ์ของ Entity Framework) จะส่งผลให้มีการอ้างอิงแบบวงกลมดังนั้นจึงไม่มีทางที่จะไป มีวิธีใดบ้างรอบนี้เพื่อให้ฉันสามารถแยกสะอาดระหว่างสองชั้นนอกเหนือจากไม่ใช้ ASP.NET Identity?

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

1
การใช้คลาสชนิด Haskell เพื่อบังคับใช้การสับเปลี่ยน
ฉันต้องการกำหนดคลาสประเภทสำหรับวัตถุทางเรขาคณิตที่สามารถตัดกันด้วยกัน: class Intersect a b c | a b -> c where intersect :: a -> b -> c -- Language extensions: -XMultiParamTypeClasses, -XFunctionalDependencies แนวคิดก็คือมีฟังก์ชั่นการตัดกันที่ใช้งานทั่วไปที่สามารถจัดการกับวัตถุประเภทต่างๆ หนึ่งสามารถจินตนาการกรณีเช่น instance Intersect Line Plane (Maybe Point) where ... instance Intersect Plane Plane (Maybe Line) where ... แต่ฉันก็อยากจะประกาศด้วยว่าการตัดกันนั้นเป็นการสลับ: instance (Intersect a b c) => Intersect …

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

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