คำถามติดแท็ก java

Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุในระดับสูงที่พัฒนาโดย Sun Microsystems ปัจจุบัน Java เป็นเจ้าของโดย Oracle ซึ่งซื้อ Sun ในปี 2010

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

9
ศึกษาเกี่ยวกับการเพิ่มหรือลดความสามารถในการผลิตเอกสารรหัส
หลังจากค้นหามากฉันล้มเหลวในการตอบคำถามพื้นฐานที่เกี่ยวข้องกับการสันนิษฐานว่าเป็นที่รู้จักในโลกการพัฒนาซอฟต์แวร์: สิ่งที่เป็นที่รู้จัก: การบังคับใช้นโยบายที่เข้มงวดเกี่ยวกับเอกสารรหัสที่เพียงพอ (ไม่ว่าจะเป็นแท็ก Doxygen, Javadoc หรือเพียงแค่ความคิดเห็นมากมาย) จะเพิ่มส่วนหัวไปยังเวลาที่ใช้ในการพัฒนาโค้ด แต่: การมีเอกสารอย่างละเอียด (หรือแม้กระทั่ง API) จะนำมาซึ่งความสามารถในการเพิ่มผลผลิต (ข้อสันนิษฐานหนึ่งข้อ) ในนักพัฒนาใหม่และผู้ที่มีประสบการณ์ในช่วงที่พวกเขากำลังเพิ่มคุณสมบัติหรือแก้ไขข้อบกพร่องตามท้องถนน คำถาม: ต้องใช้เวลาในการพัฒนาเพิ่มเติมเพื่อรับประกันเอกสารดังกล่าวซึ่งชดเชยด้วยผลกำไรที่เพิ่มขึ้นจากการผลิตบนถนน (ในแง่ที่ประหยัดอย่างเคร่งครัด) หรือไม่? ฉันกำลังมองหากรณีศึกษาหรือคำตอบที่สามารถนำหลักฐานที่เป็นหลักฐานมาสนับสนุนข้อสรุปที่ได้รับ ขอบคุณล่วงหน้า!

4
ความเป็นอิสระของแพลตฟอร์มคืออะไร ข้ามแพลตฟอร์มและ 'ความเป็นอิสระของแพลตฟอร์ม' เหมือนกันหรือไม่
ความเป็นอิสระของแพลตฟอร์มหมายถึงอะไรจริงๆ? อะไรคือเกณฑ์ในการเรียกแพลตฟอร์มภาษาที่เป็นอิสระ? ข้ามแพลตฟอร์มและ 'ความเป็นอิสระของแพลตฟอร์ม' เหมือนกันหรือไม่ (นี่อาจเป็นคำถามสำหรับการศึกษาด้วยตนเอง แต่ฉันต้องการได้ยินจากผู้เชี่ยวชาญจาก Stack overflow มีคำจำกัดความและมุมมองมากมายเกี่ยวกับเรื่องนี้ใน interenet และบางคนก็สับสน)

4
กรอบการทำงานของ web UI ของ Java ที่จะใช้? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ประตู คลิก GWT Vaadin ดังที่ฉันเข้าใจแล้วกรอบเหล่านี้ทั้งหมดเปิดใช้งานส่วนประกอบของ gui ที่จะสร้างขึ้นโดยใช้ java (พร้อมประโยชน์ทั้งหมด) โดยไม่ต้องทำ html / javascript มากมาย นอกจากการพิจารณาปัจจัยทางเทคนิคแล้วฉันยังสนใจที่จะรับฟังความนิยมอย่างรวดเร็ว เป็นกรอบโดยเฉพาะอย่างยิ่งกำลังกลายเป็นผู้นำของกลุ่มนี้จะมีผลต่อการตัดสินใจ

