최근에 나는 만들기가 너무 어려워 보이지 않는 프로젝트를 시작했습니다.이 개념은 매우 간단한 응용 프로그램으로, 매번 입력을 받아들이고 (하루에 10x 정도), 일부 작업을 수행하고 모든 결과를 수집하려고했습니다. 끝에. 이 응용 프로그램은 고객이 로켓 과학이 아니라 결과를 보는 데 사용할 수있는 프론트 엔드 웹 포털을 얻게됩니다.
이를 위해 처음에는 Python의 내장 동시성 라이브러리 ( ThreadPoolExecutor
)를 현명하게 사용 하고 프론트 엔드에 사용하기 쉬운 라이브러리를 사용했습니다 (초보자에게는 쉽고 유지 보수가 쉽고 테스트하기 쉬운 Flask를 선택했습니다).
프로젝트가 반쯤 진행되면 PM은 스레드 대신 써드 파티 메시지 큐 기능을 사용해야하고로드 밸런싱을 구현해야한다고 결론을 내렸다. 결국 결국 Celery, Redis, RabbitMQ, Nginx, uWSGI와 협력하기 시작했다. 그리고 아무도 실제로 경험 한 적이없는 다른 대규모의 타사 서비스도 있습니다.
결국 이것은 많은 스파게티 코드, 테스트 할 수없는 작업 (타사 라이브러리의 복잡성, 코드 패치가 작동하지 않았기 때문에) 및 두통이 발생합니다. .
"예, 해당 서비스를 사용해야합니다"라고 말하기 전에 아무도 이러한 서비스 를 사용하는 방법을 모르 거나 경쟁 조건에 처한 코드를 도입하는 것 외에는 무엇을하는지 아는 사람이 없습니다.
이것에 대해 어떻게해야합니까? 이 시점에서 우리가 가진 것으로 되돌리려면 너무 많은 비용이 들며, 최종 제품이 처음보다 나빠졌지만 PM은 이러한 서비스를 사용하기 시작했습니다. 그와 논의 할 때도 쓸모가 있습니까? 더 많은 시간을 요청합니까? 아니면 가혹한 대답, 나는 내 직업에 너무 바보입니까?