การให้นักพัฒนาซอฟต์แวร์ที่พัฒนาช้าลงส่งผลให้รหัสเร็วขึ้น / มีประสิทธิภาพมากขึ้นหรือไม่? [ปิด]


130

สมมติว่าฉันให้นักพัฒนาของฉันมีเครื่องที่รวดเร็ว VS2010 ที่ใช้ WPF โหลดเร็วมาก ผู้พัฒนาจึงสร้างแอปพลิเคชัน WPF หรือ WPF / e ที่ทำงานได้ดีบนกล่องของเขา แต่ช้าลงมากในโลกแห่งความเป็นจริง

คำถามนี้มีสองส่วน ...

1) ถ้าฉันให้นักพัฒนาเครื่องช้าลงนั่นหมายความว่ารหัสผลลัพธ์อาจเร็วขึ้นหรือมีประสิทธิภาพมากขึ้น

2) ฉันสามารถทำอะไรได้บ้างเพื่อให้ผู้พัฒนาได้รับประสบการณ์ IDE ที่รวดเร็วในขณะที่ให้ประสบการณ์รันไทม์ 'ทั่วไป'

ปรับปรุง:

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


20
อาจให้พวกเขาทดสอบแอปพลิเคชันในพีซีเสมือนจริง!
ทำเครื่องหมาย C

209
ฉันพูดไม่ได้เลยว่านี่เป็นคำถาม มันจะส่งผลให้เกิดอะไรนอกเหนือจากการพัฒนาที่ช้ากว่าและขวัญกำลังใจที่ไม่ดี?
Fosco

76
พัฒนาบนความทันสมัย ทดสอบเครื่องจักรที่แย่ที่สุดที่คุณสามารถหาได้
อดัม

14
การทำความสะอาดพื้นด้วยแปรงสีฟันแทนที่จะเป็นไม้ถูพื้นทำให้พื้นสะอาดขึ้นหรือไม่? แน่นอนที่สุด ผู้ปฏิบัติงานไม้ถูพื้นไม่สามารถมองเห็นสิ่งสกปรกจากระยะ 150 ซม. ได้เช่นเดียวกับแปรงสีฟันที่ห่างจาก 30 ซม. อย่าลองกับพื้นขนาดใหญ่
dbkk

13
หมายเหตุถึงตนเอง: อย่าทำงานกับ MakerofThings7
ด้าน b

คำตอบ:


234

อย่างแน่นอน

เป็นความจริงที่ผู้จัดการควรดำเนินการประชุมทั้งหมดใน Pig-Latin ช่วยปรับปรุงทักษะการสื่อสารโดยรวมเพื่อให้พวกเขาด้อยโอกาสเมื่อพูดประโยคง่าย ๆ พวกเขาจะต้องพึ่งพาการแสดงออกทางสีหน้าและภาษากายมากขึ้นเพื่อให้ได้จุดผ่านและเราทุกคนรู้ว่าอย่างน้อย 70% ของการสื่อสารทั้งหมดอย่างไรก็ตาม

CFO ควรใช้ลูกคิดและชอล์กเท่านั้น ไม่เช่นนั้นพวกเขาจะต้องพึ่งพา 'ข้อมูลดิบ' มากเกินไปและไม่เพียงพอกับ 'ความรู้สึกลำไส้'

และรองประธานและสูงกว่านั้นจำเป็นต้องจัดการประชุมทางธุรกิจที่สำคัญทั้งหมดในสภาพแวดล้อมที่เบี่ยงเบนความสนใจเช่นสนามกอล์ฟในขณะที่กึ่งเมาสุรา โอ้ snap ...


85
ฉันชอบการเสียดสี +1
Terence Ponce

8
รองประธานและผู้ที่สูงกว่ามักจะทำเครือข่ายที่บริสุทธิ์: จุดนัดพบคือการเล่นกอล์ฟ เมื่อคุณอยู่ในระดับที่สูงมากคุณสามารถมึนเมาและเล่นกอล์ฟในขณะที่คุณเลือกประเทศที่จะบุกเข้ามาและให้สัญญาป้องกันไขมันกับใคร
Dan Rosenstark

1
ฉันไม่เห็นการถากถางที่นี่ +1
FinnNk

376

คำตอบคือ (ฉันจะเป็นตัวหนาและพูด) เสมอ

NO

พัฒนาให้ดีที่สุดเท่าที่คุณจะทำได้ด้วยงบประมาณของคุณและทดสอบอุปกรณ์สเป็คขั้นต่ำที่คุณจะนำไปใช้

มีเครื่องจำลองเสมือนเครื่องจักรจริงที่มีผู้ทดสอบซึ่งสามารถทดสอบประสิทธิภาพเพื่อดูว่าเป็นปัจจัยหรือไม่


10
ไม่สามารถลงคะแนนนี้มากกว่าหนึ่งครั้งแม้ว่าฉันต้องการฉันจะทำได้ ฉันมีคอมพิวเตอร์ที่มีอายุการใช้งานและเวลาที่ใช้ในการ VS2010 เพื่อทำงานบางอย่าง (เช่นเปิดโครงการ) อาจเป็นเรื่องที่น่ารำคาญ
rjzii

108
คุณช่วยสร้างสิ่งที่ไม่ใหญ่โตและหนาได้ไหม?
ดร. Hannibal Lecter

4
การทดสอบการยอมรับที่คุณทำควรครอบคลุมข้อกำหนดด้านประสิทธิภาพ ควรมีข้อกำหนดด้านประสิทธิภาพ หากคุณไม่ทดสอบประสิทธิภาพผู้ทดสอบของคุณจะถูกเรียกว่าลูกค้า (และคุณจะเรียกเก็บเงิน)
ทิม Williscroft

2
ฉันเห็นด้วยอย่างสมบูรณ์ การให้นักพัฒนาเครื่องทำงานช้าลงจะไม่สร้างรหัสที่ดีกว่า นักพัฒนาจะหงุดหงิดกับเครื่องและมีความไม่สบายใจอยู่ในใจเสมอ มันทำให้โค้ดแย่ลงและพวกเขาไม่สามารถตั้งสมาธิได้มากนักเมื่อทุกสิ่งติดขัด ดูสิว่าจะมี IDE เช่น Eclipse, พูดว่า 2 pdf หนังสือ, 2 เว็บเบราว์เซอร์, หนึ่งตัวสำหรับเรียกใช้ดีบั๊ก (ในกรณีของการพัฒนาบนเว็บ), เซิร์ฟเวอร์ที่ใช้งานและเครื่องเล่นเพลง;) ให้เครื่องช้าและ เขาจะจูบคุณลาก่อน

