사려 깊은 코딩

코딩이 기호를 묶는 것 이상인 이유

코드에 대해 이야기하는 코더

Tom은 웹과 네이티브에 대한 열정적 인 개발자입니다. 내가 처음 몇 줄의 코드를 작성하기 시작한 이래로 많은 달이지나 갔다. 영광스러운 "Hello World"순간은 그 이후로 실시간 경고 시스템, 의사의 일상 업무를 지원하는 의료 응용 프로그램, 다중 플랫폼 회의에 이르기까지 훨씬 더 많은 코드 라인을 작성했습니다. 일정 관리 소프트웨어. 저도 그 과정에서 몇 가지를 배웠습니다. 오늘 저는 특히 프로젝트 중반에 집중할 수없는 코딩의 한 측면을 공유하고 싶습니다. 코더의 책임 또는 정확히 말하자면 코더의 코드 레거시에 대해 이야기 해 보겠습니다.

자바 스크립트의 피라미드

건축가의 임무는 새 건물의 기본 레이아웃, 벽, 창문 및 문의 모양 또는 정오에 태양에 비례하는 집의 정렬을 정의하는 것 뿐만이 아닙니다. 이 모든 것 중에서 건축가는 건물이 앞으로 몇 년 동안 견뎌야하고 강풍, 폭우, 추운 겨울, 더운 여름의 잔인한 성격을 견뎌야한다는 것을 알고 있습니다. 건축가가하는 일의 궁극적 인 목표는 건물에 사는 사람들이 안전한 집을 갖도록하는 것입니다. 그것은 그의 작업의 수명에 관한 것입니다. 그 유산에 관한 모든 것입니다.

소프트웨어 개발에서, 특히 스타트 업에서 일할 때 매우 빠른 속도로 움직이는 경향이 있습니다. 새로운 기능을 신속하게 제공하고 시장에서 관심을 끌며 사용자의 관심을 유지하는 것이 중요합니다. 개발 중 초점은 현재 스프린트로 제한되거나 우선 순위가 높은 기능을 최대한 빨리 구현하는 경향이 있습니다.

하지만 코딩을 할 때 모든 초록색 불이 켜지는 테스트 나 기한에 도달하는 것만으로 제한해서는 안됩니다. 일단 야생으로 나가면 일상적인 작업에 의존 할 수있는 인간이 애플리케이션을 사용하게됩니다. 오늘 구축하고있는 프로그램은 내일 남겨두고 남은 유산입니다.

웹을 예로 들어 보겠습니다. NPM을 통해 지금 찾고있는 기능을 제공하는 구성 요소를 찾는 것이 그 어느 때보 다 쉬워졌습니다. 신속하게 설치되고 나머지 코드베이스에 연결됩니다. 그러나 내 응용 프로그램의 수명과 관련하여 타사 종속성이 전체 업데이트 프로세스를 중단시킬 수 있으며, 한 종속성이 다른 종속성이 작동하지 않도록 업데이트합니다. 내가 직접 구현할 것인지, 포크하거나 패키지 관리자에서 직접 설치할 것인지를 결정하는 균형 잡힌 작업입니다.

그러나 타사 공급자의 코드는 괜찮을 수 있습니다. 라이브러리 또는 프레임 워크를 사용하기 전에 몇 가지 요소를 확인하는 것이 중요합니다. 과거의 유지 관리가 얼마나 좋았는지, 현재 활성 기여가 얼마나 많았는지, 향후 변경 또는 개선 사항을 설명하는 로드맵이 있는지, 패키지가 완전히 커뮤니티에서 관리되거나 지원되는지 개발에 도움을주는 스폰서?

외부 코드에서 내 코드베이스로 이동하면서 지속적으로 기억해야 할 점은 목표에 더 빨리 도달하기 위해 개발 중에 코너를 깎지 않는 것입니다. 단기적으로는 유혹적 일 수 있지만 잘못 계획된 코드는 복수를하고 다시 물릴 것입니다. 코드를 작성하는 것보다 더 생각하면 많은 문제를 완화하는 데 도움이됩니다. 여기서 확실한 핵심 요소는 경험이지만, 주니어 개발자도 처음부터 유지 관리 가능한 코드의 중요성을 이해해야합니다. 현재 버그로 이어지는 것은 프로젝트 타임 라인으로 인해 절대 수정되지 않을 수 있으며 해결 방법을 통해서만 해결 될 수 있으며, 코드가 지저분하거나 사용자 경험이 나쁘거나 둘 다로 이어집니다.

기계공의 정신

제가 작성하고 싶은 사려 깊은 코딩의 또 다른 측면은 애플리케이션의 대상인 사용자입니다. 전기 슬라이드 눈금자의 화면 앞에 9 ~ 5 번 앉아 코드 줄을 훑어 보며 할당 된 문제에 집중할 때, 내 모든 작업이 결국에는 일상 업무 중에 부분적으로 또는 완전히 사용하는 사람이 사용합니다. 기술에 익숙하지 않은 사람을위한 앱을 만들 든 다른 개발자를위한 API를 빌드하든 상관 없습니다. 제가 만든 제품은 인체 공학적으로 사용해야합니다.

사용자가 이상하고 대부분 설명 할 수없는 방식으로 앱과 상호 작용할 수 있다는 사실을 직접 경험을 통해 알고 있습니다. 제작자로서 나는 내 서비스의 '의도하지 않은'행동을 거부하는 경향이 있습니다. 이미 많은 시간과 에너지를 투자했다면 더욱 그렇습니다. 그러나 피드백을받을 때 침착 한 마음을 유지하고 필요한 경우 직접 듣도록 강요하는 것은 청중의 실제 실제 사용 행동을 이해하는 데 중요한 역할을합니다.

개발자로서 우리는 코딩 할 때 질서와 통일성의 세계에 살고 있으며, 특별한 종류의 물리와 중력이 적용되고 모든 규칙을 알고 있습니다. 우리가 창조자이자 주민 인 것처럼 포용하고 완전히 몰입 할 수있는 세상입니다. 그러나 피드백, 즉이 세상 외부의 비판에 직면하면 일반적으로 개발자의 거부로 이어집니다. 사용자 보고서 및 옵션을 다루는 방법을 학습하고 개발을위한 관련 입력으로 평가해야합니다. 제가 배운 교훈이며 프로젝트의 모든 단계에서 변화와 피드백을받을 수 있도록하는 데 큰 도움이됩니다.

process.exit ();

요약하면 오늘 작성하는 코드뿐만 아니라 앞으로 사람들이 사용할 코드에 대해서도 생각해보십시오. 최종 제품을 대상 고객의 실제 수요를 반영하여 인체 공학적으로 효율적으로 사용할 수 있도록 프로젝트의 구조 및 구현은 물론 외부 코드 패키지의 사용과 관련하여 신중한 결정을 내립니다. 피드백을 이해하는 것이 중요하며 자랑 스러울 수있는 고품질 제품을 제공하는 데 큰 도움이됩니다.

  • Tom