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

คำถามเกี่ยวกับการแก้ปัญหาและการวางแผนแก้ปัญหาผ่านการออกแบบซอฟต์แวร์

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

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

2
วิธีการจัดระเบียบรหัสซ้ำ ๆ
ทีมของฉันสร้างเว็บฟอร์มได้หลายครั้ง แบบฟอร์มเหล่านี้ส่วนใหญ่เพียงส่งอีเมลและมีเพียงไม่กี่อย่างที่เขียนฐานข้อมูล ตอนนี้แต่ละรูปแบบอาศัยอยู่ในโซลูชันแยกต่างหากใน Visual Studio Team Foundation Server นั่นหมายความว่าเรามีโครงการที่แตกต่างกันเกือบ 100 โครงการซึ่งทำให้ยากต่อการรักษาความมั่นคง แต่ละรูปแบบมีลักษณะเฉพาะที่แตกต่างกันไป แต่ทุกคนก็ทำในสิ่งเดียวกัน ฉันกำลังมองหาที่จะรวมตัวเหล่านี้อย่างใดและฉันสามารถใช้คำแนะนำบางอย่าง ฉันควรพยายามสร้างไฟล์โซลูชันหนึ่งไฟล์โดยใช้โปรเจคฟอร์มทั้งหมดของเราหรือไม่ ไม่มีรหัสการประปาจำนวนมาก แต่ฉันสามารถสร้างผู้ช่วยสองสามชั้นเพื่อช่วยในการจัดรูปแบบอีเมลและอื่น ๆ มันจะมีประโยชน์มากในการแบ่งปัน CSS, JavaScript, การควบคุมและรูปภาพในโครงการต่างๆ เนื่องจากเราเป็นร้านค้าของ Microsoft จะมีประโยชน์ใด ๆ ที่จับต้องได้ในการไปกับ MVC ผ่าน Webforms สำหรับสถานการณ์เฉพาะนี้หรือไม่ ฉันขายให้กับแนวคิดของ MVC โดยรวม แต่มันจะช่วยให้ฉันรวบรวมแบบฟอร์มการเก็บข้อมูล 15 เขตข้อมูลได้อย่างมีประสิทธิภาพมากขึ้นหรือไม่ถ้าแบบฟอร์มทั้งหมดนั้นส่งอีเมลหรือไม่ รูปแบบที่ทำให้ฉันคิดว่าเรื่องนี้มีตรรกะที่ดีเล็กน้อยเพื่อแสดงและซ่อนฟิลด์ตามการตอบสนองของผู้ใช้และดูเหมือนว่ามันจะมีประสิทธิภาพน้อยกว่าในการใช้ MVC และ jQuery

