Tại sao chúng ta sử dụng tên mã nội bộ không mô tả? [đóng cửa]


16

Tôi nghĩ rằng việc sử dụng tên mã là khá phổ biến. Công ty chúng tôi cũng đang sử dụng chúng.

Nhưng mối quan tâm chính của tôi là những cái tên này thường không được ghi nhận ở bất cứ đâu. Và ý nghĩa được lan truyền bằng lời nói. Và các tên không liên quan gì đến chức năng của công cụ hoặc thực thể mà nó được đặt tên.

Tôi thấy mô hình mà các máy kiểm tra nội bộ được đặt tên theo các chòm sao, các máy chủ đối mặt công khai được đặt theo tên của các vị thần Hy Lạp. Và các dự án được đặt tên theo địa điểm hoặc tên của một số ngôi sao phim hoặc tên nhân vật được chọn ngẫu nhiên. Nhưng không có thông tin có sẵn trực tiếp từ tên cho dù các máy là Windows hay Linux; Máy chủ 32 hoặc 64 bit. Hoặc những gì các dự án về.

Tôi chỉ có một cảm giác tồi tệ khi nhìn thấy thông điệp cam kết của VCS rằng ai đó vừa phân nhánh dự án "Gandalf" hoặc dự án "Call Biến" hoặc bất kỳ dự án nào. Cũng với lý do tương tự, bạn thường không đặt tên cho các hàm và biến của mình như thế.

Tôi đề xuất rằng chúng ta nên sử dụng các tên mô tả nhiều hơn, ít nhất là cho các thực thể mới, nhưng tôi đã gặp phải sự phản đối rất mạnh mẽ. Rõ ràng mọi người trong tổ chức ngoại trừ tôi đều thích đặt tên như vậy.

Vậy tại sao chúng ta sử dụng tên mã không mô tả?

Đừng hiểu lầm tôi không có vấn đề gì khi đặt tên các phiên bản và cột mốc chương trình, hoặc có một tên sản phẩm đẹp vì lý do tiếp thị. Nhưng tất cả những nơi khác tôi muốn thấy tên mô tả.

BIÊN TẬP:

Để cung cấp cho bạn một số bối cảnh: Gandalf là dự án có mã 64 bit. Call Biến là cổng chuyển sang Android ... Tôi muốn gọi nhánh 64bitporting trước và androidporting sau. Có thể một hậu tố gắn liền với nó biểu thị phiên bản mục tiêu mà chúng tôi dự định sẽ gửi nó. Vì vậy, mọi người sẽ biết tên của nó là gì.

Các máy chủ được đề cập là hình ảnh máy ảo mà chúng tôi kiểm tra sản phẩm trên ... Tôi không biết máy vật lý thực sự chạy trên đó. Vì vậy, gọi chúng là windowsxp_32, windows7_64, debian_32 hoặc solaris_64 là hoàn toàn tốt.


6
Những gì được mô tả cho bạn có thể không đủ để mô tả (hoặc sự đồng ý) cho người khác. Một tên là một tên là một tên. Không nhầm lẫn hay bất đồng.
Robbie Dee

1
Vì vậy, rất nhiều câu trả lời, tuy nhiên, nếu bạn đặt câu hỏi "Tôi nên đặt tên máy chủ của mình theo mục đích hay theo các vị thần Hy Lạp?", Tôi nghi ngờ / hy vọng mục đích sẽ được khuyên dùng. Và vâng, fileserver4 dễ nhớ hơn Aphrodita, khi nói đến việc nhớ các máy chủ có ftp.
Vorac

2
Câu hỏi này dường như lạc đề vì nó không liên quan đến phát triển phần mềm.
Mike Partridge

4
Những gì trong một cái tên? Cái mà chúng ta gọi là hoa hồng bởi bất kỳ từ nào khác sẽ có mùi ngọt ngào.
Caleb

