Patronum kodumuz hakkında açıklamalı bir İngilizce anlatım istiyor.


155

Patronumun okumak ve takip edebilmek istediği bir açıklama veya yorum yapmam istendi.

Programcı olmadığı için kodu takip edemiyor, bu yüzden hepsinin İngilizce'ye çevrilmesini istiyor.

Bunu daha önce yapması istenen oldu mu?

Tüm kaynak kodları hakkında yorum yaptım ve JSDoc'u tüm işlevlerin, değişkenlerin vb.

Programcı olmayanların kodunu yorumlamak için yapabileceğim başka bir şey var mı?

Bu makul bir istek değil mi?


GÜNCELLEME

Sonunda, neden istediğini yapmak için neden iyi bir zaman kullanmadığını açıklamayı başardım. O makul bir adam ve işimin ne işe yaradığını tam olarak anlamadı. Bu yazıyı görünce, normal bir istek olmadığını hemen anladı.

Başka bir programcının izlemesi için uygun belgeler sağladım (JSDoc ve satır içi yorumlar - ayrıca teknik konular hakkında bazı ek notlar) ve patronumun izleyeceği programın ana mantığının çok geniş bir akış şeması diyagramı.

Sonunda, tüm taraflar memnun kaldı ve biz devam ettik.


Tarihsel nedenlerden dolayı kilitlenmiş, lütfen daha fazla ayrıntı için "En çok oylanan soruları kilitle" konusuna bakın.
yannis

Yanıtlar:


160

Hayır , makul bir istek değil!

Her halükarda BT HIM OUT KONUŞ ya da bir başkası onu konuştum. Bu, mantıklı bir fikir, ki yapılması mümkün olsa da, yapılması gereken kadar pahalı olmamıştı. İşlevlere ve alt programlara genel bir bakış makul, ancak her kod satırını "açıklamak" değildir. Dili okumayı öğrenmek onun için yapmaktan daha etkili olurdu.

İstediği bir sonraki şey matematiksel formülleri ya da İngilizce metne çevirmemek. Kesinlikle mümkün olsa da, bu hata ve yanlış yorumlama için çok yer sağlar ve asla yapılmamalıdır. Tıpkı İngilizceye "çeviri" kodu gibi.


İlginç: Git Richard Feynmans'ın Fizik derslerini oku. Bunun çoğunun İngilizce olarak dikkatlice ifade edilmiş bir argüman olduğunu göreceksiniz (X'in Y olması gerekiyorsa ve dolayısıyla Z ... vb.). Küçük matematikler. Yaptığım şey, İngilizce şeyler açıklayabilmen. Yapmanız gerekip gerekmediği başka bir konudur.
hızla_ben

1
@quickly_now - Kolejde uzun zaman önce onları okudum. Fena bir okuma değil. Katılıyorum, açıklayabilirsiniz - açıkladığınız kişi, arkasındaki "soyutlamayı" zaten anladığı zaman, herhangi bir dilde açıklayabilirsiniz (kod, matematiksel denklem ve bunun anlamı ...) // Yapmazsa t - herhangi bir dilde açıklamakta zorlanacaksınız.
Rook

4
@Rook - iyi nokta. Kuantum mekaniğinin, kelimeleri Elk'in hangi yöne hareket ettiği ile sınırlı olan ilkel bir kabileye açıklamak zor olurdu.
Çabuk_şimdi

Bazen menajerinizin niyetini, mikro yönetime zaman zaman bulabilirim. Ancak, kod kendi içinde çok açıksa, o zaman İngilizce bir metin olarak okuyabilir.
Arvind Chinniah

150

Eğer var mı tasarım belgelerini ? Bunlar, kodun ne yaptığının İngilizce açıklaması. Programlamayan bir yöneticinin bundan daha fazlasına ihtiyacı olmamalıdır.


15
Bu yüzden, “Programlamayan bir yöneticinin bundan daha fazlasına ihtiyacı olmamalı” dedim.
Malfist

35
@Loren Pechtel: Oraya siteyi yerleştirmek ve bu adamın aslında "X adında bir tamsayı değişkeni oluşturma. 0 olarak ayarlayın. Y" adında bir tamsayı değişkeni oluşturun. Z olarak adlandırın. 0 olarak ayarlayın. X olarak adlandırılmış bir tamsayı değişkeni oluşturun, 0 olarak ayarlayın. Y olarak adlandırılmış bir tamsayı değişkeni oluşturun. 0 olarak ayarlayın. Z konumu adlı bir tamsayı değişkeni oluşturun. 0 olarak ayarlayın. X döndürme. 0 olarak ayarlayın. Y döndürme adlı bir tamsayı değişkeni oluşturun. 0 olarak ayarlayın. Z döndürme adlı bir tamsayı değişkeni oluşturun. 0 olarak ayarlayın. "...
FrustratedWithFormsDesigner

9
@Frustated Sözdizimi vurgulama ile çok daha kolay! " [P32767, L21, c8] arttır pXbir boyutuna göre Integer. Artış Sumdeğeri tarafından işaret ettiği pX. Artış iolursa 1 ile i3 azdır, Aksi sayfa 32768, hat 17, kolon 42. gidin sayfa 32767 gitmek , satır 21, sütun 8 "
Mateen Ulhaq

