คำถามติดแท็ก functional-programming

ฟังก์ชั่นการเขียนโปรแกรมเป็นกระบวนทัศน์ที่พยายามที่จะแก้ปัญหาการคำนวณโดยการประเมินผลของฟังก์ชั่นที่ถูกผูกมัดเอาท์พุทจะถูกกำหนดโดยปัจจัยการผลิตของพวกเขามากกว่าสถานะของโปรแกรม ในรูปแบบของการเขียนโปรแกรมนี้ผลข้างเคียงและข้อมูลที่ไม่แน่นอนจะเลิกใช้และมักจะแยกอย่างเคร่งครัด

3
วิธีการเขียนโปรแกรมเชิงหน้าที่สำหรับเกมที่ง่ายขึ้นโดยใช้ Scala และ LWJGL
I ซึ่งเป็นโปรแกรมเมอร์ที่จำเป็นของ Java ต้องการที่จะเข้าใจวิธีการสร้าง Space Invaders แบบง่าย ๆ ตามหลักการออกแบบฟังก์ชั่น Programming (โดยเฉพาะ Referential Transparency) อย่างไรก็ตามในแต่ละครั้งที่ฉันลองนึกถึงการออกแบบฉันจะหลงทางในความแปรปรวนอย่างรุนแรงซึ่งเป็นความไม่แน่นอนที่เหมือนกันซึ่งเป็นที่รังเกียจของนักเขียนโปรแกรมการทำงาน เป็นความพยายามที่จะเรียนรู้หน้าที่ Programming ฉันตัดสินใจที่จะพยายามที่จะสร้างเกมแบบโต้ตอบ 2D ง่ายมากช่องว่าง Invader (หมายเหตุขาดพหูพจน์) ในScalaใช้lwjgl นี่คือข้อกำหนดสำหรับเกมพื้นฐาน: ผู้ใช้จัดส่งที่ด้านล่างของหน้าจอเลื่อนไปทางซ้ายและขวาด้วยปุ่ม "A" และ "D" ตามลำดับ กระสุนของผู้ใช้ยิงพุ่งขึ้นมาเปิดใช้งานโดยตรงโดยสเปซบาร์โดยมีการหยุดชั่วคราวอย่างน้อยระหว่างนัดเป็น 0.5 วินาที กระสุนของเรือรบต่างด้าวยิงตรงลงโดยใช้เวลาสุ่ม 0.5 ถึง 1.5 วินาทีระหว่างการยิง สิ่งที่จงใจทิ้งไว้จากเกมดั้งเดิมคือเอเลี่ยนของ WxH อุปสรรคในการป้องกันที่ย่อยสลายได้ x3 จานรองความเร็วสูงที่ด้านบนของหน้าจอ ตกลงไปยังโดเมนปัญหาจริงแล้ว สำหรับฉันทุกส่วนที่กำหนดไว้ชัดเจน มันเป็นชิ้นส่วนที่ไม่สามารถกำหนดได้ซึ่งดูเหมือนจะปิดกั้นความสามารถของฉันในการพิจารณาวิธีการเข้าถึง ส่วนที่กำหนดขึ้นมานั้นเป็นวิถีกระสุนของกระสุนทันทีที่มีการเคลื่อนไหวอย่างต่อเนื่องของเอเลี่ยนและการระเบิดเนื่องจากการชนทั้งสอง (หรือทั้งสองอย่าง) ของเรือของผู้เล่นหรือมนุษย์ต่างดาว ชิ้นส่วนที่ไม่สามารถกำหนดค่าได้ (สำหรับฉัน) กำลังจัดการสตรีมอินพุตของผู้ใช้การจัดการดึงค่าสุ่มสำหรับการกำหนดกระสุนไฟเอเลี่ยนและการจัดการเอาต์พุต …

