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

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

4
เมื่อการเขียนโปรแกรมในลักษณะการทำงานคุณมีสถานะแอปพลิเคชันเดียวที่คุณสานผ่านตรรกะของแอปพลิเคชันหรือไม่
ฉันจะสร้างระบบที่มีสิ่งต่อไปนี้ทั้งหมดได้อย่างไร : การใช้ฟังก์ชั่นบริสุทธิ์กับวัตถุที่ไม่เปลี่ยนรูป ส่งผ่านไปยังข้อมูลฟังก์ชันที่ฟังก์ชันต้องการเท่านั้นไม่เกิน (เช่นไม่มีวัตถุสถานะแอปพลิเคชันขนาดใหญ่) หลีกเลี่ยงการขัดแย้งกับฟังก์ชันมากเกินไป หลีกเลี่ยงการสร้างวัตถุใหม่เพียงเพื่อจุดประสงค์ในการบรรจุและเอาพารามิเตอร์ออกจากฟังก์ชั่นเพื่อหลีกเลี่ยงการส่งพารามิเตอร์ไปยังฟังก์ชันมากเกินไป ถ้าฉันจะแพ็คหลายรายการไปยังฟังก์ชันเป็นวัตถุเดียวฉันต้องการให้วัตถุนั้นเป็นเจ้าของข้อมูลนั้นไม่ใช่สิ่งที่สร้างขึ้นชั่วคราว สำหรับฉันแล้วดูเหมือนว่ารัฐ monad ทำผิดกฎข้อที่ 2 ถึงแม้ว่ามันจะไม่ชัดเจนเพราะมันถูกสานต่อผ่าน monad ฉันรู้สึกว่าฉันจำเป็นต้องใช้เลนส์อย่างใด แต่มีน้อยมากที่เขียนเกี่ยวกับมันสำหรับภาษาที่ไม่สามารถใช้งานได้ พื้นหลัง ในการออกกำลังกายฉันกำลังแปลงแอปพลิเคชันที่มีอยู่ของฉันจากสไตล์เชิงวัตถุเป็นสไตล์การทำงาน สิ่งแรกที่ฉันพยายามทำคือการสร้างแกนในของแอปพลิเคชันให้ได้มากที่สุด สิ่งหนึ่งที่ฉันได้ยินคือวิธีการจัดการ "รัฐ" ในภาษาที่ใช้งานได้อย่างหมดจดและนี่คือสิ่งที่ฉันเชื่อว่าทำโดย Monads ของรัฐนั่นคือเหตุผลที่คุณเรียกฟังก์ชันบริสุทธิ์ว่า "ผ่านสถานะของ โลกตามที่มันเป็น "จากนั้นเมื่อฟังก์ชั่นกลับมาก็จะกลับสู่สถานะของโลกตามที่มีการเปลี่ยนแปลง เพื่อแสดงให้เห็นว่าวิธีการที่คุณสามารถทำ "สวัสดีโลก" ในลักษณะการทำงานล้วนเป็นเหมือนคุณผ่านโปรแกรมของคุณที่สถานะของหน้าจอและรับกลับสถานะของหน้าจอด้วยการพิมพ์ "สวัสดีโลก" ดังนั้นในทางเทคนิคคุณกำลังโทรไปยังฟังก์ชั่นที่บริสุทธิ์และไม่มีผลข้างเคียง จากนั้นฉันก็ผ่านแอปพลิเคชันของฉันและ: 1. ขั้นแรกให้สถานะแอปพลิเคชันทั้งหมดของฉันเป็นวัตถุระดับโลกเดียว (GameState) 2. ประการที่สองฉันทำให้ GameState ไม่เปลี่ยนรูป คุณไม่สามารถเปลี่ยนได้ หากคุณต้องการการเปลี่ยนแปลงคุณต้องสร้างสิ่งใหม่ ฉันทำสิ่งนี้โดยการเพิ่มตัวคัดลอกตัวเลือกที่จะเลือกหนึ่งหรือมากกว่าหนึ่งช่องที่มีการเปลี่ยนแปลง 3. สำหรับแต่ละแอปพลิเคชันฉันส่งผ่าน GameState เป็นพารามิเตอร์ ภายในฟังก์ชั่นหลังจากที่ทำสิ่งที่มันจะทำมันจะสร้าง GameState ใหม่และส่งคืน …