9
@ muntoo, tüm bu işlevleri satır içi yapmanız gerekir, böylece sayfalar arasında ileri geri zıplamak zorunda kalmazsınız. Aksi halde biri yığını geri almakta sorun yaşayabilir.
Kibbee

15
@Frustrated: Peki kimin sesini hayal ediyorsunuz? Sean Connery ve Morgan Freeman arasında karar veremiyorum.
Beta

113

Yılın bir mikro yöneticisi var mı? Patronun aday olmayı hak ediyor gibiydi. Kod satır satır seviye anlayışı gerektiğine inanan, ancak doğrudan okumayı öğrenmek istemeyen biri, hayal edilebileceği kadar mikro-yönetici kadar mükemmeldir.

Bir geliştirici olmanın bir avantajı, kod anlama zorluğunun, belirli bir derecenin ötesinde, en azından ayrıntılı uygulama düzeyinde, en azından teknik olmayan bir yönetim tarafından mikro yönetimi önlediğidir; çünkü en sert çekirdek yönetici bile Bu düzeyde başlarının üstünde. Ancak patronunuzun dehası silikon perdeyi kırmanın bir yolunu bulabilir.

Ve bir bonus olarak, çeşitli iyileştirmeler önermek için İngilizce çeviriyi kullanmadan önce bile, çeviriyi yaparken muazzam miktarda geliştirici zamanını boşa harcıyor (programcılardan daha iyi kodlamayı bildiğini sanıyorum, yapamamasına rağmen) Kodu okuyunuz ve birisini çevirir çevirmez bilgeliğini paylaşabileceksiniz, aksi halde neden çevrilen her çizgiye ihtiyaç duyuyor?).

Yani, hayır, bu makul bir istek değil ve daha önce hiç duymamıştım. Ve senin için hissediyorum. Herkesin sessizce başka bir iş aramaya başlaması gerekebileceğini düşünüyorum, çünkü kod çevirisini yönetim aracı olarak kullanmaya başladığında, muhtemelen çalışmak için vahşi bir yer olacak (çalışmak için daha vahşi bir yer).

Artı tarafta, belki de durumundan sonra adlandırılmış yeni bir anti-patern bulabilirsin? “Kirli Macarca Phrasebook” anti-paterni, bir tobacconistin İngilizce yanlış konuşmayan bir Macarca cümle kitabı kullanarak İngilizce konuşamayan biriyle iletişim kurmaya çalıştığı Monty Python skeçinden sonra ne olur?


21
Mikromanlaşma teşhisi için +1. Kendi sözlerimle: oradan f___ çık!
tdammers

@tdammers: Neyse ki, bu patronuma söyleyebileceğim türden bir şey. Patron olmanın yanı sıra iyi bir adam!
heltonbiker

5
Kodun her satırını anlaması gereken bir yöneticiye programcı denir.
James P.

91

Yanına otur ve kodun 10 satırı boyunca onunla konuş. İkiniz de istediği ölçüde anlayacağına karar verene kadar her ayrıntıyı açıklayın.

Belki de aradığı şey budur: işinizin size neye benzediği ve yazılımın sizin bakış açınızdan nasıl göründüğü hakkında bir izlenim. Bu benim kitabımda iyi bir şey.

Eğer bundan sonra, hala devam etmeni istiyorsa, şunu söyleyin: Ne kadar soru sormam gerektiğine dikkat edin; Bunları soru sorabilmeksizin açıklamak zorunda olsaydım, neyin dahil edip neyin dışarıda bırakılacağını nasıl bilebilirdim? Sonuçların sizin için yararlı olması için ne kadar zaman alacaktı? Şimdi, bu şekilde ne yapmamı istiyorsunuz?


57
İki saati harcadıktan sonra, on satırın açıklanması gereken 50.000 (veya her neyse) kod satırı olduğunu anladığını anladığından emin olun.
HLGEM

6
Aslında takip etmek için çok akıllıca bir yol. Yollarının cehaletini görmesini sağla.
Kibbee

4
@ reinierpost: yönteminiz saf dahi.
heltonbiker

5
Bunu yapacaksanız, öncelikle patronun genel olarak neden kötü bir fikir olduğunu ve THEN'in gösterdiğini söyleyin. Bunu yapmazsanız, bu onun üzerinde bir "numara" çekip onu savunmaya sokuyor gibi görünebilir.
nerdytenor

5
İnsanlara fikirlerinin kötü olduğunu asla söyleme !! Gerçekleşmeleri için neyin gerekli olduğunu tartışabilir ve hatta kısayollar almak için bazı fikirler bile verebilirsiniz. Bu, fikrin uygulanabilir olmadığı sonucuna varmasına veya ilk fikrin tamamen farklı bir şeye dönüşmesine neden olursa ve bunu bir noktada farketmeleri gerekiyorsa, omuz silkecek ve şöyle diyeceklerdir: hayat budur.
reinierpost 08:11

43

Bunun makul bir istek olduğunu sanmıyorum. KAYNAK KODU İngilizce (veya bu konuda başka herhangi bir dilde) okunması anlamına gelmez.

Belki de kodunu onaylamadığı ya da farkında olmadığı bir şeyi yapmasından korkuyordur. Durum buysa, yapabileceğiniz bir şey olduğunu sanmıyorum. Dokümanları yazmanız veya belki de kodunuzu denetlemesi için birisini işe almaya ikna etmeniz gerekecektir.