1
คำตอบที่ไม่ถูกต้อง คำตอบที่ถูกต้องคือNooooooooo!
Pekka 웃

70

1) มากไม่น่าเป็นไปได้มาก ไม่และนักพัฒนาของคุณอาจใส่อะไรที่น่ารังเกียจในกาแฟของคุณเพื่อแนะนำ เวลาที่นักพัฒนาซอฟต์แวร์ของคุณใช้เวลารอโค้ดเพื่อคอมไพล์หรือให้ IDE ทำสิ่งที่มันทำหรืออะไรก็ตามที่พวกเขาไม่ได้ใช้ทำโค้ดให้ดีขึ้น ขัดขวางการไหลของจิตใจของพวกเขาเช่นกัน คอยสังเกตปัญหาและพวกเขาจะแก้ปัญหานั้นได้อย่างมีประสิทธิภาพมากขึ้น

2) มอบพีซีที่สองให้กับพวกเขาซึ่งเป็นตัวแทนของสเปคที่ต่ำที่สุดที่คุณต้องการให้พวกเขาสนับสนุนจริง ๆ โดยใช้สวิตช์ KVM เพื่อสลับไปมาระหว่างที่ใช้งานกับเวิร์กสเตชันที่แท้จริง


ฉันชอบความคิดในการใช้ KVM กับพีซีเครื่องเก่าสำหรับการทดสอบ ขึ้นอยู่กับโครงการแม้ว่าอาจเป็นเรื่องยุ่งยากสำหรับ devs ในการติดตั้งบิวด์ล่าสุดบนเครื่องช้าทุกครั้งที่สร้างบิวด์ใหม่
Al Crowley

4
อีกสิ่งที่ควรพิจารณาคือให้บัญชีแก่พวกเขาอย่างน้อยพีซีเครื่องที่สองที่ไม่มีสิทธิ์ระดับผู้ดูแลระบบ
David Thornley

43

ฉันชอบเวลารวบรวมที่ยาวนาน มันทำให้ฉันมีเวลามากขึ้นในการทำงานกับเรซูเม่ของฉัน


1
ฮิฮิยิ่งนานยิ่งดี!
Newtopian

33

นี่เป็นความคิดที่แย่มาก คุณต้องการให้นักพัฒนาของคุณมีประสิทธิผลมากที่สุดเท่าที่จะเป็นไปได้ซึ่งหมายถึงการมอบเครื่องจักรให้เร็วที่สุดเท่าที่จะเป็นไปได้ดังนั้นพวกเขาจึงไม่นั่งรอทุกวันเพื่อรวบรวมสิ่งต่าง ๆ (OT เล็กน้อย แต่ก็ช่วยไม่ให้ปิดกั้นการเข้าถึงเว็บไซต์ที่อาจเป็นประโยชน์กับ WebSense และอื่น ๆ ) หากคุณถูก จำกัด โดยการมีผู้ใช้ที่ยังคงใช้งานเทคโนโลยี Stone-Age คุณจะต้องมีเครื่องทดสอบ ด้วยสเปคที่คล้ายกันและให้แน่ใจว่าได้ทดสอบ แต่เนิ่นๆและบ่อยครั้งเพื่อให้แน่ใจว่าคุณจะไม่ไปผิดทางในแง่ของการเลือกใช้เทคโนโลยี


ใคร ... รอสักครู่ หากการคอมไพล์รวดเร็วนั้นจะไม่สามารถทำได้อีกต่อไป: xkcd.com/303
gbjbaanb

32

การพัฒนาควรทำในสภาพแวดล้อมที่ดีที่สุดที่เป็นไปได้ ควรทำการทดสอบในสภาพแวดล้อมที่เลวร้ายที่สุดที่เป็นไปได้


27

หากฉันได้รับเครื่องที่ช้าฉันจะใช้เวลาทั้งวันเพื่อปรับปรุงกระบวนการพัฒนาและไม่เพิ่มประสิทธิภาพโค้ดที่ส่งมอบของฉัน ดังนั้น: ไม่!


26

โปรแกรมเมอร์ระบบสมองกลฝังตัวทำงานอยู่ตลอดเวลา! และมีวิธีแก้ปัญหาสองส่วน:

  1. ความต้องการของคุณต้องระบุประสิทธิภาพ X บนฮาร์ดแวร์ Y
  2. ทดสอบกับฮาร์ดแวร์ Y และเมื่อคุณไม่ได้รับประสิทธิภาพ X ไฟล์บั๊ก

จากนั้นจะไม่สำคัญว่านักพัฒนาฮาร์ดแวร์ของคุณจะทำงานกับอะไร

เมื่อคุณทำเสร็จแล้วสมมติว่าอุปกรณ์ที่เร็วกว่าสามารถบันทึกโปรแกรมเมอร์ของคุณครึ่งชั่วโมงต่อวันหรือ 125 ชั่วโมงในหนึ่งปี และสมมติว่าพวกเขามีค่าใช้จ่าย $ 100,000 ต่อปีพร้อมสิทธิประโยชน์และค่าใช้จ่าย (ต่ำอย่างน่าขันสำหรับ Silicon Valley) หรือ $ 50 ต่อชั่วโมง 125 ชั่วโมงนั้น * $ 50 / ชั่วโมงคือ $ 6250 ดังนั้นหากคุณใช้จ่ายน้อยกว่า $ 6250 ต่อปีกับฮาร์ดแวร์สำหรับการพัฒนาของ rockin ต่อโปรแกรมเมอร์คุณจะประหยัดเงินได้

นั่นคือสิ่งที่คุณควรบอกผู้บริหารของคุณ

ทิมวิลริสครอฟท์พูดมากในครึ่งแรกของความคิดเห็นและในโลกที่ยุติธรรมเขาจะได้คะแนนครึ่งหนึ่งจากคำตอบนี้


เพิ่ม 24 ตุลาคม:

อดีตนายจ้างของฉันมีทฤษฎีนั้นและมันช่วยให้พวกเขาฉี่ประมาณ $ 100 ล้าน