2
วิธีแก้ปัญหาสำหรับการใช้งานการดำเนินการเกี่ยวกับโครงสร้างข้อมูลที่เชื่อมโยงหรือวงกลมในภาษาที่มีข้อมูลที่ไม่เปลี่ยนรูปแบบ
ฉันต้องการเรียนรู้วิธีสร้างกราฟและดำเนินการบางอย่างกับพวกเขาใน Haskell แต่คำถามนั้นไม่เฉพาะเจาะจงกับ Haskell และแทนที่จะเป็นกราฟเราอาจพิจารณาเชื่อมโยงรายการเป็นสองเท่า คำถาม: อะไรจะเป็นสำนวนหรือแนะนำวิธีการใช้รายการเชื่อมโยงทวีคูณ (หรืออื่น ๆ ที่เชื่อมโยงทวีคูณหรือโครงสร้างข้อมูลแบบวงกลม) และการดำเนินงานในภาษาที่สนับสนุนและสนับสนุนสำหรับโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปแบบ (Haskell, Clojure เป็นต้น) ? โดยเฉพาะอย่างยิ่งวิธีการใช้การอัปเดตในสถานที่ซึ่งภาษาต้องห้ามอย่างเป็นทางการ? ฉันสามารถจินตนาการได้อย่างง่ายดายว่าหากมีการดำเนินการในท้องถิ่นในรายการที่ลิงก์ซ้ำกัน (หากมีการแทรกรายการไว้) อาจไม่จำเป็นต้องคัดลอกรายการทั้งหมดทันทีเนื่องจากความเกียจคร้านของภาษา อย่างไรก็ตามเนื่องจากรายการมีการเชื่อมโยงเป็นสองเท่าหากมีการแก้ไขในที่เดียวจึงไม่มีโหนดเก่าที่สามารถใช้ในรายการเวอร์ชันใหม่และพวกเขาจะต้องทำเครื่องหมายคัดลอกคัดลอกเก็บขยะไม่ช้า . เห็นได้ชัดว่าสิ่งเหล่านี้เป็นการดำเนินการที่ซ้ำซ้อนหากจะใช้เฉพาะสำเนาที่ปรับปรุงแล้วของรายการ แต่พวกเขาจะเพิ่มสัดส่วน "ค่าใช้จ่าย" ตามขนาดของรายการ นี่หมายความว่าสำหรับงานดังกล่าวข้อมูลที่ไม่เปลี่ยนรูปแบบนั้นไม่เหมาะสมและภาษาที่ประกาศได้โดยไม่ต้องมีการสนับสนุน "ดั้งเดิม" สำหรับข้อมูลที่ไม่แน่นอนไม่ดีเท่าที่จำเป็นหรือไม่? หรือมีวิธีแก้ปัญหาที่ยุ่งยากบ้างไหม? ป.ล. ฉันได้พบบทความและงานนำเสนอบางอย่างเกี่ยวกับเรื่องนี้ในอินเทอร์เน็ต แต่มีความยากลำบากในการติดตามพวกเขาในขณะที่ฉันคิดว่าคำตอบของคำถามนี้ไม่ควรใช้มากกว่าหนึ่งย่อหน้าและอาจเป็นไดอะแกรม ... ฉันหมายถึงถ้ามี ไม่มีวิธีแก้ปัญหา "ฟังก์ชั่น" สำหรับปัญหานี้คำตอบน่าจะเป็น "ใช้ C" หากมีอย่างใดอย่างหนึ่งมันจะซับซ้อนแค่ไหน? คำถามที่เกี่ยวข้อง "โครงสร้างข้อมูลในการโปรแกรมเชิงฟังก์ชัน" . คำถามเฉพาะของฉันเกี่ยวกับการใช้การอัปเดตแบบแทนที่ไม่ใช้ทางเลือกที่ไม่มีประสิทธิภาพ การกลายพันธุ์ภายในของโครงสร้างข้อมูลถาวร " . ดูเหมือนจะเน้นไปที่การใช้งานในระดับต่ำในภาษาที่ไม่ได้ระบุในขณะที่คำถามของฉันเกี่ยวกับการเลือกภาษาที่ถูกต้อง (การใช้งานหรืออื่น ๆ …

