Myślę, że używanie nazw kodowych jest dość powszechne. Nasza firma też z nich korzysta.
Ale moim głównym zmartwieniem jest to, że nazwy te zwykle nie są nigdzie udokumentowane. A znaczenie przekazuje się ustnie. A nazwy nie mają nic wspólnego z funkcją narzędzia lub encji, którą się nazywa.
Widzę wzorzec, że wewnętrzne maszyny testowe są nazwane po konstelacjach, a publiczne serwery są nazwane po greckich bogach. A projekty są nazwane na podstawie miejsc lub nazwy losowo wybranej gwiazdy filmowej lub nazwy postaci. Ale nie ma bezpośrednio dostępnych informacji z nazwy, czy maszyny są Windows czy Linux; Serwery 32 lub 64-bitowe. Lub o czym jest projekt.
Po prostu mam złe przeczucie, kiedy widzę komunikat zatwierdzenia VCS, że ktoś właśnie rozgałęził projekt „Gandalf”, projekt „Callanish” lub jakikolwiek inny projekt. Z tego samego powodu generalnie nie nazywasz takich funkcji i zmiennych.
Zaproponowałem, abyśmy używali bardziej opisowych nazw, przynajmniej dla nowych bytów, ale spotkałem się z bardzo silnym sprzeciwem. Najwyraźniej wszyscy w organizacji oprócz mnie uwielbiają nazywać takie rzeczy.
Dlaczego więc używamy nieopisowych nazw kodowych?
Nie zrozumcie mnie źle. Nie mam problemów z nazwaniem wersji programu i kamieni milowych ani z dobrą nazwą produktu ze względów marketingowych. Ale we wszystkich innych miejscach chciałbym zobaczyć opisowe nazwy.
EDYTOWAĆ:
Aby dać ci kontekst: Gandalf to projekt, który przenosi kod 64-bitowy. Callanish jest tym, który przenosi go na Androida ... Wolę nazwać pierwszy oddział 64-bitowym, a drugi Androidporting. Być może dołączony do niego sufiks oznacza wersję docelową, którą planujemy wysłać. Więc każdy wiedziałby z nazwy, co to jest.
Wspomniane serwery to obrazy maszyn wirtualnych, na których testujemy produkt ... Nie znam jednak fizycznej maszyny, na której on faktycznie działa. Tak więc nazywanie ich windowsxp_32, windows7_64, debian_32 lub solaris_64 jest w porządku.
źródło
Odpowiedzi:
Nie odwołujemy się do ludzi po ich cechach, ponieważ spisanie ich na tyle szczegółowo, aby były jednoznaczne, może się zmieniać. Co jeśli dostaną fryzurę? Zamiast tego nadajemy imiona. Ponadto ludzie lepiej zapamiętują słowa niż strumienie losowych symboli.
Oświadczenie: Będzie zawierało pewne opinie i anegdotyczne opowieści związane z pytaniem.
W miejscu, w którym pracowałem kilka lat temu, wszystkie nasze serwery zostały nazwane po księżycach i częściach ciała. „Rhea”, „Miranda”, „płuco”, „nerka” itp.
Tak wysoko, jak ty, postanowiłeś, że to wszystko jest trochę głupie i powinniśmy zmienić je na bardziej „opisowe” nazwy, takie jak „arc-sql-w-4” lub „lon-web-lin-2”. Spotkało się to z dużym sprzeciwem. Ale to przeszło. Zmieniliśmy nazwę wszystkiego.
Co poszło nie tak?
Wcześniej od początku wiedzieliśmy, które maszyny były podstawowymi bazami danych, a które niewolnikami, ponieważ mogliśmy zapamiętać „głowę” sterowaną „sercem” lub że „Tarvos” był serwerem aplikacji dla X. Cokolwiek. Teraz musieliśmy pamiętać o niejasnym stosie symboli, który częściowo, ale nie w pełni opisał maszynę, której szukaliśmy. Musieliśmy wiedzieć za pomocą tabeli przeglądowej w naszych głowach, że „lon-web-lin-1” to serwer aplikacji dla produktu A i „lon-web-lin-2” dla produktu B.
Jest to podobne do powodów, dla których powinieneś używać haseł, takich jak FartDownTrousersForALivingDoYou? zamiast 43gH5 # 1 €. Ludzie dobrze pamiętają słowa, a nie przypadkowe stosy śmieci. Słowa to symbole odnoszące się do rzeczy.
Innym (prawdopodobnie bardziej praktycznym) problemem jest to, że wiążesz nazwy DNS i serwerów z ich funkcjami. Co oznacza, że nie można zmienić funkcji bez zmiany nazwy. Dla nas dotyczyło to również fizycznej lokalizacji i systemu operacyjnego. Co jest ogromnym bólem w dupie.
I to jest ostatni punkt. Imiona są znacznie przyjemniejsze.
Co z nazwami projektów?
Cóż, zamiast „Project Gandalf”, co proponujesz? „Projektuj prototypową funkcję X i zobacz, czy możemy ją przekształcić w produkt”? Co się stanie, jeśli zmieni się zakres projektu, czy wówczas zmienimy nazwę projektu? Ponownie, nazwy są skrótowymi symbolami odnoszącymi się do rzeczy.
źródło
db3.todoapp
ma więcej informacji, jeśli serwer obsługuje tylkotodoapp
. Jeśli marketing zdecyduje się nazywać aplikację „Organizer Pro”, a na serwerze jest 8 innych aplikacji, zarządzanie nazwami staje się dość skomplikowane.Nazywanie rzeczy według ich właściwości jest zasadniczo złym pomysłem. Powodem jest to, że właściwości są z definicji zmiennymi zjawiskami, a tożsamość rzeczy pozostaje taka sama, nawet jeśli właściwości zostaną zmienione.
Ktoś decyduje, że serwer plików powinien zostać zmigrowany do systemu Linux? Jeśli nazywa się „Apollo”, nie stanowi to problemu. Gdyby nazwa odnosiła się do „okien”, wówczas stałaby się myląca lub musiałaby zostać zmieniona wszędzie kosztem lub ryzykiem. Wprowadzasz nowy format wyjściowy? Na miłość boską, nie nazywaj tego „nowym formatem”! To będzie ostatecznie zostać zastąpione jeszcze raz, i jeszcze nowszy format będzie potrzebować jeszcze bardziej opisowe nazwy, aby je rozróżnić. Nazwij go „3”, abyś mógł później zwiększyć go do „4” lub „złoty”, aby móc ulepszyć do „platyny”.
(Dodatkowym powodem jest to, że nazwy złożone z bryłek informacji są brzydkie). Nikt nie chce pracować na komputerze o nazwie „PC-Marketing-Windows7-143” - przejmie to „Apollo”, a nawet „Bacchus” każdego dnia. Ale głównym punktem jest podział tożsamości / własności.)
źródło
Hermes
to tak, jest bardziej rozpoznawalna niżfunctionWithTenLinesOfCode
. Osobiście nazwałbym toprint
.print_left_aligned_to_CRT_monitor()
Cathy()
. Uwaga: Osobiście widziałem kod produkcyjny z nazwami funkcji i zmiennych cytujących teksty Guns & Roses i jestem winny napisania kodu produkcyjnego z nazwami zmiennych i funkcji odwołujących się do Buffy.Z mojego doświadczenia wynikają 3 powody:
Kiedy trzeba wymienić wiele podobnych rzeczy, może być trudno znaleźć unikalne nazwy opisowe dla wszystkich z nich. Ludzie potrzebują krótkiego, unikalnego sposobu odwoływania się do tego, a my lepiej posługujemy się nazwami niż liczbami (chyba że liczba jest bardzo krótka). Kiedy nadasz mu nazwę, nabiera ona charakteru w twoim umyśle, więc pamiętasz, że serwer Gandalf jest tym, który ma luźne złącze zasilania lepiej niż SERWIN15AB23. Jest również mniej prawdopodobne, że pomylisz dwa z literówką.
Proces nazywania może być zabawny. Niektóre firmy robią to z głosem. Inni ludzie lubią wymyślać unikalne nazwy. Zapytaj dowolnego rodzica.
W przypadku projektów zewnętrznych zwykle marketing decyduje o nazwie i zwykle robią to tuż przed wysyłką. Kiedy Microsoft zdecydował się nazwać najnowszy system operacyjny „Windows 10”? Wątpię, by zawsze tak to się nazywało. Projekt może być jeszcze opracowywany przez długi czas, aw niektórych przypadkach chcesz go zaciemnić, aby ludzie spoza firmy nie wiedzieli o czym mówisz.
źródło
Nazewnictwo opisowe jest trudne ™, jest o wiele łatwiejsze, jeśli masz już motyw, który automatycznie zawiera listę słów, których możesz użyć.
Gdy masz wielokrotność tego samego obiektu ich nazewnictwa
foo1.6
,foo1.2
itp szybko dostaje mylące / podatne na błędy. Na przykład, gdy musisz uruchomić testVirgo
, szybko zauważysz błąd, jeśli tak się dziejeCancer
.Stanowi także rozrywkowe spotkanie, kiedy konwencje nazewnictwa są wdrażane i podejmowana jest decyzja, aby oprzeć nazwy sal konferencyjnych według gatunków muzycznych, a ty nazywasz stołówkę
Salsa
.źródło
Descriptive naming is hard™, it's much easier if you already have a theme which automatically comes with a list of words you can use.
Bardzo prawdziwe. Ale to, że jest łatwiejsze, nie oznacza, że jest dobre na dłuższą metę. To, co mówisz, nie różni się od robienia niewłaściwego projektu API, ponieważ o wiele łatwiej jest po prostu zrezygnować z funkcjonalności.Może to być związane z kulturą o wysokim lub niskim kontekście . Każda firma, organizacja lub zespół ma własną kulturę. Kultura wysokiego lub niskiego kontekstu oznacza, ile informacji kultura lubi jawnie się odnosić i ile osób oczekuje od kontekstu.
Nazewnictwo wszystkich usług nazwami z odniesień kulturowych zapewnia pewną elastyczność, ale również nie jest jednoznaczne. Musi istnieć słowo ustne lub „wiedza plemienna”, która uzupełnia nazwy - tj. Kontekst nabożeństwa. Widziałem sytuacje, w których na przykład istnieje serwer „fizzbuzz” lub usługa „marcopolo”, w której nikt nie wie, co robią, ale dostaje ruch, więc muszą coś zrobić.
Jestem osobą o niskim kontekście, więc wybieram proste, jednoznaczne nazwy, które zapewniają kontekst dotyczący celu serwera lub usługi. Piszę również „kod samokontrujący”, w którym staram się nadawać nazwy mojemu kodowi, aby był bardziej czytelny.
Ale obecnie pracuję w sklepie o wysokim kontekście, w którym wszystkie usługi noszą nazwę Transfomers. Westchnienie. Przynajmniej używają nazw konsekwentnie.
Wygląda więc bardziej na wartość kulturową, ale praktyki techniczne dostosują się do preferencji kulturowych.
Wysoki kontekst może być zabawniejszy i ma w tym pewną wartość.
źródło
Jednym z powodów nazw kodowych jest zaciemnianie. Jeśli nazwa projektu stanie się bez znaczenia, możesz mówić o nim publicznie, bez zrozumienia, o czym dyskutujesz.
Podobnie, jeśli podasz swoje serwery pozbawione znaczenia nazwy, nikt poza upoważnionymi użytkownikami nie będzie miał pojęcia, co na nich jest.
źródło
Ważne pytanie brzmi: co jest opisowe? Inne odpowiedzi wykonały świetną robotę ilustrując to, co nie jest opisowe.
Ustalmy, że opisowość wynika z nazywania rzeczy po ich roli , celu. Przez to, co robią . Na przykład jasne jest, co robi „kuter”. Teraz może to być topór, laser lub nóż. To nie ma tak wielkiego znaczenia. Laser może być również „wskaźnikiem”, topór może być również „dekoratorem”, a nóż może być również „nakłuwaczem”.
Tak więc, jak zauważyli inni, związek między właściwościami czegoś a zadaniem, które wypełnia, jest stosunkowo luźny. Dlatego system operacyjny będący częścią nazwy serwera nie ma charakteru opisowego , odwraca uwagę od prawdziwego celu.
Chyba że Twoim zadaniem jest praca nad tym, jak komponent
DoesX
osiąga X, to nie jest twoja sprawa. Jeśli to twoja praca, to i tak od razu się z nią konfrontujesz.Jak zauważył maniak rasowy, czasami trudno jest znaleźć opisowe nazwy. Ale częściej niż nie, że jest to znak że nie zrozumiał , co zrobić rzeczy, które trzeba wymienić. Zanim to zrozumiesz, prawdopodobnie nie powinieneś się martwić, jak to robi, czego nie znasz;)
źródło
http-blog-db-failover
w przypadku komputera, na którym znajduje się baza danych trybu failover witryny obsługującej blogi; przejście z systemu Linux na Windows lub z MongoDB na CouchDB nie wpłynie na nazwę, ani decyzje marketingowe. )Pierwszym powodem jest to, że może być krótki i niezapomniany. Jeśli zastanowisz się, ile razy powiesz lub napiszesz nazwę projektu, zaoszczędzisz sporo czasu, jeśli istnieje krótka nazwa, którą wszyscy znają i rozumieją.
Drugim powodem jest to, że buduje koleżeństwo. Jeśli zespół wybierze nazwę, może wybrać tę, która im się podoba. Jest subtelny, ale zwiększa morale zespołu, gdy pracujesz nad projektem o nazwie Viper lub Gimley lub Boba lub Bugatti zamiast projektu o nazwie „Aktualizacje rachunkowości Q3”. Miałem przyjaciela, który pracował w zespole z grupą entuzjastów motoryzacji. Ich ulubionym rytuałem rozpoczynającym projekt było wybranie samochodu, którego będą używać jako kryptonimu projektu.
źródło
Zawsze myślałem, że to jest zrobione głównie dlatego, że bawi ludzi. Ludzie są uwarunkowani przez media, aby przywiązywać wagę do chowania się w ciemności w porównaniu do działania w świetle dziennym. W wieku 5 lat mamy „agenta specjalnego Oso”; w wieku 15 lat to James Bond. Tajemnica nadaje szczególnego znaczenia codziennym czynnościom ludzi (np. Programowaniu komputera).
W związku z tym ktoś stworzył logo dla „Longhorn”, gdy była to nazwa kodowa Microsoft ( http://en.wikipedia.org/wiki/File:Windows_Longhorn_logo.svg ). Dlaczego ktoś miałby tworzyć logo dla pseudonimu, który nigdy nie miał być częścią marketingu? Znów ludzie robią takie rzeczy, ponieważ to ich bawi. Gra w Photoshopie jest łatwiejsza / przyjemniejsza niż faktyczna praca.
źródło
może istnieć system, którego po prostu nie znasz.
Jedna firma, w której pracowałem dla używanych nazwisk laureatów Nagrody Nobla dla wszystkich ich serwerów. Różne nagrody Nobla wskazywały na różne kategorie serwerów.
Serwery testowe można nazwać po zwycięzcach matematyki, serwerach baz danych po zwycięzcach literatury, serwerach pocztowych po zwycięzcach medycyny itp.
Dla kogoś, kto nie zna konwencji nazewnictwa, nazwy wydawały się całkowicie losowe (zwłaszcza, że większość ludzi nie zna wszystkich setki laureatów nagrody Nobla w ciągu dziesięcioleci).
Użyłem podobnego systemu w domu, nazywając komputery myśliwcami odrzutowymi, serwery po bombowcach i woluminy dysków po wulkanach.
To samo można zrobić z oprogramowaniem, nazwami wersji produkcyjnych po drzewach, wersjami beta po kwiatach itp. Itp.
źródło