พวกเขาเป็นกลุ่ม บริษัท ในญี่ปุ่นที่เคยว่าจ้างโปรแกรมเมอร์ในญี่ปุ่นเกาหลีและจีน มีหลายคนที่มีความใจเย็นกับการใช้ฮาร์ดแวร์พัฒนาเส็งเคร็งวันทำงาน 13 ชั่วโมงนอนที่โต๊ะทำงานและไม่มีชีวิต ดังนั้นพวกเขาจึงคิดว่าเมื่อพวกเขาได้รับ บริษัท Silicon Valley ที่มีชื่อเสียงในการทำระบบปฏิบัติการโทรศัพท์มือถือที่ใช้ระบบปฏิบัติการลีนุกซ์ชาวแคลิฟอร์เนียที่งี่เง่าที่ต้องการอุปกรณ์ที่ทันสมัย

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

มันไม่ใช่แค่เครื่องจักรพัฒนาที่ช้าซึ่งทำให้เกิดความล้มเหลวนี้ มีความผิดพลาดเชิงกลยุทธ์และยุทธวิธีอื่น ๆ อีกมากมาย - แต่เป็นสิ่งเดียวกันกับที่คนทำงานในสนามเพลาะสามารถเห็นซากรถไฟมาและสงสัยว่าทำไมผู้มีอำนาจตัดสินใจไม่ได้

และเกียร์ช้าก็เป็นปัจจัยอย่างแน่นอน ท้ายที่สุดถ้าคุณอยู่ภายใต้ปืนที่จะส่งมอบตรงเวลามันเป็นสิ่งที่ชาญฉลาดจริงๆที่จะจงใจชะลอการทำงานหรือไม่?


+1 แม้แต่สามสิบนาทีอาจเป็นการประมาณที่ค่อนข้างง่ายในบางแวดวง
justin

20

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

ในระยะสั้นคำตอบก็คือจะทำให้เวลาในการพัฒนาของคุณช้าลงและทำให้การบำรุงรักษายากขึ้น เวลาในการรวบรวมจะใช้เวลานานกว่าการค้นหารหัสบนดิสก์จะช้าลงการค้นหาคำตอบออนไลน์จะใช้เวลานานขึ้นและที่สำคัญที่สุดนักพัฒนาจะเริ่มใช้รหัสของพวกเขาก่อนกำหนดเพื่อให้สามารถทดสอบการทำงานที่ต้องการได้

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

จากตัวอย่างนี้ให้จินตนาการว่าความต้องการระบบขั้นต่ำของรุ่นปัจจุบันของคุณนั้นเป็นเครื่องประมวลผลเดียวที่มีความเร็วค่อนข้างต่ำ คุณวางนักพัฒนาลงในกล่องนี้และพวกเขาก็มาพร้อมกับโซลูชั่นเธรดเดี่ยวที่สลับซับซ้อนซึ่งต้องอาศัยแฮ็กจำนวนมากเพราะพวกเขาต้องการพัฒนาผลิตภัณฑ์อย่างรวดเร็ว ตอนนี้ 5 ปีต่อมาคุณมีผลิตภัณฑ์รุ่นใหม่ที่มีความต้องการขั้นต่ำของเครื่องประมวลผลคู่ คุณต้องการแยกส่วนต่าง ๆ ของโปรแกรมที่คุณสามารถทำงานแบบขนานได้อย่างสมบูรณ์ แต่การตัดสินใจที่คุณทำเมื่อ 5 ปีก่อนซึ่งบังคับให้นักพัฒนาของคุณทำซอฟต์แวร์แฮ็คที่ตอนนี้ป้องกันไม่ให้คุณใช้พลังเต็มความต้องการขั้นต่ำใหม่ .

สิ่งที่คุณควรทำคือการเพิ่มเฟสเมื่อสิ้นสุดรอบการพัฒนาของคุณซึ่งคุณจะทำการทดสอบการยอมรับในกล่องขอบล่าง แน่นอนว่าโค้ดบางส่วนจะช้าเกินไปเนื่องจากเครื่องที่เร็วกว่าของนักพัฒนา แต่คุณสามารถแยกส่วนนั้นและปรับให้เหมาะสมได้ ส่วนที่เหลือของรหัสของคุณยังคงสะอาดและบำรุงรักษาได้

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


"เราควรลืมประสิทธิภาพเล็ก ๆ น้อย ๆ พูดถึง 97% ของเวลา: การปรับให้เหมาะสมก่อนกำหนดเป็นรากฐานของความชั่วร้ายทั้งหมด" เมื่อออกแบบบางอย่างคุณควรคิด 2% ประมาณ 3%
Keyo

15

การอ่านที่น่าสนใจคำตอบทั้งหมดนั้น

แต่ฉันคิดว่าคนส่วนใหญ่ที่ตอบคำถามที่นี่ไม่มีจุด คำถามที่ฉันอ่านไม่ได้เป็นเพียงเกี่ยวกับการให้นักพัฒนา P1 เพื่อสร้างโค้ดที่เร็วขึ้น

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

โดยทั่วไปแล้วไม่เพียง แต่เกี่ยวกับการปรับรหัสให้เหมาะสมเท่านั้น แต่ยังรวมถึงการเลือกที่จะไม่รวมสิ่งต่าง ๆ ที่ชะลอความเร็วลงมากกว่าที่ให้

ไม่กี่สัปดาห์ที่ผ่านมาฉันเริ่มแล็ปท็อปตั้งแต่ปี 1995 Windows 3.x เปิดใช้งานได้ทันที ฐานข้อมูลที่ฉันควรได้รับข้อมูลบางส่วนจากเริ่มต้นก่อนที่จะปล่อยปุ่ม Enter อย่างเต็มที่ (เกือบอย่างน้อย)

ฉันรู้ว่าเราได้รับมากขึ้นจากซอฟต์แวร์ของเราวันนี้ แต่เราก็มีคอมพิวเตอร์เร็วขึ้นหลายเท่า ทำไมอุตสาหกรรมการพัฒนาจึงไม่ตัดสินใจที่จะรักษาความเร็วของซอฟต์แวร์จากปี 1995 และทำให้ผู้คนซื้อฮาร์ดแวร์ใหม่เพราะพวกเขาต้องการฟังก์ชั่นใหม่ วันนี้มันเป็นเหมือนโปรแกรมในชีวิตประจำวันและเว็บไซต์ที่บังคับให้คนซื้อฮาร์ดแวร์ใหม่เพื่อทำสิ่งเดียวกันกับที่ทำไว้ก่อนหน้านี้ แต่แน่นอนในทางที่นักเล่น

