삶의 하루: 프런트엔드 개발자가'간단한'오류를 어떻게 해결하는지
6618 단어 productivityfrontendcssangular
구린내 나는 벌레
나는 우리의 한 응용 프로그램에 새로운 보고 페이지를 실현했다. 사용자는 몇 개의 매개 변수를 설정하여 유사한 전자 표의 보고서를 만들 수 있다.내가 그것을 전자 표와 같다고 말하는 이유는 시각적으로 사용자의 전자 표처럼 보이지만, 나는 그것을 flexbox를 기반으로 한 단일 격자 격자로 실현하기 때문이다. 왜냐하면 다른 요구 때문에 일반적인 표를 사용하기가 매우 어렵다.지금까지는 괜찮았습니다. 책상의 외관을 유지하기 위해서 저는 정말 각 격자 사이에서 픽셀급의 완벽한 일치성을 달성해야 합니다. 이것은 제가 맥북 크롬에서 충전과 간격을 약간 조정함으로써 실현한 것입니다.코드 배치가 끝났습니다. 제 동료가 Windows에서 실행하는 것을 제외하고는 모든 것이 좋아 보였습니다. 그들은 일부 열이 경미한 이동을 하는 것을 관찰하여 표의 착각을 깨뜨렸습니다.이것은 그들이 관찰한 것이다.
간단하다. 그날 아침 8시 30분에 나는 이것이 단지 다른 과장된 문제일 뿐이며, 나는 그것을 복제하고 복구하기만 하면 된다고 자신에게 말했다.
제1과: "그것은 내 기계에서 일한다"는 것은 개발자가 잘못에 대한 효과적인 대답이 되어서는 안 된다.다른 사람이 망상증을 가지고 있다고 믿지 않는다면, 조사를 시작하는 기초로 삼아야 한다. 적어도 그것은 어딘가에서 작용해야 한다.너의 관점에서 볼 때, 그것은 영원히 끝내서는 안 된다.
Chrome/Mac에서 질문 복사
내가 말한 바와 같이 Windows 10의 동료가 이 버그를 보았을 것이다. 그래서 나는 우선 나의 크롬 브라우저에서 해상도를 바꾸어 응답성 문제와 관련이 있는지, 불가능한지 보려고 한다.이어서 나는 주의력을 운영체제로 옮겼고 문제는 크롬 렌더링의 차이와 관련이 있을 수 있으며 이것은 운영체제에 달려 있다고 생각했다.
BrowserStack을 사용하여 Chrome/Windows 10에서 문제 재현
다음은 Chrome 브라우저 10의 BrowserStack 인스턴스에서 테스트했습니다.여러 번 시도해 보았지만 주사위는 다시 없었다.다른 거 해볼까요?나는 내 주위 (비크롬) 가장자리에 IE11/Windows10 가상 머신이 있는 것을 기억한다.이때가 되자 스탠딩 공연까지 합치면 오후 12시가 되었다.
Chrome/Windows 10에서 VirtualBox를 사용하여 문제 재현
나는 가상 머신을 시작하고 이 문제를 재현하려고 했지만 여전히 성공하지 못했다.나와 동료들은 이 문제가 해결 방안과 관련이 있다는 것이 분명하다.그들의 노트북은 1920x1280 해상도로 실행되어 복제하기 쉽다.VirtualBox에서 Windows 10 가상 머신 방문객을 동일한 해상도로 렌더링하는 데 약 1시간이 걸렸지만 성공하지 못했습니다.내 구글 검색에서 누군가가 내가 Parallels를 설치했다고 언급했다.
Chrome/Windows 10에서 병렬 프로그램으로 문제 재현
Parallels가 시작되면서 해상도가 정확한 Windows 10 가상 머신을 바로 시작하고 Chrome을 설치할 수 있었습니다. 이것은 제가 가장 좋아하는 Windows 동료의 snark를 찾았습니다.
회사 명
@ 아보칸
Internet Explorer: 새로 설치된 Windows에서 Chrome 브라우저를 다운로드하는 데 주로 사용되는 탐색 도구입니다.
18:2020년 2월 21일 오후 56시
0
일.
봐라, 우리의 개발 서버에 접근할 때, 페이지가 불러오자마자 오류가 발생했다.빠른 디버깅 후에 나는 문제의 배후를 과장한 원흉을 찾았다.
제2과: 접을 필요가 있을 때 잘 받아들여야 한다.만약 당신이 길을 걷고 있지만, 그것이 작용하지 않는다면, 신속하게 재평가하고 다른 것을 시도하는 것을 배워야 한다. 이것은 당신의 목표에 더욱 가까워질 것이다.
문제
특정 격자에 대한 경계를 정의할 때 다음 코드를 사용했습니다.
border-top: dashed
Chrome Mac에서는border-top: dashed 3px;
기본적으로 3배 점선 테두리가 생성됩니다.나는 이것이 크롬의 기본 테두리라고 천진난만하게 생각한다.Windows에서 Chrome이 실제로 다음과 같은 결정을 내릴 수 있음을 발견했습니다.border-top: dashed 1px;
그래서 격자 사이에는 항상 2px의 차이가 있다.간단합니다. 이제 이 문제를 알게 되었습니다. 이 문제를 복구하고 테스트하기 위해 로컬 env로 전환하고 싶습니다.오후 3시쯤 돼요.3: CSS를 사용하여 규칙을 작성할 때 가능한 한 구체적으로 가정하지 마십시오.
고치다
이곳에서 내가 다시 복구를 시도했을 때 또 다른 장애에 부딪혔다.우리의 Angular 응용 프로그램은 포트 4200에서 실행되고 API는 8080에서 실행됩니다. 이것은 Parallels를 Windows 가상 시스템에서 나의 Maclocalhost에 접근할 수 있도록 설정해도 CORS 문제로 인해 이 응용 프로그램을 시작할 수 없다는 것을 의미합니다.이 문제를 해결하는 데는 여러 가지 방법이 있는데, 나는 아주 빨리 시도했다.
/etc/hosts
각도 에이전트
proxy.conf.json
에서 다른api 프록시 경로를 정의했습니다. "/api": {
"target": "http://localhost:8080/api",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
},
응용 프로그램이 실행될 때, 예를 들어 /api/reports
를 누르면 http://localhost:8080/api
이 아니라 http://localhost:8080/api/reports
로 에이전트를 가져옵니다.세계태권도연맹?문서를 여러 번 다시 읽은 후에 나는 마침내 내가 무엇을 잘못했는지 깨달았다. Angular/Webpack 개발 서버는 ytarget
가 틀렸다고 정확하게 지적할 것이다. 나는 target
url에 상하문 경로를 추가하지 말고 호스트에만 추가해야 한다.구성을 다음과 같이 변경합니다. "/api": {
"target": "http://localhost:8080",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
},
모든 것이 순조로워서 나는 정상적으로 일하고 문제를 해결할 수 있다.심리!이와 동시에 한 초급 개발자가 PR을 제출했다. 나는 반드시 그에 대해 코드 심사를 해야 하기 때문에 영상 통화를 해서 코드의 의미를 깊이 연구했다. 왜냐하면 개발자는 그의 코드가 실현될 때 코드에 몇 개의 회귀 오류를 도입할 수 있다는 것을 몰랐기 때문이다.이 문제를 해결한 후에 나는 마침내 문제로 돌아가 복구와 배치를 진행할 수 있었다. 지금은 오후 5시경이다.제4과: 디테일, 특히 문법과 맞춤법에 주의하세요.프로그래밍과 코드 심사 등 실천에 중요한 이유다.두 번째 그룹의 눈 검사 코드는 이러한 작은 오류를 포착하는 데 도움이 될 것이다. 왜냐하면 우리는 자신의 코드에 익숙하기 때문에 우리는 이 오류를 포착하는 데 시간이 오래 걸릴 것이다.
총결산
간단한 시각적 CSS 오류가 구글, VirtualBox와 병렬 데스크톱 가상 머신, Browserstack, Angular와 일부 고급 네트워크
etc/hosts
와 관련된 여정을 만든 것처럼 보인다.이 과정에서 저는 배운 것이 있습니다. 다음은 그날의 경험에서 얻은 조언입니다. 저는 포부가 있는 전단 개발자와 공유할 것입니다.Reference
이 문제에 관하여(삶의 하루: 프런트엔드 개발자가'간단한'오류를 어떻게 해결하는지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codedivoire/a-day-in-the-life-how-a-frontend-developer-solves-a-simple-bug-3e98텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)