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

คำถามที่เกี่ยวข้องกับการปรับปรุงประสิทธิภาพของแอปพลิเคชันอาจมีตั้งแต่สถาปัตยกรรมซอฟต์แวร์ที่เลือกไปจนถึงการเลือกอัลกอริทึม

3
มีประโยชน์ด้านประสิทธิภาพการใช้ไวยากรณ์อ้างอิงวิธีแทนไวยากรณ์แลมบ์ดาใน Java 8 หรือไม่
วิธีการอ้างอิงข้ามค่าใช้จ่ายของเสื้อคลุมแลมบ์ดา? พวกเขาอาจจะในอนาคตหรือไม่ อ้างอิงจากการสอนของ Java เกี่ยวกับวิธีการอ้างอิง : บางครั้ง ... การแสดงออกแลมบ์ดาไม่ทำอะไรเลยนอกจากเรียกวิธีการที่มีอยู่ ในกรณีเหล่านั้นมักจะชัดเจนกว่าในการอ้างอิงถึงวิธีการที่มีอยู่ตามชื่อ การอ้างอิงวิธีใช้ทำให้คุณสามารถทำได้ มันเป็นแลมบ์ดาขนาดกะทัดรัดและอ่านง่ายสำหรับวิธีการที่มีชื่ออยู่แล้ว ฉันชอบไวยากรณ์แลมบ์ดากับไวยากรณ์การอ้างอิงเมธอดด้วยเหตุผลหลายประการ: แลมบ์ดานั้นชัดเจนขึ้น แม้จะมีการอ้างสิทธิ์ของออราเคิล แต่ฉันพบว่าแลมบ์ดาไวยากรณ์นั้นง่ายต่อการอ่านมากกว่าการอ้างอิงวิธีการออบเจ็กต์สั้น ๆ เพราะไวยากรณ์การอ้างอิงเมธอดนั้นไม่ชัดเจน: Bar::foo คุณกำลังเรียกวิธีการหนึ่งอาร์กิวเมนต์คงที่ในชั้นเรียนของ x และผ่านมันได้หรือไม่ x -> Bar.foo(x) หรือคุณกำลังเรียกวิธีการเป็นศูนย์อาร์กิวเมนต์บน x? x -> x.foo() ไวยากรณ์การอ้างอิงเมธอดสามารถยืนอยู่ได้ทั้งอันใดอันหนึ่ง มันซ่อนสิ่งที่รหัสของคุณกำลังทำอยู่ แลมบ์ดาปลอดภัยกว่า หากคุณอ้างอิง Bar :: foo เป็นวิธีการเรียนและ Bar ภายหลังเพิ่มวิธีการตัวอย่างที่มีชื่อเดียวกัน (หรือในทางกลับกัน) รหัสของคุณจะไม่รวบรวมอีกต่อไป คุณสามารถใช้ lambdas อย่างสม่ำเสมอ คุณสามารถห่อฟังก์ชั่นใด ๆ ในแลมบ์ดา - เพื่อให้คุณสามารถใช้ไวยากรณ์เดียวกันได้ทุกที่ …

