BLOB 이외의 설정을 저장하는 가장 좋은 방법 (및 위치)은 무엇입니까?
Windows에서는 레지스트리를 사용하는 것이 허용되는 것 같습니다. 제 생각에는 레지스트리가 잘못 개발 된 시스템이므로 Users\Username\AppData
디렉토리 의 간단한 텍스트 파일을 선호해야합니다. 이는 백업하기 쉽고 사용자가 수정하기에 덜 위험하며 정리하기가 쉽습니다.
Linux 및 대부분의 Unix에서 기본 위치는 /home/user/.config/appname
사용자 별 설정 및 /etc/
전역 (시스템 전체) 설정입니다. 사용자 설정에 대해 덜 선호되는 (하지만 수용 가능한) 위치는 ~/.appname
이지만 일반적으로 선호하지 않습니다. 이러한 파일은 사용자가 편집 할 수 있어야하며 사람이 읽을 수있는 형식이 항상 선호됩니다.
필자는 XML이 데이터가 아닌 데이터를 저장하기에 적합한 형식이라는 데 대부분의 사람들의 의견에 동의하지 않습니다. 제 생각에는 일반적으로 매우 작은 구조화 된 데이터 조각에 대한 과장되고 지나치게 복잡한 형식입니다. YAML, JSON, ASN.1, 이름 = 값 쌍 또는 유사한 형식의 파일을 선호합니다. 구문이 너무 많으면 사용자가 파일을 엉망으로 만들거나 파일을 유효하지 않은 형식으로 남기기가 너무 쉽습니다.
각 시스템 기본값을 따라야합니까 아니면 통합 솔루션이 있어야합니까?
그것은 전적으로 당신에게 달려 있지만, 몇 가지 사항을 명심하십시오.
- * nix와 같은 플랫폼에는 쓰기 가능한 위치에 대한 엄격한 제한이 있습니다. Windows보다 더 엄격합니다. 그래서:
- 무엇이든 써야하는 유일한 위치는 사용자의 홈 디렉토리입니다.
- 하지 않는 응용 프로그램 시스템 서비스입니다; 이 경우 모든 가변 데이터 파일을로 작성해야합니다
/var/
. Nonmutable 데이터 파일에서 응용 프로그램 디렉토리에 보관해야 /usr/share/
하거나 /usr/local/share/
또는/opt/
- 의 구성 파일
/etc/
해야 결코 응용 프로그램에 기록되지는 그들에게 쓰기 권한이있는 경우에도, 실행되는 경우. 기본 비헤이비어 /etc/
의 리포지토리 여야하며 다른 것은 없습니다.
- 응용 프로그램에 대한 계획은 세 곳 중 하나에 설치합니다 :
/usr/local/
, /opt/appname
또는 /home/username/appname
.
- Blob은 변경 될 경우 다른 구성 파일과 함께 저장해야합니다. 이다 일반적으로 바람직 SQLite는 나 버클리 DB 같은이 (각 명령 줄 도구가 있기 때문에) 선호하지만,되지 않도록, 사용자가 편집 가능한 형식을 사용하는 것이 필요합니다.
- Windows에서 응용 프로그램은 사용자 디렉토리에만 작성해야합니다. 데이터 파일의 표준화 된 위치는
Users\User\AppData
입니다. 다른 곳은 용납되지 않는 것 같습니다.
- Mac OS X에서는 응용 프로그램 설정이
~/Library/Preferences
다른 모든 응용 프로그램의 plist 파일과 함께 저장되어야 합니다. plist
선호하는 형식으로 보이지만 Apple 지침을 다시 확인하고 싶을 것입니다.
가장 좋은 휴대용 방법은 무엇입니까?
솔직히 "최고"는 없습니다. 플랫폼 별 제한 사항과 기대 사항 만 있습니다. 더 많은 코드를 작성하더라도 플랫폼 별 수단을 사용하는 것이 좋습니다.