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

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

2
เหตุใด C # จึงมีคุณสมบัติมากกว่า Java [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา โปรดทราบว่านี่ไม่ได้หมายถึงอาร์กิวเมนต์ของ Java vs. C # ฉันเป็นโปรแกรมเมอร์ Java ที่ไม่มีประสบการณ์แบบ C # ขอเพียงแค่ความอยากรู้อยากเห็น ฉันได้อ่านบน C # และดูเหมือนว่ามันมีคุณสมบัติมากกว่า Java ตัวอย่างจำนวนมาก: การอนุมานประเภท dynamic คำสำคัญ. ผู้ได้รับมอบหมาย พารามิเตอร์ทางเลือก แลมบ์ดาและ LINQ (ฉันไม่รู้จริงๆว่ามันคืออะไร) คุณสมบัติ. อย่างไรก็ตาม Java ไม่ได้มีคุณสมบัติอะไรที่ C # ไม่มี คำถามของฉันคือ: ทำไม C # ถึงมีฟีเจอร์เนทีฟมากกว่า Java? และทำไม Java ไม่ได้เพิ่มสิ่งเหล่านี้ตลอดทั้งปีเช่นคุณสมบัติหรือการอนุมานประเภท? นักออกแบบภาษาจาวาใช้แนวทางที่เรียบง่ายกว่านี้หรือไม่? อะไรคือสาเหตุของสิ่งนี้?
14 java  c#  languages 

4
การจัดการความต้องการทำงานในระยะยาวกับโครงการ Agile อย่างไร
การจัดการความต้องการในระยะสั้นสำหรับโครงการ Agile ดูเหมือนจะเป็นปัญหาที่แก้ไขแล้วสำหรับฉัน จากข้อกำหนดใหม่ในมุมการต่อสู้หรือการเปลี่ยนแปลงข้อกำหนดที่มีอยู่จะถูกส่งผ่านเรื่องราวของผู้ใช้ และเรื่องราวของผู้ใช้ที่จัดกลุ่มภายใต้มหากาพย์หรือฟีเจอร์ช่วยอำนวยความสะดวกในการส่งมอบความต้องการที่ซับซ้อนมากขึ้น แน่นอนเรื่องราวของผู้ใช้ไม่ใช่เอกสารข้อกำหนดทางเทคนิค มันคือการจัดกลุ่มงานที่จัดการได้ซึ่งแมปกับสิ่งที่มักเรียกว่าVertical Sliceของฟังก์ชันการทำงาน และขอบเขตของเรื่องราวเหล่านี้สามารถกำหนดได้อย่างชัดเจนผ่านการใช้เกณฑ์การยอมรับ (AC) ดังนั้นแม้ว่าเรื่องราวของผู้ใช้จะไม่เป็นข้อกำหนดที่เป็นทางการ แต่การเรียกดูผ่านเรื่องราวเหล่านั้นสามารถให้แนวคิดที่ชัดเจนเกี่ยวกับข้อกำหนดพื้นฐานของพวกเขาได้ ในระยะสั้น. ฉันพูดในระยะสั้นเพราะในขณะที่โครงการดำเนินไปเรื่อย ๆ จำนวนเรื่องราวของผู้ใช้เพิ่มขึ้น ดังนั้นการเรียกดูรายการเรื่องราวที่เพิ่มขึ้นเรื่อย ๆ เพื่อค้นหาสิ่งที่ต้องการจะน้อยลงและมีประสิทธิภาพน้อยลงเมื่อเวลาผ่านไป ปัญหานี้เกิดขึ้นเมื่อคุณพิจารณาเรื่องราวของผู้ใช้ที่ขยายขึ้นแทนที่หรือแม้แต่คัดค้านเรื่องราวก่อนหน้า ตอนนี้ลองนึกภาพช่องว่าง 2 ปีระหว่างการทำซ้ำการพัฒนาในโครงการ (มีความเสถียรในการผลิต) ทีมเดิมหมดไปแล้วและเป็นความรู้ทั้งหมด หากทีมดั้งเดิมรู้ว่าสิ่งนี้จะเกิดขึ้น (เช่นเป็นลักษณะของธุรกิจ) แล้วพวกเขาจะใช้มาตรการอะไรเพื่อช่วยทีมต่อไป แน่นอนว่างานในมือจะให้ข้อมูลบางอย่าง แต่แทบจะไม่ได้อยู่ในรูปแบบที่เรียกดูได้ง่าย ดังนั้นสิ่งที่สามารถทำได้เพื่อช่วยให้ทีมต่อมาเข้าใจถึงสถานะของโครงการรวมถึงสาเหตุและวิธีการไปถึงที่นั่น? จากประสบการณ์ของฉันสิ่งต่อไปนี้ใช้ไม่ได้: กรูมมิ่ง Backlogเพื่อลบหรืออัปเดตเรื่องราวผู้ใช้ก่อนหน้าเพื่อให้สามารถอ่าน Backlog เป็นเอกสารข้อกำหนดได้ Documentation Sprintsที่สมาชิกในทีมได้รับมอบหมายด้วยการบันทึกสถานะปัจจุบันของระบบ เอกสารผ่านการทดสอบพฤติกรรม วิธีนี้เป็นวิธีเดียวที่ฉันได้เห็นมาใกล้กับการทำงาน น่าเสียดายที่การทดสอบพฤติกรรมการใช้รหัสเป็นเหยื่อของปัญหาการตั้งชื่อ แม้ว่าการทดสอบอาจจัดทำเอกสารระบบอย่างถูกต้อง แต่ให้ทีมนักพัฒนาที่มีความผันผวนในการเขียนการทดสอบตามคำศัพท์โดเมนถ้อยคำและรูปแบบที่เหมือนกันนั้นแทบเป็นไปไม่ได้ ดังนั้นเพื่อย้ำ: หนึ่งจะจัดการความต้องการโครงการเปรียวในระยะยาวได้อย่างไร