5
วิธีการใช้มรดก RealNumber และ ComplexNumber
หวังว่าจะไม่เป็นนักวิชาการ ... สมมติว่าฉันต้องการจำนวนจริงและซับซ้อนในห้องสมุด SW ของฉัน ขึ้นอยู่กับความสัมพันธ์แบบis-a (หรือที่นี่ ) จำนวนจริงเป็นจำนวนเชิงซ้อนโดย b ในส่วนจินตภาพของจำนวนเชิงซ้อนเป็นเพียง 0 ในทางตรงกันข้ามการดำเนินการของฉันจะเป็นเด็กที่ขยายผู้ปกครองดังนั้นในผู้ปกครอง RealNumber ฉันมีส่วนจริงและเด็ก ComplexNumber จะเพิ่มงานศิลปะจินตภาพ นอกจากนี้ยังมีความเห็นว่าการรับมรดกเป็นความชั่วร้าย ฉันจำได้เหมือนเมื่อวานเมื่อฉันเรียนรู้ OOP ที่มหาวิทยาลัยอาจารย์ของฉันบอกว่านี่ไม่ใช่ตัวอย่างที่ดีของการสืบทอดเนื่องจากค่าสัมบูรณ์ของทั้งสองนั้นคำนวณต่างกัน (แต่สำหรับวิธีที่เรามีวิธีการมากไป . ประสบการณ์ของฉันคือเรามักจะใช้การสืบทอดเพื่อแก้ปัญหา DRY ดังนั้นเรามักจะมีคลาสนามธรรมที่เป็นนามธรรมในลำดับชั้น (เรามักจะมีปัญหาในการค้นหาชื่อเพราะพวกเขาไม่ได้เป็นตัวแทนวัตถุจากโลกแห่งความเป็นจริง)

2
ประเมินว่าจะเขียนการทดสอบหน่วยหรือการทดสอบการรวมครั้งแรกในโครงการท้องฟ้าสีฟ้า / ต้นแบบ
สิ่งที่ฉันสังเกตเห็นเมื่อเร็ว ๆ นี้คือเมื่อฉันทำโครงการประเภทต่อไปนี้: เมื่อเริ่มต้นโครงการ ทำงานกับ MVP / เครื่องต้นแบบ การเพิ่มคุณสมบัติที่ไม่ได้กำหนดไว้ทั้งหมด ทำงานในโครงการขนาดเล็ก สำหรับการอ้างอิงฉันกำลังทำงานในโครงการ Python ซึ่งปัจจุบันมีรหัส ~ 1k บรรทัดรวมถึงความคิดเห็นและช่องว่างทั้งหมด ฉันพบว่ามันง่ายขึ้นอย่างมากในการเขียนการทดสอบการรวมการทำงานครั้งแรกทำงานบนรหัสและจากนั้นเมื่อ API ค่อนข้างแข็งจริง ๆ แล้วสามารถเพิ่มการทดสอบหน่วยได้ ประเภทของการทดสอบที่ฉันสามารถเรียกใช้ในmainฟังก์ชั่นของฉันดังนั้นพูดและมี "จบสิ้น" มากกว่าสิ่งอื่นใด เนื่องจากการทดสอบหน่วยนั้นน่ารำคาญจริง ๆ เมื่อ API มีการเปลี่ยนแปลงอย่างรวดเร็วค่อนข้างบ่อยซึ่งเป็นกรณีเมื่อทำงานกับโครงการที่ตรงกับเกณฑ์ใด ๆ หรือส่วนใหญ่ข้างต้น วิธีนี้เป็นแนวทางที่ดีหรือไม่และเกณฑ์ใดที่ควรพิจารณาเมื่อทำการตัดสินใจว่าจะเริ่มต้นด้วยการทดสอบหน่วยหรือการรวมเข้าด้วยกันเป็นครั้งแรกสำหรับโครงการประเภทนี้หรือไม่? ฉันขาดคุณค่าของการทดสอบหน่วยของโครงการประเภทนี้ก่อนที่ API จะแข็งตัวมากขึ้นหรือไม่

1
การสร้างคำแถลงปัญหาที่ดี
<backstory> ฉันคว้าหนังสือที่ชื่อว่า Code Complete ที่ร้านหนังสือมือสองในวันก่อนเพราะฉันได้ยินว่ามันเป็นหนังสือที่ยอดเยี่ยมและเริ่มอ่านมัน หลังจากผ่านไปประมาณ 10 หน้าฉันก็รู้ว่าฉันโง่มากเกี่ยวกับโปรเจ็กต์ล่าสุดที่ฉันทำงานอยู่ ความกระจ่างเล็กน้อยที่ฉันควรใส่ในจุดนี้: ฉันไม่ได้ทำงานและนี่ไม่ใช่โรงเรียน มันเป็นเรื่องที่ไม่เป็นทางการเท่าที่จะได้รับ (ฉันก็เป็นคนเดียวที่ทำงานกับมันแม้ว่าฉันจะได้ถามคำถามเกี่ยวกับ SO เป็นครั้งคราว) ฉันอยู่มัธยมและพยายามสร้างชิ้นส่วนของซอฟต์แวร์ เรื่องสั้นสั้นฉันกระโดดเข้าไปในการเข้ารหัส (และตอนนี้กำลังตั้งคำถามกับการตัดสินใจบางอย่างที่ฉันทำในจุดที่ว่าโค้ดทำงานอย่างไร) ดังนั้นฉันจึงพยายามเริ่มต้นใหม่อย่างถูกวิธี </ backstory> ตกลงดังนั้นฉันพยายามสร้างคำแถลงปัญหาและฉันต้องการรู้ว่าเคล็ดลับดี ๆ นั้นควรรู้ว่าฉันมีดีหรือไม่ โค้ดสมบูรณ์กล่าวว่ามันควรจะไม่ใช่ทางเทคนิคและจากมุมมองของผู้ใช้ซึ่งฉันพยายามทำ คำแนะนำใด ๆ ที่จะได้รับการชื่นชมในการทำให้ดีขึ้น เท่าที่ฉันรู้ขณะนี้ยังไม่มีวิธีที่ดีในการจำลองวงจรคำนวณควอนตัมขนาดใหญ่ที่ซับซ้อนรวมถึงคุณลักษณะเช่น decoherence การแก้ไขข้อผิดพลาดการพัวพันและอัลกอริทึมบนคอมพิวเตอร์แบบคลาสสิคปล่อยให้อยู่คนเดียว เป็นที่รู้จักและเข้าถึงได้ง่าย ขออภัยถ้ามันแย่จริง ๆ นี่เป็นครั้งแรกที่ฉันทำสิ่งนี้ แก้ไข - ร่าง 2: ฉันเขียนใหม่โดยใช้คำแนะนำในความคิดเห็นและคำตอบ ไม่มีทางสำหรับนักทฤษฎีนักวิจัยและนักเรียนในสาขาการคำนวณควอนตัมเพื่อจำลองและทดสอบวงจรควอนตัมขนาดใหญ่ในวิธีที่ง่ายและมีประสิทธิภาพโดยไม่ต้องสร้างรหัสสำหรับการสมัคร เว็บแอปพลิเคชันที่ทำงานในเบราว์เซอร์ยอดนิยมที่มีส่วนต่อประสานที่เรียบง่ายซึ่งสามารถสร้างผลลัพธ์ได้อย่างแม่นยำเกี่ยวกับผลลัพธ์ของอัลกอริธึมควอนตัมรหัสการแก้ไขข้อผิดพลาดพัวพัน decoherence และด้านอื่น ๆ ทดสอบแนวคิดของพวกเขาและทำความเข้าใจกับการคำนวณควอนตัมให้ดีขึ้น

2
ใน MVVM, ViewModel หรือ View ควรรับผิดชอบในการสร้างมุมมองใหม่หรือไม่?
ในแอปพลิเคชัน WPF ของฉันฉันต้องการสร้างมุมมองใหม่ ฉันควรทำเช่นนั้น - ในViewModel or Model ? แอปพลิเคชั่นนี้เป็นเครื่องมือที่มีลักษณะคล้ายหน้าต่างเดียว (ง่ายมากสำหรับตอนนี้ด้วยปุ่ม "ส่ง" เดียว ในกรณีที่เลือกช่องทำเครื่องหมายหนึ่งหน้าต่างใหม่ที่ใช้ ViewModel เดียวกันควรปรากฏขึ้นเพื่อขอรายละเอียดเพิ่มเติมจากผู้ใช้ สำหรับจุดประสงค์ของคำถามนี้ลองพิจารณาเพียงวิธีเข้าหน้าต่างใหม่โดยไม่พิจารณาวิธีอื่นเช่นแสดง / ซ่อนแผง ในอุดมคติแล้วในมุมมองไม่ควรมีรหัสใด ๆ นอกจากนี้เนื่องจาก View ไม่ได้มีตรรกะใด ๆ ในนั้น VM จะต้องตรวจสอบก่อนว่าการสร้างมุมมองใหม่นั้นจำเป็นหรือไม่ - และเมื่อมีการสะท้อนความรับผิดชอบนี้กลับไปที่ View ซึ่งนำไปสู่การขยายโค้ด ในทางกลับกันการสร้างมุมมองใหม่ใน ViewModel ละเมิดหลักการที่ ViewModel ไม่ควรรู้เกี่ยวกับมุมมอง ดังนั้นจะเป็นการดีกว่าหรือที่จะสร้างมุมมองใหม่ใน View หรือ ViewModel?
11 c#  design  wpf  mvvm 

3
การออกแบบ REST API สำหรับหน้าเว็บที่มีพ่อมด
ฉันมีหน้าเว็บที่มีรูปแบบตัวช่วยสร้าง ปุ่มส่งไปยัง API จะอยู่ในขั้นตอนที่ 4 ของตัวช่วยสร้าง อย่างไรก็ตามฉันต้องการให้ข้อมูลที่ป้อนถูกจัดเก็บในฐานข้อมูลก่อนที่จะย้ายไปยังขั้นตอนถัดไปในตัวช่วย ฉันต้องการให้ REST API ทำงานสำหรับหน้าเว็บที่มีแท็บเดียว ดังนั้นฉันจึงออกแบบ API ให้ทำแบบสอบถามพารามิเตอร์ action = draft หรือส่ง หากการดำเนินการเป็นแบบร่างเฉพาะฟิลด์ที่บังคับเท่านั้น หากมีการส่งการกระทำฟิลด์ทั้งหมดจะถูกบังคับใช้ การตรวจสอบในชั้นบริการของ REST API จะดำเนินการตามพารามิเตอร์การสืบค้น ดูเหมือนว่าฉันจะระบุ if / else ในเอกสารอย่างชัดเจน นี่เป็นรูปแบบที่ยอมรับได้ของการออกแบบ RESTful หรือไม่ อะไรคือการออกแบบที่ดีที่สุดตามข้อกำหนดเหล่านี้
11 design  rest 

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

6
อะไรคือวิธีปฏิบัติที่จะนำ SRP ไปใช้?
ผู้คนใช้เทคนิคการปฏิบัติอะไรเพื่อตรวจสอบว่าชั้นเรียนมีการละเมิดหลักการความรับผิดชอบเดียวหรือไม่? ฉันรู้ว่าชั้นเรียนควรมีเหตุผลเดียวเท่านั้นที่จะเปลี่ยน แต่ประโยคนั้นค่อนข้างขาดวิธีที่ใช้งานได้จริงเพื่อนำไปใช้จริง วิธีเดียวที่ฉันพบคือใช้ประโยค"......... ควร ......... ตัวเอง" โดยที่ช่องว่างแรกคือชื่อคลาสและต่อมาคือชื่อเมธอด (รับผิดชอบ) อย่างไรก็ตามบางครั้งก็ยากที่จะเข้าใจว่าความรับผิดชอบนั้นละเมิด SRP จริงหรือไม่ มีวิธีเพิ่มเติมในการตรวจสอบ SRP หรือไม่ บันทึก: คำถามไม่ได้เกี่ยวกับความหมายของ SRP แต่เป็นวิธีการปฏิบัติหรือชุดของขั้นตอนในการตรวจสอบและใช้ SRP UPDATE ฉันได้เพิ่มคลาสตัวอย่างที่ละเมิด SRP อย่างชัดเจน มันจะดีถ้าคนสามารถใช้มันเป็นตัวอย่างเพื่ออธิบายวิธีที่พวกเขาเข้าใกล้หลักการความรับผิดชอบเดียว ตัวอย่างจากที่นี่

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

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

6
อะไรคือเหตุผลที่ดีในการใช้งานส่วนติดต่ออย่างชัดเจนเพื่อจุดประสงค์ในการซ่อนสมาชิก
ระหว่างที่ฉันศึกษาเรื่องความซับซ้อนของ C # ฉันพบข้อความที่น่าสนใจเกี่ยวกับการใช้อินเทอร์เฟซที่ชัดเจน While this syntax is quite helpful when you need to resolve name clashes, you can use explicit interface implementation simply to hide more "advanced" members from the object level. ความแตกต่างระหว่างการอนุญาตให้ใช้object.method()หรือต้องการการหล่อของ((Interface)object).method()การทำให้งงงวยหมายถึงใจแข็งกับสายตาที่ไม่มีประสบการณ์ของฉัน ข้อความตั้งข้อสังเกตว่าสิ่งนี้จะซ่อนวิธีการจาก Intellisense ที่ระดับวัตถุ แต่ทำไมคุณต้องการทำเช่นนั้นหากไม่จำเป็นต้องหลีกเลี่ยงความขัดแย้งของชื่อ
11 c#  design  interfaces 

4
การซ่อน / ปิดการใช้งานคุณสมบัติสำหรับผู้ใช้บางคน
ช่วยบอกว่าฉันมีแอพเวอร์ชันฟรีและจ่ายเงิน รุ่นที่ต้องชำระเงินเป็นชุดของรุ่นฟรีที่เกี่ยวกับคุณสมบัติที่ผู้ใช้มีความหมายว่ารุ่นที่จ่ายจะมีคุณสมบัติทั้งหมดของแอปฟรีพร้อมกับพิเศษ มีรูปแบบการสลับความพร้อมใช้งานของคุณสมบัติตามธงที่โหลดเมื่อเริ่มต้น (เช่นฟรี / จ่ายเงิน) หรือไม่ ฉันไม่ชอบความคิดที่มีการติดตามรหัสในทุกที่: if(isFreeVersion){ // ... } else { // ... } มี 2 สาขาคอมไพล์แยกต่างหากสำหรับทุกรุ่นไม่ได้ตัวเลือกเพราะมันจะหมายถึงการบำรุงรักษาที่ 2 (หรือมากกว่า) แหล่งที่มาของรหัสที่ดูเหมือนว่าทำไม่ได้ทั่วไปและมีการกล่าวถึงเพิ่มเติมได้ที่นี่: การดูแลรักษาทั้งสองรุ่นซอฟท์แวเฉพาะกิจจากที่เดียวกัน Codebase ในการควบคุมเวอร์ชัน มีวิธีการทำเช่นนี้ในขณะที่ยังคงมีฐานรหัสเดียวและไม่ทิ้งรหัสด้วยคำสั่งแบบมีเงื่อนไขที่ตรวจสอบการตั้งค่าสถานะฟรี / ชำระเงิน ฉันแน่ใจว่ามีการพูดคุยกันหลายครั้งก่อนหน้านี้และฉันแน่ใจว่ามีรูปแบบบางอย่างในการเข้าถึงปัญหานี้ แต่ฉันไม่พบมัน เราใช้ Android / Java

4
วิธีนี้ในการเรียกฟังก์ชั่นเป็นการฝึกที่ไม่ดีหรือไม่?
ฉันมีรหัสต่อไปนี้: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } ฉันคิดว่าด้วยวิธีนี้ฉันกำจัดความรับผิดชอบในการรู้ว่าสิ่งที่อยู่LatLngในชั้นเรียนอื่นเช่น และคุณไม่จำเป็นต้องเตรียมข้อมูลก่อนเรียกฟังก์ชั่น คุณคิดอย่างไร? วิธีนี้มีชื่อหรือไม่? เป็นการฝึกที่ไม่ดีจริง ๆ หรือ?

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