개발자에게 느린 개발 시스템을 제공하면 코드가 더 빠르고 효율적입니까? [닫은]


130

개발자에게 비명을 지르는 빠른 기기를 제공한다고 가정 해 보겠습니다. WPF 기반 VS2010은 매우 빠르게로드됩니다. 그런 다음 개발자는 자신의 상자에서 잘 실행되지만 실제 환경에서는 훨씬 느리게 실행되는 WPF 또는 WPF / e 응용 프로그램을 만듭니다.

이 질문에는 두 부분이 있습니다 ...

1) 개발자에게 느린 시스템을 제공하면 결과 코드가 더 빠르거나 효율적일 수 있습니까?

2) 개발자에게 빠른 IDE 경험을 제공하면서 '일반적인'런타임 경험을 제공하려면 어떻게해야합니까?

최신 정보:

기록을 위해, 나는 경영진에게 고른 응답을 준비하고 있습니다. 이것은 내 생각이 아니며, 귀하는 저의 고객의 잘못된 요청을 수정하도록 도와드립니다. 더 많은 탄약을주고, 언제 어디서 접근 할 수 있는지에 대한 언급을 해주셔서 감사합니다. 다음과 같은 유효한 사용 사례를 +1했습니다
.-특정 서버 측 프로그래밍 최적화
-테스트 랩
-라인 그래픽 카드 대신 더 나은 서버 구매 가능


20
가상 PC에서 응용 프로그램을 테스트하게했을 수도 있습니다.
Mark C

209
나는 이것이 심지어 질문이라는 말이 없다. 어떻게하면 개발이 느려지고 사기가 나빠질 수 있습니까?
Fosco

76
최신 기술을 개발하십시오. 찾을 수있는 최악의 컴퓨터에서 테스트하십시오.
Adam

14
걸레 대신 칫솔로 바닥을 청소하면 바닥이 더 깨끗해 집니까? 물론 그렇습니다. 걸레 운영자는 150cm 떨어진 곳에서 먼지를 발견 할 수 없으며 칫솔 운영자는 30cm 떨어져 있습니다. 큰 바닥으로 시도하지 마십시오.
dbkk

13
자체 참고 사항 : MakerofThings7에서는 작동하지 않음
matt b

답변:


234

물론

관리자가 Pig-Latin에서 모든 회의를 수행해야한다는 것도 사실입니다. 간단한 문장을 말할 때 불리하게하기 위해 의사 소통 능력을 전반적으로 향상시킵니다. 그들은 그들의 표정을 드러내 기 위해 얼굴 표정과 신체 언어에 더 의존해야 할 것입니다.

CFO는 주판과 초크 만 사용해야합니다. 그렇지 않으면 그들은 '원시 데이터'에 너무 많이 의존하고 '직감'에 충분하지 않습니다.

그리고 반 중독에 빠진 동안 골프장과 같은 혼란스러운 환경에서 모든 중요한 비즈니스 미팅을 개최해야합니다. 어 ...


85
나는 풍자 만화를 좋아했다. 한
테렌스 폰세

8
부회장 이상은 종종 순수한 네트워킹을하고 있습니다. 회의의 핵심은 골프를 마신 것입니다. 당신이 정말로 높은 수준에 도달하면, 당신은 침입 할 국가를 선택하고 지방 방어 계약을 할 사람을 선택하면서 술에 취해 골프를 즐길 수 있습니다.
Dan Rosenstark

1
나는 여기에 냉소가 보이지 않습니다. +1
FinnNk

376

대답은 항상 ( 대담하고 말할 것입니다)

아니요 .

예산을 최대한 활용할 수 있도록 개발하고 배포 할 최소 최대 사양 범위의 장비를 테스트하십시오.

에뮬레이터, 가상 머신, 테스터가있는 실제 머신이 있으며 성능을 테스트하여 모든 요인이 있는지 확인할 수 있습니다.


10
비록 내가 할 수 있기를 원하지만, 이것을 두 번 이상 투표 할 수 없습니다. 내가 일하는 노화 컴퓨터가 있고 VS2010이 일부 작업 (예 : 프로젝트 열기)을 수행하는 데 걸리는 시간은 상당히 성 가실 수 있습니다.
rjzii

108
당신은이하지 않습니다시겠습니까 에는 매우 크고 대담한?
Dr Hannibal Lecter

4
수락 테스트는 성능 요구 사항을 포함해야합니다. 성능 요구 사항이 있어야합니다. 성능을 테스트하지 않으면 테스터를 고객이라고하며 비용을 청구합니다.
Tim Williscroft

2
나는 완전히 동의합니다. 개발자에게 느린 컴퓨터를 제공한다고해서 실제로 더 나은 코드를 생성하지는 않습니다. 개발자는 기계에 좌절하고 항상 마음이 불편합니다. 그것은 코드를 악화시키고 모든 것이 고착 될 때 집중할 수 없습니다. 하나는 이클립스와 같은 IDE를 가지고있을 것입니다 .2 개의 PDF 서적, 2 개의 웹 브라우저, 하나는 웹 기반 개발의 경우 실행 디버깅, 서버 실행 및 음악 플레이어 용입니다.) 그는 당신에게 작별 키스를 할 것입니다.