2
มีเหตุผลใดที่จะไม่ใช้ตัวเลือกเป็นอาร์กิวเมนต์วิธีในกรณีที่คุณรู้ว่าอาร์กิวเมนต์เป็นสิ่งที่อาจหรือไม่จำเป็น?
ด้วย Java 8 ฉันได้เห็นบทความมากขึ้นเกี่ยวกับการใช้ตัวเลือก / ตัวเลือก ฉันเข้าใจสิ่งที่พวกเขาพยายามเป็นตัวแทนและฉันเห็นตัวอย่างมากมายของพวกเขาที่ใช้เป็นผลตอบแทน อย่างไรก็ตามสิ่งที่ฉันไม่เห็นก็คือพวกมันถูกใช้เป็นข้อโต้แย้งเมธอด / ฟังก์ชั่นในภาษาที่ไม่มีไวยากรณ์สำหรับพารามิเตอร์เริ่มต้น / ทางเลือก มีเหตุผลใดที่จะไม่ใช้Optionalเป็นอาร์กิวเมนต์วิธีในกรณีที่คุณรู้ว่าอาร์กิวเมนต์เป็นสิ่งที่อาจหรืออาจไม่จำเป็น? นี่คือตัวอย่างที่ฉันคิดได้: Optional<Customer> lookupCustomer(String firstName, Optional<String> middleName, String lastName)

3
ผลข้างเคียงทำลายความโปร่งใสในการอ้างอิง
ฟังก์ชั่นการเขียนโปรแกรมใน Scalaอธิบายผลกระทบของผลกระทบต่อการทำลายความโปร่งใสในการอ้างอิง: ผลข้างเคียงซึ่งแสดงถึงการละเมิดความโปร่งใสในการอ้างอิงบางส่วน ฉันอ่านส่วนหนึ่งของSICPซึ่งกล่าวถึงการใช้ "รูปแบบการแทนที่" เพื่อประเมินโปรแกรม เมื่อฉันเข้าใจแบบจำลองการแทนที่ด้วย referential transparent (RT) คร่าวๆคุณสามารถยกเลิกการเขียนฟังก์ชันลงในส่วนที่ง่ายที่สุดได้ หากการแสดงออกเป็น RT แล้วคุณสามารถยกเลิกการเขียนการแสดงออกและมักจะได้รับผลเดียวกัน อย่างไรก็ตามตามที่ระบุไว้ข้างต้นการใช้ผลข้างเคียงสามารถ / จะทำลายรูปแบบการทดแทน ตัวอย่าง: val x = foo(50) + bar(10) ถ้าfooและbar ไม่ได้มีผลข้างเคียงแล้วดำเนินการอย่างใดอย่างหนึ่งฟังก์ชั่นจะเสมอxกลับผลเดียวกัน แต่หากพวกเขามีผลข้างเคียงพวกเขาจะเปลี่ยนตัวแปรที่ขัดขวาง / โยนประแจเข้ากับโมเดลการแทนที่ ฉันรู้สึกสบายใจกับคำอธิบายนี้ แต่ฉันก็ไม่รู้สึกแย่ โปรดแก้ไขฉันและกรอกข้อมูลในหลุมใด ๆ ที่เกี่ยวกับผลข้างเคียงที่ทำให้ RT แตกหักพูดคุยถึงผลกระทบต่อรูปแบบการทดแทนเช่นกัน