13
İngilizce olmayan bir /* and this line is transferring deposits to the correct account */ deposits.TransferAll(acctInfo);
çeviriyle

15
Patron "korktuysa, kodunu onaylamadığı veya farkında olduğu bir şey yapması için" yapacaksın, bu korkularını hafifletecek hiçbir şey yapmaz. Aynı kişi, kodu yazan çeviriyi sağlamaktadır. Ne olduğu hakkında yalan söylemelerini engelleyen ne? Burada başka bir şeyler oluyor.
mmc

4
COBOL İngilizce olarak okunacaktı.
oosterwal

1
Belki de, gerekçeyle uyuşup uyuşmadığını ve belki de daha iyi fikirler elde edip etmediğini görmek için kodun ne yaptığını anlamaya çalışıyor. Her durumda, işi yapmak değil, en azından öyle değil ...
heltonbiker

32

Gerçekten çok basit:

  • Programcı olarak becerileriniz nedeniyle işe alındınız
  • Yöneticiniz bu becerilere sahip değil
  • Ergo, menajerinin ne yaptığını tam olarak anlayabilmesi için makul bir beklentide olmaması gerekiyor

Daha önceki bir işte buna benzer bir deneyim yaşadım. Yöneticim bir muhasebeciydi (ve bu nedenle oldukça düşük seviyede ayrıntı odaklı) ve programlamayı anlamadı veya gerçekten güvenmedi. Teknik olmayan bir kişi olarak, yazdıklarımın önemsizliğini kavrayamayacağını düşünmemesi gerektiğini anlayamadı. Aşırı belgelendirme ve teknik olmayan kullanıcıları kodun nasıl yönetileceği ve değiştirileceği konusunda (evet, gerçekten) yetiştirme taleplerinin ardından, onu silmeyi bırakmayı denedim ve düpedüz reddettim. Açıkladığım analoji basitti:

  • Ben muhasebeci değilim
  • Hesaplarımızdaki her bir işlemi veya kayıt işlemini anlamayı beklememeliyim
  • Bu, hesapların yanlış veya güvenilmez olduğu anlamına gelmez, çünkü onları anlamıyorum.
  • Bu, onları derleyen kişiye güvenerek mümkün olur

Her şeyden önce, bunun bana geldiği şey buydu: çalışanlarına güvenmekte zorluk çeken bir yönetici; veya bırakacaklarından korkuyorlar ve bunun buna karşı hafifletmenin etkili bir yolu olduğunu düşünüyor.

Bunun tek çözümü oturup neden bunun anlam ifade etmediğini açıklamak. Kodunuzu anlamak ve benzer bir beceriye sahip birisinin sizin yöneticinize değil , sizin anlayabilmeniz için kodunu anlamak sizin işinizdir. Onlara bu konuyu göstermek iyi bir fikir olabilir (veya kişiliğine bağlı olarak gerçekten, gerçekten korkunç bir fikir).


Yöneticiniz açıklamalarınızı nasıl yaptı?
Jeff Martin

1
Tam olarak beklediğiniz gibi. ;) Ancak, bu konuya değinildi ve talepler durduruldu. Bunun olup olmadığını bilmiyorum çünkü onu tartışmamın geçerliliğine ikna ettim ya da uğraşmaya değmeyeceğine karar verdi.
John N

25

Satır-satır, saçma. Önerebilirim yorumlardan dokümanlar oluşturmak ve ona bunu sunmak. Geçmişte üzerinde çalıştığım bir dizi Kanada Hükümeti hibesi ve denetimi için bu yeterliydi.

Satır satır almayacak ama yine de gereğinden fazla ayrıntıda olması gereken metot metot alacak.

Platformunuza bağlı olarak mevcut bazı çözümler:

  • C #: sandcastle
  • Java: javadoc
  • "C ++, C, Java, Amaç-C, Python, IDL (Corba ve Microsoft lezzetleri), Fortran, VHDL, PHP, C # ve bir dereceye kadar D." : doxygen

Pas2Dox olduğu gibi, Delphi'yi doxygen listesine ekleyin ;-)
Fabricio Araujo

Sandcastle bağlantısına git. Etkilendim görünüyorsun. "Dokümantasyon" sekmesini tıklayın. Bkz. "Bu projenin henüz bir belgesi yok." Etkilenenden daha az bakın.
Kaz Ejderha

16

Kodu okumayı öğrenmesi, ilginç bir uygulamanın tüm kodunu İngilizce'ye çevirmekten daha hızlı olacaktır. Ayrıca bunu COBOL ile denedik ve hiç yardımı olmadı. Eğer öğrenmeye istekli değilse, ama sadece cehaletini başkasının problemine dönüştürmek istiyorsa, ciddi derecede sivri kafalı bir patronun var.


3
Bence ingilizce dil olmalı. Patron tüm yazılımların bir DSL (etki alanına özgü dil) ile yazılmasını istemeli, daha sonra sistemin çalışma biçiminde değişiklikler yapabilir.
David d'C Freitas

Bence Cobol'dan bahsetmek onu özetliyor. Basit bir merhaba dünyası basan herkes bu dilin ne kadar gülünç olduğunu bilir. Anlaşılır, ancak çok resmi bir şeye doğru iyi bir hamleydi.
James P.

15