3
Tôi hy vọng chi nhánh Gandalf không phải là tên mã cho khung kiểm tra đơn vị. Bất cứ điều gì chạy qua nó SALL KHÔNG PASS!
corsiKa

Câu trả lời:


25

Chúng tôi không tham khảo mọi người theo đặc điểm của họ vì phải mất cả ngày để liệt kê họ đủ chi tiết để rõ ràng và các đặc điểm có thể thay đổi. Nếu họ cắt tóc thì sao? Thay vào đó chúng tôi cung cấp cho họ tên. Ngoài ra, mọi người tốt hơn trong việc ghi nhớ các từ hơn các dòng ký hiệu ngẫu nhiên.

Tuyên bố từ chối trách nhiệm: Điều này sẽ chứa một số ý kiến ​​và câu chuyện giai thoại do câu hỏi.

Ở một nơi tôi làm việc vài năm trước, tất cả các máy chủ của chúng tôi được đặt tên theo mặt trăng và các bộ phận cơ thể. "Rhea", "Miranda", "phổi", "thận", v.v.

Lên cao quyết định, giống như bạn, rằng điều này hơi ngớ ngẩn và chúng ta nên thay đổi chúng thành các tên "mô tả" hơn như "arc-sql-w-4" hoặc "lon-web-lin-2". Điều này đã gặp phải nhiều sự phản đối. Nhưng nó đã đi qua. Chúng tôi đổi tên tất cả mọi thứ.

Vì vậy, những gì đã đi sai?

Trước đây, chúng ta đã biết đầu máy của chúng ta là máy nào là cơ sở dữ liệu chính và là nô lệ vì chúng ta có thể nhớ "đầu" điều khiển "tim" hoặc "Tarvos" là máy chủ ứng dụng cho X. Dù thế nào. Bây giờ chúng tôi phải nhớ một đống biểu tượng tối nghĩa một phần, nhưng không mô tả đầy đủ máy mà chúng tôi đang tìm kiếm. Chúng tôi phải biết thông qua một số bảng tra cứu trong đầu rằng "lon-web-lin-1" là một máy chủ ứng dụng cho sản phẩm A và "lon-web-lin-2" cho sản phẩm B.

Nó giống với lý do bạn nên sử dụng mật khẩu như FartDownTrousersForALivingDoYou? thay vì 43gH5 # € 1. Mọi người rất giỏi ghi nhớ từ ngữ, không phải là đống rác ngẫu nhiên. Từ ngữ là biểu tượng đề cập đến sự vật.

Một vấn đề khác (có thể thực tế hơn) là bạn đang buộc tên DNS và máy chủ của mình vào các chức năng của chúng. Điều đó có nghĩa là bạn không thể thay đổi chức năng mà không thay đổi tên. Đối với chúng tôi điều này bao gồm vị trí vật lý và hệ điều hành quá. Đó là một nỗi đau lớn trong ass.

Ngoài ra, và đây là điểm cuối cùng. Tên vui hơn nhiều.

Tên dự án thì sao?

Chà, thay vì "Project Gandalf", bạn đề xuất gì? "Dự án nguyên mẫu hàm X và xem liệu chúng ta có thể phát triển nó thành sản phẩm không"? Điều gì xảy ra nếu phạm vi dự án thay đổi, sau đó chúng ta đổi tên dự án? Một lần nữa, tên là biểu tượng tốc ký đề cập đến sự vật.


4
Có vẻ như bạn đã thay đổi các ẩn dụ mô tả cho chữ tượng hình không mô tả. Bạn nên thực thi một mẫu đặt tên để làm rõ sản phẩm nào chạy trên máy chủ nào. Đó là những gì "mô tả" là về;)
back2dos