1
대답은 아무 잘못이 없습니다. 정답은 Nooooooooo입니다!
Pekka 웃

70

1) 매우 가능성이 낮습니다. 아닙니다. 개발자는 커피를 제안하기 위해 커피에 불쾌한 것을 넣을 수 있습니다. 개발자가 코드 컴파일을 기다리거나 IDE가 수행하는 작업이나 코드를 개선하는 데 소비 하지 않는 시간을 수행하는 데 소요되는 시간 입니다. 그들의 정신 흐름도 방해합니다. 문제를 염두에두면 문제를 훨씬 더 효율적으로 해결할 수 있습니다.

2) 각 스위치와 실제 워크 스테이션 사이를 이동하는 KVM 스위치를 사용하여 실제로 지원하고자하는 최저 사양을 나타내는 두 번째 PC를 제공하십시오.


테스트를 위해 오래된 PC에서 KVM을 사용한다는 아이디어가 마음에 듭니다. 프로젝트에 따라 개발자가 새 빌드를 만들 때마다 느린 시스템에 최신 빌드를 설치하는 것이 번거로울 수 있습니다.
Al Crowley

4
고려해야 할 또 다른 사항은 관리 권한이없는 두 번째 PC에 계정을 부여하는 것입니다.
David Thornley


33

이것은 끔찍한 생각입니다. 개발자는 가능한 한 생산성을 높이기를 원합니다. 즉, 가능한 한 빨리 기계를 제공하여 하루 종일 컴파일을 기다리지 않아도됩니다. (약간 OT이지만 WebSense 등으로 잠재적으로 유용한 사이트에 대한 액세스를 차단하지 않는 데 도움이됩니다.) 여전히 Stone-Age 기술을 실행중인 사용자가있는 경우 제한이있는 경우 테스트 머신이 있어야합니다. 기술 사양 측면에서 잘못된 길을 가고 있지 않은지 확인하기 위해 초기에 자주 테스트해야합니다.


누가 .. 잠깐만 기다려 컴파일이 빠른한다면, 이것은 더 이상 가능하지 않을 것이다 : xkcd.com/303
gbjbaanb


27

느린 컴퓨터를 받았다면 개발 프로세스를 최적화하고 제공된 코드를 최적화하지 않고 하루를 보냈습니다. 그래서 안돼!


26

임베디드 시스템 프로그래머는 항상 이것에 부딪칩니다! 그리고 두 부분으로 된 해결책이 있습니다.

  1. 요구 사항은 Y 하드웨어에서 X 성능을 지정해야합니다.
  2. Y 하드웨어에서 테스트하고 X 성능을 얻지 못하면 파일 버그가 발생합니다.

그렇다면 개발자가 어떤 하드웨어를 사용하든 상관 없습니다.

일단 그렇게하면 더 빠른 장비가 프로그래머를 하루 30 분 또는 1 년에 125 시간 절약 할 수 있다고 가정 해 봅시다. 그리고 혜택과 오버 헤드 (실리콘 밸리의 경우 엄청나게 낮은) 또는 시간당 $ 50로 연간 10 만 달러의 비용이 발생한다고 가정 해 보겠습니다. 125 시간 * $ 50 / hour는 $ 6250입니다. 따라서 프로그래머 당 로큰 개발 하드웨어에 연간 6250 달러 미만의 비용을 지출하면 비용을 절약 할 수 있습니다.

그것이 경영진에게 알려야 할 사항입니다.

팀 윌리스 크로프트 (Tim Williscroft)는 이것의 전반부를 코멘트로 거의 말했고, 단지 세계에서, 그는이 답변이 얻는 점수의 절반을 얻었습니다.


10 월 24 일 추가됨 :

저의 전 고용주는 그 이론을 가지고 있었고, 약 1 억 달러를 열 받도록 도와주었습니다.

그들은 일본, 한국 및 중국의 프로그래머를 고용하는 데 사용되는 일본 기반의 대기업입니다. 사람들은 엉터리 개발 하드웨어, 13 시간의 근무일, 책상에서 자고 인생을 가지지 않는 것이 시원합니다. 그래서 그들은 유명한 실리콘 밸리 회사를 인수하여 리눅스 기반의 휴대 전화 OS를 만들었을 때, 현대식 장비를 원했던 어리석은 캘리포니아 주민은 원시적 인 성가신 사람들이었고, 실제로는 그만한 이유가 없었습니다 (생산성과 같은).

4 년 후, OS는 쓰레기처럼 작동했고 모든 일정이 끊어졌으며 고객은 화를 내고 계약을 오른쪽과 왼쪽으로 종료했습니다. 마지막으로 OS 프로젝트가 취소되었으며 전 세계 대기업의 전 세계 인력 중 상당수가 작년에 해고되었습니다. 그리고 솔직히 말해서 저는 모든 돈과 노력이 진행된 주주들에게 설명해야하는 경영진 중 한 사람이되고 싶지 않았습니다.

