API 문서는 API를 사용하는 방법을 알려줄 것입니다. 그러나 일이 잘못되면 혼자 남겨질 수 있습니다. 오류 메시지는 불완전하거나 오해의 소지가 있거나 도움이 되지 않는 경우가 많습니다. 그리고 NoMethodError: undefined method '[]' for nil:NilClass
로 무엇을 하시겠습니까? , 어쨌든?
API, 프레임워크 또는 라이브러리를 배울 때 일이 잘 될 때 사용하는 방법을 배울 수는 없습니다. 또한 오류를 반환할 때 수행할 작업을 파악해야 합니다.
코드를 어떻게 깨나요?
사용 중인 API가 중단될 때 수행할 작업을 쉽게 배울 수 있는 방법이 있습니다. 스스로 부숴라!
예를 들어:
-
잘못된 유형의 데이터를 전달합니다. 문자열 대신 기호, 배열 대신 문자열, 배열 대신 해시 등을 전달할 수 있습니다.
-
불완전한 데이터를 전달합니다.
nil
을 전달할 수 있습니다. , 일부 필드가 채워지지 않은 해시 및 방금 초기화된 개체입니다. -
API에 네트워크 액세스가 필요한 경우 WiFi 연결을 끊거나 네트워크 케이블을 잡아당깁니다. 시간이 초과되었거나 도달할 수 없는 서비스를 알려줍니까?
-
API에서 블록을 전달할 수 있는 경우 블록 내에서 예외를 발생시키거나 잘못된 유형의 데이터를 반환합니다. .
훌륭한 API는 당신이 무엇을 잘못했는지 알려줄 것입니다. 훌륭한 API가 해결 방법을 알려줄 것입니다. 하지만 대부분의 경우 Ruby NoMethodError
가 발생합니다. , 예기치 않은 nil
s, 또는 더 나쁜 것은 완전히 기괴한 반환 값을 되찾는 것입니다.
왜 코드를 끊습니까?
이 모든 것이 나쁜 것은 아닙니다. 오픈 소스 보석을 가지고 놀고 있다면 시간을 할애하여 어디 예상치 못한 행동이 이유 그것은 일어났다. 디버그하고 약간의 코드를 읽으면 라이브러리 또는 API의 작동 방식에 대해 많은 것을 배울 수 있습니다.
NoMethodError
위치를 찾으면 에서 오는 것이므로 한 걸음 더 나아갈 수 있습니다. 다음 사람이 실제로 이 문제를 겪을 수 있도록 오류 메시지를 수정할 수 있습니다! 작은 오류 메시지 수정으로 훌륭한 오픈 소스 기여와 쉬운 풀 리퀘스트가 됩니다. 그리고 그들은 전체 Ruby 생태계를 다른 모든 사람들에게 조금 더 좋게 만듭니다.
폐쇄 소스 REST API일지라도 이 연습에서 여전히 무언가를 얻을 수 있습니다. API에서 얻을 수 있는 다양한 오류를 확인한 후 실제로 오류가 발생했을 때 문제를 더 쉽게 수정할 수 있습니다.
주변 코드의 오류를 보고 수정하는 것이 더 편해지면 깨진 코드를 풀어야 할 퍼즐로 보게 될 것입니다. 화면에 덤프된 예외 및 역추적을 볼 때 자동으로 반동하지 않습니다. 대신 작업 중인 시스템에 대해 자세히 알아볼 수 있는 기회로 볼 수 있습니다.
마지막으로, 코드가 깨졌을 때 다시 합칠 수 있다는 것을 알게 될 것입니다. 새로운 라이브러리와 API에 대한 자신감을 높일 수 있습니다. 그리고 그 대담함은 귀하의 율을 높여줄 것입니다. 새로운 것을 배우는 것.