Yüksek sesle kod okuma standartları?


12

Herkes herhangi bir dil için kodu yüksek sesle okumak için bir standart tanımladı mı? Bunun, görme engelliler için ekran okuyucular gibi yazılımlar için önemli olduğunu düşünüyorum. Bu tür bir şey, birisiyle kod tartışırken, bir grupta gözden geçirirken veya bir sınıf öğretirken de ortaya çıkar.

C dil ailesinde, "bariz" telaffuzlara sahip birçok kelime vardır. Bazıları yalnızca İngilizce kelimeler şunlardır: for, break, case, default, vb Bazı kısaltmalar gibi int, müphem. Ve sonra var char.

Ben her zaman "kömür" ilk hece gibi söyleme (ve kafamda duymak) eğilimindedir. İlk kez "araba" gibi telaffuz eden biriyle kod hakkında konuşuyordum, bu gerçekten daha mantıklı çünkü chargerçekten "karakter" kelimesinin kısaltmasıydı, bu yüzden açıkça aynı şekilde telaffuz edilmelidir. Ama bunu bile bilerek bile, kömür gibi karakter benim için daha doğru hissettiriyor.

Ve sonra gibi ifadeler var foo = bar ? *(++baz) : zardoz.

Herkes doğru şekilde (kendi görüşlerine göre) kodu yüksek sesle okumayı dikte eden bir belge hazırladı mı? Belirli bir dil için mi, yoksa genel olarak kod için mi?


9
Yüksek sesle Perl okumak ... <acısı acı>
Rook

4
Sadece merak için, kodu neden yüksek sesle okuyorsun? Sanırım hiç yapmadım
Vitor Py

1
Bu, işe gidip gelme sırasında programları dikte etmek için de yararlı olacaktır. Neyse ki, bir Delphi programı olarak sadece aşırı zarafetle dikte ederdim.
Peter Turner

2
@Peter: Sadece meraktan nasıl bahsediyorsun :=?
Mason Wheeler

2
@Mason Neyse ki, Colon Eşittir
Peter Turner

Yanıtlar:


15

Kısa tulum: Coding Horror'daki bu harika makaleyi okuyun

Kod her ne zaman telefonda konuşursam, onu tam anlamıyla okumam. Bunu insana “derlemelisiniz” ve çizginin diğer ucunda hala kafa karışıklığı varsa, daha gerçek bir okumaya geçebilirsiniz. Örneğin, örneğinizi şu şekilde okurdum:

"Bar doğruysa, baz işaretçisini artırın ve bu adresteki değeri foo'ya atayın. Aksi takdirde foo'yu zardoz'a ayarlayın."

90'lı yılların ortalarından beri tam zamanlı bir tele-bilgisayar oldum, bu yüzden pratikte meslektaşlarımla olan tüm etkileşimlerim telefon veya diğer dolaylı yollardan geçti. Çoğu zaman bir ekran (terminal) veya VNC (X) oturumunu paylaşıyoruz. Normal arkadaşlığın yanı sıra, bütün gün kod, tasarım, planlama vb.

Kod hakkında konuştuğumuzda, çalışılan proje türüne derinden bağlı jargon kullanıyoruz. Yeni bir grup üyesinin tamamen işlevsel hale gelmesinin çok uzun sürmesinin (birçok) nedenlerinden biri, yeni bir departmana / şirkete her katıldıklarında esasen yeni bir dil öğrenmeleridir.

Yukarıda söylediğim gibi ve diğerlerinin de söylediği gibi, herhangi bir tartışma için uygun seviyede konuşmaya çalışıyoruz. Ama bazen, gerçekten birine söylemeniz gerekir: "Bunu yazın"

Bunu nasıl soylersin? Sadece bir numaralandırma verebiliriz ...