이 불황을 일으킨 것은 느린 개발 기계가 아닙니다. 다른 전략적이고 전술적 인 실수도 많았지 만 참호에서 일하는 사람들이 열차의 잔해가 다가오는 것을 볼 수 있고 의사 결정자들이 왜 그렇게 할 수 없는지 궁금해하는 것과 같은 종류였습니다.

그리고 느린 기어는 확실히 요인이었습니다. 결국, 제 시간에 맞춰 총을 들고 있다면, 의도적으로 작업 속도를 늦추는 것이 현명한 것입니까?


일부 서클에서는 + 1 ~ 30 분이 매우 완만 할 수 있습니다.
저스틴

20

프로그래밍에서 " 조기 최적화는 모든 악의 근원 "이라는 오래된 말이 있습니다. 나는 당신이 모든 악의 또 다른 "뿌리"(또는 적어도 첫 번째 지점)를 성공적으로 만들었을 것이라고 생각합니다. 이제부터 우리는 "조기 개발자의 최적화 해제가 모든 악의 근원"이라고 말할 수 있습니다.

간단히 말해 개발 시간이 느려지고 유지 관리가 더 어려워집니다. 컴파일 시간이 오래 걸리고 디스크에서 코드 검색이 느려지고 온라인 답변을 찾는 데 시간이 더 걸리며, 가장 중요한 것은 개발자가 필요한 기능을 테스트하기 위해 코드를 조기에 최적화하기 시작한다는 것입니다.

마지막 요점은 가장 중요한 문제이며 다른 많은 답변에서는 나오지 않습니다. 첫 번째 버전은 괜찮을지 모르지만 나중에 코드를 업데이트하려는 경우 개발자 조기 최적화를 통해 코드의 초점을 좋은 디자인에서 벗어나 " 최소한의 작업을 유지하기 위해 노력 "스타일의 코드. 당시에 선택한 최적화가 불필요하고 다른 반 최적화 된 해킹의 상단에있는 반 최적화 된 해킹 경로에 코드를 잠글 수 있기 때문에 추가 기능을 추가하기가 더 어려워집니다.

예를 들어, 현재 버전의 최소 시스템 요구 사항이 다소 느린 단일 프로세서 시스템이라고 가정하십시오. 이 상자에 개발자를 배치하면 제품을 빠르게 개발하기를 원하기 때문에 많은 해킹에 의존하는 복잡한 단일 스레드 솔루션이 제공됩니다. 이제 5 년 후, 듀얼 프로세서 시스템의 최소 요구 사항이있는 새 버전의 제품이 있습니다. 병렬로 실행할 수있는 프로그램의 일부를 깨끗하게 분리 할 수 ​​있기를 원하지만 개발자가 해키 소프트웨어를 만들도록 강요 한 5 년 전의 결정으로 인해 새로운 최소 요구 사항을 최대한 활용할 수 없습니다. .

해야 할 일은 개발주기가 끝날 때 하한 상자에서 합격 테스트를 수행하는 단계를 추가하는 것입니다. 개발자의 빠른 시스템으로 인해 일부 코드가 너무 느릴 수 있지만 해당 부분을 분리하여 최적화 할 수 있습니다. 나머지 코드는 깨끗하고 유지 관리가 가능합니다.

귀하의 질문에 "저는 개발자에게 빈약 한 개발자 컴퓨터를 제공하면서도 여전히 좋은 코드를 제공하여 개발자를 강제 최적화 할 수 있습니까?" 대답은 '아니요'입니다.


"우리는 시간의 97 % 정도의 작은 효율성을 잊어야합니다. 조기 최적화는 모든 악의 근원입니다." 무언가를 디자인 할 때는 2 분 동안 3 % 정도 생각하는 것이 좋습니다.
Keyo

15

재미있는 독서, 그 모든 대답.

그러나 나는 여기에 대답하는 대부분의 사람들이 요점을 놓치고 있다고 생각합니다. 내가 읽은 질문은 (최소한) 개발자에게 더 빠른 코드를 만들기 위해 P1을 실제로주는 것에 관한 것이 아닙니다.

요점은 오늘날 많은 소프트웨어가 훨씬 더 강력한 컴퓨터에도 불구하고 지난 수천 년 동안 사용했던 seftware보다 느리거나 느리다는 것입니다. 대부분의 개발자는 여기에 대한 답변을 바탕으로 힌트를 얻지 못합니다. 이것은 웹 응용 프로그램에서 매우 분명합니다. 이 사이트는 매우 좋은 예외이지만 많은 사이트에서 1MB의 첫 페이지가 있습니다. 다운로드를 기다리는 동안 무엇을 얻을 수 있습니까? 모르겠어요 사용자가 소비 해야하는 시간을 존중하지 않거나 개발자가 mb 당 지불하면 더 나쁜 비용을 지불하지 않는 것이 개발자의 무지에 관한 것 같습니다. 문제는 모든 웹 페이지에 고해상도 사진이 포함되어 있지 않다는 것입니다. 종종 개발 환경에서 제공되는 쓰레기 코드 일뿐입니다. 물론, 그것은 내가 생각하는 쓰레기 코드는 아니지만 사용자로서 나에게 이익을주지 않습니다.

