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

สถาปัตยกรรมครอบคลุมกระบวนการสิ่งประดิษฐ์และโครงสร้างระดับสูงของโซลูชัน

14
Dilemma: เมื่อใดควรใช้ Fragments vs Activities:
ฉันรู้แล้ว Activitiesได้รับการออกแบบมาเพื่อแสดงหน้าจอเดียวของแอปพลิเคชันของฉันในขณะที่Fragmentsได้รับการออกแบบให้เป็นรูปแบบ UI ที่ใช้ซ้ำได้โดยมีตรรกะฝังอยู่ภายใน เมื่อไม่นานมานี้ฉันได้พัฒนาแอปพลิเคชั่นตามที่กล่าวไว้ว่าพวกเขาควรได้รับการพัฒนา ฉันสร้างActivityเพื่อเป็นตัวแทนของหน้าจอของแอพลิเคชันและเศษมือของฉันหรือViewPager Google Mapsฉันไม่ค่อยสร้างListFragment UI หรืออื่น ๆ ที่สามารถนำมาใช้ซ้ำได้หลายครั้ง เร็ว ๆ นี้ผมสะดุดในโครงการที่มีเพียง 2 Activitiesหนึ่งเป็นและอีกหนึ่งคือSettingsActivity MainActivityเลย์เอาต์ของMainActivityบรรจุด้วยแฟรกเมนต์ UI แบบเต็มหน้าจอที่ซ่อนอยู่จำนวนมากและแสดงเพียงหนึ่งอันเท่านั้น ในActivityตรรกะมีหลายFragmentTransitionsหน้าจอที่แตกต่างกันของแอปพลิเคชัน สิ่งที่ฉันชอบเกี่ยวกับวิธีการนี้คือเนื่องจากแอปพลิเคชันใช้ActionBarมันมันยังคงอยู่และไม่ย้ายไปอยู่กับภาพเคลื่อนไหวการสลับหน้าจอซึ่งเป็นสิ่งที่เกิดขึ้นกับการActivityสลับ สิ่งนี้ให้ความรู้สึกที่คล่องแคล่วยิ่งขึ้นสำหรับการเปลี่ยนหน้าจอ ดังนั้นฉันเดาว่าสิ่งที่ฉันขอคือการแบ่งปันลักษณะการพัฒนาในปัจจุบันของคุณเกี่ยวกับหัวข้อนี้ฉันรู้ว่ามันอาจดูเหมือนคำถามตามความเห็นในตอนแรก แต่ฉันมองว่ามันเป็นคำถามที่เกี่ยวกับการออกแบบและสถาปัตยกรรมของ Android ... ตามความเห็นอย่างหนึ่ง UPDATE (01.05.2014): ทำตามการนำเสนอนี้โดยEric BurkeจากSquare (ซึ่งฉันต้องบอกว่าเป็นการนำเสนอที่ยอดเยี่ยมพร้อมเครื่องมือที่มีประโยชน์มากมายสำหรับนักพัฒนา Android และฉันไม่เกี่ยวข้องกับ Square) http://www.infoq.com/presentations/Android-Design/ จากประสบการณ์ส่วนตัวของฉันในช่วงไม่กี่เดือนที่ผ่านมาผมพบว่าวิธีที่ดีที่สุดในการสร้างการใช้งานของฉันคือการสร้างกลุ่มของชิ้นส่วนที่มาเป็นตัวแทนของการไหลActivityในการประยุกต์และนำเสนอชิ้นส่วนเหล่านั้นทั้งหมดในหนึ่ง ดังนั้นโดยทั่วไปคุณจะมีจำนวนActivitiesใบสมัครของคุณเท่ากับจำนวนการไหล ด้วยวิธีนี้แถบแอ็คชั่นยังคงเหมือนเดิมบนหน้าจอทั้งหมดของโฟลว์ ในขณะที่ Eric Burke กล่าวและฉันก็ตระหนักเช่นกันปรัชญาของการใช้น้อยActivitiesที่สุดไม่สามารถใช้ได้กับทุกสถานการณ์เพราะมันสร้างความสับสนในสิ่งที่เขาเรียกว่ากิจกรรม "พระเจ้า"