ฉันต้องบอกว่าฉันคิดว่าการพัฒนาลีนุกซ์ดูเหมือนว่าจะจัดการสิ่งนี้ได้ดีกว่า ลีนุกซ์ลีนุกซ์มีการแพร่กระจายของ Windows มานานหลายปีแล้วแม้จะอยู่ในรูปแบบที่เพ้อฝันพร้อมด้วยสิ่งที่น่าสนใจมากมายเช่นหน้าต่างเคลื่อนไหว. สิ่งที่พวกเขามีทั้งที่ทำงานบนคอมพิวเตอร์ของวันนี้และแม้กระทั่งเมื่อวาน ไม่เพียง แต่เกี่ยวกับฮาร์ดแวร์ที่ทันสมัย

ตอนนี้ฉันเดาว่านักพัฒนาหลายคนมีระดับอะดรีนาลีนในระดับที่ไม่ดีต่อสุขภาพ ใช่ฉันพบวิธีที่จะคืนความหงุดหงิดจากการรออยู่ข้างหน้า:
เซิร์ฟเวอร์ sql office (เริ่มต้นคอนโซลการจัดการ) arcgis (เริ่มต้นและใช้งาน) acrobat reader (เริ่มต้น) agresso (เริ่มต้นอย่างน้อยก็ใช้เว็บ) windows (จ้องมองและใช้ดีฉันยังไม่ได้ลอง 7) หน้าเว็บ. net (ดาวน์โหลด)

และอื่น ๆ

ฉันรู้สึกดี :-)

ไชโย
Nicklas


นี้. นี้. นี้. ดังนั้นสิ่งนี้ นั่นเป็นความยุ่งยากที่ยิ่งใหญ่ที่สุดของฉันเสมอกับซอฟต์แวร์ ผู้คนใช้เวลามากขึ้นในการพยายามทำให้อินเทอร์เฟซสว่างไสวกว่าจริง ๆ ตัวอย่างหนึ่งคือ Android กับ Blackberry Android ดูดีกว่าและสามารถทำอะไรได้มากกว่า แต่ Blackberry ใช้งานได้ดีกว่า (และรวดเร็ว) มากกว่า Android อย่างน้อยก็ในความคิดของฉัน
kcoppock

1
ฉันเห็นด้วยอย่างยิ่งกับการโต้เถียงเกี่ยวกับซอฟต์แวร์ที่ตอนนี้เร็วเหมือนเมื่อ 20 ปีที่แล้วสำหรับฟังก์ชั่นเดียวกัน แต่การใช้งาน devs เพื่อทำงานกับฮาร์ดแวร์อายุ 20 ปีจะไม่ช่วยอะไรเลย หาก บริษัท ที่สร้างซอฟต์แวร์ไม่ลงทุนในการใช้งานและหรือการทดสอบประสิทธิภาพการพัฒนาบนฮาร์ดแวร์ที่ช้ากว่าจะทำให้สิ่งเลวร้ายที่สุดหากมีสิ่งใดเกิดขึ้น นี่คือการถกเถียงที่แตกต่างไปจากเดิมอย่างสิ้นเชิงโดยที่หัวหน้าโปรแกรมเมอร์ไม่ได้เป็นเพียงผู้รับที่เหมาะสมของการตบที่สมควรจะได้รับหลังหัว
Newtopian

10

1) ถ้าฉันให้นักพัฒนาเครื่องช้าลงนั่นหมายความว่ารหัสผลลัพธ์อาจเร็วขึ้นหรือมีประสิทธิภาพมากขึ้น

เราได้สร้างซอฟต์แวร์มานานกว่า 6 ทศวรรษแล้วและเรายังคงมีคำถามเช่นนี้อีกหรือไม่ ดูเหมือนว่าจะพยายามอีกครั้งในการตัดมุม ไม่มีความผิด แต่ c'mon คุณคิดว่าคำถามเป็นตรรกะแม้กระทั่ง? คิดในแง่เหล่านี้ (ถ้าคุณทำได้): คุณต้องการสร้างรถ 4x4 ที่สามารถทำงานภายใต้สภาวะที่เลวร้ายฝนโคลนหรืออะไรก็ได้ คุณจะให้วิศวกรและสายการประกอบของคุณอยู่ภายใต้องค์ประกอบเพื่อให้แน่ใจว่ายานพาหนะที่เกิดขึ้นสามารถทำงานกับพวกเขาได้หรือไม่?

ฉันหมายความว่าพระเยซูคริสต์! มีการพัฒนาและมีการทดสอบ การทดสอบจะทำในสภาพแวดล้อมที่แตกต่างกันที่รุนแรงขึ้นหรือผู้พัฒนารู้วิธีรวบรวมเตียงทดสอบในสภาพแวดล้อมการพัฒนาของเขาเองในลักษณะที่เหมาะสมสำหรับการทดสอบความเครียด ถ้าเขาทำไม่ได้ให้แทนที่เขาด้วยนักพัฒนาที่ดีกว่า

2) ฉันสามารถทำอะไรได้บ้างเพื่อให้ผู้พัฒนาได้รับประสบการณ์ IDE ที่รวดเร็วในขณะที่ให้ประสบการณ์รันไทม์ 'ทั่วไป'

คุณควรถามผู้พัฒนาของคุณ และหากพวกเขาไม่สามารถให้คำตอบที่ถูกต้องและมีเหตุผลคุณต้องแทนที่พวกเขาด้วยนักพัฒนาที่แท้จริง

แต่เพื่อความบันเทิงคำถามให้นักพัฒนาของคุณ (สมมติว่าคุณมีนักพัฒนาที่ดี) เครื่องมือที่ดีและฮาร์ดแวร์ที่ดีที่สุดที่คุณสามารถจ่ายได้ จากนั้นตั้งค่าสภาพแวดล้อมพื้นฐานทั่วไปที่ต่ำที่สุดซึ่งซอฟต์แวร์ของคุณต้องทำงาน นั่นคือสิ่งที่ควรทำการทดสอบ มันเป็นการปฏิบัติทางวิศวกรรมที่ดีกว่ามากในการมีสภาพแวดล้อมการทดสอบที่แตกต่างจากสภาพแวดล้อมการพัฒนา