일반적으로 코드 최적화뿐만 아니라 제공하는 것보다 속도가 느려지는 것을 포함하지 않도록 선택하는 것만 큼 중요합니다.

몇 주 전에 저는 1995 년부터 랩톱을 시작했습니다. Windows 3.x는 곧 가동되었습니다. 데이터베이스는 Enter 키가 완전히 릴리스되기 전에 데이터를 시작해야합니다 (거의).

우리는 오늘날 소프트웨어를 통해 더 많은 것을 얻을 수 있지만 컴퓨터는 여러 배 더 빠릅니다. 개발 산업이 1995 년부터 소프트웨어의 속도를 유지하고 사람들이 새로운 기능을 원하기 때문에 새로운 하드웨어를 구매하게하지 않는 이유는 무엇입니까? 오늘날은 일상적인 프로그램과 비슷하며 웹 사이트는 사람들이 이전과 똑같은 일을하기 위해 새 하드웨어를 구입하도록 강요합니다. 그러나 물론 더 환상적인 방식으로.

나는 리눅스 개발이 이것을 더 잘 처리한다고 생각한다. Linux 배포판은 애니메이션 창과 같은 많은 눈 사탕으로 환상적으로 심지어 수년 동안 창보다 훨씬 앞서 있습니다. 문제는 오늘날의 컴퓨터와 심지어 어제의 컴퓨터에서도 작동 했음에도 불구하고 있다는 것입니다. 최첨단 하드웨어뿐만 아니라

지금까지 많은 개발자들이 건강에 해로운 수준의 아드레날린을 가지고 있다고 생각합니다. 예,
Office SQL Server (관리 콘솔 시작) arcgis (시작 및 사용) acrobat reader (시작) agresso (적어도 웹 응용 프로그램 사용) 앞에서 기다리는 모든 것에서 좌절감을 줄 수있는 방법을 찾았 습니다. .net 웹 페이지 (다운로드 및 사용 중, 아직 7을 시도하지 않았 음)

등등

나는 기분이 좋다 :-)

건배
Nicklas


이. 이. 이. 너무 많이. 그것은 항상 소프트웨어에 대한 가장 큰 좌절이었습니다. 사람들은 실제로 사용성에 대해 망할 것보다 인터페이스를 밝게 만드는 데 더 많은 시간을 소비합니다. 이에 대한 예로는 Android와 Blackberry가 있습니다. 안드로이드는 더 멋지게 보이고 더 많은 것을 할 수 있지만, 블랙 베리는 적어도 내 의견으로는 안드로이드보다 훨씬 더 즐겁고 빠릅니다.
kcoppock

1
저는 거의 같은 기능에 대해 20 년 전의 소프트웨어만큼 빠른 소프트웨어라는 주장에 전적으로 동의합니다. 그러나 20 년 된 하드웨어에서 개발자가 작업하도록하는 것은 문제를 해결하는 데 도움이되지 않습니다. 소프트웨어를 만드는 회사가 유용성 및 / 또는 느린 하드웨어에서 개발하는 성능 테스트에 투자하지 않는 경우 상황을 악화시킬 수 있습니다. 이것은 완전히 다른 논쟁이다. 프로그래머의 머리가 머리 뒤의 타당한 자격을 가진 유일한 수령인은 아니다.
Newtopian April

10

1) 개발자에게 느린 시스템을 제공하면 결과 코드가 더 빠르거나 효율적일 수 있습니까?

우리는 지난 60 년 동안 소프트웨어를 개발해 왔는데 여전히 이런 질문이 있습니까? 코너를 자르는 또 다른 시도처럼 보입니다. 오해는 없지만, 그 질문은 논리적이라고 생각합니까? 다음과 같은 용어로 생각하십시오 (가능한 경우). 가혹한 조건, 비, 진흙 등 어떤 상황에서도 작동 할 수있는 4x4 차량을 만들고 싶습니다. 결과 차량이 차량에서 작동 할 수 있도록 엔지니어와 조립 라인을 요소 아래에 배치 하시겠습니까?

예수 그리스도를 의미합니다! 개발이 진행 중이며 테스트 중입니다. 테스트는 다른 가혹한 환경에서 이루어 지거나 개발자는 스트레스 테스트에 적합한 방식으로 자신의 개발 환경에서 테스트 베드를 조립하는 방법을 알고 있습니다. 그가 할 수 없다면, 더 나은 개발자로 그를 대체하십시오.

2) 개발자에게 빠른 IDE 경험을 제공하면서 '일반적인'런타임 경험을 제공하려면 어떻게해야합니까?

개발자에게 물어보아야합니다. 그리고 그들이 당신에게 객관적이고 유효한 답변을 줄 수 없다면, 그것들을 실제 개발자로 대체해야합니다.