10
การเขียนโปรแกรม“ เหมาะสม” เมื่อไรจะไม่สำคัญอีกต่อไป?
ฉันกำลังสร้างเกม Android ในเวลาว่าง มันใช้ไลบรารีlibgdxดังนั้นการยกของหนักก็ทำได้สำหรับฉัน ขณะที่กำลังพัฒนาฉันเลือกประเภทข้อมูลบางขั้นตอนอย่างไม่ระมัดระวัง ฉันใช้ hashtable เพราะฉันต้องการบางสิ่งบางอย่างใกล้เคียงกับอาเรย์ ค่าคีย์ที่มนุษย์อ่านได้ ในที่อื่น ๆ เพื่อให้ได้สิ่งที่คล้ายกันฉันใช้เวกเตอร์ ฉันรู้ว่า libgdx มีคลาส vector2 และ vector3 แต่ฉันไม่เคยใช้เลย เมื่อฉันเจอปัญหาแปลก ๆ และค้นหา Stack Overflow เพื่อขอความช่วยเหลือฉันเห็นผู้คนจำนวนมากเพิ่งตั้งคำถามใหม่ที่ใช้ประเภทข้อมูลบางประเภทเมื่ออีกคนหนึ่งมีเทคนิค "เหมาะสม" เช่นเดียวกับการใช้ ArrayList เพราะมันไม่ต้องการขอบเขตที่กำหนดเมื่อเทียบกับการกำหนด int [] ใหม่ด้วยขอบเขตที่รู้จักกันใหม่ หรือแม้แต่เรื่องเล็กน้อยเช่นนี้ for(int i = 0; i < items.length; i ++) { // do something } ฉันรู้ว่ามันประเมินรายการความยาวของการวนซ้ำทุกครั้ง อย่างไรก็ตามฉันก็รู้ว่าสิ่งของจะไม่เกิน 15 …

8
ทำไม NoSQL จึงเร็วกว่า SQL
เมื่อเร็ว ๆ นี้ฉันถูกถาม: ทำไม NoSQL จึงเร็วกว่า SQL ฉันไม่เห็นด้วยกับหลักฐานของคำถาม ... มันไร้สาระสำหรับฉันเป็นการส่วนตัว ฉันไม่เห็นการเพิ่มประสิทธิภาพโดยใช้ NoSQL แทน SQL อาจใช้ SQL มากกว่า NoSQL ใช่ แต่ไม่ใช่แบบนั้น ฉันขาดอะไรเกี่ยวกับ NoSQL ไหม?

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

7
ในการเขียนโปรแกรมซอฟต์แวร์เป็นไปได้ไหมที่ทั้ง CPU และ GPU จะโหลด 100%?
นี่เป็นคำถามทั่วไปในเรื่องที่ฉันสนใจในฐานะนักเล่นเกม: คอขวดของ CPU / GPU และการเขียนโปรแกรม ถ้าฉันไม่เข้าใจผิดฉันจะเข้าใจว่าทั้ง CPU และ GPU คำนวณสิ่งของ แต่สิ่งหนึ่งนั้นดีกว่าในการคำนวณบางอย่างมากกว่าอีกอันหนึ่งเนื่องจากความแตกต่างของสถาปัตยกรรม ตัวอย่างเช่นการถอดรหัสแฮชหรือการขุด cryptocurrency ดูเหมือนจะมีประสิทธิภาพมากกว่าใน GPU มากกว่าใน CPU ดังนั้นฉันสงสัย: มี GPU ที่โหลด 100% ในขณะที่ CPU อยู่ที่ 50% (ตัวอย่าง) หลีกเลี่ยงไม่ได้? หรือแม่นยำยิ่งขึ้น: การคำนวณบางอย่างที่โดยปกติ GPU กระทำโดย CPU หากการคำนวณแรกนั้นมีการโหลด 100% ดังนั้นทั้งสองจะถึงการโหลด 100% หรือไม่ ฉันค้นหาเรื่องเล็กน้อย แต่กลับมาค่อนข้างถนัดมือ ฉันคิดและหวังว่าสิ่งนี้จะเกิดขึ้นในส่วนย่อยนี้และเปิดรับเอกสารหรือการบรรยายใด ๆ ที่คุณอาจให้ฉัน!

4
ประสิทธิภาพของ Scala เทียบกับ Java
ก่อนอื่นฉันต้องการทำให้ชัดเจนว่านี่ไม่ใช่คำถามภาษา -X- กับภาษา -Y เพื่อตรวจสอบที่ดีกว่า ฉันใช้ Java มานานแล้วและตั้งใจจะใช้มันต่อไป ขนานไปกับสิ่งนี้ฉันกำลังเรียน Scala ด้วยความสนใจอย่างยิ่งนอกเหนือจากสิ่งเล็ก ๆ น้อย ๆ ที่ทำให้ฉันคุ้นเคยกับความประทับใจของฉันก็คือฉันสามารถทำงานได้ดีมากในภาษานี้ คำถามของฉันคือซอฟต์แวร์ที่เขียนใน Scala เปรียบเทียบกับซอฟต์แวร์ที่เขียนใน Java ในแง่ของความเร็วในการดำเนินการและการใช้หน่วยความจำได้อย่างไร แน่นอนว่านี่เป็นคำถามที่ตอบยากโดยทั่วไป แต่ฉันคาดหวังว่าการสร้างระดับที่สูงขึ้นเช่นการจับคู่รูปแบบฟังก์ชันการเรียงลำดับที่สูงขึ้น ฯลฯ แนะนำค่าใช้จ่ายบางอย่าง อย่างไรก็ตามประสบการณ์ปัจจุบันของฉันใน Scala จำกัด เพียงตัวอย่างเล็ก ๆ ภายใต้รหัส 50 บรรทัดและฉันยังไม่ได้ใช้การวัดประสิทธิภาพใด ๆ จนถึงตอนนี้ ดังนั้นฉันไม่มีข้อมูลจริง ถ้าปรากฎว่า Scala มีค่าใช้จ่ายในการเขียน Java ค่อนข้างสมเหตุสมผลหรือไม่ที่จะรวมโครงการ Scala / Java เข้าด้วยกันโดยที่หนึ่งรหัสในส่วนที่ซับซ้อนมากขึ้นใน Scala และส่วนที่มีความสำคัญต่อประสิทธิภาพใน Java นี่เป็นเรื่องธรรมดาไหม แก้ไข 1 …

19
คุณจะซื้อฮาร์ดแวร์ด้วยเงินของคุณเองเพื่อใช้ในที่ทำงานเพื่อทำงานให้ดีขึ้นหรือไม่? [ปิด]
ที่ทำงานฉันได้รับเครื่องที่สมเหตุสมผล (ดูอัลควอดจ์ 2GHz, 4GB RAM, ไดรฟ์ 160GB 7200RPM, Win7) แต่ก็ขาดไปไม่กี่แห่ง (HDD / RAM) พนักงานไอทีก็โอเคกับฉันที่จะเปลี่ยนฮาร์ดแวร์ด้วยตัวเองดังนั้นตอนนี้ฉันจึงเล่นกีฬา SSD และ RAM 8GB เพิ่มเติม (ดังนั้นฉันจึงสามารถเรียกใช้ Visual Studios และเครื่องเสมือนหลายเครื่องได้) ฉันรู้ว่ามันเป็นการตัดสินใจทางธุรกิจของ บริษัท ที่จะเลือกเครื่องที่พวกเขาทำ แต่ในเวลาเดียวกันฮาร์ดแวร์ที่เร็วขึ้นทำให้ฉันมีความสุขและมีประสิทธิผลในการทำงานมากขึ้น ฉันเดาว่าคำถามของฉันคือฉันเป็นคนเดียว (ไม่ใช้ตัวเองสู้ :) ผู้ที่ยินดีที่จะใช้จ่ายเงินส่วนตัวบนฮาร์ดแวร์งานของพวกเขาเพื่อคุณภาพชีวิตที่ดีขึ้นและฉันควรเข้าใกล้ด้วยวิธีอื่นหรือไม่? เป็นไปได้ไหมที่จะพูดย้อนหลัง "ฉันคิดว่าคุณควรจ่ายคืนให้ฉันสำหรับฮาร์ดแวร์มูลค่า $ 500 เพราะ [blah]"

6
DDD Aggregates เป็นความคิดที่ดีจริงๆใน Web Application หรือไม่?
ฉันกำลังดำน้ำในการออกแบบการขับเคลื่อนด้วยโดเมนและแนวคิดบางอย่างที่ฉันกำลังเผชิญทำให้รู้สึกมากบนพื้นผิว แต่เมื่อฉันคิดเกี่ยวกับพวกเขามากขึ้นฉันต้องสงสัยว่ามันเป็นความคิดที่ดีจริงๆ ยกตัวอย่างเช่นแนวคิดของ Aggregates คุณสร้างโดเมนเล็ก ๆ ของการเป็นเจ้าของเพื่อให้คุณไม่ต้องจัดการกับรูปแบบโดเมนทั้งหมด อย่างไรก็ตามเมื่อฉันคิดถึงสิ่งนี้ในบริบทของเว็บแอปเรามักจะกดปุ่มฐานข้อมูลเพื่อดึงข้อมูลย่อย ๆ ตัวอย่างเช่นหน้าเว็บอาจแสดงรายการจำนวนการสั่งซื้อเท่านั้นโดยมีลิงก์ให้คลิกเพื่อเปิดคำสั่งซื้อและดูรหัสคำสั่งซื้อ ถ้าผมทำความเข้าใจขันธ์ขวาฉันมักจะใช้รูปแบบการเก็บข้อมูลที่จะกลับ OrderAggregate ว่าจะมีสมาชิกGetAll, GetByID, และDelete Saveตกลงนั่นฟังดูดี แต่... ถ้าฉันโทร GetAll เพื่อแสดงรายการคำสั่งซื้อทั้งหมดของฉันดูเหมือนว่ารูปแบบนี้จะต้องมีการส่งคืนรายการข้อมูลรวมทั้งหมดคำสั่งซื้อที่สมบูรณ์คำสั่งซื้อบรรทัด ฯลฯ ... เมื่อฉันต้องการชุดย่อยของข้อมูลนั้นเพียงเล็กน้อย (เพียงแค่ข้อมูลส่วนหัว) ฉันพลาดอะไรไปรึเปล่า? หรือมีการเพิ่มประสิทธิภาพในระดับหนึ่งที่คุณจะใช้ที่นี่ ฉันไม่สามารถจินตนาการได้ว่าใครก็ตามจะสนับสนุนให้ส่งคืนข้อมูลทั้งหมดเมื่อคุณไม่ต้องการ แน่นอนหนึ่งสามารถสร้างวิธีการในพื้นที่เก็บข้อมูลของคุณชอบGetOrderHeadersแต่ที่ดูเหมือนจะเอาชนะวัตถุประสงค์ของการใช้รูปแบบเช่นพื้นที่เก็บข้อมูลในสถานที่แรก ใครช่วยอธิบายเรื่องนี้ให้ฉันได้บ้าง แก้ไข: หลังจากการวิจัยมากขึ้นฉันคิดว่าการปลดการเชื่อมต่อที่นี่คือรูปแบบพื้นที่เก็บข้อมูลบริสุทธิ์แตกต่างจากสิ่งที่คนส่วนใหญ่คิดว่าเป็นพื้นที่เก็บข้อมูล ฟาวเลอร์กำหนดที่เก็บเป็นที่เก็บข้อมูลที่ใช้ความหมายของการรวบรวมและโดยทั่วไปจะถูกเก็บไว้ในหน่วยความจำ นี่หมายถึงการสร้างกราฟวัตถุทั้งหมด อีแวนส์เปลี่ยนแปลงที่เก็บเพื่อรวม Agotsate Roots และทำให้ที่เก็บถูกตัดเพื่อสนับสนุนวัตถุใน Aggregate เท่านั้น คนส่วนใหญ่มักนึกถึงที่เก็บข้อมูลว่าเป็น Data Data Objects ที่ซึ่งคุณเพิ่งสร้างวิธีการรับข้อมูลที่คุณต้องการ ดูเหมือนจะไม่ได้มีเจตนาตามที่อธิบายไว้ในรูปแบบของสถาปัตยกรรมแอปพลิเคชัน Enterprise ของ Fowler ยังมีคนอื่นคิดว่าที่เก็บเป็นนามธรรมที่เรียบง่ายใช้เป็นหลักในการทดสอบและการเยาะเย้ยง่ายขึ้นหรือเพื่อแยกความคงทนจากส่วนที่เหลือของระบบ ฉันเดาคำตอบว่านี่เป็นแนวคิดที่ซับซ้อนกว่าที่ฉันคิดไว้ก่อน

12
เอกสารใน OOP ควรหลีกเลี่ยงการระบุว่า“ ผู้ได้รับ” ทำการคำนวณใด ๆ หรือไม่?
โปรแกรม CS ของโรงเรียนของฉันหลีกเลี่ยงการกล่าวถึงการเขียนโปรแกรมเชิงวัตถุดังนั้นฉันจึงต้องอ่านด้วยตัวเองเพื่อเสริม - โดยเฉพาะการสร้างซอฟต์แวร์เชิงวัตถุโดย Bertrand Meyer เมเยอร์ชี้ให้เห็นซ้ำ ๆ ว่าคลาสควรซ่อนข้อมูลเกี่ยวกับการนำไปปฏิบัติให้มากที่สุดเท่าที่จะทำได้ โดยเฉพาะเขาให้เหตุผลซ้ำ ๆ ว่าแอตทริบิวต์ (เช่นคุณสมบัติแบบคงที่และไม่คำนวณของคลาส) และรูทีน (คุณสมบัติของคลาสที่สอดคล้องกับการเรียกใช้ฟังก์ชัน / โพรซีเดอร์) ไม่สามารถแยกกันได้ ตัวอย่างเช่นถ้าคลาสPersonมีคุณสมบัติageเขายืนยันว่ามันเป็นไปไม่ได้ที่จะบอกจากสัญลักษณ์ไม่ว่าจะPerson.ageสอดคล้องภายในกับสิ่งที่ชอบreturn current_year - self.birth_dateหรือเรียบง่ายreturn self.ageที่self.ageได้รับการกำหนดเป็นแอตทริบิวต์คงที่ เรื่องนี้ทำให้รู้สึกถึงฉัน อย่างไรก็ตามเขายังคงเรียกร้องต่อไปนี้: เอกสารไคลเอนต์มาตรฐานสำหรับคลาสที่เรียกว่ารูปแบบสั้น ๆ ของคลาสจะถูกคิดขึ้นใหม่เพื่อไม่ให้เปิดเผยว่าคุณลักษณะที่กำหนดเป็นคุณลักษณะหรือฟังก์ชัน (ในกรณีที่อาจเป็นได้) กล่าวคือเขาอ้างว่าแม้แต่เอกสารสำหรับชั้นเรียนควรหลีกเลี่ยงการระบุว่า "ผู้เอา" ทำการคำนวณใด ๆ นี่ฉันไม่ทำตาม เอกสารไม่ใช่ที่เดียวที่ควรแจ้งให้ผู้ใช้ทราบถึงความแตกต่างนี้หรือไม่ ถ้าฉันต้องออกแบบฐานข้อมูลที่เต็มไปด้วยPersonวัตถุมันจะไม่สำคัญที่จะรู้ว่าPerson.ageการโทรที่มีราคาแพงหรือไม่ดังนั้นฉันจึงสามารถตัดสินใจได้ว่าจะใช้แคชบางประเภทหรือไม่ ฉันเข้าใจผิดในสิ่งที่เขาพูดหรือเขาเป็นเพียงตัวอย่างที่ยอดเยี่ยมที่สุดของปรัชญาการออกแบบ OOP หรือไม่?

12
รวบรวมทางเลือกสมัยใหม่เพื่อ C / C ++ [ปิด]
ฉันกำลังพิจารณาที่จะเขียนผลิตภัณฑ์ซอฟต์แวร์ใหม่ ประสิทธิภาพจะมีความสำคัญดังนั้นฉันจึงระมัดระวังในการใช้การตีความหรือภาษาหรือสิ่งที่ใช้เลเยอร์การจำลอง (อ่าน java) ซึ่งทำให้ฉันคิดถึงการใช้ C (หรือ C ++) แต่สิ่งเหล่านี้ค่อนข้างยาวในฟัน ฉันไม่ได้ใช้มานาน ฉันคิดว่าในช่วง 20 ปีที่ผ่านมามีคนบางคนอาจสร้างบางสิ่งบางอย่างที่เป็นที่นิยมพอสมควรดีที่เขียนโค้ดและเรียบเรียง มีทางเลือกอื่นใดที่ทันสมัยกว่าสำหรับการเขียนโค้ดที่รวบรวมประสิทธิภาพสูง? ถ้า C ++ เป็นสัตว์ร้ายที่แตกต่างจากเมื่อ 15 ปีก่อนฉันจะพิจารณาฉันเดาว่าฉันมีข้อสันนิษฐานว่ามันมีปัญหาบางอย่าง การขนานจะมีความสำคัญ แต่อาจไม่ได้อยู่ในหลาย ๆ เครื่อง

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

16
คุณควรเสียสละการอ่านรหัสด้วยรหัสที่มีประสิทธิภาพหรือไม่ [ปิด]
คุณควรเสียสละการอ่านรหัสด้วยรหัสที่มีประสิทธิภาพหรือไม่ เช่น 3 บรรทัดของรหัสเป็น 1 บรรทัด ฉันอ่านในCode Craftโดย Pete Goodliffe ว่าการอ่านเป็นกุญแจสำคัญ ความคิดของคุณ?

3
มีเหตุผลใดที่จะใช้ varchar บนคอลัมน์ข้อความในฐานข้อมูลหรือไม่?
เป็นvarcharเพียงเศษเล็กเศษน้อยจากก่อนหน้าtextนี้มาหรือมีกรณีการใช้งานที่คุณต้องการใช้varchar? (หรือcharสำหรับเรื่องนั้น .. ) (ฉันใช้ Postgres และ MySQL (MyISAM) ทุกวันดังนั้นนี่คือสิ่งที่ฉันสนใจมากที่สุด แต่คำตอบสำหรับฐานข้อมูลอื่นนั้นยินดีต้อนรับแน่นอน ^ _-)

1
ความแตกต่างระหว่างการจัดทำดัชนี btree และ rtree คืออะไร?
ฉันสังเกตเห็นใน MySQLWorkbench ว่าคุณสามารถเลือกวิธีการจัดเก็บดัชนีของคุณก่อนส่งต่อการออกแบบของคุณ ประเภทการจัดเก็บคือ: bTree RTree กัญชา จากการค้นคว้านี้ฉันพบข้อมูลบางอย่างที่อยู่เหนือหัวฉันดังนั้นฉันจึงมองหาข้อมูลที่เป็นประโยชน์เกี่ยวกับความแตกต่างระหว่างสิ่งเหล่านี้และ / หรือสาเหตุที่คุณควรเลือกอย่างใดอย่างหนึ่ง นอกจากนี้ฉันไม่เคยเลือกประเภทการจัดเก็บมาก่อนดังนั้นฉันคิดว่า MySQL กำลังเลือกประเภทการจัดเก็บเริ่มต้น (BTREE?)

12
การเปลี่ยนแปลงอย่างค่อยเป็นค่อยไปในวิธีการเขียนรหัสส่งผลต่อประสิทธิภาพของระบบหรือไม่ และฉันควรจะสนใจ
TD; DR: มีความสับสนเกี่ยวกับสิ่งที่ฉันถามดังนั้นนี่คือแนวคิดการขับขี่ที่อยู่เบื้องหลังคำถาม: ฉันมักจะตั้งคำถามว่ามันคืออะไร ฉันอาจไม่ได้พูดชัดแจ้ง แต่แรกเริ่ม แต่เจตนาได้เสมอ " เป็นโมดูลแยกแยกหลวมคู่ decoupled รหัส refactored " ช้าลงอย่างเห็นได้ชัดโดยธรรมชาติของตัวเองมากกว่า " เสาเดียวหน่วยทำทุกอย่างในที่เดียวหนึ่งไฟล์คู่แน่น " รหัส ส่วนที่เหลือเป็นเพียงรายละเอียดและอาการต่าง ๆ ของเรื่องนี้ที่ฉันเจอในตอนนี้หรือตอนนี้หรือจะในภายหลัง มันช้าลงอย่างแน่นอนในระดับหนึ่ง เช่นเดียวกับดิสก์ที่ไม่มีการดีแฟรกต์คุณต้องเลือกชิ้นส่วนจากทุกที่ มันช้ากว่า ได้อย่างแน่นอน แต่ฉันควรสนใจ และคำถามไม่ได้เกี่ยวกับ ... ไม่เกี่ยวกับการเพิ่มประสิทธิภาพขนาดเล็กการปรับให้เหมาะสมก่อนวัยและอื่น ๆ มันไม่เกี่ยวกับ "เพิ่มประสิทธิภาพส่วนนี้หรือส่วนที่ตาย" ถ้าเช่นนั้นจะเป็นอะไร เป็นเรื่องเกี่ยวกับระเบียบวิธีและเทคนิคโดยรวมและวิธีคิดเกี่ยวกับการเขียนโค้ดที่เกิดขึ้นเมื่อเวลาผ่านไป: "ฉีดรหัสนี้ในชั้นเรียนของคุณเป็นการพึ่งพา" "เขียนหนึ่งไฟล์ต่อคลาส" "แยกมุมมองของคุณออกจากฐานข้อมูลตัวควบคุมโดเมน" อย่าเขียน codeblock สปาเก็ตตี้ที่เป็นเนื้อเดียวกัน แต่เขียนส่วนประกอบแยกส่วนจำนวนมากที่ทำงานร่วมกัน มันเกี่ยวกับวิธีการและรูปแบบของรหัสที่ปัจจุบัน - ภายในทศวรรษนี้ - เห็นและสนับสนุนในกรอบการทำงานส่วนใหญ่ที่สนับสนุนการประชุมส่งต่อผ่านชุมชน มันเป็นการเปลี่ยนความคิดจาก 'monolithic blocks' เป็น …

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