หากนักพัฒนาซอฟต์แวร์ของคุณดีพวกเขาควรแจ้งเรื่องนี้ให้คุณทราบ (สมมติว่าคุณถามพวกเขา)


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

1
"2) ฉันต้องทำอย่างไรเพื่อให้นักพัฒนาของฉันได้รับประสบการณ์ IDE ที่รวดเร็วในขณะที่ให้ประสบการณ์รันไทม์ 'ปกติ' คุณควรถามผู้พัฒนาของคุณว่า" ฉันเชื่อว่านี่เป็นเว็บไซต์ของโปรแกรมเมอร์ไม่ใช่เว็บไซต์ของผู้จัดการ เขาถาม devs
stimpy77

1
"คุณต้องการสร้างยานพาหนะ 4x4 ที่สามารถทำงานได้ภายใต้สภาวะที่รุนแรงฝนโคลนอะไรก็ตามคุณจะใส่วิศวกรและสายการประกอบภายใต้องค์ประกอบเพียงเพื่อให้แน่ใจว่ายานพาหนะที่เกิดขึ้นสามารถทำงานกับมันได้หรือไม่" <<< รักการเปรียบเทียบ
stimpy77

6

มันส่งผลให้นักพัฒนาของ bitchin สิ่งนี้ยากพออย่างที่เป็นอยู่อย่าให้ประสบการณ์แย่ลง

ฉันขอแนะนำให้คุณมีฮาร์ดแวร์ที่คล้ายกันกับผู้ใช้ของคุณในสภาพแวดล้อมการทดสอบหรือ QA เพื่อสูบบุหรี่ออกจากปัญหาประสิทธิภาพการทำงานใด ๆ นั่นเป็นความคิดที่ดี.


8
นักพัฒนาที่เลว? ไม่มีทาง ...
Jé Queue

6

ฉันจะรักษาบรรทัดฐานและพูดว่าใช่ถ้าอย่างนั้นถ้าพวกเขากำลังเขียนซอฟต์แวร์เซิร์ฟเวอร์ หัวเราะทั้งหมดที่คุณต้องการ แต่ทีมที่มีประสิทธิภาพที่สุดที่ฉันเคยเห็นคือกลุ่มคน Perl กับเทอร์มินัล Wyse นี่เป็นช่วงปลายปี 1990 เป็นร้านขายของในมหาวิทยาลัยและพวกเขากำลังเขียนซอฟต์แวร์เกี่ยวกับอวกาศ (ซึ่งโดยทั่วไปจะคำนวณ) อย่างไรก็ตามพวกเขากำลังพูดคุยกับ RS-6000 รุ่นหลังที่ทรงพลังบางตัว

เพียงเพิ่มความสนใจให้กับเหตุการณ์มีโปรแกรมเมอร์ตาบอดอยู่ที่นั่น ฉันประทับใจอย่างมาก

ข้อความแสดงแทน


3
โปรแกรมเมอร์ตาบอด? เป็นไปได้ไหม
WernerCD

1
@ เวอร์เนอร์ซีดีฉันมาจนถึงทุกวันนี้ยังคงพยายามจินตนาการถึงพลังของจิตใจที่ต้องใช้ในการติดตามบรรทัดโค้ดในหัวของฉัน
Jé Queue

3
ใช่พวกเราส่วนใหญ่กำลังเขียนซอฟต์แวร์เซิร์ฟเวอร์ ... +1
goodguys_activate

@ MakerOfThings7 ให้ฉันมากกว่าฮาร์ดแวร์เซิร์ฟเวอร์ทุกวันที่เครื่องท้องถิ่นของฉันใช้จ่าย $ ที่ควรจะเป็น (แต่ให้ฉันตรวจสอบขนาดใหญ่ :)) ฉันไม่มีปัญหากับ Dell Latitude CPx อายุสิบปีของฉันเป็นจอแสดงผลสำหรับระบบใหญ่ที่ DC
Jé Queue

4
บางทีโปรแกรมเมอร์ตาบอดสามารถใช้การแสดงผลอักษรเบรลล์ได้หรือไม่?
Antsan

5

นี่ไม่ใช่ความคิดที่ไม่ดี แต่คุณต้องการให้นักพัฒนาของคุณมีสภาพแวดล้อมการเขียนโปรแกรมที่รวดเร็ว

คุณสามารถใช้สิ่งนี้ได้โดยให้โปรแกรมเมอร์ของคุณสองเครื่อง - กล่อง dev ที่เร็วและกล่องสินค้าที่ช้ากว่า (อาจเป็นเสมือน) สำหรับการทดสอบ

การปรับแต่งกระบวนการสร้าง VS บางอย่างอาจทำให้การปรับใช้กับกล่องทดสอบเป็นเรื่องปกติพร้อมด้วยการดีบักแบบรีโมท

มีวิธีอื่นในการพิจารณาบังคับให้ coders ของคุณพัฒนาโค้ดที่มีประสิทธิภาพมากขึ้น - คุณสามารถรวมเป้าหมายประสิทธิภาพและการใช้หน่วยความจำในการทดสอบหน่วยของคุณ การตั้งงบประมาณสำหรับการใช้หน่วยความจำก็เป็นเป้าหมายที่ยอดเยี่ยมเช่นกัน นอกจากนี้การตั้งค่างบประมาณน้ำหนักหน้าสำหรับรหัส html


5

ปัญหาไม่ใช่นักพัฒนาสร้างรหัสที่ไม่มีประสิทธิภาพบนเครื่องที่เร็วปัญหาคือคุณยังไม่ได้กำหนดตัวชี้วัดประสิทธิภาพที่ต้องวัดด้วย

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

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


5

ฉันเชื่อว่าการมีคอมพิวเตอร์ช้าลงสำหรับการพัฒนาจะทำให้ได้รหัสเร็วขึ้น แต่ก็มีราคา เหตุผลก็คือฉันได้สัมผัสกับมือแรกนี้: มีเวลาเดินทางนานฉันซื้อเน็ตบุ๊กเพื่อทำงานในรถไฟเน็ตบุ๊กซึ่งช้ากว่าคอมพิวเตอร์ที่ฉันซื้อใน 5 ปีที่ผ่านมา เพราะทุกอย่างช้ามากฉันเห็นเร็วมากเมื่อบางสิ่งบางอย่างช้าเกินกว่าที่จะหาได้ในเน็ตบุ๊กนี้และฉันก็ทราบจุดที่ช้ากว่าได้เร็วกว่ามาก (ไม่จำเป็นต้องเทียบมาตรฐานตลอดเวลา) การทำงานกับเน็ตบุ๊กเปลี่ยนวิธีการพัฒนาของฉันจริงๆ

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