그러나 질문을 즐겁게하려면 개발자 (좋은 개발자가 있다고 가정), 훌륭한 도구 및 하드웨어를 제공하십시오. 그런 다음 소프트웨어가 작동해야하는 최저 공통 기준 환경을 설정하십시오. 그건 시험이 발생하는 곳. 개발 환경과 다른 테스트 환경 (바람직하게는 테스트 스트레스를 허용하는 환경)을 갖는 것이 훨씬 나은 엔지니어링 관행 입니다.

개발자가 좋은 사람이라면 요청한 것으로 가정하여이 내용을 알려 주어야합니다.


1
우리는 지난 60 년 동안 소프트웨어를 개발해 왔는데 여전히 이런 질문이 있습니까? -귀하의 답변을 찬성했지만 다른 관점에서 원래 질문을 검토하는 것이 좋습니다. 실제로 개발자를위한 빠르고 강력한 머신 의 이점 을 모르는 많은 관리자가 있습니다 . 따라서 이러한 점을 염두에두고, 원래의 질문은 느린 기계가 어떻게 든 개발자가 더 빠르고 효율적인 코드를 생성하도록 방해 할 수 있다는 우스꽝스러운 개념의 관리자를 혼란스럽게하려고 시도했을 수도 있습니다 .
Jim G.

1
"2"개발자에게 빠른 IDE 경험을 제공하면서 '일반적인'런타임 경험을 제공하려면 어떻게해야합니까? 개발자에게 물어보아야합니다. " 나는 이것이 프로그래머의 SE 사이트가 아니라 프로그래머의 SE 사이트라고 생각합니다. 그는 개발자들에게 물었다.
stimpy77

1
"가혹한 조건, 비, 진흙 등에서 작동 할 수있는 4x4 차량을 만들고자합니다. 결과 차량이 차량에서 작동 할 수 있도록하기 위해 엔지니어와 조립 라인을 요소 아래에 배치 할 것입니까?" <<< 비유를 사랑
stimpy77

6

그것은 많은 비트 킨 개발자를 초래합니다. 이 물건은 그대로 어렵습니다. 경험을 악화시키지 마십시오.

그러나 테스트 또는 QA 환경에서 사용자와 유사한 하드웨어를 사용하여 성능 문제를 해결하도록 권장합니다. 좋은 생각이야.


8
그 나쁜 개발자? 안 돼요
Jé Queue

6

나는 표준을 버리고 그들이 서버 소프트웨어를 작성한다면 예라고 대답 할 것입니다. 당신이 원하는 모든 것을 웃으십시오. 그러나 내가 본 가장 효율적인 팀은 Wyse 터미널을 가진 Perl 사람들 그룹이었습니다. 이것은 1990 년대 후반 대학교의 오프 슈트 샵으로, 공간 그리드 소프트웨어 (기본적으로 계산)를 작성하고있었습니다. 그러나 그들은 비교적 강력한 후기형 RS / 6000과 대화하고있었습니다.

이벤트에 관심을 더하기 위해 맹인 프로그래머가있었습니다. 나는 깊은 감명을 받았다.

대체 텍스트


3
맹인 프로그래머? 가능합니까?
WernerCD

1
@WernerCD, 나는 오늘도 여전히 내 머리 속의 코드 줄을 추적하는 데 필요한 정신력을 구상하려고합니다.
Jé Queue

3
예, 우리 대부분은 서버 소프트웨어를 작성하고 있습니다 ... +1
goodguys_activate 3:22에서

@ MakerOfThings7, 내 로컬 컴퓨터를 통해 더 많은 서버 하드웨어를 제공하고 필요한 위치에 $를 지출하십시오 (그러나 큰 모니터를 제공하십시오 :)) DC.
Jé Queue

4
시각 장애인 프로그래머가 점자 디스플레이를 사용할 수 있습니까?
Antsan

5

이것은 나쁜 생각은 아니지만 개발자가 빠른 프로그래밍 환경을 갖기를 원합니다.

프로그래머에게 빠른 개발 상자와 테스트를위한 느린 상품 상자 (아마도 가상)를 제공하여이를 구현할 수 있습니다.

VS 빌드 프로세스를 약간 조정하면 원격 디버깅을 통해 테스트 상자에 배포 할 수 있습니다.

코더가보다 효율적인 코드를 개발하도록하는 다른 방법이 있습니다. 예를 들어 단위 테스트에 성능 및 메모리 사용 목표를 포함시킬 수 있습니다. 메모리 사용 예산을 설정하는 것도 탁월한 목표입니다. 또한 HTML 코드에 대한 페이지 가중치 예산을 설정합니다.


5

문제는 개발자가 빠른 컴퓨터에서 비효율적 인 코드를 작성하는 것이 아니라 측정해야 할 성능 지표를 정의하지 않았다는 것입니다.

제품 요구 사항의 일부로 필요한 고객 경험을 바탕으로 모든 컴퓨터에서 측정 할 수있는 특정 대상을 정의해야합니다. 컴퓨터를 다른 유형의 컴퓨터와 연결할 수있는 많은 웹 사이트 (Check SpecInt)가 있습니다.