Patronunu takip etmek için teknik uzmanlığını kullan.

  1. Bunu ilk etapta kodlamanız için yaptığınız kadar uzun süreceğini bilsin (Daha uzun süre yapmaktan çekinmeyin).
  2. Ona bu belgenin ne kadar güncel olması gerektiğini sor. Ona tüm kodlama değişikliklerinin şimdi en az iki kat daha uzun süreceğini haber ver.
  3. Siz veya bir başkası herhangi bir hata bulursa, şimdi düzeltmeniz veya psuedo kodlaması tamamlanana kadar beklemeniz gerekip gerekmediğini sorun. Ona 1 ve 2'yi hatırlat.

Tüm kötü çözüm önerileri gibi, sorunu tanımlamak daha iyidir. Belki patronun üst yönetim tarafından teknik sorulara kapılıyor ve cevaplayamadığı için kendinden utanıyor. En çok endişe duyduğu belirli bir kod bölümü olabilir, bu yüzden bu büyük girişimi yalnızca o bölgeyle sınırlayabilirsiniz.

Bir örnek göndererek, kodlamanın nasıl çalıştığını anlamadıysanız (bir döngü nedir ve tüm bu öğelere ne yapıyor?) Ne anlama geldiğini anlamadığı sonucuna varabilir. Uygulamayı güçlü bir kullanıcı perspektifinden anlamak. Bence, ona gerçek kod / ipucu yazmayı tercih edeceğinizi bildirmeniz adil olur - Başka bir iş arıyorum.


7
kimseyi "salak" olarak nitelemeye dikkat etmeliyiz. Bunu yapmak için programcılar olarak bizler için kişisel olarak tatmin edici olsa da, bunun profesyonel olduğunu düşünmüyorum ve ne kadar garip olursa olsun, herhangi bir yöneticiden gelen herhangi bir istek, esasa dayalı olarak ele alınmalıdır.
funkymushroom

6
@funkymushroom: Bu isteğin esası aptal olması.
DeadMG

3
@funkymushroom - Bu siteden biraz vergi alınmasına izin verilebileceğini düşünüyorum. Afterall, funkymushroom'a gidiyorsun.
JeffO

2
@Jeff: İyi alınan nokta. Ben hiçbir şekilde çamur içinde değilim. Bununla birlikte, iki tür "salak" vardır. "Kötü niyetli Salak" ve "Cahil Salak" ve ben ikisiyle de çalıştım. Birincisi göz ardı edilmeli, kariyerimiz için tehlikelidir ve ikincisi iyi bir müttefik olabilir, bu yüzden ona öğretmeliyiz.
funkymushroom

@funkymushroom - katılıyorum, ben çıkardım.
JeffO

12

Neden?

Bir satır satır yorum makul değil, ancak işte size soracağım: neden bunu istiyorsun?

Öyle mi ...

  • Yazılımın ne yaptığını tam olarak anlamak ister misiniz (mutlaka nasıl yapılır)?
  • Ayrılırsam başka bir programcının projeyi alabileceğinden emin olmak ister misin?
  • Gerçek iş yaptığımı görmek ister misin?

Bu isteğin arkasında makul bir arzu olabilir ve bunu anlayarak ve bu ihtiyacı karşılayarak patronunuzu mutlu edebilirsiniz.

Güncelleme

Yorumlara dayanarak Mikey's, belki de bunu biraz fazla açık ifade ettim. Demek istediğim kelimenin tam anlamıyla "neden bunu istiyorsun?" Demelisin, sadece bunu bulmalısın . İfade ve ses tonu büyük bir fark yaratıyor. Özellikle, şöyle bir şey söyleyebilirsin:

“Her bir kod satırının açıklamasını isteğiniz hakkında düşündüm. Bu şekilde yapılması biraz alışılmadık bir durum. Merak ediyorum, işim hakkında sizinle iyi iletişim kurmadığım bir şey olup olmadığını merak ediyordum. Kodumuzu veya ne yaptığımı gerçekten anlamak istediğiniz şey nedir? Burada ne yapmaya çalışıyorsunuz? ”

Tabii ki, bu kadar mümkün patronun tamamen mantıksız olduğunu. Ancak, bu isteğin ne kadar tuhaf olduğunu bilmemesi ve akılda rasyonel bir amacı olması daha muhtemeldir.

Değilse, özgeçmişinizi parlatmaya başlayın. :)


Bu cevap için -1: İşinize devam etmek istiyorsanız (ya da en azından gönüllü olarak bırakın), böyle bir patrona neden “neden” diye sormamanız gerekir. Bu, diğerleri önerdiği gibi, ustalık gerektiren bir şeydir.
Vektör

3
Mikey'nin yorumuna katılmıyorum. Kör takip eden emirler aptalca. 'Neden?' Diye sormak. Her talepte beni saatlerce gereksiz gereksiz yere kurtardı ve şirketimi bu süreçte çok para biriktirdi. Buna istişare denir ve patronlarından korkmayanlar bunu liberal olarak yapar ve çok etkili olurlar. Benim için çalışan insanlar bir şey önerdiğinde, onlara 'neden?' yanı sıra. Her iki durumda da, haklı olmak istiyor ve bunu yapması tamamen kabul edilebilir.
Sovyut

10

Okuryazar programlamayı denemek için iyi bir şansa benziyor. Google'a sor. :)