3
JSON แบบแบนหรือซ้อนกันสำหรับข้อมูลลำดับชั้น?
ฉันสลับไปมา ~ 5 ครั้งแล้ว ปลายทาง REST นี้ที่/api/tags/จะใช้ภายใน (ไม่มีลูกค้าภายนอก) ฉันเป็นคนเดียวที่ทำงานกับมัน ฉันกำลังตัดสินใจระหว่างตัวแทนสองคนนี้: แบน { "types":[ { "id":1, "text":"Utility" }, { "id":7, "text":"Lease Terms" }, ], "tags":[ { "id":8, "text":"Water", "type":1 }, { "id":9, "text":"Electricity", "type":1 }, { "id":5, "text":"Minimum 12 month lease", "type":7 }, { "id":17, "text":"lease negotiable/flexible", "type":7 }, ] } …
12 rest  api-design  json 

4
การใช้แฟล็กสำหรับการ "จัดกลุ่ม" ผิดหรือเปล่า
ความเข้าใจของฉันอยู่ที่[Flag]enums มักจะใช้สำหรับสิ่งที่สามารถนำมารวมกันที่แต่ละค่าไม่ได้พิเศษร่วมกัน ตัวอย่างเช่น: [Flags] public enum SomeAttributes { Foo = 1 << 0, Bar = 1 << 1, Baz = 1 << 2, } ใด ๆ ที่SomeAttributesคุ้มค่าจะเป็นการรวมกันของFoo, และBarBaz ในสถานการณ์จริงที่ซับซ้อนมากขึ้นฉันใช้ enum เพื่ออธิบายDeclarationType: [Flags] public enum DeclarationType { Project = 1 << 0, Module = 1 << 1, ProceduralModule = 1 << …
12 c#  .net  readability  enum 

2
จะทราบได้อย่างไรว่าต้องทำอะไรในการออกแบบเชิงวัตถุ
ข้อสงวนสิทธิ์แรก: ฉันไม่รู้จริงๆว่าคำถามนี้เหมาะกับเว็บไซต์นี้หรือไม่ แต่ฉันก็ยังพบว่าเป็นคำถามที่เกี่ยวข้องไม่ใช่เฉพาะกับฉัน แต่สำหรับคนอื่น ๆ ที่เป็นผู้เริ่มต้น หากคำถามสามารถปรับปรุงให้เหมาะกับที่นี่โปรดชี้ให้เห็นความคิดเห็น int หากมันไม่พอดีโปรดแจ้งให้ฉันทราบด้วยและหากเป็นไปได้โปรดแจ้งให้เราทราบว่าสามารถพูดคุยเรื่องนี้ได้ที่ไหนเพราะฉันไม่พบฟอรัมที่ดีสำหรับเรื่องนี้ ฉันเรียนรู้ที่จะเขียนโปรแกรมในปี 2009 เมื่อฉันเรียน PHP ต่อมาในปี 2012 ฉันย้ายไปที่ C # และ. NET อย่างไรก็ตามการเขียนโค้ดไม่ใช่ปัญหาการจดอัลกอริธึมไม่ใช่ปัญหาของฉัน ปัญหาที่เกิดขึ้นจริงของฉันคือการรู้ว่าสิ่งที่จะต้องมีการเข้ารหัสเพื่อให้บรรลุความต้องการและการที่มันจะต้องมีการเข้ารหัส หลักสูตรส่วนใหญ่ที่มีอยู่บนเว็บจัดการวิธีการเขียนโค้ดในภาษาบางภาษาวิธีใช้ API บางชุด ฯลฯ นั่นไม่ใช่ประเด็นของฉันที่นี่ ในปีที่ผ่านมาฉันได้อ่านสิ่งต่างๆมากมาย: การวิเคราะห์และออกแบบเชิงวัตถุรูปแบบการออกแบบการออกแบบโดยใช้โดเมนเป็นต้น ฉันเข้าใจตัวอย่างเช่นหลักการ SOLID แนวคิดหลักบางประการของ DDD เช่นความจำเป็นในการมีส่วนร่วมของผู้เชี่ยวชาญด้านโดเมนการพัฒนาภาษาที่แพร่หลายและอื่น ๆ ฉันจะกล้าพูดว่าฉันมีพื้นฐานทางทฤษฎีอย่างน้อยเหมาะสม แต่เมื่อพูดถึงการฝึกฝนฉันรู้สึกว่าฉันเป็นหายนะ เมื่อไม่นานมานี้ฉันจำเป็นต้องพัฒนาระบบการเงินที่ถูกพัฒนาโดยบุคคลอื่นต่อไป มันเป็น "ระบบเก่า" ที่พัฒนาด้วย C # และ WinForms นี่เป็นครั้งแรกที่ฉันเลือกโครงการที่มีความซับซ้อนของโดเมนจริงด้วยกฎเกณฑ์ทางธุรกิจมากมายและอื่น ๆ ฉันยอมรับว่าเมื่อฉันได้รับข้อกำหนดเกือบตลอดเวลาฉันคิดว่า "จะทำอย่างไรในโลกนี้?" - …

1
แบ่งปันบางส่วนของ monorepo
ขณะนี้เรามีระบบการสร้างที่ซับซ้อนและไม่มีประสิทธิภาพซึ่งประกอบด้วย repos SVN และ Git จำนวนมาก (ประมาณ 50% ต่อรายการ) รวมถึงระบบที่เป็น repod submitules git เรายังมีสคริปต์แบบโฮมเมดที่จัดการสิ่งต่าง ๆ ได้ไม่มากก็น้อย จุดสำคัญของโค้ดเบสของเรา (แหล่งปิด) คือมันมีการเชื่อมโยงอย่างแน่นหนาและทุกโครงการจะถูกปล่อยออกมาในเวลาเดียวกันภายใต้เวอร์ชันเดียวกัน เราต้องการย้ายข้อมูลนี้ไปยังระบบที่ง่ายขึ้นและ VCS เดียวและกำลังพิจารณาตัวเลือกหลายอย่างรวมถึง: git submodules, google Repo และ monorepos VCS ขั้นสุดท้ายยังไม่ได้กำหนด (ยกเว้นตัวเลือกที่มอบอำนาจให้) และอาจเป็น svn คอมไพล์หรือแม้แต่อย่างอื่นถ้ามันจะเหมาะกับสถานการณ์ของเราดีขึ้น เรากำลังพยายามแสดงรายการบวกและลบของแต่ละวิธีแก้ปัญหาและหนึ่งในปัญหาสำคัญที่เรามีในขณะนี้คือ monorepos ว่ามันดูไม่ง่ายหรือเป็นไปได้ที่จะแบ่งปันเพียงบางโมดูลให้กับหน่วยงานภายนอก เราต้องการให้คนเหล่านั้นสามารถชำระเงินและทำงานได้ตามปกติในโมดูลเหล่านั้น แต่ไม่สามารถเข้าถึงรหัสหรือประวัติส่วนที่เหลือของ repo มันไม่ใช่สิ่งที่เราทำบ่อยครั้งหรืออย่างกว้างขวางในขณะนี้ แต่เราอาจจะเกิดขึ้นในอนาคตและเราไม่ต้องการให้เรื่องนี้กลายเป็นฝันร้ายเพราะเราตัดสินใจไม่ดีที่นี่ ระบบการจัดการสิทธิ์พิเศษนั้นมีอยู่ในระบบ VCS หรือไม่? หรือมีวิธีใดที่จะบรรเทาปัญหานี้ได้บ้าง?

6
คำที่ใช้อธิบายฟังก์ชั่น / วิธีที่แก้ไขวัตถุที่ถูกเรียกนั้นคืออะไร?
ขออภัยสำหรับคำถามทั่วไป ฉันค้นหาทั่วและพบกระทู้จำนวนมากที่คล้ายกันนี้ แต่ไม่ใช่หนึ่งที่ตอบคำถามเฉพาะของฉัน - บางทีอาจเป็นเพราะคำที่ฉันค้นหาไม่มีอยู่ เพื่อนคนหนึ่งของฉันคือการเรียนรู้การเขียนโปรแกรมจาวาสคริปต์โดยเฉพาะและเขาถามฉันว่าทำไมมันถึงไม่ทำงาน: var a = "Hello World"; a.replace("Hello", "Goodbye"); console.log(a) // Logs "Hello World" เหตุผลเป็นเพราะreplaceไม่ได้แก้ไขaเนื่องจากสตริงไม่เปลี่ยนรูปใน JavaSript เพราะมันส่งคืนสตริงคุณต้องทำอะไรบางอย่างเช่น ... var a = "Hello World"; a = a.replace("Hello", "Goodbye"); console.log(a); // Logs "Goodbye World" อย่างไรก็ตามทางเลือกคือฟังก์ชั่นเช่นจาวาสคริปต์reverse()เพราะมันจะทำการแก้ไขสิ่งที่เรียกว่า ตัวอย่างเช่น: var fruits = ["Apples", "Oranges", "Bananas"]; fruits.reverse(); console.log(fruits) // ["Bananas", "Oranges", "Apples"] …

4
มีการแสดงข้อมูลเดียวที่ทำงานกับทุกสกุลเงิน (แม้จะแตกต่างจากสกุลเงินดอลลาร์ยูโรและปอนด์)
ฉันสามารถค้นหาคำถามมากมายเกี่ยวกับห้องสมุดเพื่อใช้แทนจำนวนเงินในบางสกุลเงิน และเกี่ยวกับปัญหาเรื่องอายุว่าทำไมคุณไม่ควรเก็บสกุลเงินเป็นเลขทศนิยม IEEE 754 แต่ฉันไม่สามารถหาอะไรเพิ่มเติมได้ แน่นอนว่ายังมีอะไรอีกมากให้รู้เกี่ยวกับสกุลเงินในการใช้งานจริง ฉันสนใจเป็นพิเศษในสิ่งที่คุณจำเป็นต้องรู้เพื่อนำเสนอในการใช้งานจริง (เช่นด้วยดอลลาร์คุณไม่มีความแม่นยำน้อยกว่า $ 0.01 ซึ่งอนุญาตให้แสดงเป็นจำนวนเต็มเซ็นต์) แต่มันยากที่จะตั้งสมมติฐานเกี่ยวกับความหลากหลายของโปรแกรมของคุณเมื่อสกุลเงินเดียวที่คุณรู้จักคือสกุลเงินตะวันตกที่เป็นที่นิยม (เช่นดอลลาร์ยูโรและปอนด์) อะไรคือความรู้ที่เกี่ยวข้องในมุมมองเชิงโปรแกรมอย่างหมดจด? ฉันไม่ได้กังวลเกี่ยวกับหัวข้อของการแปลง โดยเฉพาะอย่างยิ่งเราต้องรู้อะไรบ้างเพื่อให้สามารถเก็บค่าในสกุลเงินบางส่วนและพิมพ์ออกมาได้

2
ทำไม PHP จึงถือว่า“ 0” เป็น FALSE ในบริบทบูลีน
"0" ซึ่งเป็นสตริงที่มีอักขระหนึ่งตัวไม่ใช่สิ่งที่ว่างเปล่าอย่างสังหรณ์ใจ ทำไม PHP จึงถือว่าเป็น FALSE เมื่อถูกแปลงเป็นบูลีนซึ่งแตกต่างจากภาษาการเขียนโปรแกรมอื่น ๆ
12 php  strings  boolean 

5
ค้นหาแบบที่ใกล้ที่สุดที่ดีที่สุดสำหรับวงกลม
ด้านล่างเป็นภาพตัวอย่างถ้าฉันมีจุดสีขาวตรงกลางและฉันต้องการค้นหาตำแหน่งที่ใกล้ที่สุดสำหรับวงกลมสีน้ำเงิน (ซึ่งเห็นได้ชัดว่าอยู่ในตำแหน่งที่ฉันวางไว้) ถ้าวงกลมสีแดงทั้งหมดมีอยู่แล้ว . ฉันจะหาตำแหน่งนั้นได้อย่างไร ประสิทธิภาพสำหรับฉันไม่ใช่สิ่งสำคัญสำหรับแอปพลิเคชันนี้

1
แนะนำตัวแปรท้องถิ่นเพิ่มเติมเป็นการแทนที่ความคิดเห็น
มันเป็นสไตล์ที่ดีหรือไม่ที่จะใช้ตัวแปรท้องถิ่นที่เพิ่มเติมและไม่จำเป็นทางเทคนิคเพื่ออธิบายว่าเกิดอะไรขึ้น? ตัวอย่างเช่น: bool easyUnderstandableIsTrue = (/* rather cryptic boolean expessions */); if(easyUnderstandableIsTrue) { // ... } เมื่อพูดถึงค่าโสหุ้ยทางเทคนิคฉันคาดว่าคอมไพเลอร์จะปรับแต่งบรรทัดเพิ่มนอกจากนี้ แต่มันถือว่าเป็นรหัสที่ไม่จำเป็นออกบวม? ในสายตาของฉันมันช่วยลดความเสี่ยงของความคิดเห็นเก่า

8
การออกแบบที่เหมาะสมสำหรับชั้นเรียนด้วยวิธีการหนึ่งที่สามารถแตกต่างกันระหว่างลูกค้า
ฉันมีชั้นเรียนที่ใช้ในการประมวลผลการชำระเงินของลูกค้า ทั้งหมดยกเว้นหนึ่งในวิธีการของคลาสนี้จะเหมือนกันสำหรับลูกค้าทุกคนยกเว้นวิธีที่คำนวณ (ตัวอย่าง) จำนวนผู้ใช้ของลูกค้าที่ค้างชำระ สิ่งนี้อาจแตกต่างกันอย่างมากจากลูกค้าไปยังลูกค้าและไม่มีวิธีง่ายๆในการจับตรรกะของการคำนวณในบางสิ่งบางอย่างเช่นไฟล์คุณสมบัติเนื่องจากอาจมีปัจจัยที่กำหนดเองจำนวนเท่าใดก็ได้ ฉันสามารถเขียนรหัสน่าเกลียดที่เปลี่ยนตาม customerID: switch(customerID) { case 101: .. do calculations for customer 101 case 102: .. do calculations for customer 102 case 103: .. do calculations for customer 103 etc } แต่สิ่งนี้ต้องการการสร้างคลาสใหม่ทุกครั้งที่เราได้ลูกค้าใหม่ อะไรคือวิธีที่ดีกว่า [แก้ไข] บทความ "ซ้ำกัน" แตกต่างอย่างสิ้นเชิง ฉันไม่ได้ถามว่าจะหลีกเลี่ยงคำสั่ง switch ได้อย่างไรฉันกำลังขอการออกแบบที่ทันสมัยที่ใช้กับกรณีนี้ได้ดีที่สุด - ซึ่งฉันสามารถแก้ไขได้ด้วยคำสั่ง switch หากฉันต้องการเขียนรหัสไดโนเสาร์ ตัวอย่างที่ให้ไว้มีทั่วไปและไม่เป็นประโยชน์เนื่องจากพวกเขาบอกว่า "เฮ้สวิตช์ทำงานได้ค่อนข้างดีในบางกรณีไม่ใช่ในบางกรณี" …

1
เป็นไปได้ไหมที่จะพิสูจน์ว่าฟังก์ชันนั้นเป็น idempotent หรือไม่?
เป็นไปได้ที่จะใช้ประเภทคงที่หรือขึ้นอยู่กับการพิสูจน์ฟังก์ชั่น idempotent? ฉันค้นหา Google และสถานที่ต่าง ๆ บน StackOverflow / StackExchange เพื่อหาคำตอบอย่างไม่มีโชค สิ่งที่ฉันพบมากที่สุดคือการสนทนาเกี่ยวกับ Idris: https://groups.google.com/forum/#!topic/idris-lang/yp7vrspChRg น่าเสียดายที่การอภิปรายนั้นอยู่เหนือหัวฉันเล็กน้อย
12 haskell 

5
มีข้อเสียเปรียบในการจัดสรรสแต็กจำนวนมากสำหรับอาร์เรย์เดียวในระบบฝังตัวหรือไม่?
ฉันมักจะไม่มีปัญหาในการตัดสินใจว่าข้อมูลบางอย่างจะต้องเป็นแบบโกลบอลสแตติกหรือบนสแต็ก (ไม่มีการจัดสรรแบบไดนามิกที่นี่ดังนั้นจึงไม่มีการใช้ฮีป) ฉันได้อ่านคำถามสองสามข้อเช่นคำถามนี้แต่คำถามของฉันเฉพาะเจาะจงมากขึ้นเพราะมันเกี่ยวข้องกับข้อมูลจำนวนมากมากเมื่อเทียบกับหน่วยความจำระบบ ฉันกำลังใช้งานโค้ดที่มีอยู่ซึ่งฉันพยายามปรับปรุง (ออกแบบปัญหาที่เป็นไปได้การแสดง ฯลฯ ) รหัสนี้วิ่งบน MCU 8bit เก่ามีเพียง4KB ของแรม ในรหัสนี้ฉันต้องเผชิญกับการใช้งานของอาร์เรย์เกือบ 1KB (ใช่1KB ในระบบRAM 4KB ) แต่ละไบต์ของอาร์เรย์นี้ถูกใช้นั่นไม่ใช่คำถาม ปัญหาคือว่าอาร์เรย์นี้เป็นอาร์เรย์แบบคงที่ในไฟล์ที่มีการประกาศดังนั้นวงจรชีวิตของมันเป็นเช่นเดียวกับโปรแกรมหนึ่ง (เช่นถือได้ว่าไม่มีที่สิ้นสุด) อย่างไรก็ตามหลังจากอ่านโค้ดฉันเพิ่งค้นพบว่าอาเรย์นี้ไม่จำเป็นต้องมีวงจรชีวิตที่ไม่มีที่สิ้นสุดมันถูกสร้างและจัดการด้วยวิธีการที่สมบูรณ์ดังนั้นเราควรจะสามารถประกาศได้เฉพาะในฟังก์ชั่นที่ใช้ วิธีนี้มันจะอยู่ในสแต็คและเราจะบันทึก 1KB ของ RAM นี้ ทีนี้คำถาม: นี่เป็นความคิดที่ดีไหม? จากมุมมองการออกแบบหากไม่ต้องการวงจรชีวิตที่ไม่มีที่สิ้นสุด / ทั่วโลกมันเป็นของสแต็ค แต่เดี๋ยวก่อนนั่นคือ 1KB จาก 4KB ไม่มีข้อเสียในการจัดสรร RAM 25% ของแบบนี้ใช่ไหม? (นั่นอาจเป็น 50% หรือมากกว่าของสแต็ก) ใครบางคนสามารถแบ่งปันประสบการณ์บางอย่างกับสถานการณ์แบบนี้หรือใครบางคนคิดเกี่ยวกับเหตุผลที่ถูกต้องที่จะไม่วางอาร์เรย์นี้ในกอง? ฉันกำลังมองหาข้อเสียทางเทคนิคเช่นเดียวกับความคิดเห็นในการออกแบบ สิ่งเดียวที่ฉันใส่ใจคือฉันต้องทำให้แน่ใจว่าจริง ๆ แล้วฉันมีสแต็ก 1KB ฟรีเมื่อเข้าสู่ฟังก์ชันนี้ …

4
ศัพท์เทคนิคที่ใช้แทนการฉีดแบบพึ่งพา?
นี่เป็นศัพท์เฉพาะ (การเขียนเชิงเทคนิค) มากกว่าคำถามทางเทคนิคอย่างแท้จริง ฉันกำลังพยายามเขียนข้อเสนอการปรับโครงสร้างใหม่ (และให้สิทธิ์ตัวเอง) โดยมีศูนย์กลางที่การขยายการฉีดที่ต้องพึ่งพาในแอปพลิเคชันของเรา ในขณะที่เราใช้Springในการเรียกถั่วอัตโนมัติยังคงมีกรณีที่ยกตัวอย่างถั่วที่ใช้MyClass obj = new MyClass(...)ซึ่งสามารถฉีดได้ทั้งหมด ฉันต้องการทำให้ข้อเสนอของฉันใช้ระบบการตั้งชื่อที่สง่างามและอ้างอิงถึงรูปแบบการออกแบบตรงข้ามกับ DI ด้วยคำที่เหมาะสม คำว่า "คับคัปปลิ้ง" เป็นคำที่เพียงพอหรือไม่ที่ตรงกันข้ามกับ DI?

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

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