여러 가지 이유로 좋습니다. 지원되는 최소 하드웨어를보다 쉽게 ​​정의 할 수 있으므로 고객 불만 수를 제한 할 수 있습니다. 대부분의 소프트웨어는 대부분의 컴퓨터에서 실행되는 것을 알고 있으며 성능 문제 일뿐입니다. 합리적으로 수용 가능한 성능을 가지고 고객 불만을 제한 한 다음 고객이 전화를 걸 때 벤치 마크를 사용하여 실제로 문제가 있는지 또는 고객이 제품 작동 방식에 만족하지 않는지 확인할 수 있습니다.


5

개발을 위해 컴퓨터 속도가 느리면 코드 속도가 빨라지지만 가격이 비쌉니다. 이론적 근거는이 첫 번째 손을 경험했다는 것입니다. 통근 시간이 길고 기차에서 일할 넷북을 구입했는데, 넷북은 지난 5 년 동안 구입 한 컴퓨터보다 느립니다. 모든 것이 너무 느리기 때문에,이 넷북에서 무언가가 참을 수 없을 정도로 느리면 매우 빨리 봅니다. 나는 항상 느린 지점을 훨씬 더 빨리 알고 있습니다 (항상 벤치마킹 할 필요가 없습니다). 넷북으로 작업하면서 실제로 개발 방식이 바뀌 었습니다.

즉, 나는 특히 전문가 환경에서 이것을하는 것을 옹호하지 않습니다. 첫째, 그것은 사기를 피우고있다. 거의 모든 사람들이 그 아이디어가 말이되었다는 사실은 프로그래머가 그 아이디어에 나쁜 ​​반응을 보인다는 것을 보여 주지도 않습니다.

둘째, 모든 것을 느리게하는 것은 빠른 기계 (1 분 소요)에서 할 수있는 일이 게으른 등으로 인해 느린 기계에서는 더 이상 실제로 할 수 없다는 것을 의미합니다. 인센티브의 문제입니다.

마지막으로, 생성 된 코드는 더 빠를 수 있지만 거의 확실히 생성하는 데 시간이 더 걸립니다.


+1 그러나 몇 가지 점에 동의하지 않아야합니다. 또한 넷북을 구입했지만 속도가 실제 문제가 아니라 작은 화면 크기라는 점에 주목했습니다. 1GHz는 이동중인 소규모 프로젝트에 충분히 빠르지 만 1024x600은 너무 작습니다.
Joe D

4

포인트 1, 아니요! Studio는 알맞은 시스템에서 실행되도록되어 있으며 각 버전마다 요구 사항이 더욱 강력 해졌습니다. 인텔리전스를 켜고 단일 코어 비 HT 상자를 사용하는 경우 실제로 일부 스튜디오 버전을 잠글 수 있습니다.

# 2를 지적하기 위해 테스트 프로젝트에는 일부 리소스를 조절할 수있는 몇 가지 기능이 있습니다. 그들은 완벽하지는 않지만 거기에 있습니다. VPC 또는 사양이 낮은 VM 이미지도 상당히 잘 제한됩니다. 나는 사용자가 요청한 기능의 의미를 볼 수 있도록 때때로 테스트를하기 위해 나쁜 기계에 앉아있게했습니다.


4

아니, 실제로 많은 테스트를 수행하지 않기 때문에 더 많은 버그가 발생하고 프로파일 러와 같은 추가 도구를 사용하지 않습니다. 게임 개발 또는 그래픽 샵 인 경우 그래픽 가속 하드웨어를 포함하여 최고의 머신을 제공하고 VM 내부에서 테스트하도록합니다. 필요에 따라 VM 사양을 확대 또는 축소 할 수 있습니다.


+1 : 실제로 많은 테스트를 수행하지 않기 때문에 더 많은 버그가 발생하고 프로파일 러와 같은 추가 도구를 사용하지 않습니다. -좋은 지적이야 느린 개발 시스템과 관련된 기회 비용을 잊지 마십시오.
Jim G.

4

나는 이것이 흥미로운 질문이라고 생각하며, 나는 "아니오"로 빨리 가지 않을 것이다. 제 의견은 우리가 어떤 종류의 개발 팀에 대해 이야기하고 있는지에 달려 있습니다. 예 : 연례 ICFP 프로그래밍 콘테스트에 참가하는 그룹을 이끌고 있다면 HPC 클러스터에서 적은 개발 시간이 지난 후에도 좋은 결과가 있다고해서 반드시 찾은 솔루션이 좋은 것은 아닙니다. 과학적 또는 수치 적 알고리즘을 작성하는 경우에도 마찬가지입니다. 64MB의 메모리가있는 구형 AMD Duron 600 MHz에서는 작업 수행 방식에주의를 기울여야하며, 이는 일부 설계에도 영향을 줄 수 있습니다 선택.

다른 한편으로, 똑똑한 프로그래머 / 과학자 / 무엇을 조심해야하더라도. 그러나 컴퓨터가 전혀없고 종이에 메모를해야 할 때 가장 좋은 코드를 적어 두는 것을 알게되었습니다. IDE가 꼭 필요한 경우에는 거대한 프레임 워크가 포함 된 대규모 프로젝트에는 적용되지 않을 수 있습니다.