ประการที่สองการมีทุกอย่างช้าลงหมายความว่าสิ่งที่คุณอาจต้องการทำบนเครื่องที่เร็ว (ใช้เวลา 1 นาที) จะไม่สามารถทำได้อีกต่อไปบนเครื่องที่ช้าเพราะความขี้เกียจ ฯลฯ ... มันเป็นคำถามของแรงจูงใจ

ในที่สุด: รหัสที่ผลิตอาจจะเร็วกว่า แต่ก็ใช้เวลานานกว่าในการสร้าง


+1 แต่ฉันต้องไม่เห็นด้วยในบางประเด็น ฉันซื้อเน็ตบุ๊กด้วย แต่ฉันสังเกตเห็นว่าความเร็วไม่ใช่ปัญหาจริงมันคือหน้าจอขนาดเล็ก 1GHz นั้นเร็วพอสำหรับโครงการขนาดเล็กขณะเดินทาง แต่ 1024x600 นั้นเล็กเกินไป
Joe D

4

จุดที่ 1, NO! Studio ตั้งใจทำงานบนเครื่องที่เหมาะสมและข้อกำหนดนั้นมีประสิทธิภาพมากขึ้นในแต่ละรุ่น คุณสามารถล็อคสตูดิโอบางรุ่นได้หากคุณเปิดการใช้งาน Intellisense และใช้กล่องที่ไม่ใช่คอร์ HT แกนเดียว

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


4

Nope - ในความเป็นจริงมันจะส่งผลให้เกิดข้อผิดพลาดมากขึ้นเพราะพวกเขาจะไม่ทำการทดสอบมากและพวกเขาจะไม่ใช้เครื่องมือพิเศษเช่น profilers มากนัก มอบเครื่องที่ดีที่สุดที่คุณสามารถจ่ายได้ (รวมถึงฮาร์ดแวร์เร่งความเร็วกราฟิกหากคุณเป็นผู้พัฒนาเกมหรือร้านค้ากราฟิก) และให้พวกเขาทำการทดสอบภายใน VMs ข้อมูลจำเพาะ VM สามารถปรับขนาดขึ้นหรือลงได้ตามต้องการ


+1: อันที่จริงแล้วมันจะส่งผลให้เกิดข้อผิดพลาดมากขึ้นเพราะพวกเขาจะไม่ทำการทดสอบมากนักและพวกเขาจะไม่ใช้เครื่องมือพิเศษเช่นโปรไฟล์มาก - จุดที่ดี อย่าลืมโอกาสค่าใช้จ่ายที่เกี่ยวข้องกับเครื่องจักรการพัฒนาที่ช้า
Jim G.

4

ฉันคิดว่านี่เป็นคำถามที่น่าสนใจและฉันจะไม่ไป "ไม่" อย่างรวดเร็ว ความคิดเห็นของฉันคือ: มันขึ้นอยู่กับชนิดของทีมพัฒนาที่เรากำลังพูดถึง ตัวอย่าง: หากคุณเป็นผู้นำกลุ่มที่ใช้สำหรับการประกวดการเขียนโปรแกรม ICFP ประจำปีอาจมีผลดีหลังจากใช้เวลาพัฒนาน้อยในคลัสเตอร์ HPC ไม่ได้แปลว่าโซลูชั่นที่คุณพบนั้นดี เช่นเดียวกันอาจกล่าวได้ว่าหากคุณกำลังเขียนอัลกอริทึมทางวิทยาศาสตร์หรือเชิงตัวเลข: บน AMD Duron 600 MHz รุ่นเก่าที่มีหน่วยความจำ 64 MB คุณจะต้องระมัดระวังเกี่ยวกับวิธีการทำสิ่งต่าง ๆ และสิ่งนี้อาจส่งผลกระทบต่อการออกแบบบางอย่าง ตัวเลือก

ในทางกลับกันโปรแกรมเมอร์อัจฉริยะ / นักวิทยาศาสตร์ / อะไรก็ตามที่ควรระวังอยู่ดี แต่ฉันพบว่าตัวเองเขียนรหัสที่ดีที่สุดของฉันเมื่อฉันไม่มีคอมพิวเตอร์เลยและต้องจดบันทึกลงบนกระดาษ สิ่งนี้อาจใช้ไม่ได้กับโครงการขนาดใหญ่ที่เกี่ยวข้องกับกรอบงานขนาดใหญ่เมื่อ IDE จำเป็นอย่างยิ่ง

สิ่งหนึ่งที่แน่นอนคือ: เครื่องที่รวดเร็วและผลลัพธ์ที่ดีในทันทีทำให้โปรแกรมเมอร์เสีย (แย่) และอาจเป็นสาเหตุหนึ่งของอึที่เราพบในคอมพิวเตอร์


5
บอกสิ่งที่ - ซื้อคอมพิวเตอร์ที่ดีจริงๆและฉันจะสลับกับยา ... :)
Wonko the Sane

4

ฉันทำงานกับแพคเกจที่ใช้เวลาประมาณหนึ่งชั่วโมงในการสร้างบนเครื่อง 8 core 8G ของฉัน (การสร้างที่สะอาดทั้งหมด) ฉันยังมีแล็ปท็อปที่ค่อนข้างต่ำที่ฉันทดสอบ แล็ปท็อปต่ำสุดไม่สามารถจัดการงานสร้างทั้งสองแบบได้ในวันทำงานเดียว

ฉันมีประสิทธิภาพมากขึ้นบนเครื่องที่เร็วกว่าโดยมีการทดสอบอย่างรอบคอบในแล็ปท็อปหรือฉันควรสร้างงานทั้งหมดบนแล็ปท็อปหรือไม่

โปรดจำไว้ว่าตัวเลขเหล่านี้ไม่ได้ประกอบด้วย