3
มีเหตุผลที่ดีที่จะใช้ส่วนต่อประสาน Collection ของ Java หรือไม่
ฉันได้ยินข้อโต้แย้งว่าคุณควรใช้อินเทอร์เฟซทั่วไปที่มีอยู่เพื่อที่คุณจะไม่ได้ผูกติดอยู่กับการใช้อินเทอร์เฟซนั้น ตรรกะนี้ใช้กับอินเตอร์เฟสเช่นjava.util.Collectionหรือไม่? ฉันอยากเห็นสิ่งต่อไปนี้: List<Foo> getFoos() หรือ Set<Foo> getFoos() แทน Collection<Foo> getFoos() ในกรณีสุดท้ายฉันไม่รู้ว่าชุดข้อมูลแบบไหนที่ฉันจัดการในขณะที่ในสองกรณีแรกฉันสามารถตั้งสมมติฐานบางอย่างเกี่ยวกับการสั่งซื้อและเอกลักษณ์ ไม่java.util.Collectionมีนอกประโยชน์ของการเป็นผู้ปกครองตรรกะสำหรับทั้งสองชุดและรายการ? หากคุณพบรหัสที่ใช้การรวบรวมเมื่อทำการตรวจสอบรหัสคุณจะทราบได้อย่างไรว่าการใช้งานนั้นถูกต้องหรือไม่

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

10
Java หรือ C ++ สำหรับหลักสูตร CS ในมหาวิทยาลัย?
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันกำลังตกหลุมรักการลงทะเบียนเรียนที่โรงเรียนเพื่อรับปริญญา CS โรงเรียนที่ฉันกำลังมองหานั้นมีทั้ง Java- และ C ++ สำหรับหลักสูตรการพัฒนาซอฟต์แวร์เบื้องต้น (การเขียนโปรแกรมเชิงวัตถุรูปแบบการออกแบบสิ่งต่าง ๆ ) เป็นทางเลือกของนักเรียนที่ติดตามติดตาม แต่มีเวลาเพียงหนึ่งติดตามเท่านั้น รู้ว่าคุณรู้อะไรตอนนี้ถ้าคุณมีทางเลือกคุณจะวางรากฐานหลักสูตร CS ของคุณใน Java หรือ C ++ หรือไม่ ปัจจุบันการอภิปรายของฉันในปัจจุบันมีลักษณะเช่นนี้: เพื่อนที่ดี (ที่มีปริญญาเอกใน AI) กำลังโน้มน้าวให้ Java เป็นตัวเลือกที่ดีกว่าโดยไม่คำนึงถึงสิ่งที่ฉันทำถ้าเพียงเพื่อเพิ่มโอกาสในการทำงานมากขึ้นในภายหลังแม้ว่าเขาจะลำเอียงเพราะงานของเขาทั้งหมดอยู่ใน Java (เขา รักมัน) ฉันอาศัยอยู่ในเขต Boston, MA, USA และฉันเห็นงาน Java และ C ในปริมาณที่เท่ากัน ในทางกลับกันแม้ว่าฉันจะยังไม่ได้ตัดสินในสิ่งที่ฉันต้องการจะทำอย่างไรกับระดับเมื่อฉันทำสิ่งที่ฉันชอบคือการพัฒนาสำหรับ Mac ซึ่งตอนนี้ฉันกำลังทำอยู่แม้ว่าจะมีความจุ จำกัด ด้วยเหตุนี้ฉันจึงได้รับ C …
11 java  c++  education 

