|
|
Yayınlandı 4.10.2016 09:30:55
|
|
|
|

Bir programcı olarak, Stackoverflow'u duymadıysanız düşünün. Programcıların en çok okuması gereken programlama kitaplarından biri (aslında, bunu programlama kitaplarına bırakmak yeterli!). ):
(Jun'un güçlü bir şekilde eklediği ana sayfa, yukarıdaki fotoğraf bir parodiya fotoğrafı, bazı internet kullanıcıları bunu daha önce anlamamıştı, özellikle de söylemek) Kitabı henüz okumamış programcılar için artık bir tane satın alma zamanı. Hâlâ kararsızsanız, neden StackOverflow'dan yoksun olamayacağınızı görmek için bu makaleye göz atın. Soru sormanın bilgeliği Teknik bir soru sorduğunuzda, faydalı bir cevap alıp almamanız genellikle nasıl sorduğunuzdan ve takip edeceğinizden asılıdır. —— Eric S. Raymond Bazen, özellikle teknik bir sorunun net bir tanımı göründüğü kadar basit değildir. Soru sormak her zaman bir bilim olmuştur, ama ne yazık ki birçok kişi bunun farkında değil ya da yeterince dikkat etmiyor. Ya da bazı soru soranlar hiç yardım istemez. Bu yüzden insanların cevaplayamadığı veya cevaplamak istemediği her türlü soru bulacağız: Java regex sorunu mu? SLA tepki süresi nedir? ATL sınıfları ile genel sınıf mirası arasındaki fark nedir? Yukarıdaki sorunun kapanmasını veya değiştirilmesini önlemek için, bu berbat sorunu deneyimlemek için buraya bir fotoğraf koyun:
Bu soruların birçoğunu SegmentFault'taki cevapsız sorularda bulabilirsiniz, bu yüzden birçok kişinin soru soracak bilgeliği veya tavrı yok. Raymond ve Rick Moen, soru sorma üzerine klasik bir makale olan The Smart Way (http://www.catb.org/~esr/faqs/smart-questions.html#translations) adlı bir makale yazdılar; bu makale çeşitli dillere çevrildi, yaygın olarak dolaşıma girdi ve Çince baskısında burada bulunabilir. Stackoverflow ve Segmentfalut da soru sormak için öneriler sunuyor: Yardım Merkezi > Soru Nasıl Sorulur? İyi bir soruyu nasıl sorabilirim? Ne tür sorular hoş karşılanır Stackoverflow'da çok fazla klasik soru var ve soru sormayı ve yanıtçılarla iletişim kurmayı öğrenebiliyoruz. Stackoverflow'da soruları okumaya alıştığınızda, soru sorarken bilinçsizce onları taklit edeceksiniz ve böylece beyinsiz sorular sormaktan kaçınırsınız. Soru sorma sırasında dikkat edilmesi gereken en önemli sorulardan bazıları şunlardır: Arama motorunun tatmin edici bir cevabı olmadığı bir soruyu sorun (Google en az dört sayfa öncelikli). Kendi başınıza çözemediğiniz ve çok denedik sorular sorun Sorunu mümkün olduğunca net tanımlamaya çalışın: iyi tipografi, kod, hata promptları, resimler vb Sorularınızı başkalarına faydalı hale getirin Soruya kesin bir cevap olmalı ve çok fazla öznellik olmamalı Farklı şemalar Çoğu zaman bir çözüm bulmayı umuyoruz, ancak Stackoverflow'da genellikle beklenmedik kazanımlar oluyor. Bir soruna farklı çözümler görebilirsiniz, hatta bu çözümlerin karşılaştırmalarını da yapabilirsiniz. Şimdi diyelim ki Python'da harici bir komut, örneğin ls -l, bir dizinin altında makale yazdırmak için nasıl çağrılacağını bilmek istiyorsunuz. Python çağrı sistemi komutunu Google'da arayın, ilk soru stackoverflow'da ilgili bir soru: Python'da harici bir komut çağırmak. (http://stackoverflow.com/questio ... l-command-in-python) (Google teknik sorunları, temelde stackoverflow ile ilgili sorunlar gösterilecek). Sonra bu soru altında, biri harici komutları çağırmanın birkaç yolunu özetliyor: os.system() os.popen() subprocess.popen() subprocess.call() subprocess.run() Ve her yöntem de tanıtılır, uygulama senaryosuna uygun yöntemi seçebilirsiniz. Bir diğer örnek ise Python ile bir dosyanın var olup olmadığını nasıl kontrol ederim? (http://stackoverflow.com/questio ... exists-using-python) ile birlikte bulunuyor; bu yöntem Python'da dosyanın varlığını kontrol etmek için farklı yöntemleri tanımlar. Araçların kullanımı Sorunları daha iyi incelememize yardımcı olabilecek birçok güçlü araç var, gdb hata ayıklama aracını bilebilirsiniz, python'un timeit izleme modülünü biliyorsunuz ama bilmediğiniz araçları bilmiyorsunuz. Çoğu zaman, bir aracı ilk bildiğimizde, çok geç buluşma hissi veririz. Ancak sevdiğiniz araçlar her zaman çok zor bulunuyor. Stackoverflow'da her soru cevabında veya yorumunda iyi araçlar olabilir ve her zaman geride kalan en iyilerini bulma şansın olacak. İşte bulduğum bazı harika araçların listesi: Truss/Strace: Bir süreç yürütüldüğünde sistem çağrılarını ve alınan sinyalleri takip eder, Strace, bir süreç tarafından üretilen sistem çağrılarını, parametreler, dönüş değerleri ve çalışma süresi dahil olmak üzere takip edebilir. (Sorudan: Neden stdin'den satır okumak C++'dan Python'a göre çok daha yavaş?) vprof: Python programlarının çalışma zamanı, bellek kullanımı gibi özelliklerini analiz eden görsel bir araç. (Sorudan: Bir Python'u nasıl profil edebilirsin?) Regex 101: Düzenli ifadelerin anlamını anlamanıza, düzenli ifadeleri hata ayıklamanıza ve basit deneyler yapmanıza yardımcı olabilecek çevrimiçi bir düzenli ifade asistanı. (Sayıdan: Düzenli İfadeleri Öğrenmek) İşte Regex 101'e basit bir örnek:
Düşünme süreci Çoğu zaman bir sorunla karşılaştığımızda, başlamak için hiçbir yol yok ve hangi yönde düşüneceğimizi bilmiyoruz. Ama stackoverflow ile kolayca spesifik çözümü bulabiliriz ve bazen bu sorunla karşılaştıklarında başkalarının ne düşündüğünü bile bilebiliriz. Diyelim ki bir dekoratör kullanarak bir görevi tamamlamak için aşağıdaki say fonksiyonunun geri dönen diziyi önceden ve sonra eklemek istiyorsunuz ve 'örneğin'i böyle tanımlamayı düşünebilirsiniz. @makebold @makeitalic def say(): geri dön"Merhaba" Her çağrı Hello döner. Ama makebold ve makeitalic'i nasıl uygulayacağım bir sorun. Stackoverflow'da, size doğrudan cevabı söyleyecek ve dekoratörlerin dokümantasyonlarına bağlantı gönderen büyük öküzler var. Ama aynı zamanda Daniels da var, düşünce süreçlerini ve dekoratörleri anlamalarını detaylı anlatıyor, böylece dekoratör mekanizmasını derinlemesine anlayabilirsiniz. Yukarıdaki soruya yanıt olarak, 3.000'den fazla beğeni alan ve adım adım problemi nasıl çözeceğinizi anlatan bir cevap var. Öncelikle, python'daki fonksiyonların özelliklerini anlatın: Fonksiyonlar nesnelerdir Bir fonksiyon bir değişkene atanabilir Bir fonksiyon başka bir fonksiyonda tanımlanabilir Bir fonksiyon başka bir fonksiyonu döndürebilir Fonksiyonları parametre olarak geçirebilirsiniz Sonra dekoratörün ne olduğunu açıklamaya başlayın: aslında bir kapsülleyicidir ve orijinal fonksiyonu değiştirmeden önce ve sonra diğer kodu çalıştırmamıza olanak tanır. Basit bir dekoratör prototipi elle uygulanır, ardından Python'da dekoratör sözdizimi tanıtılır. Son olarak, dekoratörlerin bazı ileri düzey kullanımları listelenmiştir; parametrelerin dekoratörlere aktarılması da dahildir. Cevabın tamamını okuyun, dekoratörü daha derin bir şekilde anlarsınız ve dekoratörü anlamanın düşünce sürecini öğrenirsiniz. Bu şekilde, bu düşünce yolunu izlerek, dekoratörleri nasıl kullanacağınızı kendiniz çıkarabilirsiniz. Olası kör noktalar Soracak sorularınız yoksa, zaman zaman stackoverflow'u ziyaret edebilir, daha fazla oy alan bazı soruları gezebilir ve diğerlerinin yanıtlarını görebilirsiniz. Bu geniş bilgi birikiminde, muhtemelen bilişsel kör noktalarınızı bulacak ve hiç dikkat etmediğiniz içerikleri keşfedeceksiniz. Bazı ilginç sorular buldum, mesela: Python ile renklerle terminalde yazdırmak mı? Python'da metaclass nedir? Vim ile en verimli kestirmenin hangisi? Burada sık sık referans almak için yüksek kaliteli Python sorularının bir listesini hazırladım. Çok geç tanıştığımıza üzülüyorum Peki StackOverflow'u nasıl bulabilirim, iki öneri: Sorunu tam olarak İngilizce olarak tanımlayın Google'da Teknik bir sorunla karşılaşan ilk kişi olmadığınız sürece, muhtemelen aynı veya benzer sorunu StackOverflow'da da bulabilirsiniz. Yakında buluşun, Stackoverflow'a erken aşık olun, hayatın ne kadar rahat olduğunu göreceksiniz.
|
Önceki:Windows toplu bağlantı VPN, yönlendirme tablosunu değiştiriyorÖnümüzdeki:node.js modüler arayüz
|