มันเป็นตัวอย่างที่แสดงให้เห็นอย่างชัดเจนว่าปกติแล้วฉันไม่จำเป็นต้องทำการ build แบบใหม่ทุกวัน (ฉันสามารถทำการทดสอบจำนวนมากบนโมดูลเดี่ยว) ได้ แต่แม้กระทั่งการสร้างบางส่วนก็แสดงลำดับความแตกต่างของขนาดในการรวบรวม / การเชื่อมโยง .

ดังนั้นปัญหาที่แท้จริงอยู่ที่เครื่องที่ช้ากว่าของฉันงานสร้างทั่วไปจึงนานพอที่ฉันจะได้กาแฟสักถ้วยในขณะที่บนเครื่องที่เร็วกว่าของฉันฉันสามารถจิบกาแฟเพียงเล็กน้อยเท่านั้น

จากมุมมองของการทำงานให้เสร็จฉันชอบที่จะพัฒนาบนเครื่องที่รวดเร็ว ฉันสามารถกดกำหนดเวลาได้อย่างน่าเชื่อถือมากขึ้น ในทางกลับกันฉันจินตนาการว่าฝ่ายบริหารทำให้ฉันพัฒนาเครื่องช้าฉันจะทำให้การท่องเว็บทำได้สำเร็จมากขึ้นหรืออย่างน้อยก็อ่านหนังสือ


โดยทั่วไปแล้วการสร้างของคุณต้องใช้เวลานานเท่าไหร่? มันเป็น CPU ที่ถูกผูกไว้หรือดิสก์ที่ถูกผูกไว้ (คอขวดคืออะไร) นี่จะเป็นปัญหาหรือไม่ถ้ามีบางอย่างที่ TFS สร้างขึ้นมาเพื่อคุณ
goodguys_activate

1
คุณใช้เวลาครึ่งวันในการดื่มกาแฟสักถ้วย? คุณต้องทำงานให้กับรัฐบาล
finnw

I / O ผูกไว้กับเครื่องที่ช้า I / O ยังคงถูกผูกไว้กับเครื่องที่เร็ว แต่มีคอขวดของ CPU มากกว่า ระบบการสร้างปัจจุบันไม่ชอบทำงานมากกว่าหนึ่งครั้งพร้อมกันดังนั้น CPU และ I / O บางตัวจะถูกทิ้งไว้บนพื้นเมื่อมีจำนวนไฟล์เหลือน้อยกว่า 8 ไฟล์ที่จะรวบรวมในโครงการย่อยที่กำหนด สำหรับกาแฟฉันสามารถดื่มได้เร็วขึ้น แต่ฉันพยายาม จำกัด การบริโภคของฉันดังนั้นถ้าฉันดื่มเร็วขึ้นฉันจะต้องมีกิจกรรมช่วงเวลาว่าง
Stripes

3

ที่น่าสนใจคือฉันทำงานตั้งแต่เริ่มต้นจนจบเรื่องนี้ ฉันคิดว่ามันใช้งานได้ดี แต่เนื่องจากสถานการณ์เฉพาะที่เราอยู่มันเป็นร้าน mod_perl ที่การโหลดคลาสอัตโนมัติทำงานได้อย่างถูกต้อง นักพัฒนาซอฟต์แวร์ทั้งหมดใช้เสียงเรียกเข้าเป็น IDE ตัวเลือก (หรือใช้ซอฟต์แวร์แก้ไขระยะไกลบางตัว) ผลลัพธ์ที่ได้คือเวลาน้อยมาก (ถ้ามี) ก็หายไปรอรหัสเพื่อรวบรวม / โหลด / ฯลฯ

โดยทั่วไปแล้วฉันชอบแนวคิดนี้ IFF มีผลกระทบเล็กน้อยต่อวงจรการพัฒนาสำหรับนักพัฒนาทั้งหมดและจะมีผลกับการดำเนินการรันไทม์ของโค้ดของคุณเท่านั้น หากรหัสของคุณอยู่ในคอมไพล์แล้วประมวลผลล่วงหน้า ฯลฯ คุณจะเพิ่มเวลาในการ "แก้ไขข้อบกพร่อง; ทดสอบ; ลูปถัดไป" ที่นักพัฒนาซอฟต์แวร์กำลังทำงานอยู่

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

หลังจากอ่านคำถามเดิมของคุณแล้วฉันพบว่าสิ่งหนึ่งที่ทำให้ฉันหวาดกลัวตลอดเวลาคือสภาพแวดล้อมการพัฒนาที่แตกต่างจากสภาพแวดล้อมการผลิต ทำไมไม่ใช้ VM สำหรับการเรียกใช้รหัสที่คุณสามารถทำให้ง่อยกับการใช้งานจริงโดยไม่ส่งผลกระทบต่อเวิร์กสเตชัน dev เมื่อเร็ว ๆ นี้ฉันใช้ VirtualBox


3

ฉันจะตามแนวโน้มที่นี่เช่นกัน

Anecdote: ฉันทำงานให้กับ บริษัท พัฒนาซอฟต์แวร์สัญชาติดัตช์ที่อัพเกรดคอมพิวเตอร์ 286 เครื่องเป็น 486-es (ใช่ฉันแก่แล้ว) ภายในไม่กี่สัปดาห์ประสิทธิภาพการทำงานของห้องสมุดภายในองค์กรของเราลดลง 50% และข้อบกพร่องเพิ่มขึ้น ... การวิจัยเล็กน้อยแสดงให้เห็นว่าผู้คนไม่ได้คิดรหัสผ่านอีกต่อไปในระหว่างกระบวนการดีบั๊ก แต่ใช้รหัสต่อเนื่อง 'รวดเร็ว' -> รวบรวม -> ทดสอบ -> แก้ไข (รหัส) ฯลฯ รอบ

ที่เกี่ยวข้อง: เมื่อฉันเริ่มต้น บริษัท ย่อยสำหรับ บริษัท เดียวกันในสหรัฐอเมริกาฉันจบลงด้วยการว่าจ้างโปรแกรมเมอร์ชาวรัสเซียเพราะพวกเขาคุ้นเคยกับพีซีที่มีคุณสมบัติน้อยลง / ใช้พลังงานน้อยลงและเป็นโคเดกที่มีประสิทธิภาพมากขึ้น