9
@ back2dos - Và khi một ứng dụng mới được triển khai đến máy chủ hoặc một ứng dụng hiện có chuyển sang một máy chủ khác, bạn có đổi tên tất cả các máy chủ bị ảnh hưởng không? Còn khi sản phẩm A được đổi tên (vì chúng tôi không sử dụng tên mã) thì sao? Bạn sẽ thay đổi ở mọi nơi mà tên được lưu trữ trên máy khách? Hoặc bạn sẽ để lại các bí danh DNS sai lệch để giảm thiểu phạm vi thay đổi?
Hang động Justin

5
@ back2dos - Đổi tên máy chủ (và cập nhật tất cả máy khách) mỗi khi một ứng dụng mới được triển khai trở nên khá đau đớn khá nhanh. Điều gì xảy ra khi bạn triển khai ứng dụng thứ 10 đến một máy chủ cụ thể? Điều gì xảy ra khi bạn có hàng trăm máy khách có tham chiếu đến một tên máy chủ cụ thể? db3.todoapplà thông tin nhiều hơn nếu máy chủ chỉ xử lý todoapp. Nếu tiếp thị quyết định gọi ứng dụng là "Organizer Pro" và bạn có 8 ứng dụng khác trên máy chủ, việc quản lý tên sẽ trở nên khá phức tạp.
Hang động Justin

4
Ngoài ra, điều gì xảy ra khi máy có nhiều hơn một chức năng? Tên có thể lớn không thể quản lý hoặc không thể mô tả chính xác.
tom

2
Thật khó để không đồng ý với back2dos. "Chữ tượng hình không mô tả" chính xác là những gì tôi đã nghĩ về khi đọc các ví dụ của bạn. Sự khác biệt giữa vai trònhận dạng back2dos cũng đặc biệt có liên quan. Tại công ty của tôi, các máy chủ được đặt tên theo vai trò của chúng và một tên như "http-blog-db-failover" dường như rõ ràng hơn nhiều so với "Hermione" và tên sẽ không thay đổi khi tôi chuyển từ MongoDB sang CouchDB hoặc khi tiếp thị quyết định thay đổi tên thương mại của trang web lưu trữ blog.
Arseni Mourzenko

10

Đặt tên mọi thứ theo tài sản của họ là một ý tưởng tồi tệ về cơ bản. Lý do là các thuộc tính , theo định nghĩa, là hiện tượng có thể thay đổi, trong khi danh tính của một vật vẫn giữ nguyên ngay cả khi các thuộc tính được thay đổi.

Ai đó quyết định rằng máy chủ tập tin nên được di chuyển sang Linux? Nếu tên của nó là "Apollo", đó không phải là vấn đề. Nếu tên được gọi là "cửa sổ", thì nó sẽ trở nên sai lệch hoặc phải được thay đổi ở mọi nơi với chi phí lớn hoặc rủi ro. Bạn đang giới thiệu một định dạng đầu ra mới? Vì tình yêu của Chúa, đừng gọi nó là 'newFormat'! Cuối cùng nó sẽ được thay thế một lần nữa và định dạng thậm chí mới hơn sẽ cần một tên mô tả thậm chí nhiều hơn để phân biệt nó. Hoặc gọi nó là '3', để sau này bạn có thể tăng nó lên '4' hoặc 'vàng' để bạn có thể nâng cấp lên 'bạch kim'.

. bất kỳ ngày nào. Nhưng điểm chính là sự phân chia danh tính / tài sản.)


4
Tên mô tả không mô tả thuộc tính nhưng mục đích . Nếu bạn gọi một chức năng hiển thị đầu ra Hermesthì có, nó dễ nhận ra hơn functionWithTenLinesOfCode. Cá nhân, tôi sẽ gọi nó printmặc dù.
back2dos

@ back2dos Các ví dụ mà OP đưa ra dường như mô tả tương đương vớiprint_left_aligned_to_CRT_monitor()
Izkata

@Izkata: Bạn phải thừa nhận, đó là cách tốt hơn Cathy(). lưu ý: Cá nhân tôi đã thấy mã sản xuất có chức năng và tên biến trích dẫn lời bài hát của Guns & Roses và có tội khi viết mã sản xuất với tên biến và tên hàm tham chiếu Buffy.
slebetman