3
สิทธิ์การใช้งานแบบใดที่ GPL อนุญาตให้ใช้สิทธิจะได้รับอนุญาตภายใต้
ใบอนุญาต GPL จริง (นั่นคือข้อความที่มีคำว่า"ใบอนุญาตสำหรับซอฟต์แวร์ส่วนใหญ่และงานเชิงปฏิบัติอื่น ๆ ได้รับการออกแบบ ... " ) เป็นเอกสาร ฉันจะสมมติว่ามันอยู่ภายใต้ลิขสิทธิ์บางประเภท? ใบอนุญาตใดที่อนุญาตให้ใช้สิทธิภายใต้ใบอนุญาตนี้ นั่นคือถ้าฉันจะรวมเนื้อหาของสิทธิ์การใช้งาน GPL ในโครงการของฉันเอง (และอาจสร้างงานลอกเลียนแบบ) ฉันมีข้อ จำกัด อะไรบ้าง
14 gpl  copyright 

3
วิธีการยึดมั่นในหลักการเปิดในทางปฏิบัติ
ฉันเข้าใจเจตนาของหลักการแบบเปิด มันหมายถึงการลดความเสี่ยงของการทำลายบางสิ่งบางอย่างที่ใช้งานได้แล้วในขณะที่แก้ไขโดยบอกให้คุณพยายามขยายโดยไม่ต้องแก้ไข อย่างไรก็ตามฉันมีปัญหาในการทำความเข้าใจวิธีการใช้หลักการนี้ในทางปฏิบัติ เพื่อความเข้าใจของฉันมีสองวิธีในการใช้มัน ก่อนและหลังการเปลี่ยนแปลงที่เป็นไปได้: ก่อน: โปรแกรมไปยัง abstractions และ 'ทำนายอนาคต' มากที่สุดเท่าที่จะทำได้ ตัวอย่างเช่นวิธีการdrive(Car car)จะต้องเปลี่ยนหาก Motorcycleมีการเพิ่ม s ในระบบในอนาคตดังนั้นจึงอาจละเมิด OCP แต่วิธีdrive(MotorVehicle vehicle)นี้มีแนวโน้มที่จะไม่เปลี่ยนแปลงในอนาคตดังนั้นจึงเป็นไปตาม OCP อย่างไรก็ตามมันค่อนข้างยากที่จะทำนายอนาคตและรู้ล่วงหน้าว่าการเปลี่ยนแปลงใดที่จะเกิดขึ้นกับระบบ หลังจาก: เมื่อต้องการการเปลี่ยนแปลงให้ขยายคลาสแทนการแก้ไขเป็นรหัสปัจจุบัน แบบฝึก # 1 ไม่ยากที่จะเข้าใจ อย่างไรก็ตามมันเป็นข้อปฏิบัติที่ 2 ที่ฉันมีปัญหาในการทำความเข้าใจวิธีการสมัคร ยกตัวอย่างเช่น (ฉันเอามันจากวิดีโอบน YouTube): ขอบอกว่าเรามีวิธีการในระดับที่ยอมรับได้วัตถุ:CreditCard makePayment(CraditCard card)หนึ่งวันVoucherจะถูกเพิ่มเข้าไปในระบบ วิธีนี้ไม่รองรับพวกมันดังนั้นจึงต้องมีการแก้ไข เมื่อนำวิธีการนี้ไปใช้ในตอนแรกเราไม่สามารถคาดการณ์อนาคตและโปรแกรมในแง่นามธรรมได้มากขึ้น (เช่นmakePayment(Payment pay)ดังนั้นตอนนี้เราต้องเปลี่ยนรหัสที่มีอยู่ แบบฝึกหัดที่ 2 กล่าวว่าเราควรเพิ่มฟังก์ชันการทำงานโดยขยายแทนการปรับเปลี่ยน นั่นหมายความว่าอย่างไร? ฉันควรคลาสย่อยคลาสที่มีอยู่แทนที่เพียงแค่เปลี่ยนเป็นรหัสเดิมหรือไม่ ฉันควรทำเสื้อคลุมบางอย่างเพื่อหลีกเลี่ยงการเขียนรหัสใหม่หรือไม่? หรือหลักการไม่ได้อ้างถึง 'วิธีการแก้ไข / เพิ่มฟังก์ชันการทำงานที่ถูกต้อง' …

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

