내가 개발하고 싶은 품질은 더 간결한 코드를 작성하는 것입니다. 적어도 내 의견으로는 더 간결하게 작성하면 코드에 버그를 추가 할 수있는 기회가 적습니다. 다른 코드를 읽는 것이 더 쉽습니다.
내 질문은 그것이 경험과 함께 제공되는 것이거나 그 품질을 개발하기 위해 명시 적으로 할 수있는 것입니까?
내가 개발하고 싶은 품질은 더 간결한 코드를 작성하는 것입니다. 적어도 내 의견으로는 더 간결하게 작성하면 코드에 버그를 추가 할 수있는 기회가 적습니다. 다른 코드를 읽는 것이 더 쉽습니다.
내 질문은 그것이 경험과 함께 제공되는 것이거나 그 품질을 개발하기 위해 명시 적으로 할 수있는 것입니까?
답변:
전체적으로 시간과 경험이 함께 제공되는 것이지만, 더 간결한 언어로 작업하면 일반 품질의 작업 언어로 품질이 향상 될 수 있습니다.
확실히 1 ~ 2 년 후에 루비와 함께 일한 후에 C #이 훨씬 더 많은 것을 알았습니다. 함수형 프로그래밍을 더 잘 이해하려면 (진정한 야망) 아마도 더 많은 것을 취할 것이라고 생각합니다.
또한 같은 두 줄을 두 번 이상 자신의 방법으로 분할하는 경우 도움이 될 수있는 몇 가지 지침이 있습니다. 그것은 간단한 지침이지만 코드 라인과 잘라 내기 및 붙여 넣기 프로그래밍을 빠르게 줄이며, 우리 대부분은 때때로 유죄입니다.
상속을 이해하면 부모 클래스에 공통 기능을 제공하여 다른 장소에서 동일한 코드를 반복하여 절약 할 수 있습니다. 이것은 원칙적으로 명백하지만 사람들이 실제로 놓치는 일이 종종 있습니다.
응용 프로그램에서 적은 코드를 작성 하는 것과 코드 를 적게 사용 하는 것에는 차이가있을 수 있습니다. 때로는 코드 생성을 사용하여 반복하지 않아도되므로 몇 줄의 코드 만 작성하면 다른 코드가 많이 생성됩니다. -그것은 당신에게 많은 레버리지를 줄 수 있습니다. Rails 또는 Entity Framework와 같은 도구가 얼마나 유용한 지 파악하기 위해이 점에서 수행하는 작업을 살펴보십시오. 그래도 그 필요성에 대해 분명히하고 자신의 코드 생성을 롤링하는 것에 대해 두 번, 세 번, 네 번 생각하십시오-야 그니 지옥에 빠질 수 있습니다.
언어, API 및 도구를 이해하십시오. 다시 이것은 명백한 것처럼 보이지만 수년 동안 API에서 상속 받았거나 언어 기능을 사용하여 몇 시간 동안 읽는 것을 깨닫게되었습니다. 내가 작업하고있는 API에 대한 설명서를 사용하면 나중에 코딩하거나 디버깅하는 데 많은 시간이 절약됩니다. 마찬가지로, 작업하는 대부분의 플랫폼에는 결정 성이 있습니다. 예상대로 작동하는 방법을 배우면 인생이 훨씬 쉬워집니다. 작업중인 플랫폼에 대한 최소 저항 방향을 찾는 데 시간을 투자하면 작업을 훨씬 더 잘 수행 할 수 있습니다.
무언가 더 좋은 방법이 있는지 궁금하다면, 아마도 더 좋은 방법이 있는지 알아내는 것이 좋습니다.
적은 코드를 작성하는 좋은 방법 중 하나 는 휠을 다시 발명하지 않고 가능한 경우 기존 소프트웨어 구성 요소를 사용하는 것입니다.
사람들이 왜 자신의 ORM, 자체 로깅 엔진, 자신의 UI 구성 요소 또는 자신의 모든 작업을 수행했는지 물었을 때 얻을 수있는 일반적인 대답은 다음과 같습니다.
그러나 우리는 더 낫다
나는이 진술이 대부분의 경우에 맞다고 생각하지만 ROI 에 대한 부정적인 영향 은 대부분의 경우 매우 높습니다. 엄마는 최고의 요리를 잘합니까? 그러나 엄마에게 집에 와서 매일 준비 해달라고 요청할 수는 없습니다.
그렇기 때문에 개발자가 자신의 선택에 따른 재정적 영향에 관심을 가져야한다고 생각합니다. 그들 중 일부는 다음과 같습니다.
이러한 구성 요소 공급 업체는 직접 구축, 유지 관리 및 개선하기 위해 지불 한 금액의 일부를 위해 근무하는 확장 된 팀이라고 생각합니다.
자아 만족을 극대화하기 위해 노력하는 것보다 회사 전체가 ROI 를 극대화하는 것이 좋습니다.
제 생각에는 몇 가지 방법으로 더 적은 코드를 작성할 수 있습니다.
당신은 그것을 필요로하지 않습니다 . 아직 필요하지 않은 것을 코딩하지 마십시오. 요구 사항 만 코딩하십시오. 이런 식으로 우리는 작성하는 데 필요한 코드를 줄입니다.
스스로 반복하지 마십시오 . CMS, 프레임 워크 또는 타사 라이브러리를 사용하는 것이 DRY 원칙을 적용하는 한 가지 방법이라고 생각합니다.
추상화 . 마지막으로 추상화 프로그래밍은 코드를 크게 줄일 수 있습니다. 코드를 추상화하면 코드를 재사용 할 수있는 가능성이 높아 지므로 중복성이 줄어 듭니다.
프로그래밍 언어에 대한 이해를 넘어서, 나는 문제에 대한 이해와 좋은 해결책을 찾는 것이 그것과 관련이 있다고 생각합니다. 대부분의 문제에는 많은 해결책이 있지만 모든 문제가 최적의 것은 아닙니다. 다른 도로를 통해 도시 A에서 도시 B로 운전할 수 있습니다. 하나는 두 시간이 걸리고 다른 하나는 두 배가 걸릴 수 있습니다. 프로그래밍에서도 마찬가지입니다. 언어를 잘 아는 사람도 있지만, 두 페이지의 코드를 사용하는 솔루션이 나올 수도 있지만 다른 사람은 코드 크기의 1/4로 구현할 수있는 솔루션을 찾아 낼 것입니다. 나는 수년에 걸쳐 이것을 많이 보았다.
문제를 잘 이해하고 있는지 확인하십시오. 그것을 분석하고, 해결책을 제시하고, 장단점을 평가하십시오. (물론 " 's'가있는 해결책은 문제마다 크게 다를 수 있습니다. 일반적으로 여기에서 말하면됩니다.) 그런 다음 선택한 해결책의 구현이 있습니다. 언어 (및 해당되는 경우 프레임 워크)에 대한 이해가 시작됩니다.
다른 모든 고난과 마찬가지로 문제가 있음을 인정하지 않으면 해결책을 찾지 않을 것입니다. 적은 코드의 모양을 알게되면 경험이 중요한 요소가됩니다. 코드를 다시 방문 할 때 코드를 재사용하거나 더 적은 코드로 리팩터링 할 수 있는지 판별해야합니다. Microsoft는 Windows 2000에서 두 번 스풀링하지 않아 인쇄 속도를 향상시킬 수있었습니다 (Microsoft 직원의 무료 데모 중 하나에서 인용).