1
เหตุใดฟังก์ชันที่ไม่ระบุชื่อส่วนใหญ่จึงไม่สามารถรวบรวม JIT และจะไม่ได้รับการปรับให้เหมาะสมที่สุด
ฉันเพิ่งอ่านhttps://techfindings.one/archives/2652เกี่ยวกับการเขียนโปรแกรมการทำงานและมาพร้อมกับสิ่งนี้: ฟังก์ชั่นที่ไม่ระบุชื่อมักจะไม่สามารถรวบรวม JIT และจะไม่ถูกปรับ มีคนอธิบายให้ฉันฟังได้ไหมว่าเพราะอะไรในกรณีนี้

2
การดูแลรักษารัฐโดยไม่ได้รับมอบหมาย
ฉันกำลังเรียนรู้การเขียนโปรแกรมฟังก์ชั่นและฉันมีปัญหาในการทำความเข้าใจว่าบางสถานการณ์ถูกนำไปใช้โดยไม่ได้รับมอบหมาย ปัญหาง่าย ๆ ดังต่อไปนี้ค่อนข้างจะทำให้ฉันสับสน เขียนโปรแกรมที่รับเหตุการณ์เกี่ยวกับการเปลี่ยนแปลงในโครงสร้างข้อมูลที่กำหนดและส่งเหตุการณ์เมื่อโครงสร้างข้อมูลนี้ถึงสถานะที่แน่นอน ดังนั้นฉันจึงมีสำเนาของโครงสร้างข้อมูลที่ฉันเก็บไว้ datastructure_copy::DataStructure ฉันมีกระแสของเหตุการณ์ที่ถูกไล่ออกเมื่อมีการเปลี่ยนแปลง: datastructure_changes::Stream Change ฉันมีฟังก์ชั่นที่ใช้การเปลี่ยนแปลงกับโครงสร้างข้อมูลและส่งคืนสำเนาใหม่: apply_change::Change -> DataStructure -> DataStructure และฉันมีภาคที่ตรวจสอบว่าสถานะข้อมูลได้ถึงสถานะที่ต้องการ is_ready::DataStructure ->Boolean กล่าวอีกนัยหนึ่งฉันต้องการบางสิ่งเช่น 'ลด' ที่ทำงานบนสตรีม ฉันรู้ว่าวิธีหนึ่งในการดำเนินการนี้คือการคำนวณสถานะใหม่ทุกครั้งที่มีการเปลี่ยนแปลงมาถึงอย่างไรก็ตามสิ่งนี้ดูเหมือนจะไม่จริง ฉันเล่นกับ Monad ของรัฐ แต่ดูเหมือนว่าฉันจะแก้ปัญหาที่แตกต่าง ดังนั้นมีวิธีอื่นในการทำเช่นนั้น? โปรดทราบว่าคำถามของฉันเป็นแนวคิดอย่างหมดจดและฉันไม่คุ้นเคยอย่างลึกซึ้งกับ Haskell

4
อะไรคือชื่อของอาร์กิวเมนต์การทำงานในเท่า
ในการสั่งซื้อฟังก์ชั่นที่สูงขึ้นพับ / ลดชื่อของการโต้แย้งการทำงานคืออะไรถ้ามี? ฉันกำลังทำงานกับไลบรารีการประมวลผลแบบตารางเดี่ยวที่แถวถูกพับเพื่อทำการวิเคราะห์อย่างง่าย (เช่นการค้นหาคอลัมน์ขั้นต่ำสูงสุดและค่าเฉลี่ย) ฉันกำลังมองหาชื่อเสียงสำหรับการโต้แย้งของfoldฟังก์ชั่นและชื่อใด ๆ ที่เป็นที่ยอมรับในชุมชน ML (หรือ Haskell หรือ Common LISP ในฐานะผู้สมัครที่สองและสาม) น่าสนใจ ชื่อชอบfเป็นเรื่องธรรมดาในคำอธิบายของfoldฟังก์ชั่น แต่มันไม่ได้อธิบายและคำนามจะเหมาะกว่า