Ama ... bu tamamen mantıksız bir istek değil. İşinizin bir kısmı (en önemli kısım, imo), algoritmalarınızı diğer geliştiricilere ve gerekirse teknik olmayan kişilere iletmektir. Bence iletişim kuramayan yalnız dahi programcılar her zaman problemlidir, sanırım.

Bu amaçla, kodunuzun çok açık olması gerekir (yani: gerçekten kendi kendini belgeleyen veya iyi belgelenmiş ve "kendi kendini belgeleyen" derken, değişkenlerin ve işlevlerin bir anlamı veya sorumluluğu vardır ve isimleri bunu açıkça yansıtır). Patronunun isteği için iyi sebepleri olabilir. Belki (sadece burada tahmin ediyorum) siz veya selefinizin geçilmez, kırılgan kodları hakkında bir ününüz var ve bu patronunuzun çözümü. Bu biraz aşırı, ama sizin için yararlı bir egzersiz olabilir. Daha iyi dokümanlar yazmanın zaman aldığını bildiğini varsayıyorum (ve eğer yapmazsa, eğitilmeli - tıpkı bir dönem ödevi yazmak gibi: yazmaktan daha uzun sürer).


Wikipedia sayfasına bir göz attım. Bana çalışmalar sırasında gördüğüm "yapılandırılmış <buraya insan dilini buraya ekle" yi hatırlatıyor. Programlama yapı satırını if blah then add 1 to xnassi-schneiderman veya akış şemalarına bir alternatif gibi ifadelerle satır satır göstermek için insan dilini kullanırsınız . Okuryazar programlama ile kastedilen bu mu?
James P.


@James: Knuth'un "Tex - program" bir kopyasını satın almak ve okumak. Bu okuryazar programlama.
cji

10

Satır satır çevirme bile her kod satırının anlamını etkili bir şekilde iletmeyecektir. Bir programcının bir kod satırını anlaması her zaman birçok faktörün bağlamındadır. Çok iş parçacıklı kodun bir parçası gibi bir şey içine alın ve ingilizce çeviri ham koddan daha anlamlı gelmez. Birden fazla işlev / dosya arasında dağılmış olan işlevselliği düşünün. Bazı kodlar, kapsamlı miktarda başka kodlar açıklamadan kesinlikle bir anlam ifade etmez. Bağımlılık enjeksiyonunda "satır satır" olarak yer alan farklı parçaları açıklamaya çalışın ve ne demek istediğimi göreceksiniz. Hemen hemen her şeyin Tanrı işlev prosedürünün ötesine geçmesi, İngilizce çeviriyi anlamak için kapsamlı bir programlama bilgisi gerektirecektir. Ayrıca, if / else karar ifadesi kadar basit olan bir şeye bakın. Satır satır yok. çünkü bir sonraki satır çalışma zamanı verilerine bağlı. Bir sonraki satır, birkaç olasılıktan biri olabilir.Başvurunuzun ne yaptığını açıkladığınızda, PM'nizi bir programcı haline getirmiş olacaksınız ve her ikisi de 5 yaş daha büyük olacak.


10

Programlamayı öğrettiğim için, devam etmekten çok mutlu olurdum.

Hızla o ben çünkü beni üzüyorsun, hangi için o umduğundan fazlasını gidiyor göreceksiniz sever şeyleri açıklayan :-)


3
Bence buradaki en iyi cevap bu. Bir denemenin bütün isteksizliğini anlamıyorum, demek ki orada oturmak ve kodunuzu açıklamak için para alacaksınız! Cehennem, kodun çok saçma değilse, muhtemelen hoşuna gidecek, ve ne kadar iyi olursa olsun, muhtemelen iyileştirilmesi gereken bazı böcekler ve yerler bulacaksın.
Bill K

1
Projektör aracılığıyla görüntülenen kodu yazarken bazı şeyleri açıklayan bir öğretmenim vardı. Belki bu biraz sürüş dersi gibi yapılabilir. En azından kodun tamamını giremezseniz, en azından ne yapıldığına ve nasıl yapıldığına dair daha iyi bir fikir verebilirsiniz.
James P.

1
Öğretme işine kendim girmeye çalışıyorum ve benzer bir cevap verdim. @Bill ile birlikteyim, insanların bu kadar özel bir duruş sergileyeceklerini hayal kırıklığına uğrattım. Kodun sadece küçük bir bölümünü bile açıklamak için zaman harcamanın değerinde olduğuna inandığımız için battık mı?
Rei Miyasaka 08:11

1
@Rei: Kötü ya da iyi olan tutumlar, benzer insanların büyük alt kümelerini devralma eğilimindedir. Geniş bir deneyime sahiptim (mühendis, yüksek lisans öğrencisi, profesör, danışman, uzun süreli çalışan). Ayrıca, tutumlarım yıllar içinde değişti.
Mike Dunlavey,

10

Patronunuza atıfta bulunduğunuzda bu “sizden / ekibinizden sorumlu bir orta yönetici” mi? veya Şirketinizin Sahibi? "Saate göre" veya "maaş üzerinden" mi ödeniyorsunuz?

Patronunuz sorumlu bir orta düzey yönetici ise, HIS BOSS'U KONUŞMAK, patronunuzun ihtiyacını karşılamak için şirkete olan verimliliğinizin ne olabileceğinin 1 / 3'üne indirileceğini belirtmektedir.

Patronunuz "çekleri imzalayan adam" ise ona aynı şeyi, daha diplomatik olarak açıklayın. İşiniz "Kodu yazın" - "Kodu yazın, kodun açıklamasını yazın, açıklamayı açıklayın."

