Moja firma odsprzedaje aplikację, której nazwa firmowa ma różne litery, na przykład „ApplicationName”.
Instalator aplikacji tworzy wszystkie ścieżki i nazwy plików w tym standardzie. Np. Głównym katalogiem jest /opt/ApplicationName
plik inicjujący, ApplicationName
więc muszę go uruchomić service ApplicationName status
i tak dalej.
Dla mnie to łamie wszystkie rozsądne konwencje i uważam, że wszystkie pliki i katalogi powinny być pisane małymi literami (istnieje precedens w innych aplikacjach, takich jak MySQL, których pliki i katalogi są wywoływane mysql
, nawet aplikacje takie jak Apache i Tomcat usuwają poprzednie Wielka litera).
Jeśli podniosę to jako zgłoszenie błędu, chciałbym przedstawić silniejszy argument niż tylko „Myślę, że to źle”. Czy jest to podyktowane w standardzie POSIX, że pliki systemowe takie jak ten powinny być pisane małymi literami?
źródło
Odpowiedzi:
Standard POSIX zawiera sekcję ze wskazówkami dotyczącymi zgodnych narzędzi (tj. „Takich, które zostały napisane specjalnie dla systemu lokalnego lub są elementami większej aplikacji”), która mówi:
[ref: 12.2 Wytyczne dotyczące składni narzędzia ]
Nie jest dla mnie jasne, czy użycie słów „powinno obejmować” naprawdę oznacza „powinno obejmować tylko ”. (Konsensus w poniższych komentarzach jest taki, że oznacza to „powinien zawierać tylko”).
Aplikacja w systemie Unix, która nie twierdzi, że jest narzędziem zgodnym z POSIX, może w przeciwnym razie użyć dowolnej nazwy. Jeśli to ma roszczenie do bycia POSIX conformant narzędzie , które jest częścią narzędzi POSIX powłoki , tekst po wytycznymi zawartymi w rozdziale 12.2 mówi, że „powinien” zmienia sens „musi”.
O ile mi wiadomo, nie ma podobnych wytycznych dotyczących nazw katalogów. macOS (który jest certyfikowanym produktem UNIX 03, gdy działa na komputerze Mac z procesorem Intel) używa
/Users
na przykład prefiksu katalogów domowych użytkownika, a także wielu innych nazw katalogów o różnej wielkości liter.źródło
should
w następujący sposób: „W przypadku implementacji zgodnej z IEEE Std 1003.1-XXXX opisuje funkcję lub zachowanie, które jest zalecane, ale nie obowiązkowe. Aplikacja nie powinna polegać na istnieniu tej funkcji lub zachowania. Aplikacja, która polega na takich nie można zagwarantować, że funkcja lub zachowanie jest przenośne w różnych implementacjach zgodnych. W przypadku aplikacji opisuje funkcję lub zachowanie, które jest zalecaną praktyką programistyczną w celu zapewnienia optymalnego przenoszenia. ”Nie, nazwy małych liter nie są określone dla katalogów instalacyjnych pakietów oprogramowania.
W rzeczywistości historycznie instalowane pakiety oprogramowania
/opt
zaczynały się od symbolu giełdowego z wielkimi literami firmy dostarczającej pakiet, na przykładSUNW
dla Sun Microsystems lubORCL
Oracle.Pakiety takie jak system plików QFS firmy Sun byłyby instalowane w katalogu o nazwie podobnej do
/opt/SUNWqfs
.źródło
should
się jako zasadniczoit is recommended
Oprócz wytycznych POSIX, myślę, że może to mieć jeszcze większy wpływ na tradycję użytkowników. Nazwy przypadków jako „ApplicationName” stały się popularne w eksplozji Wiki, przyzwyczajając niektórych ludzi (takich jak ja) do używania wielkich liter zamiast łączników lub, co gorsza, spacji. Ale to było kilka lat po tym, jak Linux i podobny system operacyjny stały się popularne, z bardzo długą tradycją uniksową.
Ta tradycja zawsze była (jest) zawsze prostą, nie tylko przestrzeganiem zasad, które wskazał Kusalananda, a nawet skrótem tylko słów składających się z czterech sześciu znaków (np.
/usr
Dla „użytkownika”,/srv
„serwowania” lub/mnt
„montowania”) i oczywiście dłuższe znaczenie (/sbin
dla „plików binarnych superużytkowników”). W tej tradycji wielkie litery zmuszają cię do naciśnięcia klawisza Shift, a być może przypadkowo także klawisz Caps Lock, jest po prostu zły.W pewnym stopniu jest to zadziwiające, ponieważ Unixy od dłuższego czasu potrafią pisać duże nazwy plików z rozróżnianiem wielkości liter, podczas gdy MS-DOS / Windows był ograniczony do krótkich nazw plików bez rozróżniania wielkości liter (osiem znaków plus trzy dla rozszerzenia), ale szybko stracił ta prostota („Program Files”, „My Documents” itp.), gdy Windows 95 przekroczy to ograniczenie.
Niemniej jednak dzisiaj jest kilka wyjątków, takich jak
NetworkManager
demon i prawdopodobnie zobaczymy więcej WikiWords w przyszłości. Ale nadal nienawidzimy myszy i piszemy w terminalu długie nazwy, które można zakończyć tylko TabTabautouzupełnianiem. Czy ktoś zobaczyć niektóre zaletą zmiana nazwyvim
naVisualImproved
?źródło
/usr
nie jest skrótem od „użytkownika”. Jest to skrót od „Uniksowego zasobu systemowego”/usr
pierwotnie był katalogiem zawierającym katalogi domowe użytkownika (tak jak/home
dzisiaj). Zgadzam się z Hobbsem.My Computer
nie jest i nigdy nie był katalogiem. Jest to konstrukcja czysto skorupowa; możesz to zilustrować, zastanawiając się, w jaki sposób, w wierszu polecenia lub w starej aplikacji Win16, do niej nawigować.Program Files
sam w sobie jest bałaganem ze swoją zlokalizowaną nazwą; Ostatnio natknąłem się na ten problem dosłownie wczoraj , gdy oprogramowanie przybierało angielską nazwę,Program Files
ale rzeczywista nazwa była używana w systemie. Prawdopodobnie jeden z najgorszych błędów Microsoftu w Windows 95./usr
iUnix System Resources
I tak, we wczesnych wersjach systemu Unix, użytkowników katalogi domowe żyli również pod `/ usr”