5
วิธีแก้ปัญหาที่ใช้งานได้จริงสำหรับปัญหานี้จะสะอาดเหมือนความจำเป็นหรือไม่?
ฉันมีแบบฝึกหัดใน Python ดังนี้: พหุนามได้รับเป็น tuple ของค่าสัมประสิทธิ์ดังกล่าวว่าอำนาจจะถูกกำหนดโดยดัชนีเช่น: (9,7,5) หมายถึง 9 + 7 * x + 5 * x ^ 2 เขียนฟังก์ชันเพื่อคำนวณค่าสำหรับ x ที่กำหนด ตั้งแต่ฉันเข้าสู่การเขียนโปรแกรมการทำงานเมื่อเร็ว ๆ นี้ฉันเขียน def evaluate1(poly, x): coeff = 0 power = 1 return reduce(lambda accu,pair : accu + pair[coeff] * x**pair[power], map(lambda x,y:(x,y), poly, range(len(poly))), 0) ซึ่งฉันคิดว่าอ่านไม่ได้ดังนั้นฉันจึงเขียน def …

2
เราจะใส่รหัส“ ถามโลก” เมื่อเราแยกการคำนวณจากผลข้างเคียงได้อย่างไร
ตามหลักการแบ่งแยกคำสั่งรวมถึงการคิดในข้อมูลและDDD ด้วยการนำเสนอClojureหนึ่งควรแยกผลข้างเคียง (แก้ไขโลก) จากการคำนวณและการตัดสินใจเพื่อให้ง่ายต่อการเข้าใจและทดสอบทั้งสองส่วน นี่เป็นคำถามที่ยังไม่ได้ตอบ: เราควรใส่ "ถามโลก" ที่ไหน ในอีกด้านหนึ่งการร้องขอข้อมูลจากระบบภายนอก (เช่นฐานข้อมูล, บริการนอกระบบ 'APIs และอื่น ๆ ) นั้นไม่ได้อ้างอิงอย่างโปร่งใสดังนั้นจึงไม่ควรใช้ร่วมกับการคำนวณและการตัดสินใจที่บริสุทธิ์ ในทางกลับกันมันเป็นปัญหาหรืออาจเป็นไปไม่ได้ที่จะหยอกล้อพวกเขานอกเหนือจากส่วนการคำนวณและส่งผ่านเป็นอาร์กิวเมนต์เนื่องจากเราอาจไม่ทราบล่วงหน้าว่าต้องการข้อมูลใด

7
วิธีแนะนำทีมของคุณให้รู้จักรูปแบบการทำงานของการเข้ารหัส
ฉันมีสถานการณ์ที่คนส่วนใหญ่ในกลุ่มของฉันมาจากพื้นหลังการเขียนโปรแกรมเชิงวัตถุโดยไม่มีความเข้าใจเกี่ยวกับการเขียนโปรแกรมการทำงาน พื้นฐานไม่เหมือนการปิด ข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่อาจเป็นวิธีที่ดีในการแนะนำพวกเขาเกี่ยวกับรูปแบบการเข้ารหัสการทำงาน? การเขียนโค้ดจำนวนมากที่เราทำได้นั้นสามารถย่อให้สั้นลงได้ถ้าเราทำตามหน้าที่การใช้งานสำหรับกรณีเฉพาะของเรา ฉันได้รับการนำเสนอสองสามรายการเกี่ยวกับกระบวนทัศน์การทำงานและการเข้ารหัสแล้ว น่าเสียดายที่เราไม่ได้ใช้ภาษาการเขียนโปรแกรมที่เหมาะสมเช่น Haskell (โดยทั่วไปคือรหัสดั้งเดิมคือ C, C ++, Java) ดังนั้นเราต้องทำทุกอย่างที่มีอยู่กับสิ่งเหล่านี้

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

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

5
จะเป็นไรไหมถ้าฉันตัดสินใจเขียน Ruby ทั้งหมดของฉันราวกับว่าเป็น Haskell
ระบุว่า Ruby มีความสามารถในการดำเนินการรายการที่ดีในตัว - ลดแผนที่เลือกรวบรวม ฯลฯ มันมี Procs บล็อกและ Lambdas และมีการสนับสนุนการทำซ้ำที่ดี ( eachครอบครัว) มันจะเป็นการตัดสินใจที่ไม่ดีถ้าฉันพยายาม เขียนข้อมูล Ruby ทั้งหมดของฉันด้วยวิธีการที่บริสุทธิ์ที่สุด โดยเฉพาะอย่างยิ่งสำหรับโค้ดที่มี I / O น้อยหรือไม่มีเลย ฉันได้เรียนรู้ Haskell (เรียกว่าภาษาแฮ็กเกอร์ 'ของจริง') และฉันรักมันเป็นวิธีการทำสิ่งต่าง ๆ - ฉันรัก Ruby แต่คิดว่ามันน่าสนุกกว่าเดิมเมื่อวิญญาณ Haskell ไหลเข้ามา Ruby ยืม / เรียนรู้อะไรมากมายตั้งแต่แรก) ยินดีต้อนรับคำแนะนำที่สร้างสรรค์ ...

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