10

Có 3 lý do, theo kinh nghiệm của tôi:

  1. Khi bạn phải đặt tên cho nhiều thứ tương tự, thật khó để tìm thấy tên mô tả duy nhất cho tất cả chúng. Mọi người cần một cách ngắn gọn để đề cập đến nó và chúng tôi sử dụng tên tốt hơn chúng tôi sử dụng số (trừ khi số này rất ngắn). Khi bạn đặt tên cho nó, nó có xu hướng mang một tính cách trong tâm trí của bạn, vì vậy bạn sẽ nhớ rằng máy chủ Gandalf là máy có đầu nối nguồn dễ vỡ hơn SERWIN15AB23. Cũng ít khả năng bạn sẽ nhầm lẫn hai trong số chúng với một lỗi đánh máy.

  2. Quá trình đặt tên có thể được vui vẻ. Một số công ty làm điều đó với một cuộc bỏ phiếu. Những người khác thích đến với tên độc đáo. Chỉ cần hỏi bất kỳ phụ huynh.

  3. Đối với các dự án bên ngoài, thường là tiếp thị quyết định tên đó là gì và thông thường họ làm điều đó ngay trước khi xuất xưởng. Khi nào Microsoft quyết định gọi HĐH mới nhất là "Windows 10"? Tôi nghi ngờ nó luôn luôn được gọi như vậy. Dự án có thể đã được phát triển trong một thời gian dài trước đó và trong một số trường hợp bạn muốn làm xáo trộn nó để mọi người bên ngoài công ty không biết bạn đang nói gì.


5
Cũng đáng để thêm rằng tên có thể được điều chỉnh theo nhiệm vụ được đề cập. Gandalf có thể là máy chủ xây dựng "nơi phép màu xảy ra", Cerberus có thể là tường lửa, Hephaestus là máy chủ dev, v.v ... thật khó để liên kết các số với các chức năng
Liath 6/11/2016

1
Nhân tiện: Tên nội bộ của "Windows 10" thực sự là "Windows NT 6.4". Nhưng tiếp thị sẽ không bao giờ thừa nhận rằng 6.0 aka "Vista" là phiên bản cuối cùng mà nhân hệ điều hành có thiết kế lại chính.
Philipp

@Philipp chỉ cần gõ "ver" vào dòng lệnh của máy Windows 7 - 6.1 (vista SP1 luôn là trò đùa), không chắc Windows 8 nằm ngoài đỉnh đầu tôi.
Liath

Windows 8.1 Pro (Tôi chắc chắn rằng PC này không có Bản cập nhật 1): 6.3.9600 msdn.microsoft.com/en-us/l
Library / windows /desktop / Lỗi

@Philipp AFAIK, điều đó được thực hiện vì lý do tương thích ngược, nó không phản ánh mức độ thay đổi của hạt nhân.
Svick

6

Đặt tên mô tả là khó ™, sẽ dễ dàng hơn nhiều nếu bạn đã có một chủ đề tự động đi kèm với một danh sách các từ bạn có thể sử dụng.

Khi bạn có nhiều của cùng một đối tượng đặt tên cho chúng foo1.6, foo1.2vv nhanh chóng trở nên bối rối / dễ bị sai lầm. Ví dụ, khi bạn cần chạy thử nghiệm, Virgobạn sẽ nhanh chóng nhận thấy lỗi nếu bạn đang xảy ra Cancer.

Nó cũng làm cho một cuộc họp giải trí khi các quy ước đặt tên được đưa ra và quyết định được đưa ra để đặt tên phòng hội nghị theo thể loại âm nhạc và bạn đặt tên cho quán cà phê Salsa.


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.Rất đúng. Nhưng chỉ vì nó dễ hơn, không có nghĩa là nó tốt về lâu dài. Những gì bạn đang nói không giống như không thực hiện thiết kế API phù hợp, bởi vì việc tạo ra chức năng dễ dàng hơn nhiều.
back2dos

