2010-03-05 5 views
4

저는 일하는 곳의 한사람 상점입니다. 거기서 시작했을 때 나는 컴퓨터 과학과의 학사 학위에서 경험이없고 학사 학위를 받았습니다. 그뿐 아니라 회사의 첫 프로젝트는 훌륭한 디자인 원칙을 이해하는 것뿐만 아니라 새로운 언어를 배우는 것과 관련이 있습니다. 말할 필요도없이, 처음에는 코드가 엉망이었고 그 이후로 추가 한 모든 새로운 기능은 그 모든 진절머리 난 코드 위에 해킹당했습니다. 내 소프트웨어가 잘 작동한다는 것은 나에게 놀라운 일이다.새로운 프레임 워크를 배우는 것을 피하기 위해 여분의 코드 작성하기

나는 직장에서 TON을 배웠고, 나중에 코드를 읽을 수있게 만들기 위해 코드를 리팩터링하려고합니다. 앞으로의 신규 채용으로 다이빙을하고 도와 줄 수 있습니다. 나는 또한 함께 물건을 해킹하지 않고도 새로운 기능을 추가하는 것을 더 쉽게 만들고 싶습니다. WPF/Silverlight 용 프리즘과 같은 프레임 워크를 배우는 것이 유용 할 것이라고 생각합니다. 그러나 나는 (한 사람 샵 이래로) 거대한 할 일 목록을 가지고 있으며, 꽤 많은 시간이 걸릴 것으로 보입니다. 단지 그것을 사용하는 법을 배우기 위해서입니다.

이제 프리즘에 대해 내가 배운 기본 원리를 알고있는 곳으로 읽어 보았습니다. 게다가, 프리즘이 사용되는 것과 동일한 것들을 수행하는 코드를 작성하는 것이 어렵지 않을 것이다. 나는 실제로 그것을 이미 어느 정도까지 해왔고, 모듈화를 더 잘 진행하고 있습니다.

내 질문은 다음과 같습니다. 내가 필요로하는 것과 더 이상 필요없는 것을 제공하는 인프라 코드를 더 작성해야합니까, 아니면 프리즘과 같은 것을 배우기 위해 시간을 할애해야합니까? 또는 아마도 다음과 같이 질문 할 수 있습니다. 자신 만의 간단한 사용자 지정 솔루션을 작성하는 데 시간을 할애해야합니까, 아니면 필요 이상으로 복잡 할 수있는 풍부하고 방대한 프레임 워크를 파악하는 데 시간을 할애해야합니까? 결정을 내릴 때 고려해야 할 요소는 무엇입니까?

답변

5

필자는 필자가 필요로하는 바로 그 프로젝트를 위해 PHP MVC 프레임 워크를 작성했습니다. 많은 재미와 많은 것을 가르쳐 주었으며 전반적으로 좋은 경험이었습니다. 결코 다시는하지 않을 것입니다. 우수한 보조 산만 프로젝트인데, 이는 프로젝트에서 내 생산성을 크게 저하 시켰습니다.

실제로 많은 인프라는 개발해야하는 인프라의 규모에 달려 있습니다. 1 ~ 2 시간 이상 걸리지 않는 작은 비트 일 경우 바로 시도하십시오. 상당한 시간이 걸릴 경우 다른 사람의 작업을 사용하고 계속 진행하며 프로젝트를 완료하십시오.

2

귀하의 글을 잠시 동안 유지해야하고, 특히 다른 개발자가 유지 관리해야한다면, 표준 프레임 워크를 배우고 통합하는 데 필요한 모든 시간을 보람있게 사용할 수 있습니다.

앱이 작성된 방법에 대한 문서를 제공하고 해당 프레임 워크에 익숙한 개발자가 더 빨리 가져올 수 있습니다. 그것은 작성해야하는 코드의 양을 줄이고 특정 비즈니스 문제에 집중하고 응용 프로그램 작성에 집중하는 데 도움이됩니다.

1

핵심 문제는 프레임 워크를 몇 번 다시 사용하여 유사한 물건을 다시 구현할 때마다 절약 할 수 있는가입니다. 기억해야 할 점은 처음부터 새로 작성한 자료는 테스트를 거쳐 다른 환경 (클라이언트 &c)에 대해 유효성을 검사하고 유지해야한다는 점입니다. "무료" 적극적으로 유지 관리되는 좋은 프레임 워크를 사용합니다.

