>  기사  >  프로그래머는 이러한 장애물을 극복했는지 테스트합니다.

프로그래머는 이러한 장애물을 극복했는지 테스트합니다.

-
-원래의
2018-03-06 14:02:541725검색

프로그래머는 이러한 장애물을 극복했는지 테스트합니다.

프로그래머에게 가장 어려운 작업은 코드 작성과 관련이 거의 없습니다. 코딩은 논리적 사고의 실천으로, 프로그래머의 일상 업무 중 다른 작업에 비해 상대적으로 간단합니다. 당신이 아직 평범한 프로그래머라고 생각한다면, 진정한 전문가 반열에 진입하기 전에 다음과 같은 발전의 장애물을 극복했는지 확인하십시오.

1. 무엇을 하고 있는지 설명하세요.

소프트웨어 개발 과정을 설명하는 것은 어려운 일입니다. 프로그래머가 아닌 사람들은 프로그래밍에 대해 많이 알지만 프로그래밍 방법을 모르는 것은 분명합니다. 그들에게 우리의 삶은 어두운 방에서 키보드 앞에 앉아 커피를 마시는 것으로 구성된다.

프로그래머는 이러한 장애물을 극복했는지 테스트합니다.

친구, 가족, 동료 중에서 코딩이 올바른 직업이 아니라고 생각하는 사람들을 만나게 될 것입니다.

2. 소프트웨어 솔루션 시각화

몇 가지 간단한 요구 사항을 기반으로 합니다. 일반적으로 지식이 거의 없이 데이터 구조, 소프트웨어 아키텍처, 코드 알고리즘, 통신 프로토콜 및 다양한 구성 요소의 비즈니스 문제에 대한 기타 모든 솔루션을 설계해야 합니다. 그런 다음 일반인이 이해할 수 있는 용어로 표현하고, 정해진 시간 내에 내담자에게 제출해야 합니다.

이 작업을 잘 수행할 수 있는 프로그래머는 거의 없습니다.

3. 구축 기간을 평가하세요

이것이 프로그래머들의 고통의 원천입니다. 개발 작업이 완료되기 전에는 작업 완료에 필요한 시간을 결정하는 것이 절대 불가능합니다. 아마도 프로그램은 이전에 작성한 것과 매우 유사하지만 환경이 바뀌고, 문제가 바뀌고, 제약 조건이 바뀌었을 수도 있습니다.

경험은 어느 정도 판단력을 제공하지만 대부분의 프로그래머는 문제의 난이도를 과소평가하는 데 익숙합니다. 그 이유는 코딩 측면만 고려하고 할 일 목록의 다른 사항은 무시하기 때문입니다.

4. 다른 사람의 코드 유지

해결책은 10,000가지, 문제 작성 방법은 10,000가지가 있을 수 있습니다. 다른 사람이 작성한 코드를 가져간다는 것은 원래 작성자의 아이디어를 이해하기 위해 수천 줄의 코드를 탐색하는 데 셀 수 없이 많은 시간을 소비해야 한다는 것을 의미합니다. 그리고 주석과 문서를 믿지 않는 프로그래머가 남긴 프로젝트의 절반이라면 문제는 더욱 커집니다.

5. 사람들을 토하게 만드는 모호한 소프트웨어 경계와 이상한 기능 요구 사항

애자일 개발 방법은 소프트웨어 범위 확장을 위해 일정량의 준비 공간을 제공하지만 아무런 역할을 하지 않습니다. 변덕스럽게 태어난 일부 기능 요청. 당신은 이것이 실패할 수밖에 없다는 것을 알고 있습니다. 당신의 팀은 이것이 실패할 것이라는 것을 알고 있습니다. 하지만 클라이언트는 그것을 훌륭하다고 생각하고, 필연적으로 실패가 발생했을 때 클라이언트의 진정한 의도를 이해하지 못한 것은 모두 귀하의 잘못입니다.

6. 최적화 부족과 과도한 최적화 사이의 균형을 찾으세요