3

Điều này có thể liên quan đến bối cảnh cao hoặc văn hóa bối cảnh thấp . Mỗi công ty, tổ chức hoặc nhóm có văn hóa riêng. Văn hóa bối cảnh cao hay thấp có nghĩa là bao nhiêu thông tin mà một nền văn hóa thích liên quan rõ ràng và bao nhiêu người dự kiến ​​sẽ lấy từ bối cảnh.

Đặt tên cho tất cả các dịch vụ với tên từ tài liệu tham khảo văn hóa không cung cấp một số tính linh hoạt, nhưng cũng thiếu chứng minh. Phải có truyền miệng hoặc "kiến thức bộ lạc" bổ sung cho tên - tức là bối cảnh của dịch vụ. Tôi đã thấy các tình huống ví dụ như máy chủ "fizzbuzz" hoặc dịch vụ "marcopolo" mà không ai biết họ làm gì, nhưng họ có lưu lượng truy cập, vì vậy họ phải làm gì đó.

Tôi là người có ngữ cảnh thấp, vì vậy tôi có xu hướng chọn các tên đơn giản, rõ ràng cung cấp ngữ cảnh về mục đích của máy chủ hoặc dịch vụ. Tôi cũng viết "mã tự ghi" trong đó tôi cẩn thận về việc đặt tên trong mã của mình để dễ đọc hơn.

Nhưng tôi hiện đang làm việc trong một cửa hàng bối cảnh cao, nơi tất cả các dịch vụ được đặt theo tên của Transfomers. Thở dài. Ít nhất là họ sử dụng tên một cách nhất quán.

Vì vậy, nó có vẻ giống như một giá trị văn hóa, nhưng thực hành kỹ thuật sẽ thích ứng với các sở thích văn hóa.

Bối cảnh cao cũng có thể hài hước hơn, và có một số giá trị trong đó.


2

Câu hỏi quan trọng là: mô tả là gì? Các câu trả lời khác đã thực hiện một công việc tuyệt vời minh họa những gì không mô tả.

Hãy thiết lập mô tả đó đến từ việc gọi mọi thứ theo vai trò , mục đích của chúng . Bằng những gì họ làm . Ví dụ, nó khá rõ ràng, "máy cắt" làm gì. Bây giờ nó có thể là rìu, laser hoặc dao. Nó không quan trọng lắm. Và tia laser cũng có thể là "con trỏ", một chiếc rìu cũng có thể là "vật trang trí" và một con dao cũng có thể là "người chấm câu".

Vì vậy, như những người khác đã chỉ ra, mối quan hệ giữa các thuộc tính của một cái gì đó và nhiệm vụ mà nó hoàn thành là tương đối lỏng lẻo. Do đó, HĐH là một phần của tên máy chủ không được mô tả , nó làm sao lãng mục đích thực sự.

Trừ khi công việc của bạn là làm việc về cách thành phần DoesXhoàn thành X, đó không phải là việc của bạn. Nếu đó là công việc của bạn, thì dù sao bạn cũng phải đối mặt với nó ngay lập tức.

Như rachet freak chỉ ra, đôi khi rất khó để tìm thấy tên mô tả. Nhưng thường xuyên hơn không, đó là một dấu hiệu của việc không hiểu những gì làm, mà bạn phải đặt tên. Trước khi có được sự hiểu biết đó, có lẽ bạn không nên quan tâm đến việc làm thế nào mà bạn không biết;)


+1, nhưng thêm một ví dụ thì sao? Bạn có thể sử dụng ví dụ tôi đã sử dụng khi bình luận câu hỏi ( http-blog-db-failoverđối với máy lưu trữ cơ sở dữ liệu dự phòng của blog lưu trữ trang web; chuyển từ Linux sang Windows hoặc từ MongoDB sang CouchDB sẽ không ảnh hưởng đến tên, cũng không quyết định tiếp thị. )
Arseni Mourzenko