한 가지 확실한 점은 빠른 기계와 즉각적인 좋은 결과로 인해 (나쁜) 프로그래머가 망가졌으며 우리가 컴퓨터에서 발견하는 쓰레기의 원인 중 하나 일 수 있습니다.


5
나중에 무엇을 말해 - 정말 좋은 컴퓨터를 구입, 나는 ... :) 나중에로 교환 할 수 있습니다
제정신 Wonko

4

8 코어 8G 머신 (완전한 정리 빌드)을 구축하는 데 약 1 시간이 걸리는 패키지를 작업합니다. 또한 테스트 한 비교적 저렴한 노트북이 있습니다. 로우 엔드 랩톱은 하루 동안 하루에 두 번 전체 빌드를 관리하지 않습니다.

랩톱에서 일부 고의적 인 테스트를 수행하여 빠른 컴퓨터에서 생산성을 높이거나 랩톱에서 모든 빌드를 수행해야합니까?

이것들은 숫자가 아니라는 것을 명심하십시오.

일반적으로 매일 클린 빌드를 수행 할 필요가 없다는 (단일 모듈에서 많은 테스트를 수행 할 수 있음) 리깅 된 데모이지만 부분 빌드조차도 컴파일 / 링크 시간의 차이가 거의 있습니다 .

따라서 실제 문제는 느린 컴퓨터에서는 일반적인 빌드가 커피 한 잔을 마시기에 충분할 정도로 길지만, 빠른 컴퓨터에서는 작은 커피 만 마실 수 있습니다.

작업을 완료한다는 관점에서 저는 빠른 컴퓨터에서 개발하는 것을 선호합니다. 마감일을 훨씬 더 확실하게 맞출 수 있습니다. 반면에 경영진이 느린 컴퓨터에서 개발을하게되면 더 많은 웹 브라우징을하거나 최소한 책을 읽게 될 것입니다.


일반적으로 말하면 빌드에 시간이 오래 걸리는 것은 무엇입니까? CPU 바운드입니까, 디스크 바운드입니까 (병목 현상이 무엇입니까) TFS와 같은 것이 빌드를 수행 한 경우 이것이 문제가됩니까?
goodguys_activate 4

1
커피 한 잔 마시려면 반나절이 걸립니까? 정부를 위해 일해야합니다.
finnw

느린 시스템에서 I / O가 바인드되었습니다. 고속 시스템에서는 때때로 I / O가 바인드되지만 CPU 병목 현상이 발생합니다. 현재 빌드 시스템은 한 번에 하나 이상의 lib에서 작업하는 것을 좋아하지 않으므로 주어진 하위 프로젝트에서 컴파일 할 파일이 8 개 미만일 때 일부 CPU 및 I / O가 바닥에 남아 있습니다. 커피는 더 빨리 마실 수 있지만 섭취를 제한하려고 노력하므로 더 빨리 마신 경우 다른 유휴 시간 활동이 필요합니다.
줄무늬

3

흥미롭게도 나는 우리가 이것을 시작한 스타트 업에서 일했습니다. 나는 그것이 실제로 꽤 잘 작동했다고 생각하지만, 우리가 처한 특정 상황 때문에 만 가능합니다. 클래스 자동 다시로드가 실제로 올바르게 작동하는 mod_perl 상점이었습니다. 모든 개발자는 vim을 선택한 IDE로 사용했거나 일부 원격 편집 소프트웨어를 사용했습니다. 최종 결과는 코드 컴파일 / 리로드 등을 기다리는 동안 시간이 거의 손실되지 않았다는 것입니다.

기본적으로, 나는이 아이디어 IFF가 모든 개발자의 개발주기에 미미한 영향을 미치며 코드의 런타임 작업에만 영향을 미칩니다. 코드가 어쨌든 컴파일, 전처리 등이라면 개발자가 작업하는 "버그 수정; 테스트; 다음"루프에 시간을 추가하고 있습니다.

대인 관계 측면에서 사람들은 느린 서버를 사용 하도록 강요 받지 않았지만 느린 서버를 사용했다면 자체 유지 관리 또는 설정을 수행 할 필요가 없었습니다. 또한이 설정은 처음부터 존재했으며, 기존 개발 팀에 판매하려고한다고 상상할 수 없습니다.

원래 질문을 다시 읽은 후에 저를 영원히 두려워하는 것은 프로덕션 환경과 다른 개발 환경이라는 것입니다. 개발자 워크 스테이션에 영향을 미치지 않으면 서 런타임에 장애를 일으킬 수있는 코드 실행에 VM을 사용하지 않는 이유는 무엇입니까? 최근에 나는 VirtualBox를 사용 / 사랑했습니다.


3

나는 여기서도 트렌드를 털어 놓을 것입니다.