프레임 워크를 두 번 사용하려는 경우 순 수익은 여전히 ​​처음부터 다시 작성하는 것이 유리하지만 프레임 워크가 몇 가지 경우 이외에 필요한 분야를 다루는 경우 , 프레임 워크를 사용하는 것을 배우는 투자에 대한 수익은 (좋은 것이라고 가정하면 -!) 처음부터 다시 실행하는 것에 비해 이 대단히이 될 것입니다!

1

나는 대학을 졸업했을 때 비슷한 상황이었습니다. 저는 대기업에서 약 1.5 년 동안 소규모 회사에 머무르는 것에 대한 제안을 받았습니다. 내가 배운이 (당신과 다른 사람 다를 수 있습니다)이었다

  1. 바로 학교를 작은 회사에서 일을 할 수있는 멋진 아이디어였다. 나는 당신이 많은 다른 모자를 사용해야하기 때문에 이것을 말한다. 예를 들어 코드를 작성하고, 코드를 테스트하고, 코드를 전개하고, 저장된 procs를 작성하는 등의 작업을 수행 할 수 있습니다. 최종 결과는 개념에서 개념까지 전체 프로세스에 익숙하다는 것입니다. 그 경험은 내가 생각하기에 비판적이다.
  2. 나는 코드 작성을 아주 좋아했습니다. 나는 집에서 운전할 시간과 생산 지원 문제를 다뤄야하는 하루를 생각하고 있습니다. 나는 고객을 지원하고 "일회성"을 쓰는 데 더 많은 시간을 보내고 있었고, 대부분 코드를 작성하지는 않았다.
  3. 큰 회사를 위해 일하는 것은 대학에 대한 나쁜 생각입니다. 대기업에서 일할 때는 특정 역할을 맡기 마련이고 구체적인 경계는 있습니다. 큰 회사 확률을 가진 개발자라면 애플리케이션을 프로덕션에 배포하거나 저장된 procs를 조정하지 않는 것이 좋습니다.
  4. 큰 회사에서 일하는 것은 작은 회사에서 일한 후 좋은 생각입니다. 소규모 회사에서 일하면 코딩하는 것 이상의 것을 배울 수 있기 때문입니다. 그리고 당신이 더 나은 개발자가 될 것이라는 것을 이해한다면.
  5. 좋은 개발자와 협력하면 더 나아질 수 있습니다. 당신이 좋은 사람들의 그룹과 일할 때 당신은 나아질 것입니다. 이것은 각 개발자가 그룹에 가져 오는 특정 기록을 가지고 있고, 모두 서로에게서 배우기 때문입니다. 현재 주로 작업하는 그룹에는 MSBuild 전문가, Silverlight 전문가와 F # 전문가 및 다른 좋은 사람들이 있습니다. 그래서 몇몇 사람들은 MSBuild를 저에게서 배웁니다. 그리고 나는 그들로부터 배웁니다. 좋은 사람과 이야기하면 더 나을 수 있습니다.

그래서 내가 너라면, 거기에 너무 많은 시간을 쓰지 말라. 어쩌면 1 ~ 2 년 후에 재능있는 개발자가있는 곳에서 일자리를 찾을 수 있습니다. 5 년 후에는 더 나은 개발사가 될 것입니다. 나는 나의 움직임 때문에 내가 있다는 것을 압니다.

4

당신이 제공하는 배경 - 대부분은 독학으로 현재 개발을 논의 할 동료가 없습니다 - 다른 라이브러리 및 도구를 확인하십시오. 적어도 코드가 어떻게 디자인되고 문제가 해결 될 수 있는지에 대한 새로운 정보를 얻으십시오. 당신은 당신이 뭔가를 성취했다고 느끼실 수 있습니다 - 그리고 당신은 축하합니다 -하지만 그것은 고원이 아니라 절정입니다.

"내가 너무 많이 있기 때문에 나는 새로운 뭔가를 배울 시간이 없다"- 그게 내가 더 많은 코드에 대한 이론적 근거를 읽을거야. 이것은 경고 기호입니다. 위험한 위치로 이동하고 있습니다. 배울 시간이 없어? 문서화 할 시간 없어? 모든 함의를 생각할 시간이 없습니까? 그럴 권리가 없어? 신입 사원을 양성 할 시간이 없습니까? 하루라고 부를 시간이 없습니까?