4
ฉันจะประสบความสำเร็จสูงสุดทางทฤษฎีของ 4 FLOPs ต่อรอบได้อย่างไร
ประสิทธิภาพสูงสุดในเชิงทฤษฎีของการดำเนินการจุดลอย 4 จุด (ความแม่นยำสองเท่า) ต่อรอบสามารถทำได้บนซีพียู x86-64 ที่ทันสมัยของ Intel? เท่าที่ฉันเข้าใจมันใช้เวลาสามรอบสำหรับSSE addและห้ารอบเพื่อmulให้เสร็จสมบูรณ์บน CPU Intel ส่วนใหญ่ที่ทันสมัย ​​(ดูตัวอย่าง'Instruction Tables' ของ Agner Fog ) เนื่องจากการส่งไปป์ไลน์หนึ่งสามารถรับปริมาณงานหนึ่งaddต่อรอบหากอัลกอริทึมมีการสรุปอิสระอย่างน้อยสามครั้ง เนื่องจากเป็นจริงสำหรับแพ็กเกจaddpdรวมถึงaddsdรุ่นสเกลาร์และรีจิสเตอร์ SSE สามารถมีปริมาณงานสองdoubleรายการได้มากถึงสอง flops ต่อรอบ นอกจากนี้ดูเหมือนว่า (แม้ว่าฉันจะไม่เห็นเอกสารที่ถูกต้องเกี่ยวกับเรื่องนี้) addและmulสามารถดำเนินการในแบบคู่ขนานโดยให้ทรูพุตสูงสุดตามทฤษฎีของสี่ flops ต่อรอบ อย่างไรก็ตามฉันไม่สามารถจำลองประสิทธิภาพนั้นด้วยโปรแกรม C / C ++ อย่างง่าย ความพยายามที่ดีที่สุดของฉันส่งผลให้ประมาณ 2.7 flops / รอบ หากใครสามารถมีส่วนร่วม C / C ++ หรือโปรแกรมแอสเซมเบลอร์ที่แสดงให้เห็นถึงประสิทธิภาพสูงสุดที่จะได้รับการชื่นชมอย่างมาก ความพยายามของฉัน: #include <stdio.h> …