görüntü tanımını buraya girin


Neden yapmıyor ve parayı almıyorsun? Tek değerinin maymun gibi kod üretmekten hoşlandığından emin misin?
Bill K

9

Bir akış şeması muhtemelen onun için daha faydalı olacaktır. Bu kesinlikle alışılmadık bir istektir ve yönetici olarak onun hakkında fazla bir şey söylemez.


18
Aslında, bana bu kişi hakkında çok şey anlatıyor ...
Marjan Venema

5
Bu, "çok fazla şey söyleme" nin bu bağlamda anlamı - gerçekten çok şey söylüyor, ama sadece birey hakkında çok iyi bir şey ifade etmiyor .
Joseph Weissman,

8

Patronunuzun yazdığınız kodu anlamak için biraz zaman harcamak istemesi, sizin yararınız için kullanabilirsiniz. Onu Salatalık ile tanıştırmayı deneyin: http://cukes.info/

ve patronunuzun gelecekte sizin için BDD testi yazmasını sağlayın.


Bir süredir dükkanımda Salatalık'ı kullanmaya çalışıyorum ... ne yazık ki, (ya da neyse ki!) Patronum çalıştığı sürece sahnelerin arkasında ne olacağını umursamıyor. İlk önce yazma testlerinin faydasını anlamasını sağlamak için bir yokuş yukarı savaş oldu.
Jason Lewis

6

Bunların hiçbirini bilmek için canını sıkmamalı. Ona, yazılım geliştirme uygulamalarının değişime tabi olduğunu söyleyin. Etkinlik tasarımı değişebilir. Ona bilgiyi gizleme, kapsama ve soyutlama hakkında bilgi verin.
Ekibinizin bir parçası olarak, kodunuzun müşterisi olarak, daha geniş anlamda, yalnızca kodunuzun yaptığı şeyin net ve yüksek bir soyutlamasıyla çalışmalıdır. Kodunuzun herhangi bir katmanı, başka birinin kodunun başka bir katmanı ile aynı şekilde çalışır. Bundan daha fazlasını bilmek, onu sadece yavaşlatır ve kodunuzun içsel çalışmalarına dayanarak varsayımlarda bulunma riskini taşır. Bu varsayımlar, kodunuzu değiştirmeniz gerektiğinde, bunlara dayanarak herhangi bir sistem veya süreç oluşturması halinde, sorun haline gelmeye devam etmeyi bırakacaktır.
Ayrıca bu tür işleri yapmak zorunda olmanız veriminizi düşürür. Sadece iki farklı yerde daha sonra değişiklik yapmanız gerekmeyecek, aynı zamanda iş moralinizi de olumsuz yönde etkileyecek ve bu da çıktınızı daha da azaltacaktır.


6

İngilizcenin güzelliği, bunun güzelliği engellemesidir. Bunu kendi yararınıza kullanırsanız, bir daha asla bu tür bir taleple başa çıkmayacaksınız. Kodun küçük bir kısmını örnek olarak alırdım, ancak çok soyutlanan ve anlaşılması kolay olmayan bir örnek. Daha sonra teknik İngilizce dilinde bir programlama kitabındaki bir bölüm için yazıyormuşsunuz gibi yazacağım. Takip etmek ne kadar uzun ve karmaşık olursa, o kadar iyidir. Bu özelliği belgelendirmenin kaç saat sürdüğünü ona söyle. Ardından, gerçek kod tabanının sadece% 1 / 10'unun (kod satırlarını temel alarak gerçek rakamları kullanın, eğer muhtemelen bundan daha kötüsü) kullanın. İngilizce çevirisinin ne söylediğine dair hiçbir fikri olmadığını ve bu seviyedeki dokümantasyonun 20.000 adam-saat alacağını fark ettiğinde oldukça çabuk geri çekilir. Ancak görevini yerine getirmek için çok ciddiyetle çalışın. Yapma, bunu çıkaramazsan ve onunla oynadığından şüpheleniyorsa, bunu dene.


6

Bu özel bir tatil sorunu sivri saçlı patronu Dilbert şeridi için aday gibi görünüyor ! Söz konusu talep, kesinlikle değil ses ilk bakışta makul.

Mizah bir yana, gerçekte neye ihtiyaç duyduğunu ve nedenini bulmaya çalışın , daha sonra ona para vermesi için ona dolar veya saat cinsinden ne kadar mal olacağı konusunda tavsiyede bulunun ve bu kadar para harcamak isteyip istemediğine karar vermesine izin verin.

Kendinize gelince, görünüşte tuhaf isteğini yerine getirmeniz için harcayacağınız saatleri sayın ve daha sonra size zaman vermek isteyen bir işveren için çalışan yeni bir iş bulmak için bu kadar zamanın bir kısmına yatırım yapmanın daha iyi olmayacağını belirleyin. profesyonel olarak!


1
Bir fayda-maliyet analizi işi yapmalıdır. Belki de yöneticinin getirmesi gereken bazı ek faydaları vardır. Ücreti ödemiyorsa üst yönetime zorlamak ve savunmak zordur.
mbx

6

Onu ofisine getir ve kodunu bir tur at.

Saçma bir talepte bulunmasının bir yolunu fark edecek ve uzaklaşıp sizi bir daha asla rahatsız etmeyecek.