ฉันรู้ว่าสิ่งเหล่านี้แตกต่างกันไปและทรัพยากรต่างก็หายากกว่าในทุกวันนี้ แต่มันก็ไม่เคยทำให้ฉันประหลาดใจเลยว่าความคืบหน้าทั้งหมดที่เกิดขึ้นที่ด้านหน้าของฮาร์ดแวร์นั้นผลสุทธิดูเหมือนว่าทุกก้าวไปข้างหน้าคือ เมื่อตะกี้โดยการเขียนโปรแกรม sloppier ต้องการรายละเอียดขั้นต่ำที่สูงขึ้น ...

ดังนั้น ... ฉันรู้สึกว่าโปรแกรมเมอร์ควรถูกบังคับให้ทดสอบแอปพลิเคชันของพวกเขาบนเครื่องที่ไม่เกินขีด จำกัด การประมวลผลพลังคอมพิวเตอร์และฮาร์ดแวร์ 'เฉลี่ย Joe'


7
ปาฐกถาพิเศษที่นี่คือ "การทดสอบ" ระบบถ่ายทอดสดไม่จำเป็นต้องโหลด IDE ที่อ้วนป่องทำงานด้านหลังแบบโลคัลมากกว่าบนฮาร์ดแวร์เฉพาะเรียกใช้เมลสำนักงาน ฯลฯ คุณต้องใช้เครื่องระดับสูงเพื่อนำอุปกรณ์ ภาษาส่วนใหญ่ในปัจจุบัน
Bill Leeper

3

ฮาร์ดแวร์มีค่าใช้จ่ายน้อยกว่าเวลาในการพัฒนา

คอขวดส่วนใหญ่อยู่ในฐานข้อมูลไม่ได้อยู่ในไคลเอนต์พีซี แต่นั่นไม่ได้แก้ตัวการทดสอบบนเครื่องที่ช้ากว่านักพัฒนา ใช้เครื่องมือทดสอบเพื่อทดสอบการเพิ่มประสิทธิภาพ


3

ไม่ได้อย่างแน่นอน. ให้โปรแกรมเมอร์ของคุณได้รับเงินจากแล็ปท็อปที่ดีที่สุดสามารถซื้อแป้นพิมพ์หน้าจอขนาดใหญ่หลายจอสำนักงานส่วนตัวไม่มีโทรศัพท์เครื่องดื่มฟรีหนังสือทุกเล่มที่พวกเขาต้องการ (ที่มีความเกี่ยวข้อง) คุณจะได้รับผลลัพธ์ที่ยอดเยี่ยม จากนั้นทดสอบการรวมกันของฮาร์ดแวร์ / ซอฟต์แวร์ / เบราว์เซอร์ / แบนด์วิดธ์บนและล่าง


2

นี่เป็นความคิดที่น่าสนใจ (การให้เครื่องที่ช้าอาจทำให้พวกเขาเพิ่มประสิทธิภาพมากขึ้น)

อย่างไรก็ตามโซลูชันมีกรอบในวิธีที่ดีกว่า - ใส่เวลาตอบสนองในข้อกำหนดสำหรับโปรแกรมและมีเครื่องต่ำสำหรับการทดสอบ

นอกจากนี้หากคุณมีคอมไพเลอร์ / ภาษาที่หวือหวาจริงๆมันอาจสามารถกำหนดวิธีการต่าง ๆ ในการสร้างรหัสและเลือกรหัสที่ดีที่สุด นั่นจะได้รับการช่วยเหลือจากคอมพิวเตอร์ที่เร็วกว่าเท่านั้น


2

คนอื่น ๆ ตอบว่าโดยทั่วไปคุณต้องการให้นักพัฒนามีเครื่องที่รวดเร็ว ฉันเห็นด้วย. อย่าข้ามบน RAM - คุณต้องการหน่วยความจำมากเท่าที่จะทำได้ - กระบวนการสร้างบางอย่างนั้นหนักมากในการใช้งานดิสก์

สิ่งที่คุณอาจต้องพิจารณาในการกำจัดคือป้องกันไวรัสในไดรฟ์บิลด์! สิ่งนั้นช้าลงและสามารถเป็นปัจจัยที่ทำให้ความแข็งแกร่งลดลงอย่างมาก

คุณอาจต้องการให้ผู้พัฒนาพัฒนาบน Linux ถ้าเป็นไปได้ เครื่องมือที่มีดีกว่ามากสำหรับงานพิเศษทุกประเภท (เพียง grep สำหรับบางสิ่งบางอย่างในไฟล์ ฯลฯ ) นอกจากนี้ยังกำจัดไวรัส


อย่าลืมประโยชน์ของฮาร์ดไดรฟ์ที่รวดเร็ว: codinghorror.com/blog/2009/10/…
จิมกรัม

2

Macbook Pro ในที่ทำงานของฉันมีอายุเพียงไม่กี่ปี ระหว่าง Linux และ Windows (เพื่อทดสอบข้อผิดพลาด IE) vms รวมถึงเว็บเบราว์เซอร์และเทอร์มินัลสองสามตัวที่เปิดอยู่วงล้อ OSX จะแสดงขึ้นมามากมาย คาดเดาสิ่งที่ฉันทำเมื่อมันหมุนฉันนั่งและรอ ในกรณีนี้เครื่องที่ช้าจะทำให้การผลิตช้าลง


2

สำหรับแอปพลิเคชันจำนวนมากปัญหาคือการให้นักพัฒนาทดสอบชุดข้อมูลจริงก่อนที่จะ "เสร็จสิ้น" สำหรับการใช้งานแบบอินเตอร์แอคทีฟจะต้องมีเครื่องทดสอบพื้นฐาน / VM


2

ฉันทำงานบนเครื่อง Windows95 ที่ช้าและทำให้ฉันสามารถเขียนปัญญาประดิษฐ์ MindForth ใน Forth และ JavaScript ได้อย่างมีประสิทธิภาพ


2

การถามโปรแกรมเมอร์ว่าโปรแกรมเมอร์ควรได้รับฮาร์ดแวร์ที่ดีหรือไม่ก็เหมือนกับการถามคนอ้วนว่าเขาชอบอาหารหรือไม่ ฉันรู้ว่านี่คือการแลกเปลี่ยนทัศนะ แต่ยัง ... เป็นคำถามที่คุ้มค่าถามเรา? : P

ที่กล่าวว่าผมเห็นด้วยกับหลักสูตรส่วนใหญ่: NO

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