저는 소프트웨어 개발이 (다른 것들 중에서도) 끊임없이 자신에게 질문하는 과정이라는 것을 깨닫기 시작했습니다. 코드 품질, 우려 분리, 종속성 최소화 등에 관한 질문 ...
그러나 주요 질문은 정신 병원에 가지 않고 얼마나 멀리 갈 수 있습니까?
새 일자리를 신청하고 있습니다. 어제 나는 미래의 고용주와 함께 프로그래밍 능력을 테스트하고 싶었다. 연습 중 하나는이 코드의 기능을 설명하는 것입니다. 나는 그들이 개발 한 응용 프로그램 코드 (vb.net의 winforms)를 겪었습니다 (병원의 관리 응용 프로그램입니다). 이것은 그들이 어떻게 접근하는지 실제로 볼 수있는 기회를줬고 그것은 다소 실망 스러웠습니다.
몇 가지 예 :
- 어딘가에 보았다 : [서브 루틴의 이름을 입력하시오]-> 맞았다 : VB6에서 나온 것이 아닌가?
- 그들은 ado.net을 사용하여 별도의 데이터 계층을 가지고 있지만 검사 해야하는 한 가지 방법은 데이터 계층을 호출 계층에 반환합니다. 따라서 별도의 데이터 계층 여부에 관계없이 응용 프로그램은 ado.net에 연결되어 있습니다 (다른 데이터 액세스 방식으로 전환하지 않으면 결코 문제가되지 않습니다).
- 이 데이터 세트는 그대로 읽혀지기 때문에 여전히 데이터 중심 접근 방식입니다 (물론 "환자"또는 "LabAnalysisRequest"와 같은 클래스에 얼마나 많은 로직 / 동작을 사용할 수 있는지 논쟁 할 수 있습니다.
- 또한 문자열 연결로 SQL 쿼리를 구성하는 것을 보았습니다.
- 그들은 저장 프로 시저를 사용합니다 (나에게 의미 : 논리의 산란)
- 뷰 / 컨트롤러에 대한 언급 없음 : 모든 형태의 구동
- 내가 본 가장 추악한 것은 :
TestEnvironment.IsTesting 인 경우 someVar = [일부 하드 코딩 된 값] 그밖에 someVar = [일부 동적으로 검색된 값] 경우 종료 [여기에서 기능의 나머지]
그것은 내가 학교에서 배운 것과 완전히 다릅니다 : (지속성 불가지론) 도메인 계층, 지속성 계층, 프레젠테이션 계층, 단위 테스트 ...
그래서 나는 내 질문을 바꾸어 놓았습니다. 프로그래머는 어느 정도까지 자신의 원칙을 고수하거나 업무를 수행하는 코드를 작성해야합니까?