Eğer kodunuzu anlamaya çalışmasına yardım etme taleplerini yerine getirmezseniz, size sormak için farklı ama aynı derecede saçma yollar bulacaktır.

Bu, temyizin aşınmadan daha iyi çalıştığı bir durum.


+1 - Aynı satırları düşünüyordum - onu istek üzerine al - muhtemelen çok sıkılacak ve / veya çok uzun zaman önce ölmekten korkacak ...
Vektör

+1 Bunu beğendim - "aşınmadan daha iyi çalışıyor".
Mike Dunlavey,

6

Bunu yapan "X Dilini İngilizceye" tercümanımız olsaydı çok iyi olurdu. Sonra biri sırıtıp, sorun yok diyebilirsin, patron, bir dakika içinde buna sahip olacaksın. Ve sonra okuyan bazı megabayt metnin bulunduğu bir posta geliyor:

  • 20 elementli yeni bir tamsayı dizisi olsun.
  • X tamsayıları saklamak için bir değişken olsun.
  • X'i 0'a ayarlayın
  • X 20'den küçükken, sonraki 2 satırda belirtilenleri yapın
  • a dizgesini x dizini ile, x + 1 argümanıyla nThPrime çağırmanın sonucuna ayarlayın
  • x'i 1 arttır
  • ....

Başka bir seçenek de bundan sonra Shakespeare'de programlama önermek olacaktır .


Ben de aynı öneriyi yapacaktım. Patron kavramsal bir bakış açısı istemez, satır satır satır ister, bu nedenle bir günde bir şeyi kranklamak mümkün olmalıdır, böylece tamamen işe yaramaz ancak yüzeysel olarak doğru belgeler oluşturur. Perl'deki if-else'lerin bir köşe yuvasıyla kolayca karıştığı farketmezdi, sadece değişken bildirimleri, değişkenlerde yapılan değişiklikleri, yöntem çağrılarını vb. Tanımlayacaktı. yolu kodunu okuyor ).
PhilDin

Evet, bu patron sadece cahil. “Soyutlamanın” ne olduğunu bilmiyor, ingilizcenin bilgisayar programlarını ifade etmek için iyi olmadığını bilmiyor, gerçekten tüm bu ayrıntıları bilmek istemediğini hayal edemiyor, bu yüzden bir programcıya para ödüyor. Bu nedenle, böyle bir dersi hak ediyor.
Ingo,

5

Patronum kodumuz hakkında açıklamalı bir İngilizce anlatım istiyor.

Zorlu.

Programcı olmadığı için kodu takip edemiyor, bu yüzden hepsinin İngilizce'ye çevrilmesini istiyor.

Programcı değilse , kodu okumamalıdır. Hiç.

Bunun yerine üst düzey belgeler sağlayın.

Bu makul bir istek değil mi?

Hayır.


4

Bir programcı olarak, gerçekten "iki" işiniz var.

Birincisi iyi programlar yaratmak. İkincisi, onları şirket içindeki ve dışındaki müşterilere "satmaktır".

Patronunun isteği, ilk işini "incitiyor". Programlarınızı belgelemek daha fazla zaman alır. Öte yandan, aslında "ikinci" işinizde daha çok çalışmanızı sağlıyor.

Patronunuz sizden programınızı İngilizce olarak HIS yardımı için ve muhtemelen şirket içinde, dışında ve dışında ilgilenmesi gereken kişilerin yararına belgelendirmesini istiyor. Eğer işini yapmasına yardım edersen, daha fazla donanım, personel veya para kazanmalarını istediğinde, uzun vadede yararına çalışmalı. Ne de olsa, senden daha fazla iş yapmanı istedi.


3
Satır-satır dokümantasyon! = Projenin satılması. Bu bilgiyi sağlayan, buna gereksinimler denilen bir belge zaten olmalı. 2 iş tanımınızla aynı fikirdeyim, ancak bu seviyeye belgelemek proje / sistem / uygulamayı satmak için faydalı olmayacak. Çalışmanızı sunmak için uygun bir belge seviyesi vardır ve bu o değildir.
cdkMoose

Bu şirkete çek yazan kişinin, bu yöneticinin bu kadar şirket kaynaklarını harcadığı için mutlu olmayacağına bahse girerim.
JeffO

@Jeff O: Olabilir. Ya da BÜTÜN şirket bu şekilde olabilir, en baştan.
Tom Au

4

BDD'nin bu soruna çok yakışacağını düşünüyorum , projeniz bitmek üzere olsa da, şimdi uygulamak çok zor, bu yüzden gelecekteki referanslar için daha fazla.

BDD ile kullanım durumları, daha sonra otomatikleştirilmiş işlevsel testlere çevrilen, insan tarafından okunabilen belgeler olarak tanımlanmaktadır.


Bu, şu ana kadarki en yapıcı öneri olabilir. Davranış odaklı gelişim, tam olarak bu ihtiyacı karşılayacak şekilde tasarlanmıştır: programcıların ve yöneticilerinin / müşterilerinin yazılımın ne yaptığı konusunda hemfikir olmasına yardımcı olmak. Tanımlamaları yazmak, kodun planlanmasına yardımcı olur ve testleri çalıştırmak bunların hala doğru açıklamalar olduğunu kanıtlar.
Nathan Long

4

