프로그래머는 언어와 프레임 워크를 선택할 때 얼마나 많은 자유를 가져야합니까? 못하고 코드를 재사용 할 방법이

저는 주로 C #을 지향하는 회사에서 일하기 시작했습니다. 우리는 Java와 JRuby를 좋아하는 소수의 사람들이 있지만 C #과 같은 대다수의 프로그래머가 있습니다. 웹 애플리케이션 구축 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하기 때문에 채용되었습니다.

최근에 짧은 시간에 많은 작업을 수행하는 데 중점을 둔 웹 응용 프로그램을 구축하는 프로젝트를 시작했습니다. 소프트웨어 책임자는 레일 대신 mvc4를 사용하도록 지시했습니다. mvc4를 모르고 C #을 모르고 웹 응용 프로그램 서버와 프런트 엔드 UI를 만드는 유일한 사람은 예외입니다.

mvc4를 사용하는 대신 이미 잘 알고있는 프레임 워크를 사용하는 것이 합리적이지 않습니까? 결정의 이유는 기술 책임자가 Jruby / 레일을 알지 못하고 코드를 재사용 할 방법이 없기 때문입니다.

반론 :

  • 그는 코드에 기여하지 않으며 솔직히이
    프로젝트에 필요하지 않습니다 . 따라서 JRuby / 레일을 알고 있는지 여부는 중요하지 않습니다.

  • JRuby가 코드를 가져올 수있는 많은 Java 앱이 있기 때문에 실제로 코드를 재사용 할 수 있습니다. 실제로 그는 JRuby on Rails 앱에서 Java 라이브러리를 실행하는 대신 Java 라이브러리를 C #으로 변환하는 데 필요한 리소스를 제공했습니다. 그가 자바 나 JRuby를 좋아하지 않기 때문에

나는 많은 웹 응용 프로그램을 만들었지 만 익숙하지 않은 것을 사용하면 약간의 스핀 업이 발생하고 익숙한 짧은 시간 내에 멋진 응용 프로그램을 만들 수 없습니다. 이것은 좋을 것입니다; 이 분야에서 새로운 기술을 배우는 것이 중요합니다. 문제는이 프로젝트를 위해 많은 일을 빨리 끝내야한다는 것입니다.

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까? 회사에 따라 다릅니 까? 우리 회사가 빨거나 이것이 정상으로 간주됩니까? 녹색 목초지가 있습니까? 이 방법을 잘못보고 있습니까?



답변

팀장과 이야기하고 다음과 같이 말해야한다고 말하고 싶습니다.

나는 너희들이 .NET 상점이라는 것을 알고 있지만 실제로 Java / JRubyRails 기술을 위해 고용 되었다. 이미 알고있는 도구를 사용 하여이 새로운 응용 프로그램을 X 시간 내에 구축 할 수 있습니다 . 원하는대로 C # / mvc4를 배울 수 있지만 >> X 시간이 걸립니다. 무엇을 원하세요?

이것은 대 “-hired-에 대한 (assumedly) – 당신 – were- 기술”의 문제 제기 “기술을 – 당신이 – 필요 – 이제”또한 당신이 새로운 기술을 배울 의향이 있음을 보여 주지만 있다는 것이다 걸릴 이 도구 세트를 처음 사용하면 새로운 응용 프로그램을 개발하는 데 더 오래 걸립니다. 그리고 당신은 당신이 새로운 기술을 배울 의향이 있음을 보여주고 싶다. 새로운 기술을 익히지 않는 것이 기술이 더 이상 필요하지 않을 때 고용을 종료 할 수있는 좋은 방법입니다.

끝에 당신의 질문에 관해서 :

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까? 회사에 따라 다릅니 까? 우리 회사가 빨거나 이것이 정상으로 간주됩니까? 녹색 목초지가 있습니까? 이 방법을 잘못보고 있습니까?

일반적으로 회사에 따라 다릅니다. 만약 회사가 MS 툴을 구매하고 VisualStudio 플랫폼과 .NET 프레임 워크에서 모든 것을 표준화한다면, 한 개발자가 Linux와 C 사용을 고집한다면 매우 어색 할 수 있습니다. 회사가 편집자에 대해 덜 까다로운 경우 (예 : 출력이 동일한 한 개발자가 Vi 대 Emacs를 선택하도록 허용하는 경우) 예외가있을 수 있습니다. 일부 회사는 개발자가 Windows와 Linux를 선택하도록 허용하지만 그들이 사용하는 언어는 두 OS 모두에 대해 매우 우수한 지원과 런타임을 제공합니다.

왜 회사가 이것을 하는가? 일관성이 한 가지 이유입니다. 응용 프로그램이 다양한 개발자가 선호하는 언어 / 프레임 워크로 빌드되고 다른 도구로 빌드되고 매우 다른 시스템에서 테스트 된 바이너리의 패치 워크 인 경우 디버깅이 매우 어려울 수 있습니다. 모든 개발자가 대부분 유사한 설정 작업을하는 경우 이러한 종류의 문제가 해결됩니다.

귀하의 경우, 귀하는이 회사에서 비표준 기술로 일하도록 고용 된 것 같습니다. 이것은 나에게 이상하게 보이며, 당신이 그것을 원 했는지 에 관해 당신을 고용 한 사람과 이야기하고 싶을 수도 있습니다 .


답변

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까?

그들이 당신의 팀에 영향을 미치지 않을 때.

이 방법을 잘못보고 있습니까?

