태그 보관물: file-structure

file-structure

동일한 목적을 가진 두 개의 매우 다른 파일에 동일한 이름을 부여하는 것은 나쁜 습관입니까? 두 파일의 이름은 같지 않고

동일한 목적을 가진 두 개의 매우 다른 파일에 동일한 이름을 부여하여 다른 디렉토리로 분리하는 것은 나쁜 습관입니까?

<script src="client_scripts/app/player_stats/generator.js"></script>
<script src="client_scripts/app/coach_settings/generator.js"></script>

파일 이름을 짧게 유지하고 싶습니다. 두 파일의 이름은 같지 않고 동일한 일반적인 용도로 사용됩니다. 이것이 전문 프로그래밍 환경에서 나쁜 습관으로 간주되는지 여부는 확실하지 않습니다. 이 상황에서 모범 사례가 무엇인지 알고 싶습니다.

또는 이름의 짧은 길이를 희생하여 다음을 사용할 수 있습니다.

<script src="client_scripts/app/player_stats/player_stats_generator.js"></script>
<script src="client_scripts/app/coach_settings/coach_settings_generator.js"></script>


답변

두 가지 옵션의 비용 / 혜택 비율을 고려하십시오.

  1. 동일한 이름을 재사용하면 혼동이나 이름 충돌이 발생합니까? 아마도 다른 폴더에 있기 때문에 아마도 아닙니다. “player_stats / generator.js”이름은 “player_stats_generator.js”와 동일합니다. 그러나 나중에 js 파일을 단일 디렉토리 (deployment? I dunno)로 병합 해야하는 이유가 있다면 고유 한 이름을 지정하는 좋은 지표가되어야합니다.

  2. 더 긴 이름을 사용하면 많은 외래 입력이 필요합니까? 아마 아닙니다. 프로젝트에서 많은 JS IDE 자동 완성 파일 이름을 수행 할뿐만 아니라 아마도 작성된 유일한 코드 일뿐입니다. 파일 당 최대 한 번만 합니다. 많이 입력되는 코드 는 js 파일 내부 의 클래스와 함수 이며 충돌하지 않습니다.

  3. 디버깅 할 때 오류에 대한 정보는 무엇입니까? 가장 일반적인 버그 보고서가 “34 번째 줄의 오류 <filename.js>“인 경우, generator.js로만 오류를 수신 한 후 컨텍스트를 통해 신성하려고하므로 문제가 될 수 있으므로 고유 한 이름을 지정하십시오.


답변

실제로 IDE에 탭에 파일 이름이 표시되는 경우 각 파일에 동일한 이름을 사용하면 모두 동일한 이름을 표시하는 탭이 생깁니다. 매우 성 가실 수 있습니다. 내가 유지 관리 한 프로젝트에는 그 문제가 있으며 15 개의 탭을 열고 절반은 동일한 파일 이름을 갖는 것이 큰 고통입니다.

따라서 … 더 설명적인 이름을 사용하십시오.


답변

여기에는 분명한 결정 요인이 있습니다. DRY (반복하지 마십시오).

모든 파일 이름이 다를 필요는 없습니다. 그것이 경로입니다 . 컴퓨터에 몇 개의 다른 시스템 또는 프로그램 파일이 있는지 상상할 수 있습니까? 각각의 이름이 고유해야한다면 어떻게해야합니까? 어느 시점에서, 우리는 파일 이름을 경로의 복사본으로 만들고 있습니다.

client_scripts > app > player_stats실제로 컨텍스트에서 Javascript 파일에 대한 가장 좋은 설명 이 generator인 경우 경로는입니다 client_scripts/app/player_stats/generator.js.

이 질문은 programmers.stackexchange.com/questions/ 250481에 있습니다. 도 있습니다 serverfault.com/questions/ 250481 . 250481프로그래머 질문의 맥락에서 한 가지, 서버 결함 질문의 맥락에서 다른 것입니다.

경로 또는 URL은 중첩 식별자이기 때문에 좋습니다. 그런 식으로 사용합시다 🙂


답변

문제의 언어 규칙이 짧은 이름을 선호하는 수학적 상수 또는 루프 변수와 같은 것이 아닌 한 짧은 이름에 설명이 포함 된 이름을 항상 사용하십시오. 예를 들어, 변수 “pi”를 호출하고 적절하게 정확한 pi 값을 가지면 이름이 양호하고 그 점을 잘 알 수 있습니다. 반면, Pi에 대한 Taylor 시리즈의 용어를 생성하고이를 대략 pi에 추가하는 생성기가있는 경우 “taylorPiGenerator 또는 이와 유사한 것”이라고합니다.

좋은 이름은 나중에 리팩터링 시간을 줄이거 나 나중에 더 큰 오류를 줄입니다.

Clean Code and Code Complete 책 은 이름이 좋은 이유와 이유에 대해 상당히 자세하게 설명되어 있지만 결코 유일한 출처는 아닙니다.


답변

작업중인 기술에 따라 다릅니다. 이름은 항목을 식별하고 경로는 컨텍스트를 식별해야합니다. 나는 좋은 이름이 중요하다는 것에 동의하지만 경로도 이름입니다. 그러나 실용적인 관점에서 Javascript 와 같은 것을 사용하는 경우 최종 항목의 정확한 이름을 유지하는 것이 좋습니다. Python 과 같이 이것을 고려하는 도구로 작업하는 경우 권장되는 방법은 다른 경로 (모듈, 네임 스페이스)와 동일한 이름을 사용하는 것입니다. 를 살펴보면Java를이름과 패키지가 다른 클래스도 있습니다. 한 걸음 더 나아가서 메소드는 클래스의 맥락에서 액션으로 명명된다고 말할 수 있으며, 우리는 다른 클래스에서 같은 이름의 메소드를 가지고 있으며, 그 자체로 이름은 같지만 다른 패키지에 배치 할 수 있습니다. 파이썬의 선은 말한다 :

네임 스페이스는 훌륭한 아이디어 중 하나입니다. 더 많은 것을 해보자!

그러나 자바 스크립트에는 기발한 기능이 있으므로 파일이 다른 경로에 있더라도 다른 이름으로 이동하는 것이 좋습니다. 또한 깨끗한 코드를 작성하는 데 도움이되는 자바 스크립트에서 모듈 패턴을 찾을 수 있습니다.

    var playerStatsGenerator = player_stats.Generator();
    var coachSettingsGenerator = coach_settings.Generator();

케이크를 먹을 수도 있습니다.


답변