2

Một lý do cho tên mã là obfuscation. Nếu bạn làm cho tên của một dự án trở nên vô nghĩa, thì bạn có thể nói về nó ở nơi công cộng mà không có ai khác hiểu những gì bạn đang thảo luận.

Tương tự, nếu bạn đặt cho máy chủ của mình những cái tên vô nghĩa, thì không ai ngoại trừ người dùng được ủy quyền sẽ có bất kỳ ý tưởng nào về chúng.


2

Lý do đầu tiên là nó có thể ngắn và đáng nhớ. Nếu bạn nghĩ về việc bạn sẽ nói hoặc viết tên dự án bao nhiêu lần, bạn sẽ tiết kiệm được một khoảng thời gian đáng kể nếu có một cái tên ngắn gọn mà mọi người đều biết và hiểu.

Lý do thứ hai là nó xây dựng tình bạn. Nếu đội được chọn tên, điều đó có thể chọn một tên mà tất cả họ thích. Nó tinh tế, nhưng nó thúc đẩy tinh thần đồng đội khi bạn đang làm việc trong một dự án có tên Viper hoặc Gimley hoặc Boba hoặc Bugatti thay vì một dự án có tên là 'Cập nhật kế toán quý 3'. Tôi có một người bạn làm việc trong một nhóm với những người đam mê xe hơi. Nghi thức khởi động dự án yêu thích của họ là chọn chiếc xe nào họ sẽ sử dụng làm tên mã dự án.


2

Tôi đã luôn nghĩ rằng đây là một cái gì đó được thực hiện chủ yếu bởi vì nó làm mọi người thích thú. Mọi người được điều chỉnh bởi các phương tiện truyền thông để gắn giá trị cho việc lướt qua trong bóng tối so với hoạt động trong ánh sáng ban ngày. Năm 5 tuổi, chúng tôi có "Đặc vụ Oso"; ở tuổi 15, đó là James Bond. Bí mật cho vay một tầm quan trọng đối với các hoạt động trần tục khác của mọi người (ví dụ: lập trình máy tính).

Liên quan, ai đó đã tạo logo cho "Longhorn" trở lại khi đó là tên mã của Microsoft ( http://en.wikipedia.org/wiki/File:Windows_Longhorn_logo.svg ). Tại sao một người nào đó tạo logo cho một tên mã mà không bao giờ thực sự là một phần của bất kỳ nỗ lực tiếp thị nào? Một lần nữa, mọi người làm điều này vì nó thú vị. Chơi xung quanh trong Photoshop dễ dàng / thú vị hơn so với thực tế làm việc thực sự.


1

đó cũng có thể là một hệ thống mà bạn không biết.
Một công ty tôi làm việc đã sử dụng tên của những người giành giải thưởng Nobel cho tất cả các máy chủ của họ. Các giải thưởng Nobel khác nhau chỉ ra các loại máy chủ khác nhau.
Máy chủ thử nghiệm có thể được đặt theo tên của người chiến thắng toán, máy chủ cơ sở dữ liệu sau khi người chiến thắng văn học, máy chủ mail sau khi chiến thắng y học, vv vv
Để ai đó không quen thuộc với quy ước đặt tên, tên dường như hoàn toàn ngẫu nhiên (đặc biệt là khi hầu hết mọi người không biết tất cả những hàng trăm người đoạt giải thưởng Nobel trong nhiều thập kỷ).

Tôi đã sử dụng một hệ thống tương tự ở nhà, đặt tên máy tính theo máy bay chiến đấu phản lực, máy chủ sau máy bay ném bom và khối lượng đĩa sau núi lửa.

Điều tương tự có thể được thực hiện với các phần mềm, phiên bản sản xuất tên sau cây, phiên bản beta sau hoa, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.