1
มันเป็นเรื่องปกติไหมที่จะใช้ตัวสร้างปริยาย
ถามเฉพาะเกี่ยวกับตัวสร้างเริ่มต้น ระบุว่าตัวสร้างเริ่มต้นข้อมูลทั้งหมดสำหรับวัตถุถ้าฉันสร้างคลาสที่ไม่สามารถใช้โดยไม่ต้องเริ่มต้นที่เหมาะสมมันไม่ใช่กรณีที่นวกรรมิกเริ่มต้นไม่มีประโยชน์หรือไม่ พิจารณา: // A class for handling lines in a CSV file class CSV_Entry { private: unsigned num_entries; std::string string_version; std::vector<std::string> vector_version; ...etc public: CSV_Entry(); CSV_Entry(const std::string& src_line); // returns a vector copy of the original entry std::vector<std::string> get_vector_snapshot(); } int main( void ) { ...etc CSV_Entry example = …

6
ทางเลือกในการลองจับซ้อนสำหรับทางเลือก
ฉันมีสถานการณ์ที่ฉันพยายามดึงวัตถุ หากการค้นหาล้มเหลวฉันมีข้อผิดพลาดหลายประการซึ่งแต่ละข้ออาจล้มเหลว ดังนั้นรหัสดูเหมือนว่า: try { return repository.getElement(x); } catch (NotFoundException e) { try { return repository.getSimilarElement(x); } catch (NotFoundException e1) { try { return repository.getParentElement(x); } catch (NotFoundException e2) { //can't recover throw new IllegalArgumentException(e); } } } มันดูน่าเกลียดมาก ๆ ฉันเกลียดที่จะคืนค่าว่าง แต่ในสถานการณ์นี้ดีกว่าไหม Element e = return repository.getElement(x); if (e == …

7
มันเป็นกลิ่นรหัสหรือไม่ถ้าคุณมักจะสร้างวัตถุเพียงเพื่อเรียกวิธีการในมัน
ฉันได้รับรหัสฐานซึ่งมีรหัสจำนวนมากที่ไปในลักษณะนี้: SomeDataAdapter sda = new SomeDataAdapter(); sda.UpdateData(DataTable updateData); จากนั้น sda จะไม่ถูกใช้อีกครั้ง เป็นกลิ่นรหัสที่บ่งชี้ว่าวิธีการเหล่านั้นควรเป็นวิธีการเรียนแบบคงที่แทน?

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

4
แพทช์เป็นสัญญาณที่ไม่ดีสำหรับลูกค้าหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ที่สำนักงานเราเพิ่งออกจากช่วงเวลานานที่เราปล่อยแพทช์บ่อยเกินไป ใกล้ถึงจุดสิ้นสุดของช่วงเวลานั้นพวกเรากำลังทำแพทช์โดยเฉลี่ยเกือบสามครั้งต่อสัปดาห์ นอกเหนือจากนี้สิ่งนี้เป็นสิ่งที่สร้างความเสื่อมโทรมให้กับนักพัฒนาฉันสงสัยว่าลูกค้าจะคิดยังไงกับเรื่องนี้ ฉันถามคำถามตัวเองและสรุปว่าฉันไม่เคยรู้จักซอฟต์แวร์ที่ได้รับการปรับปรุงบ่อยครั้ง อย่างไรก็ตามสำหรับกรณีที่มาใกล้ที่สุดฉันไม่สนใจจริง ๆ เพราะแพทช์จะถูกนำไปใช้อย่างรวดเร็ว ลูกค้าที่ได้รับแพทช์เหล่านี้ต่างจากกันมาก บางคนกำลังรอแพทช์ที่คนอื่นไม่ได้ใส่ใจจริงๆ แต่พวกเขาก็มีแพทช์เดียวกัน เวลาในการอัปเดตซอฟต์แวร์ลูกค้าน้อยกว่า 30 วินาทีดังนั้นฉันจึงไม่คาดว่าจะมีปัญหาเกี่ยวกับเวลา พวกเขาจะต้องออกจากระบบแม้ว่า ดังนั้นคำถามของฉันในรายละเอียดเพิ่มเติม: การได้รับการอัปเดตบ่อยครั้งให้ข้อความ 'ลบ' แก่ผู้รับหรือไม่ แน่นอนฉันสามารถถามลูกค้าได้ แต่ฉันไม่ได้อยู่ในตำแหน่งนั้นหรือฉันไม่ต้องการ 'ปลุกสุนัขนอน' PS: หากมีสิ่งใดที่ฉันสามารถทำได้เพื่อปรับปรุงคำถามของฉันโปรดแสดงความคิดเห็น

4
เป็นไปได้หรือไม่ที่จะรวมแอพพลิเคชั่นเข้ากับกรอบอย่างหลวม ๆ ?
สมมติว่าฉันกำลังพัฒนาเว็บแอปพลิเคชัน ตัวเลือกแรกของฉันคือใช้ PHP กับ Fat-Free Framework (F3) และรูปแบบ MVC ปีหน้าฉันอาจตัดสินใจว่าอยากเปลี่ยนเป็น Zend Framework หรืออาจเป็น ASP.NET MVC ก็ได้ มันสมเหตุสมผลหรือไม่ที่จะลองและออกแบบแอปพลิเคชันของฉันในลักษณะที่มันเชื่อมโยงกับกรอบอย่างหลวม ๆ หรือเป็นกรอบที่สำคัญเกินไปที่จะทำให้สิ่งนี้เป็นจริงหรือไม่? เหตุผลเดียวที่ฉันถามคือเพราะมันเกิดขึ้นในการสนทนากับเพียร์เมื่อเร็ว ๆ นี้ที่วิพากษ์วิจารณ์พายของฉันในความคิดที่ท้องฟ้าของการมีเพศสัมพันธ์อย่างหลวม ๆ ใบสมัครของฉันเพื่อ F3

5
ฉันควรเขียน API อินเตอร์เฟสก่อนการใช้งานหรือไม่
ฉันได้ทำการค้นคว้าเพิ่มเติมเกี่ยวกับการเขียนโปรแกรม "ที่เป็นระเบียบ" เมื่อเร็ว ๆ นี้และฉันได้เรียนรู้ว่าฉันควรจะเขียนโปรแกรมไปยังอินเทอร์เฟซไม่ใช่การใช้งาน โดยที่ในใจมันจะดีกว่าหรือไม่ที่จะ "ร่าง" โครงการในส่วนต่อประสานก่อนที่จะเขียนการนำไปปฏิบัติในที่ที่เป็นไปได้? และถ้าเป็นกรณีนี้ในกรณีของการใช้ไลบรารี่ของบุคคลที่สาม (เช่น Lidgren) ฉันควรจะห่อมันไว้ในส่วนต่อประสานและแก้ไขมันผ่านคอนเทนเนอร์ IOC หรือไม่

4
เกิดข้อผิดพลาดในการยับยั้งการปฏิบัติที่ไม่ดีหรือไม่?
เกี่ยวกับคำถามดังนั้นผมถามนี่เกี่ยวกับรหัสบางอย่างผมก็ไม่แน่ใจเกี่ยวกับใครบางคนตอบว่า "BTW รหัสที่น่ากลัวนั่น. จะใช้ข้อผิดพลาดปราบปรามสัญลักษณ์ (@) เป็นจำนวนมาก" มีเหตุผลหรือไม่ว่าทำไมนี่ถึงเป็นการปฏิบัติที่ไม่ดี? ด้วยสิ่งที่ชอบ: $db=@new mysqli($db_info) or die('Database error'); มันช่วยให้ฉันแสดงข้อความข้อผิดพลาดที่กำหนดเอง โดยไม่มีการระงับข้อผิดพลาดจากนั้นจะยังคงแสดงข้อความ PHP ทั่วไปของ: คำเตือน : mysqli :: mysqli (): php_network_getaddresses: getaddrinfo ล้มเหลว: ไม่รู้จักโฮสต์ดังกล่าว ในบาง \ file \ pathบนบรรทัด 6 เช่นเดียวกับ 'ข้อผิดพลาดฐานข้อมูล' ข้อผิดพลาดในการระงับไม่ดีเสมอและถ้าเป็นเช่นนั้นสิ่งที่เฉพาะเจาะจงเกี่ยวกับข้างต้นจะไม่ดี? อัปเดต: รหัสจริงที่ฉันใช้คือ: or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? …

3
เมื่อใดจึงเหมาะสมที่จะใช้สีในแอปพลิเคชันบรรทัดคำสั่ง
ขณะนี้ฉันมีการประยุกต์ใช้บรรทัดคำสั่งใน Cbtcwatchเรียกว่า แต่ก็มี-Cตัวเลือกที่จะสามารถได้รับเป็นอาร์กิวเมนต์ที่เปรียบเทียบราคาปัจจุบันของ Bitcoin -Sมีราคาที่ถูกเก็บไว้ก่อนกับหนึ่ง ตัวอย่างเอาต์พุตที่มีตัวเลือกนี้คือ: $ btcwatch -vC # -v = verbose buy: UP $ 32.000000 USD (100.000000 -> 132.000000) sell: UP $ 16.000000 USD (100.000000 -> 116.000000) ขึ้นเขียงว่าจะใช้สีสำหรับUPหรือDOWNสตริง (สีเขียวและสีแดงตามลำดับ) แอปพลิเคชันบรรทัดคำสั่งส่วนใหญ่ที่ฉันรู้จัก (นอกเหนือจากคอมไพล์) อยู่ห่างจากสีในเอาต์พุตของพวกเขา ในความปรารถนาของฉันที่btcwatchจะมองและค่อนข้าง "มาตรฐาน" (การใช้getopt, Makefiles ฯลฯ ) ฉันไม่แน่ใจว่าสีจะออกนอกสถานที่ในสถานการณ์นี้หรือไม่

6
ทำไมหลายภาษาไม่สนับสนุนพารามิเตอร์ที่มีชื่อ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันแค่คิดว่าจะอ่านรหัสได้ง่ายขึ้นแค่ไหนเมื่อเรียกฟังก์ชั่นคุณสามารถเขียน: doFunction(param1=something, param2=somethingElse); ฉันไม่สามารถนึกถึงข้อเสียใด ๆ และมันจะทำให้อ่านง่ายขึ้น ฉันรู้ว่าคุณสามารถส่งผ่านอาร์เรย์เป็นอาร์กิวเมนต์เท่านั้นและมีคีย์อาร์เรย์เป็นชื่อพารามิเตอร์อย่างไรก็ตามที่จะยังคงไม่สามารถอ่านได้ มีข้อเสียที่ฉันหายไปนี้หรือไม่? ถ้าไม่ทำไมหลายภาษาไม่อนุญาตสิ่งนี้

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