물론.

예, 마감 시간이 짧습니다. 예, Rails에서 더 빨리 할 수 ​​있습니다. 그러나 회사는 전체적으로 응용 프로그램을 배포하고 유지 관리해야합니다. 회사에 C # 개발자가 안정적인 경우 C # 앱을 유지 관리하는 것이 더 저렴할 것입니다.

귀하의 DBA와 다른 관리 직원은 아마 스택에 익숙하고 배포하고 업데이트하는 장소에 프로세스가 스택. 코드를 더 빠르게 수행 할 수 있더라도 전문 웹 앱을 시작하고 실행하는 데 필요한 모든 오버 헤드를 고려하면 시간이 더 오래 걸릴 수 있습니다.

앱을 작성하는 것보다 앱을 유지 관리하는 데 더 많은 시간을 할애해야합니다. 그 비용을 최적화하십시오.


답변

  1. “새로운”기술에 적응할 수있는 능력 때문에 고용 된 것 같습니다. 그런 점에서 C #도 다르지 않습니다. 새로운 것을 배울 기회를 갖고 싶지 않습니까?

  2. ASP.NET MVC는 여러면에서 Ruby on Rails와 매우 유사합니다.

  3. 당신은 달팽이의 속도에 영원히 있지 않을 것입니다. 이미 ROR을 알고 있다면 ASP.NET MVC가 도움이 될 것입니다. 요령은 C #을 배우는 것입니다.


답변

Java / JRuby를 유지하기위한 인수

당신의 상사가 당신이 생산하기를 원할 수도 있습니다. 그들은 당신을 회사에 가치를 더할 수 있도록 당신을 고용했습니다. 익숙하지 않은 프레임 워크를 사용하도록 강요하면 다음과 같은 결과 초래할 수 있음을 이해해야합니다 .

  1. 더 느린 속도로 결과 생성
  2. 저품질 코드 생성

최고의 프로그래머도 새로운 언어 / 프레임 워크로 워밍업 시간이 필요합니다.

MVC4 및 C # 학습을위한 인수

새로운 언어를 배우는 것이 좋습니다. 배우는 언어 / 플랫폼이 가까운 미래에 사라질 경우 프로그래머로서의 기술에 투자하는 것은 위험에 지나지 않으며 Microsoft의 문제로 인해 문제가되지는 않습니다. C #과 MVC는 둘 다 최근에 업데이트되어 파이프 라인에 더 많은 업데이트가있었습니다.

개인적으로,보다 균형 잡힌 개발자가 되더라도 이러한 상황에 처할 수 없습니다. 가장 좋은 부분? 상사는 이런 것들을 배우기 위해 돈을 지불 할 것입니다. 이는 더 많은 돈을 벌 수 있도록 돈을 지불한다는 의미입니다.

결론

이 싸움에서 이길 수는 있지만 불만을 품은 동료들과 계속 일하게 될 것입니다. 각각의 장단점을 관리자에게 설명하면 다른 쪽 끝이 더 행복해질 것입니다.


답변

개발자는 어떤 시점에서 도구를 선택할 수 있어야합니까?

상기 개발자가 소프트웨어 리더 인 경우.

확실히 생산성에 대해 염려 할 경우 다른 툴킷을 사용하는 경우도 있지만 그럴 수도 있습니다. 현재 아키텍처와의 호환성, 유지 관리, 라이센스 문제 등에 대한 우려 때문에 리드가 특정 툴킷을 사용하기를 원하는 정당한 이유가있을 수 있습니다.

BTW, 문구

짧은 시간에 많은 일을 처리하는 데 중점을두고

소프트웨어 산업에서 다른 어떤 것보다 더 많은 가슴 앓이와 신체 상해에 대한 책임이 있습니다.


답변

JRuby 또는 Java 프로그래머로 고용되었다고 말하는 것은 아닙니다.

“[B] 웹 애플리케이션을 개발 한 경험이 많고 JRuby on Rails 또는 nodejs와 같은 최신 기술에 의존하고 있기 때문입니다.”

다시 말해, 그들은 웹 경험새로운 기술을 배우려는 의지를 좋아합니다 .

이제 그들은 웹 경험 을 사용 하고 새로운 기술배우도록 요구하고 있습니다.

문제는 그렇게 하시겠습니까?


답변

소프트웨어에서 가장 큰 비용은 유지 관리에 있습니다

가장 큰 비용 (80 %)이 소프트웨어 유지 관리 비용이라는 것을 읽었습니다. 초기 개발은 총 개발 비용의 20 %에 불과합니다.

나는 영어가 아닌 모국어로 코드와 주석을 개발 한 개발자에 대한 사례를 읽었고 다른 팀원이 코드를 향상시키고 유지하려고 할 때 언어 (모든 프로그래밍 언어가 아님)가 외국이기 때문에 불가능한 옆에있었습니다. 그들에게.

마찬가지로, 원하는 프로그래밍 언어로 코드를 개발하면 다른 팀 구성원이 유지하기 어려울 수 있습니다.

솔루션 : 페어 프로그래밍

필요한 프로그래밍 언어를 알고 있고 함께 일할 수있는 다른 사람과 고용주를 고용하도록 요청하십시오. 서로에게서 배울 수 있으며, 어느 쪽이든 회사를 떠나면 다른 쪽이 코드를 알게됩니다.

“쌍 프로그래밍”에 대한 Wikipedia 기사 :
http://en.wikipedia.org/wiki/Pair_programming