Muhtemelen, bu istek ANTLR gibi şeyleri öğrenmek için iyi bir zamandır . ANTLR'yi alın, dilinizin gramerini alın, sahip olduğunuz tüm kodları ayrıştırın, her düğüm için AST oluşturucu şablon tabanlı açıklamaları geçin i++, şöyle tanımlanır increase i by 1 using postfix increment operator. Bu gerçekten komik olmalı. Patronunuz bu aracın build komut dosyasına dahil edilmesini de isteyebilir, bu nedenle herhangi bir değişiklik yaptığınızda, yeni sürümün ne yaptığını açıklayan bir ~ 20 MB e-posta alır.

PS Sadece şaka, o bir aptal.


3

Bunun makul olmayan bir istek olduğu konusunda hemfikir olmama rağmen , patronunuz , kodunuzu ve satır satır veya yan tümce yorumlarınızı iki sütunlu HTML çıktısına ayıran Docco'nun çıktısı gibi bir şeyi takdir edebilir . diğer tarafta yan ve nesir. Elbette yorumları kendiniz yazmak zorundasınız, ancak sunum teknik olmayan okuyucular için bile güzel bir IMHO. Örneğin, Underscore.js için açıklamalı kodun satır satır yorumlanan bölümüne bakın . Python ve shell script versiyonları da var.


Bu soru için gördüğüm en faydalı cevaplardan biri. Aslında docco kullanmayı denedim, ancak varolan yorumlarımdan bazılarında sorun olduğunu ve yanlış bir şekilde yapıldığını gördüm. Bu nedenle bunun yerine JSDoc ile birlikte gittim ve dokümantasyonu oluşturmak için google'ın yönergelerini takip ettim. O kadar güzel değil, aynı zamanda çok da eksiksiz ve standart bir format. Benim için docco ile ilgili sorun, kodunuzu yorumlara uyacak şekilde yapılandırmanız gerekmesidir veya bir anlam ifade etmemektedir. Önerin için teşekkürler.
Billy Moon

3

Patronun bilgisiz ve korkutucu olabilir, ama aslında makul bir insan olabilir. Öyleyse, onunla birlikte akıl yürütmek işe yarayabilir - “gerçekten ne istediğini” sağlamaya söz verdiğiniz geçici bir konuşma, yani; programın ne yaptığını bir nesir kılavuzu.

"Yoluma ya da karayoluna" gelirse, şimdi gazınızı kontrol edin.


3

Aşağıdaki gibi bir davranış odaklı tasarım çerçevesini kullanarak bazı kabul testlerini yazabilirsiniz salatalık ? Bu kodu açıklamayacak; ne yaptığını ve doğal dilde açıklayacaktır. Ayrıca çalıştırılabilir olma avantajı da vardır, bu nedenle belgelerin güncel olduğundan her zaman emin olabilirsiniz, çünkü değilse, test çalıştırıcısı kırmızı olacaktır.

Giriş videosunu izleyin. Belki yeni bir patron bulurken iyi bir saptırma ... ;-)


2

Yöneticiniz, insanların yönettiğini ne yaptığını anlamadığı ve ürettikleri sonuçları anlama geçmişine sahip olmadığı gerçeğinden neredeyse kesinlikle rahatsızlık duyuyor.

Bu çözümü çok iyice düşündüğünden şüpheliyim ve muhtemelen ilk bakışta ona karşı duyarlı görünüyordu. Ancak bu büyük ölçüde çünkü programlama kodunun gerçekte ne olduğunu anlamıyor.

Herhangi bir programcı bu isteğin saçmalığını anlar, ancak şunu yaparız, çünkü dili geçtikten sonra, ortaya çıkan tek şey, aynı derecede şifreli olan algoritma olduğunu sezgisel olarak biliyoruz.

// Set s to the first address in the server list
server_info *s = cmd->servers;
// Loop until s is NULL
while (s) {
    // call the server's init function passing our current ID and address
    s->init(proc->id,*addr);
    // call log::info with our custom message
    log::info("Starting server %s",s->name);
    // Set s to the value returned by the server's next() function
    s=s->next();
} // end of loop

Buradaki sorun, yorumlar, her satırın ne yaptığını açıklarken, tüm sonuçların ne olduğunu anlamadığınız sürece, kodun gerçekte ne yaptığı hakkında hiçbir fikriniz yoktur. Bir programcıysanız ve bu modeli daha önce görmüşseniz açıktır; ancak bunu yalnızca satışları anlayan birine gösterin ve yorumları olduğu gibi okuduktan sonra kafası karışacak.

Patronunuza temel bir programlama öğreterek zaman kazanabilirsiniz . Eğer kodunu okumak istiyorsa, ona yapabilmesi için ona araçları ver. Çoğu dil oldukça kompakt bir sözdizimindedir ve yapıyı öğrenmek sadece bir ya da iki saat sürer. Neredeyse kesinlikle birkaç gün sonra pes edecek, ama en azından ne geçtiğini ve daha önemlisi neden kodunuzu okumak istemediğini bilecek .


1

IMHO ... Görevin yerine getirilmesinden sorumluysa, nasıl çalıştığını bilmeli ... :)


2
Yönetici veya programcı mı kastediyorsunuz?
Nathan Long,

Her teknik olmayan menajerin bu kadar geliştirici zamanı kullanmasını sağlamak için kaç şirket bu parayı kullanabilir?
JeffO
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.