일화 : 나는 286 대의 컴퓨터를 486-es로 업그레이드 한 네덜란드의 소프트웨어 개발 회사에서 일했다. 몇 주 안에 모든 사내 라이브러리의 성능이 50 % 떨어졌고 버그가 증가했습니다 ... 약간의 연구에 따르면 사람들은 더 이상 디버깅 프로세스 중에 코드 자체를 생각하지 않고 연속적인 코드를 '빠른'방법으로 선택했습니다. 컴파일-> 테스트-> 수정 (코드) 등 사이클.

관련 : 미국에서 같은 회사의 자회사를 시작할 때 러시아 프로그래머를 채용했습니다. 기능이 적거나 기능이 적은 PC에 익숙하고 훨씬 효율적인 코더였습니다.

나는이시기가 다르고 리소스가 오늘날보다 훨씬 부족하다는 것을 알고 있지만, 하드웨어 분야에서 이루어진 모든 진보와 함께, 모든 결과가 앞으로 나아갈 것 같다는 사실은 결코 놀라지 않을 것입니다. 더 높은 최소 사양을 요구하는 더 빠른 프로그래밍에 의해 부정

따라서 ... 프로그래머는 'Average Joe'컴퓨팅 성능 및 하드웨어 사양을 초과하지 않는 컴퓨터에서 응용 프로그램을 테스트해야한다고 생각합니다.


7
기조 연설은 "테스트"입니다. 라이브 시스템은 뚱뚱한 부풀린 IDE를로드 할 필요가 없으며 전용 하드웨어가 아닌 로컬로 백 엔드를 실행하고 메일, 사무실 등을 실행해야합니다. 개발자를 불러 오기 위해서는 고급 컴퓨터가 필요합니다 오늘날 대부분의 언어로 환경.
Bill Leeper

3

하드웨어는 개발 시간보다 비용이 적게 듭니다.

대부분의 병목 현상은 클라이언트 PC가 아닌 데이터베이스에 있지만 개발자보다 느린 컴퓨터에서 테스트하는 것은 아닙니다. 테스트 도구를 사용하여 최적화를 테스트하십시오.


3

절대적으로하지. 프로그래머에게 구매할 수있는 최고의 노트북 돈, 원하는 키보드, 여러 개의 큰 화면, 개인 사무실, 전화 없음, 무료 청량 음료, 원하는 모든 책 (관련), 주요 기술 회의에 대한 연간 여행 및 당신은 좋은 결과를 얻을 수 있습니다. 그런 다음 상한 및 하한 하드웨어 / 소프트웨어 / 브라우저 / 대역폭 조합을 테스트하십시오.


2

이것은 흥미로운 생각입니다 (개발자에게 느린 컴퓨터를 주면 더 최적화 할 수 있습니다).

그러나이 솔루션은보다 나은 방식으로 구성됩니다. 프로그램 요구 사항에 응답 시간을두고 테스트에 사용할 수있는 저가형 시스템을 갖추십시오.

또한, 정말 위스-뱅 컴파일러 / 언어가 있다면, 코드를 생성하고 가장 좋은 코드를 선택하는 다른 방법을 고안 할 수 있습니다. 그것은 더 빠른 컴퓨터에 의해서만 도움이 될 것입니다.


2

다른 사람들은 일반적으로 개발자가 빠른 기계를 원한다고 응답했습니다. 동의한다. RAM을 건너 뛰지 마십시오. 가능한 한 많은 메모리를 원합니다. 일부 빌드 프로세스는 디스크 사용량이 매우 높습니다.

제거하려는 고려 사항은 빌드 드라이브의 바이러스 백신입니다! 그것은 단지 속도를 늦추고 매우 강한 속도 저하 요인이 될 수 있습니다.

가능하면 개발자가 Linux에서 개발하도록 할 수 있습니다. 이 도구는 모든 종류의 추가 작업 (파일에 무언가를 grep하는 등)에 훨씬 좋습니다. 이것은 또한 안티 바이러스를 제거합니다.


빠른 하드 드라이브의 이점을 잊지 마십시오 : codinghorror.com/blog/2009/10/…
Jim G.

2

직장에서 내 Macbook Pro는 몇 살입니다. Linux와 Windows (IE quirks 테스트) vms와 몇 가지 웹 브라우저와 터미널이 열리면 OSX 회전 휠이 많이 나타납니다. 내가 회전 할 때 내가하는 일을 추측하고 앉아 기다립니다. 이 경우 느린 기계는 생산성을 저하시킵니다.


2

많은 애플리케이션에서 문제는 개발자가 "완료"되기 전에 실제 데이터 세트로 테스트하도록하는 것입니다. 대화식 응용 프로그램의 경우 기본 테스트 시스템 / VM이 필요합니다.


2

느린 Windows95 컴퓨터에서 작업하며 Ford 및 JavaScript에서 MindForth 인공 지능을 효율적으로 작성할 수 있습니다.


2

프로그래머에게 좋은 하드웨어를 가져와야하는지 묻는 것은 뚱뚱한 사람에게 음식을 좋아하는지 묻는 것과 같습니다. 나는 이것이 주관적인 교환이라는 것을 알고 있지만 여전히 ... 우리에게 물어볼 가치가있는 질문입니까? :피

그것은 물론 대다수에 동의한다고 말했다 : NO .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.