프리즘 또는 다른 라이브러리를 학습하여이 문제를 해결할 수는 없지만 잘못된 근거가됩니다.

세 번째로 코드가 다운되었습니다. 유지 관리 할 코드가 많으면 느려집니다. 한사람 신생 기업은 며칠 및 몇 주 동안 하루 수백, 심지어 수천 개의 LOC를 생산할 수 있습니다. 프로젝트와 조직이 커짐에 따라 평균 수십 개의 프로젝트가 생깁니다.

개인적인 경험에 따른 권장 사항 : 프레임 워크가 아닌 불타기 블록을 작성하십시오.프레임 워크는 여러 회사 로고가있는 동일한 응용 프로그램을 계속 만들어야 할 때 유용합니다. 또는 TDWTF의 Alex가 말한 것처럼 the key is in the differences은 유사하지 않습니다.


필자는 코드 작성을 중단하고 싶지 않습니다. 그러나 당신은 상충 관계에 대해 토론하고 있습니다. 당신이 제공 한 정보에서, 나는 새로운 것들을 배우는 것에 가장 큰 비중을 두는 것이 좋습니다.

+0

"할 시간이 없습니까?" - 아참. 감사. +1 – Phil

+0

지평선에서 커다란 악마라고 생각해보십시오 ...;) --- 코드는 완벽하지는 않지만 충분한 코드와 그렇지 않은 코드가 있습니다. – peterchen

1

나는 contrarian : YAGNI (너는 필요 없다)를 할 것이다. 프레임 워크

  • 심하게 설계되어 어떤 경우

    ?
  • 버그가 있습니까?
  • 너무 느립니다?
  • 2 년 후에 달라지며 이전 버전은 지원되지 않습니까?

프레임 워크에 대한 토론에서는 프레임 워크가 훌륭하다고 가정하는 경우가 종종 있습니다. 현실은 프레임 워크가 다른 것과 마찬가지로 다양하고 많은 프레임 워크가 필요하지 않은 것들로 채워지는 경우입니다.

여기에 내가 당신의 더 구체적인 질문에 곰을 희망 몇 가지 조언입니다 :

  • 증가 개선을 계속합니다. 이 접근법을 통해 생산성을 높이고 있으며 당신에게 돈을 지불하고있는 것 같습니다.

  • 자세히 알아보기 프레임 워크에 대해. 또는 여러 프레임 워크. 어쩌면 1 ~ 4 일 안에 작은 파일럿 프로젝트를 시도해 볼 수 있습니다.

  • 프레임 워크를 사용하지 않고 최상의 아이디어를 체리로 골라 내고 자신의 디자인에 채택하기 위해 프레임 워크에 대해 배우는 것은 영광스러운 전략입니다.

  • 프레임 워크를 채택하지 않기로 결정한 경우 나중에 다시 확인하기가 쉽습니다. 프레임 워크를 채택하기로 결정한 경우 나중에 프레임 워크를 보완하는 것이 비용이 많이 듭니다. 매우 비싼 실수를 범할 확률을 줄이기 위해 추가 비용을 미리 지불하는 것이 좋습니다. 내가 가장 연소 한 내 생각

저 아래에서 변경 다른 사람의 코드베이스에 따라입니다. 나는 "내가 작성한 모든 Perl 스크립트가 1 년 후 깨졌습니다"라는 것을이 문제라고 부릅니다. 그러나 저는 집중력이 부족하고 생애에 걸리는 시간과 비교하여 매우 긴 수명을 가진 여러 가지 작은 프로젝트를 작업합니다. 매일 몇 년 동안 함께 작업하는 하나의 큰 프로젝트가 있다면 외부 프레임 워크의 변경에보다 쉽게 ​​적응할 수 있습니다.

0

누가이 도구를 사용합니까?

이것은 모든 문제를 해결할 필요가있을 때마다 스스로에게 묻습니다. 이것이 도구를 개발하는 데 필요한 노력을 평가하는 주요 요인입니다.

큰 프로젝트를 시작할 때 모두 잘 알려진 (프로젝트 범위에서) 유용한 문을 정의합니다. 그 추상화 계층을 확대하기 위해 문제의 주파수, 문제 해결의 중요도, 해결책을 개발하는 노력에 따라 달라집니다.

관련 문제