복잡한 소프트웨어는 결코 완벽하지 않습니다. 항상 더 나은 솔루션이 있을 것입니다. 끝없이 최적화를 계속할 수 있기 때문에 소프트웨어 프로젝트가 일정보다 일찍 완료되지 않습니다.

한편, "그만하면 나중에 최적화할게"라는 사고방식도 일반적입니다. 코드는 오늘은 잘 작동하지만 내일은 문제가 발생하거나 작동하지 않을 수도 있습니다. 물론, 수정할 필요는 없습니다. 다음 불운한 프로그래머에게 맡겨질 것입니다.

7. 코드 테스트

단위 테스트도 작성했고 소프트웨어는 테스트 그룹에 제출되었지만 여전히 버그가 존재합니다...

소프트웨어는 복잡하고 수천 줄의 코드를 포함할 수 있습니다. 시스템에는 수백만 개의 다양한 상호 작용과 논리적 경로가 있을 수 있으며 이를 모두 테스트할 수는 없습니다.

마찬가지로 소프트웨어는 다양한 조건 하에서 다양한 플랫폼의 다양한 소프트웨어와 상호 작용합니다. 그것들을 모두 측정할 수는 없습니다.

좋은 단위 테스트를 작성하는 것은 지루하고 힘든 일입니다. 이상적으로는 개발이 시작되기 전에 테스트를 작성해야 합니다. 하지만 4주가 지났는데도 아직 사용 가능한 소프트웨어가 없는 이유를 고객에게 어떻게 설명해야 할까요?

단위 테스트가 모든 문제 지점을 다루지는 않습니다. 이상적인 세계에서는 테스트를 작성하고 적극적으로 문제를 식별하는 독립적인 팀이 있을 것입니다. 불행하게도 대부분의 프로젝트에서는 비용과 시간이 너무 많이 소모되므로 개발 팀에서 테스트를 작성해야 합니다. 개발팀은 무의식적으로 많은 극단적인 경우를 피합니다.

프로그래머는 모든 문제를 논리적인 방식으로 처리하는 것을 좋아합니다. 하지만 사용자가 이런 경우는 거의 없습니다. 전혀 예상하지 못한 문제를 발견하게 될 것입니다.

8. 소프트웨어 문서 작성

코드 문서 작성은 힘들고 시간이 많이 걸리는 작업입니다. 이것을 잘하는 프로그래머는 거의 없고, 이와 같은 프로그래머는 거의 없으며, 시간을 내어 이를 읽는 프로그래머도 거의 없습니다.

9. IT 문제 다루기

당신은 매일 기술을 공부하고 있습니다. HTML 또는 PHP 프로그래머일 수도 있지만 하드 드라이브 손상, 드라이버 충돌 또는 소프트웨어 충돌과 같은 문제에 직면할 가능성이 높습니다. 이러한 문제를 해결하는 것이 주요 책임은 아니지만 문제를 해결하지 않으면 개발 작업을 계속할 수 없습니다.

안타깝게도 IT계 밖의 사람들에게 프로그래머는 소프트웨어와 하드웨어 모두에 능숙한 사람이어야 합니다. 문제가 발생하면 시간을 들이지 않고 스스로 해결하고 직접 찾아옵니다. 문제가 무엇이든, 당신은 컴퓨터 사용자이고 Sage로 예산을 가져오는 방법, Oracle을 구성하는 방법, BlackBerry에서 이메일을 보낼 수 없는 이유를 알고 있습니다.

물론, 이러한 방해가 결코 일을 완수하지 못하고 보상이 없는 이유가 될 수는 없겠죠?

10 사람 문제 다루기

위의 문제는 모두 '사람 문제'로 요약할 수 있습니다. ". 조종사에게 비행기 조종 방법을 조언하거나 전기 기술자에게 비행기 배선 방법을 조언하는 일반인은 거의 없습니다. 하지만 많은 사람들은 소프트웨어 개발 방법을 열정적이고 용감하게 제안할 것입니다.

이 사람들에게는 좋은 해결책이 없다고 생각합니다. 전 세계 인구의 절반이 평균 이하의 지능을 갖고 있다는 사실을 받아들여야 합니다!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.