28
แนวทางปฏิบัติที่เป็นที่ยอมรับทั่วไปเกี่ยวกับการจัดระเบียบโค้ดใน JavaScript [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา เนื่องจากเฟรมเวิร์ก JavaScript อย่าง jQuery ทำให้เว็บแอปพลิเคชั่นฝั่งไคลเอ็นต์สมบูรณ์ยิ่งขึ้นและทำงานได้มากขึ้นฉันเริ่มสังเกตเห็นปัญหาหนึ่ง ... คุณจัดการเรื่องนี้เป็นอย่างไรในโลก ใส่เครื่องมือจัดการทั้งหมดของคุณไว้ในที่เดียวและเขียนฟังก์ชั่นสำหรับกิจกรรมทั้งหมดได้หรือไม่ สร้างฟังก์ชั่น / คลาสเพื่อห่อฟังก์ชั่นทั้งหมดของคุณ? เขียนอย่างบ้าคลั่งและหวังว่ามันจะออกมาดีที่สุด? ยอมแพ้และรับอาชีพใหม่? ฉันพูดถึง jQuery แต่จริงๆแล้วรหัส JavaScript ใด ๆ โดยทั่วไป ฉันพบว่าเมื่อบรรทัดต่อบรรทัดเริ่มกองพะเนินมันก็ยากที่จะจัดการไฟล์สคริปต์หรือค้นหาสิ่งที่คุณกำลังมองหา อาจเป็นสัญลักษณ์ที่ยิ่งใหญ่ที่สุดที่ฉันเคยพบมีหลายวิธีในการทำสิ่งเดียวกันมันยากที่จะรู้ว่าอันไหนเป็นแนวทางปฏิบัติที่ดีที่สุดในปัจจุบันที่ยอมรับกันโดยทั่วไป มีคำแนะนำทั่วไปเกี่ยวกับวิธีที่ดีที่สุดในการรักษาไฟล์. jsของคุณให้สวยงามและเรียบร้อยเหมือนกับแอพพลิเคชั่นอื่น ๆ ของคุณหรือไม่? หรือนี่เป็นเพียงเรื่องของ IDE หรือไม่? มีตัวเลือกที่ดีกว่าอยู่ที่นั่นไหม? แก้ไข คำถามนี้มีวัตถุประสงค์เพื่อเพิ่มเติมเกี่ยวกับการจัดระเบียบโค้ดไม่ใช่การจัดระเบียบไฟล์ มีบางตัวอย่างที่ดีของการรวมไฟล์หรือแยกเนื้อหา คำถามของฉันคืออะไรวิธีปฏิบัติที่ดีที่สุดในปัจจุบันที่ยอมรับกันทั่วไปในการจัดระเบียบรหัสจริงของคุณคืออะไร? คุณมีวิธีอะไรหรือแม้กระทั่งวิธีที่แนะนำในการโต้ตอบกับองค์ประกอบของหน้าและสร้างโค้ดที่สามารถนำมาใช้ซ้ำได้ซึ่งไม่ขัดแย้งกัน บางคนมีการระบุnamespacesซึ่งเป็นความคิดที่ดี มีวิธีอื่นใดอีกที่เกี่ยวข้องกับองค์ประกอบต่างๆในหน้าเว็บและรักษารหัสให้เป็นระเบียบและเรียบร้อย?

5
โมเดลควรมีโครงสร้างอย่างไรใน MVC [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันเพิ่งเข้าใจเกี่ยวกับกรอบ MVC และฉันมักจะสงสัยว่าควรมีโค้ดจำนวนเท่าใดในโมเดล ฉันมักจะมี data access class ที่มีวิธีดังนี้: public function CheckUsername($connection, $username) { try { $data = array(); $data['Username'] = $username; //// SQL $sql = "SELECT Username FROM" . $this->usersTableName . " WHERE Username = :Username"; //// Execute statement return $this->ExecuteObject($connection, $sql, $data); …

15
ความแตกต่างระหว่าง REST & RESTful คืออะไร
อะไรคือความแตกต่างระหว่างระบบ REST และระบบที่ RESTful จากบางสิ่งที่ฉันอ่านมากที่สุดบริการที่เรียกว่า REST เป็นบริการ RESTful จริง ๆ ดังนั้นความแตกต่างระหว่างสองคืออะไร
540 architecture  rest 


16
ความแตกต่างระหว่างการติดต่อกันและการมีเพศสัมพันธ์
ความแตกต่างระหว่างการทำงานร่วมกันและการมีเพศสัมพันธ์คืออะไร? การมีเพศสัมพันธ์และการทำงานร่วมกันนำไปสู่การออกแบบซอฟต์แวร์ที่ดีหรือไม่ดีได้อย่างไร มีตัวอย่างอะไรบ้างที่แสดงความแตกต่างระหว่างทั้งสองและผลกระทบที่มีต่อคุณภาพรหัสโดยรวม
486 oop  architecture  theory  ooad 

10
เมื่อถึง Redis เมื่อถึง MongoDB [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน3 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ สิ่งที่ฉันต้องการไม่ใช่การเปรียบเทียบระหว่าง Redis และ MongoDB ฉันรู้ว่ามันแตกต่างกัน ประสิทธิภาพและ API แตกต่างอย่างสิ้นเชิง Redis นั้นเร็วมาก แต่ API นั้น 'atomic' มาก MongoDB จะกินทรัพยากรมากขึ้น แต่ API นั้นใช้งานง่ายมากและฉันมีความสุขมาก พวกมันทั้งยอดเยี่ยมและฉันต้องการใช้ Redis ในการปรับใช้ให้มากที่สุด แต่มันยากที่จะเขียนโค้ด ฉันต้องการใช้ MongoDB ในการพัฒนามากที่สุดเท่าที่จะทำได้ แต่ต้องใช้เครื่องราคาแพง แล้วคุณคิดอย่างไรเกี่ยวกับการใช้ทั้งสองอย่าง เมื่อใดที่จะเลือก Redis เมื่อใดที่จะเลือก MongoDB

10
ออกจากระบบ: GET หรือ POST
คำถามนี้ไม่เกี่ยวกับเวลาที่จะใช้ GET หรือ POST โดยทั่วไป มันเป็นเรื่องที่แนะนำสำหรับการจัดการการออกจากระบบเว็บแอพพลิเคชัน ฉันพบข้อมูลมากมายเกี่ยวกับความแตกต่างระหว่าง GET และ POST ในแง่ทั่วไป แต่ฉันไม่พบคำตอบที่ชัดเจนสำหรับสถานการณ์นี้ ในฐานะนักปฏิบัตินิยมฉันมีแนวโน้มที่จะใช้ GET เพราะการนำไปใช้นั้นง่ายกว่า POST เพียงวางลิงค์ง่าย ๆ เสร็จแล้ว ดูเหมือนจะเป็นเช่นนี้กับเว็บไซต์ส่วนใหญ่ที่ฉันนึกถึงอย่างน้อยก็จากส่วนบนสุดของหัว แม้แต่ Stack Overflow จัดการออกจากระบบด้วย GET สิ่งที่ทำให้ฉันลังเลคืออาร์กิวเมนต์ (ถึงแม้ว่าจะเก่า) ที่บางส่วนของตัวเร่งความเร็วเว็บ / พร็อกซีหน้าล่วงหน้าแคชโดยการไปและดึงทุกลิงก์ที่พบในหน้าดังนั้นผู้ใช้จะได้รับการตอบสนองที่เร็วขึ้นเมื่อเธอคลิกที่พวกเขา ฉันไม่แน่ใจว่าสิ่งนี้ยังคงใช้อยู่หรือไม่ แต่ถ้าเป็นเช่นนั้นในทางทฤษฎีแล้วผู้ใช้ที่มีส่วนช่วยเร่งหนึ่งในนั้นจะถูกขับออกจากแอปพลิเคชันทันทีที่เธอลงชื่อเข้าใช้เพราะตัวเร่งความเร็วของเธอจะค้นหาและดึงข้อมูลออกจากระบบ ลิงค์แม้ว่าเธอจะไม่เคยคลิก ทุกอย่างที่ฉันได้อ่านเพื่อให้ห่างไกลชี้ให้เห็นว่าการโพสต์ควรจะใช้สำหรับ "การกระทำการทำลายล้าง" ในขณะที่การกระทำที่ไม่เปลี่ยนสภาวะภายในของแอพลิเคชันเหมือนสอบถามและ such- ควรจะจัดการกับ GET จากนี้คำถามจริงที่นี่คือ: การออกจากระบบของแอปพลิเคชันถือเป็นการกระทำที่เป็นการทำลายหรือไม่หรือเป็นการเปลี่ยนแปลงสถานะภายในของแอปพลิเคชัน
434 architecture  rest  post  get 

14
INotifyPropertyChanged กับ DependencyProperty ใน ViewModel
เมื่อติดตั้ง ViewModel ในแอพพลิเคชั่น WP-View-ViewModel สถาปัตยกรรม WPF ดูเหมือนจะมีสองตัวเลือกหลัก ๆ ในการทำให้ databindable ฉันได้เห็นการใช้งานที่ใช้DependencyPropertyสำหรับคุณสมบัติที่วิวจะเชื่อมโยงกับและฉันได้เห็นการใช้งาน ViewModel INotifyPropertyChangedแทน คำถามของฉันคือเมื่อใดที่ฉันควรเลือกหนึ่งคำถาม มีความแตกต่างด้านประสิทธิภาพหรือไม่? เป็นความคิดที่ดีหรือไม่ที่จะมอบการพึ่งพา ViewModel ให้กับ WPF? ฉันต้องพิจารณาอะไรอีกเมื่อตัดสินใจออกแบบ

30
การออกแบบซอฟต์แวร์กับสถาปัตยกรรมซอฟต์แวร์ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ใครช่วยอธิบายความแตกต่างระหว่างการออกแบบซอฟต์แวร์และสถาปัตยกรรมซอฟต์แวร์ได้บ้าง โดยเฉพาะอย่างยิ่ง; ถ้าคุณบอกใครสักคนเพื่อนำเสนอ 'การออกแบบ' คุณจะคาดหวังให้พวกเขานำเสนออะไร? กันไปสำหรับ 'สถาปัตยกรรม' ความเข้าใจปัจจุบันของฉันคือ: การออกแบบ: แผนภาพ UML / แผนผังการไหล / wireframes ง่าย ๆ (สำหรับ UI) สำหรับโมดูล / ส่วนหนึ่งของระบบ สถาปัตยกรรม: แผนภาพองค์ประกอบ (แสดงวิธีการที่โมดูลที่แตกต่างกันของระบบสื่อสารกับระบบอื่น ๆ และอื่น ๆ ), ภาษาใดที่จะใช้รูปแบบ ... ? ช่วยแก้ให้ด้วยนะถ้าฉันผิด. ฉันได้อ้างอิง Wikipedia มีบทความเกี่ยวกับhttp://en.wikipedia.org/wiki/Software_designและhttp://en.wikipedia.org/wiki/Software_architectureแต่ฉันไม่แน่ใจว่าฉันเข้าใจพวกเขาถูกต้องหรือไม่

15
เหตุใด IoC / DI จึงไม่ธรรมดาใน Python
ใน Java IoC / DIเป็นวิธีปฏิบัติทั่วไปที่ใช้กันอย่างแพร่หลายในเว็บแอปพลิเคชันเกือบทุกเฟรมเวิร์กที่มีอยู่และ Java EE ในทางกลับกันมีเว็บแอพพลิเคชั่น Python ขนาดใหญ่จำนวนมาก แต่นอกเหนือจาก Zope (ซึ่งฉันได้ยินมาว่าน่ากลัวรหัส) IoC ดูเหมือนจะไม่ธรรมดาในโลก Python (โปรดระบุชื่อตัวอย่างถ้าคุณคิดว่าฉันผิด) มีแน่นอนหลายโคลนนิ่งนิยม Java IoC กรอบพร้อมใช้งานสำหรับหลามspringpythonตัวอย่างเช่น แต่ดูเหมือนว่าจะไม่มีใครใช้มันได้เลย อย่างน้อยฉันไม่เคยเหยียบย่ำแอปพลิเคชันบนเว็บDjangoหรือsqlalchemy + <insert your favorite wsgi toolkit here>ซึ่งใช้อะไรแบบนั้น ในความคิดของฉัน IoC มีข้อได้เปรียบที่สมเหตุสมผลและจะทำให้ง่ายต่อการแทนที่ django-default-user-model ตัวอย่างเช่น แต่การใช้อินเตอร์เฟซคลาสที่กว้างขวางและ IoC ใน Python นั้นค่อนข้างแปลกและไม่ใช่ "pythonic « แต่บางคนอาจมีคำอธิบายที่ดีกว่าทำไม IoC ไม่ได้ใช้อย่างกว้างขวางใน Python

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

6
Node.js เร็วขึ้นเพียงใดโดยที่ยังคงใช้ Threads ภายในอยู่
ฉันเพิ่งดูวิดีโอต่อไปนี้: รู้เบื้องต้นเกี่ยวกับ Node.jsและยังไม่เข้าใจว่าคุณจะได้รับประโยชน์จากความเร็วได้อย่างไร โดยหลักแล้ว ณ จุดหนึ่ง Ryan Dahl (ผู้สร้างของ Node.js) กล่าวว่า Node.js เป็นแบบวนรอบเหตุการณ์แทนที่จะเป็นแบบเธรด หัวข้อมีราคาแพงและควรจะเหลือผู้เชี่ยวชาญของการเขียนโปรแกรมพร้อมกันที่จะใช้ หลังจากนั้นเขาจะแสดงสแต็กสถาปัตยกรรมของ Node.js ซึ่งมีการใช้งาน C พื้นฐานซึ่งมีกลุ่มเธรดของตัวเองภายใน ดังนั้นนักพัฒนา Node.js จะไม่เริ่มต้นเธรดของตนเองหรือใช้เธรดพูลโดยตรง ... พวกเขาใช้ async call-backs ฉันเข้าใจมาก สิ่งที่ฉันไม่เข้าใจคือจุดที่ Node.js ยังคงใช้เธรด ... มันเพิ่งซ่อนการนำไปใช้งานดังนั้นวิธีนี้จะเร็วขึ้นหากมีคน 50 คนร้องขอไฟล์ 50 ไฟล์ (ไม่ใช่ในหน่วยความจำในปัจจุบัน) แล้วก็ไม่จำเป็นต้อง 50 เธรด ? ความแตกต่างเพียงอย่างเดียวคือเนื่องจากมีการจัดการภายในนักพัฒนา Node.js ไม่จำเป็นต้องเขียนโค้ดรายละเอียดของเธรด แต่ภายใต้มันยังคงใช้เธรดเพื่อประมวลผลคำขอไฟล์ IO (การบล็อก) ดังนั้นคุณไม่เพียงแค่นำปัญหาเดียว (เธรด) และซ่อนไว้ในขณะที่ปัญหานั้นยังคงมีอยู่: …

8
วิธีที่ดีที่สุดในการอนุญาตปลั๊กอินสำหรับแอปพลิเคชัน PHP
ฉันเริ่มต้นเว็บแอปพลิเคชันใหม่ใน PHP และคราวนี้ฉันต้องการสร้างสิ่งที่ผู้คนสามารถขยายได้โดยใช้ส่วนต่อประสานปลั๊กอิน วิธีการหนึ่งที่เกี่ยวกับการเขียน 'hooks' ลงในรหัสของพวกเขาเพื่อให้ปลั๊กอินสามารถแนบกับเหตุการณ์ที่เฉพาะเจาะจงได้อย่างไร

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