3
ใน Java 8 จะดีกว่าการใช้นิพจน์การอ้างอิงเมธอดหรือเมธอดที่ส่งคืนการใช้อินเตอร์เฟสการทำงานหรือไม่?
Java 8 เพิ่มแนวคิดของส่วนต่อประสานการทำงานรวมถึงวิธีการใหม่มากมายที่ออกแบบมาเพื่อใช้งานส่วนต่อประสานการทำงาน อินสแตนซ์ของอินเทอร์เฟซเหล่านี้สามารถสร้างได้อย่างกระชับโดยใช้นิพจน์การอ้างอิงเมธอด (เช่นSomeClass::someMethod) และนิพจน์แลมบ์ดา (เช่น(x, y) -> x + y) เพื่อนร่วมงานและฉันมีความคิดเห็นที่แตกต่างกันเมื่อควรใช้แบบฟอร์มเดียวหรือแบบอื่น (ซึ่ง "ดีที่สุด" ในกรณีนี้จะทำให้ "อ่านได้ง่ายที่สุด" และ "สอดคล้องกับมาตรฐานการปฏิบัติทั่วไป" มากที่สุด เทียบเท่า) โดยเฉพาะกรณีนี้เกี่ยวข้องกับกรณีที่ข้อมูลต่อไปนี้เป็นจริงทั้งหมด: ฟังก์ชั่นที่เป็นปัญหาไม่ได้ใช้งานนอกขอบเขตเดียว การตั้งชื่อให้ช่วยให้สามารถอ่านได้ (ตรงข้ามกับตรรกะที่เรียบง่ายพอที่จะดูว่าเกิดอะไรขึ้นอย่างรวดเร็ว) ไม่มีเหตุผลการเขียนโปรแกรมอื่นทำไมรูปแบบหนึ่งจะดีกว่าอีกรูปแบบหนึ่ง ความเห็นของฉันในปัจจุบันเกี่ยวกับเรื่องนี้คือการเพิ่มวิธีการส่วนตัวและการอ้างอิงโดยวิธีการอ้างอิงเป็นวิธีที่ดีกว่า รู้สึกว่านี่เป็นวิธีที่คุณสมบัติถูกออกแบบมาให้ใช้และดูเหมือนง่ายขึ้นในการสื่อสารสิ่งที่เกิดขึ้นผ่านชื่อวิธีการและลายเซ็น (เช่น "บูลีน isResultInFuture (ผลผลลัพธ์)" ชัดเจนว่ากำลังส่งคืนบูลีน) นอกจากนี้ยังทำให้วิธีการส่วนตัวนำมาใช้ซ้ำได้มากขึ้นหากการปรับปรุงในอนาคตให้กับชั้นเรียนต้องการใช้ประโยชน์จากการตรวจสอบเดียวกัน แต่ไม่ต้องการเครื่องมือห่อหุ้มส่วนต่อประสานการทำงาน การตั้งค่าของเพื่อนร่วมงานของฉันคือการมีวิธีการที่ส่งกลับอินสแตนซ์ของอินเทอร์เฟซ (เช่น "Predicate resultInFuture ()") สำหรับฉันแล้วมันรู้สึกว่ามันไม่ได้เป็นวิธีที่จะใช้คุณสมบัติรู้สึก clunkier เล็กน้อยและดูเหมือนว่ามันยากที่จะสื่อสารความตั้งใจผ่านการตั้งชื่อ เพื่อให้ตัวอย่างคอนกรีตนี้นี่คือรหัสเดียวกันเขียนในสไตล์ที่แตกต่าง: public class ResultProcessor { public void …

5
ขอบเขตระดับแพ็กเกจ Java มีประโยชน์หรือไม่
ฉันเข้าใจความคิดเกี่ยวกับขอบเขตของแพ็คเกจและบางครั้งฉันก็คิดว่าฉันต้องการมัน อย่างไรก็ตามทุกครั้งที่ฉันตั้งใจจะลองใช้มันฉันพบว่ามันไม่ตรงกับความต้องการที่ฉันคิดว่าจะให้บริการ ปัญหาหลักของฉันมักจะเป็นสิ่งที่ฉันต้องการ จำกัด ขอบเขตไม่เคยอยู่ในแพ็คเกจเดียวกัน พวกเขาอาจเชื่อมโยงแนวความคิดทั้งหมด แต่การแบ่งตรรกะของข้อมูลภายในแอปพลิเคชันมีพวกเขาเป็นแพคเกจลูกที่แยกต่างหากของแพคเกจขนาดใหญ่ เช่นฉันอาจมีแบบจำลอง Mission และฉันต้องการเครื่องมือ Mission อื่น ๆ เท่านั้นเช่น MissionServices ของฉันเพื่อใช้วิธีการบางอย่าง อย่างไรก็ตามฉันลงเอยด้วย Missions.models และ Missions.services เป็นแพ็คเกจของฉันดังนั้น MissionModel และ MissionService จึงไม่ใช่ขอบเขตของแพ็คเกจเดียวกัน ดูเหมือนว่าจะไม่มีสถานการณ์ที่แพคเกจบรรจุสิ่งที่ฉันต้องการให้มีสิทธิ์ในการยกระดับอย่างเหมาะสมโดยไม่ต้องมีหลายสิ่งที่ฉันไม่ต้องการได้รับสิทธิ์เหล่านั้น และฉันไม่ค่อยรู้สึกถึงประโยชน์ของการกำหนดขอบเขตของวิธีการที่จะปรับเปลี่ยนสถาปัตยกรรมโปรเจคของฉันให้วางทุกอย่างในแพ็คเกจเดียวกัน บ่อยครั้งที่มุมมองหรือการผกผันของการควบคุมบางอย่างกลับกลายเป็นวิธีที่ดีกว่าสำหรับปัญหาใด ๆ ที่ฉันพิจารณาโดยย่อว่าการกำหนดขอบเขตของแพ็กเกจ ฉันอยากรู้ว่านี่เป็นเรื่องจริงสำหรับนักพัฒนา Java ทุกคนหรือเป็นเพียงความบังเอิญของงานที่ฉันทำ ขอบเขตของแพ็คเกจมีการใช้งานมากในโลกแห่งความเป็นจริงหรือไม่? มีหลายกรณีที่มีการพิจารณาว่าเป็นรูปแบบที่ดีต่อการใช้งานหรือเป็นส่วนใหญ่ที่เห็นว่าเป็นพฤติกรรมดั้งเดิมที่ไม่ค่อยถูกใช้ประโยชน์ในการพัฒนาสมัยใหม่หรือไม่? ฉันไม่ได้ถามอะไรเกี่ยวกับสาเหตุที่ขอบเขตส่วนบุคคลของแพคเกจเป็นค่าเริ่มต้นฉันกำลังถามว่าควรใช้เมื่อใดโดยไม่คำนึงถึงค่าเริ่มต้น การอภิปรายส่วนใหญ่เกี่ยวกับสาเหตุที่เป็นค่าเริ่มต้นไม่ได้เข้าจริงๆเมื่อขอบเขตของแพคเกจมีประโยชน์จริง ๆ แทนที่จะเถียงเพียงเพราะเหตุที่ขอบเขตที่ใช้กันทั่วไปอีกสองอันไม่ควรเป็นค่าเริ่มต้นดังนั้นแพ็คเกจชนะโดยกระบวนการกำจัด นอกจากนี้คำถามของฉันเป็นเรื่องเกี่ยวกับปัจจุบันรัฐในการพัฒนา โดยเฉพาะอย่างยิ่งเราได้พัฒนาจนถึงจุดที่เครื่องมือและกระบวนทัศน์อื่นทำให้ขอบเขตของแพคเกจมีประโยชน์น้อยลงจากนั้นก็กลับมาเมื่อการตัดสินใจเพื่อให้เป็นค่าเริ่มต้น
11 java  scope 

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

4
โฟกัสหลักของ Java คืออะไร? เหตุใดจึงใช้เวลานานในการรับคุณลักษณะใหม่
ฉันได้รับการสำรวจคุณสมบัติใหม่ใน JDK8 เช่นการแสดงออกแลมบ์ดาวิธีการขยายและสตรีม API ใหม่ เห็นได้ชัดว่าไม่มีคุณสมบัติเหล่านี้ใหม่ในโลกการเขียนโปรแกรมและทำให้สงสัยว่าทำไมสิ่งเหล่านี้ได้รับใน Java จนถึงปัจจุบัน เรามีการแสดงออกแลมบ์ดาใน Lisp (1958), SML (1973), Haskell (1990), Python (1991), JavaScript (1994), Ruby (1995), Ruby (1995), Scala (2003), C # (2007) และ 55 ปีหลังจาก Lisp และ แทบทุกคนใน Java (2013) และฉันได้อ่านเกี่ยวกับสตรีมในSIC (1996) ฉันสงสัยว่าทำไมตอนนี้ หลักฐานแสดงให้เห็นว่าการแข่งขันกับภาษาอื่นไม่ใช่แรงจูงใจ ดูเหมือนว่าคุณสมบัติใหม่ ๆ ที่ยอดเยี่ยมใน Java รุ่นนี้เป็นเพียงผลพลอยได้จากการใช้งานแบบคู่ขนาน เรามี lambdas เพราะทำให้การเขียนอัลกอริทึมแบบขนานง่ายขึ้นและเรามีวิธีการขยายเนื่องจากเราต้องการให้พวกเขาให้การสนับสนุนการเปลี่ยนแปลงที่แสดงออกแลมบ์ดาที่ต้องการ ฯลฯ ฯลฯ …

3
เป็นวิธีปฏิบัติที่ดีในการใช้คำเตือนในรหัสของคุณหรือไม่?
ฉันใช้@SuppressWarnings("unchecked")และ@SuppressWarnings("null")ส่วนใหญ่วิธีการข้างต้นเพื่อให้รหัสรวบรวมโดยไม่มีคำเตือนใด ๆ แต่ฉันมีข้อสงสัยของฉัน พบคำถาม Stackoverflow นี้ Jon Skeet เขียนคำตอบที่ฉันพบว่าน่าสนใจ ตามที่เขาพูด บางครั้ง generics Java ก็ไม่ยอมให้คุณทำสิ่งที่คุณต้องการและคุณต้องบอกคอมไพเลอร์อย่างมีประสิทธิภาพว่าสิ่งที่คุณทำจริงๆจะถูกกฎหมายในเวลาดำเนินการ แต่ถ้ามีโอกาสที่ข้อยกเว้นจะถูกโยนทิ้งไปล่ะ? การระงับคำเตือนเป็นความคิดที่ไม่ดีใช่ไหม ฉันไม่ควรทราบเกี่ยวกับสถานที่ซึ่งปัญหาอาจปรากฏหรือไม่ นอกจากนี้จะเกิดอะไรขึ้นถ้ามีคนอื่นแก้ไขโค้ดของฉันในภายหลังและเพิ่มฟังก์ชันการทำงานที่น่าสงสัยโดยไม่ลบ SuppressWarnings จะสามารถหลีกเลี่ยงและ / หรือมีทางเลือกอื่นในการนี้ได้อย่างไร? ฉันควรจะใช้@SuppressWarnings("unchecked")และ@SuppressWarnings("null")? อัปเดต # 1 เท่าที่ประเภทที่ไม่ได้เลือกได้ปลดเปลื้องไปตามคำตอบนี้(ชี้ให้เห็นโดย @gnat ในความคิดเห็นด้านล่าง) การปราบปรามคำเตือนเหล่านี้เป็นสิ่งที่จำเป็น ห้องสมุด Java ที่ขาดไม่ได้หลายแห่งไม่เคยมีการอัพเดทเพื่อกำจัดความต้องการ typecasts ที่ไม่ปลอดภัย การระงับคำเตือนเหล่านั้นเป็นสิ่งที่จำเป็นเพื่อให้คำเตือนที่สำคัญอื่น ๆ จะได้รับการสังเกตและแก้ไข ในกรณีที่มีการระงับคำเตือนอื่น ๆ ยังคงอยู่ในพื้นที่สีเทาเล็กน้อย อัปเดต # 2 ตามเอกสาร Oracle (กล่าวถึงบางคำตอบด้านล่าง): โปรแกรมเมอร์ควรใช้คำอธิบายประกอบนี้กับองค์ประกอบที่ซ้อนกันมากที่สุดซึ่งมีประสิทธิภาพ หากคุณต้องการระงับคำเตือนในวิธีใดวิธีหนึ่งคุณควรใส่คำอธิบายประกอบวิธีนั้นแทนการเรียน

2
มันจะดีกว่าที่จะใช้สตริงหรือ int เพื่ออ้างอิง enums นอกส่วน java ของระบบ?
เรากำลังคุยกันเรื่องงานของฉันเกี่ยวกับการใช้ enums ใน Java ผู้ร่วมงานกำลังโต้เถียงว่าเมื่อใช้ enums บนฝั่งเซิร์ฟเวอร์เมื่อใดก็ตามที่ต้องการเราควรใช้สตริงเพื่ออ้างอิง (เช่นเมื่อส่งข้อมูลจาก JS ไปยังเซิร์ฟเวอร์หรือเมื่อจัดเก็บในฐานข้อมูล) ยืนยันว่านี่ชัดเจนกว่า สำหรับนักพัฒนาและยังเถียงว่ามันจะล้มเหลวอย่างรวดเร็วในกรณีที่พิมพ์ผิด ฉันมักจะใช้จำนวนเต็มเพื่อระบุ enums ในกรณีเหล่านี้เพราะมันจะเป็นตัวระบุที่ไม่เปลี่ยนรูปและจะไม่มีปัญหาเกี่ยวกับตัวพิมพ์และตัวพิมพ์เล็ก (ถึงแม้ว่า dev จะทำผิดพลาดในการใช้ค่า 2 แทน 1 เมื่อวิเคราะห์อย่างถี่ถ้วนเกี่ยวกับข้อโต้แย้งเหล่านี้ฉันจะบอกว่าการใช้สตริงนั้นดีกว่า แต่ฉันรู้สึกแปลก ๆ กับมัน (ราวกับว่ามันไม่ใช่วิธีการที่ดี) มีวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับการสนทนานี้ที่สามารถแนะนำฉันได้ไหม แก้ไข: เมื่อใดก็ตามที่เป็นไปได้เราจะใช้ enum เองดังนั้นโค้ด Java ของเราจึงใช้ Enum โดย "อ้างอิงถึง enum" ฉันหมายถึง: การอ้างอิงค่าใน enum เมื่อแลกเปลี่ยนข้อมูลจาก JavaScript ไปยังเซิร์ฟเวอร์หรือจัดเก็บข้อมูลในฐานข้อมูล

4
วิธีใช้ Dependency Injection ร่วมกับรูปแบบ Factory
พิจารณาโมดูลที่รับผิดชอบการแยกวิเคราะห์ไฟล์ประเภทที่กำหนด ฉันกำลังคิดของการใช้รูปแบบกลยุทธ์เพื่อรับมือกับปัญหานี้ที่ผมได้อธิบายไปแล้วกว่าที่นี่ โปรดอ้างอิงโพสต์ที่เชื่อมโยงก่อนที่จะดำเนินการกับคำถามนี้ พิจารณาคลาส B ที่ต้องการเนื้อหาของไฟล์ product.xml คลาสนี้จะต้องสร้างอินสแตนซ์ที่เป็นรูปธรรมที่เหมาะสมของตัวแยกวิเคราะห์ Parser เพื่อแยกไฟล์ XML ฉันสามารถมอบอินสแตนซ์ของผู้ใช้งานคอนกรีตที่เหมาะสมให้กับโรงงานเช่นคลาส B "มี" โรงงาน " อย่างไรก็ตามคลาส B จะ "พึ่งพา" ในโรงงานเพื่อสร้างอินสแตนซ์ให้กับผู้ใช้งานที่เป็นรูปธรรม ซึ่งหมายความว่าตัวสร้างหรือวิธีการตั้งค่าในคลาส B จะต้องผ่านโรงงาน ดังนั้นโรงงานและคลาส B ที่ต้องแยกวิเคราะห์ไฟล์จะถูกผนวกเข้าด้วยกันอย่างแน่นหนา ฉันเข้าใจว่าฉันอาจผิดอย่างสมบูรณ์เกี่ยวกับสิ่งที่ฉันได้อธิบายไปแล้ว ฉันต้องการทราบว่าฉันสามารถใช้การฉีดพึ่งพาในสถานการณ์ที่การพึ่งพาที่จะฉีดเป็นโรงงานหรือไม่และเป็นวิธีที่เหมาะสมในการดำเนินการนี้เพื่อให้ฉันสามารถใช้ประโยชน์จากพื้นที่เช่นการเยาะเย้ยโรงงานในการทดสอบหน่วยของฉัน

3
เป็นวิธีปฏิบัติที่ดีที่จะรวมชุดของคุณสมบัติที่เกี่ยวข้องไว้ในโครงสร้าง / คลาสของตัวเองหรือไม่?
การเขียนวัตถุผู้ใช้ในสวิฟท์ แต่คำถามของฉันเกี่ยวข้องกับภาษาที่พิมพ์ออกมาอย่างรุนแรง ผู้ใช้สามารถมีลิงก์จำนวนมาก (FacebookProfile, InstagramProfile, ฯลฯ ) คำถามสองสามข้อเกี่ยวกับเรื่องนี้ เป็นการดีที่จะรวมลิงก์ในวัตถุของตนเองหรือไม่? struct ผู้ใช้ { var firstName: string var lastName: string อีเมล var: สตริง ลิงก์ var: ลิงค์ } ลิงค์โครงสร้าง { var facebook: string var instagram: string var twitter: string } หรือพวกเขาควรจะหลวม? ฉันรู้ว่าทั้งสองวิธีใช้เทคนิคดี แต่สงสัยว่ามีวิธีแนะนำโดยทั่วไปหรือไม่โดยเฉพาะอย่างยิ่งสำหรับการอ่าน struct User { var firstName: string var lastName: string var …

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