6
ฉันควรเลือกภาษาโปรแกรมที่ใช้งานได้หรือไม่
เมื่อเร็ว ๆ นี้ฉันกังวลเกี่ยวกับวิธีเขียนรหัสของฉันมากขึ้น หลังจากอ่านหนังสือสองสามเล่มเกี่ยวกับรูปแบบการออกแบบ (และการนำไปปฏิบัติมากเกินไปของพวกเขาฉันแน่ใจ) ฉันได้เปลี่ยนความคิดของฉันอย่างมากไปทางแค็ปซูลสิ่งที่เปลี่ยนแปลง ฉันมักจะสังเกตเห็นว่าฉันเขียนอินเทอร์เฟซน้อยลงและโค้ดที่เน้นวิธีการมากขึ้นซึ่งฉันชอบที่จะสปรูซชีวิตในคลาสเก่าด้วยภาคแสดงการกระทำและงานมอบหมายอื่น ๆ ฉันมักจะคิดว่ามันมักจะเป็นการกระทำที่เปลี่ยนแปลงดังนั้นฉันจึงสรุปแค็ปซูลเหล่านั้น ฉันมักจะแยกย่อยอินเทอร์เฟซให้เป็นวิธีการเดียว แต่บ่อยครั้งที่ฉันต้องการใช้ผู้รับมอบสิทธิ์สำหรับงานแทนที่จะบังคับให้รหัสลูกค้าสร้างคลาสใหม่ ดังนั้นฉันเดาว่ามันจะโดนฉัน ฉันควรจะเขียนโปรแกรมฟังก์ชั่นแทน? แก้ไข: ฉันอาจมีความเข้าใจผิดเกี่ยวกับการตั้งโปรแกรมการทำงาน ปัจจุบันภาษาที่ฉันเลือกคือ C # และฉันมาจากพื้นหลัง C ++ ฉันทำงานเป็นนักพัฒนาเกม แต่ตอนนี้ฉันว่างงาน ฉันมีความหลงใหลในงานสถาปัตยกรรมอย่างมาก คุณธรรมของฉันคือรหัสที่สะอาดยืดหยุ่นใช้ซ้ำได้และบำรุงรักษาได้ ฉันไม่รู้ว่าฉันถูกวางยาด้วยวิธีการเหล่านี้หรือไม่ ฉันเป็นไข้ refactoring หรือฉันควรจะไปต่อ? ฉันเข้าใจว่านี่อาจเป็นคำถามเกี่ยวกับ"ใช้เครื่องมือที่เหมาะสมสำหรับงาน"แต่ฉันอยากได้ยินความคิดของคุณ ฉันควรเลือกภาษาที่ใช้งานได้หรือไม่ หนึ่งในปัจจัยความกลัวของฉันคือการทำให้ Visual Studio สะดวกสบาย

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