~  tilde
`  backtick
'  single quote
"  quote (or double quote)
/  slash, \ is backslash
#  pound or hash
!  bang (or exclamation mark)
@  at
$  dollar
%  percent or mod
^  caret or xor
&  and or bitwise and
&& and or logical and
|  pipe or 'or' or bitwise or
|| 'or'
*  value of, times, glob, multiplied by
() parens, open paren, close paren
{} braces, curlies, open stash, close stash
[] brackets, square brackets, at & sub (for subscript) (for C-ish arrays)
...

Bu karakterleri "biz" böyle söylüyoruz. Tüm "#" demesi hakkında fikir edinmek için # için wiki sayfasına bir göz atın

Yani çok fazla değişkenlik var. Kodladığınız dile özgü olmalıdır (tıpkı insan iletişimimiz için bunu İngilizce yazdığım gibi).

Dil bağlamı olmadan, karakter yazımıyla karaktere geri dönmeniz gerekir. Yani bildiğim çoğu insan dil standardının her şeyi dediği şeye geri döner.

SELECT COUNT(*) INTO x FROM ...   (SQL)
X IS Y + 1                        (Prolog)
(setq x 40)                       (Emacs lisp)
/def x 40                         (PostScript)
x = 40                            (C)
$x = 40                           (Perl)

Bunların her biri sadece uygun bağlamda "X'i ... olarak ayarla" diyerek ima edilirdi. Do not bile bana olarak okunur hangi kodun işlemine başlarken "dize X dize Y'ye eşit olduğunu".

Eğer "hash bang bin bash" veya "shebang bash" derseniz, hemen hemen herkes bunun "#! / Bin / bash" anlamına geldiğini bilecektir. Eğer yapmazlarsa, "Huh?" Derler ve "Çentik işareti, ünlem işareti, eğik çizgi, depo gözü, eğik çizgi, bash, satırsonu" bir çentik aşağı adım. Hâlâ anlamıyorlarsa, bir kez daha düşürürsünüz: "Önünüzdeki klavyeyi görüyor musunuz?" 3 "tuşuna bakın? Üst karakter tuşuna bastığınızda üstteki işaret bir pound işaretidir, budur."

Sonuç olarak:

  • bu konuda fazla endişelenme, yanlış olacaksın, herkes üstesinden gelecek
  • tam olarak ne yaptığına çok açık
  • her zaman bir havlu taşı
  • Kodlama Korkusu'ndaki makaleyi okuyun

Katılıyorum. Neredeyse "kelime kelimesi" kodunu hiç okumadım sadece ne yaptığını açıklıyorum.

1
Amacınız neler olup bittiğini açıklamak mı yoksa sözlü olarak kopyalamasına izin vermek mi?
İş

1
@Job - Aslında kod okuyorsanız ve sadece modülleri, sınıfları, blokları, subsleri vb. Açıklamakla kalmazsanız, belirli bir spesifikliğe ihtiyacınız vardır. Ama asla dilimle yazmaya çalışmam. Birisine bir e-posta adresi veya telefon numarası yüksek sesle söylemenin ne kadar zor olduğunu düşünün. Eğer gerçekten karakter karakter dile getirmeye geliyorsa, o zaman tamamen kitlenize bağlıdır. Eğer dalga işaretine "dalgalı" olarak atıfta bulunulması gerekiyorsa, öyle olsun.
unpythonic

Mark, yazdıklarına katılıyorum (yani genellikle gerçek doğruluğu koyar), ama gerçekten soruyu ele almıyor, bu gerçekten a #veya a olarak adlandırılacak konular üzerinde anlaşma süreci ile ilgili !. Kodu neden telefonla tartıştığınızı bile söylemiyorsunuz . En çok oyu aldığınız için, cevabınızı biraz daha açıklayabilir misiniz?
benzado

Cevabınızı kabul ettim, çünkü güncellemek için zaman ayırmanın yanı sıra, Jeff Atwood'un bloguna da bağlandınız, bu da Yeni Hacker'ın Sözlüğü'ndeki "ASCII" girişine bağlanıyor. İçin bakıyordum. Teşekkürler!
benzado

3

Dil sözdizimini yüksek sesle konuşmak için hiçbir standartla karşılaşmadım. Birisi, örneğin "#! / Bin / sh" i "pound ünlem işareti eğik çizgi BIN ileri eğik çizgi SH yerine" #! / Bin / sh "olarak" Hash-bang slash bin slash SH "olarak atıfta bulunduğu küçük parçacıklar üzerinde koştum. "daha sonra dinleyicinin yapıya daha az aşinalı olduğunu varsayabiliriz.

Farklı dillerin yüksek sesle okunma miktarında da büyük bir eşitsizlik vardır. Örneğin, yüksek sesle söyleme daha kolay olan Python arasındaki farkları ele alalım. Perl, ya çok fazla noktalama belirtmenizi ya da "$ var [20]" den "dizi var'ın yirminci öğesine" çevirmenizi gerektirir.

Kendi deneyimim, kodu yüksek sesle okumamın nedenine, dinleyicinin bilgi seviyesine ve söz konusu dile bağlı olarak çok bağlamsal olduğudur.

Kod incelemeleri durumunda, bir ifadeyi açıklamaya daha yüksek sesle okumaya çalışmaktan daha olasıdır, çünkü anlam veya düşünce sürecini elde etmek genellikle dinleyicilere ham kodu okumaktan daha önemlidir.

Birisine bir düzenleyiciye tam bir C kodu satırı yazmayı denediğimde (örneğin, küçük bir programcının omzunun üzerinden bakıyorum ve kodlarının bir satırını nasıl düzelteceğimi görüyorum), genellikle kod konuşma bitiriyorum anahtar kelime ve sembollerde "eğer boşluk açık-paren null çift eşittir p close-paren ..." gibi daha üst düzey bir geliştirici ile aynı değişim daha "p burada null olup olmadığını kontrol etmeniz gerekir ... "


1

Kod hakkında konuşmak, sözde kodun son derece kullanışlı hale geldiği zamanlardan biridir .

Birisi bana karaktere göre kod vermeye başlarsa, sadece bana e-postayla göndermelerini söylerim ve ne düşündüğümü bildiririm.


0

Kısa cevap

Standart bir telaffuz rehberine en yakın şey, Hacker Sözlüğü'nde (diğer adıyla Jargon Dosyası ) "ASCII" girdisi gibi görünmektedir . Artık çevrimiçi olarak kolayca bulunamayan "Usenet ASCII telaffuz kılavuzunun revizyon 2.3'ü" nden türetilmiş bir tablo içermektedir. 1991 yılının Mayıs-Haziran aylarında Maarten Litmath'ı orijinal belgeyi koruduğu konusunda bilgilendiren ilgili bir tartışma dizisi olan " Bu karakteri adlandırın! " comp.miscİleti dizisinde, "&" için "Donald Duck" gibi "zeki" adların daha yeni dokümandan çıkarıldığı belirtiliyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.