Menavigasi kode
Dapatkan editor yang lebih baik daripada VIM.
Saya menggunakan Komodo Edit.
Saya merasa harus melakukan lebih banyak ke memori
Baik. Berpikir itu baik. Saya menemukan bahwa "belajar" pada akhirnya mengarah ke "memori".
Terus-menerus "grep" dan baca kode untuk mengidentifikasi antarmuka.
Ini tipikal. Jika Anda tidak dapat mengingatnya, maka itu terlalu rumit, bukan? Saatnya menyederhanakan.
Sederhana sulit dibuat. Tetapi ketika Anda memiliki kesulitan mengingat, itu adalah gejala desain yang buruk.
Saya menggunakan grep. Ini bekerja untuk saya. Edit Komodo saya memiliki banyak pencarian yang bagus. Begitu juga Notepad ++
Mengidentifikasi antarmuka objek yang saya gunakan
Doc Strings dan help()
fungsinya berfungsi. Saya menggunakannya. Harian.
Refactoring secara efisien ... menjadi sangat tergantung pada kualitas tes unit saya.
Itu bukan berita. Itu selalu benar, bahkan dalam bahasa statis.
Dalam bahasa statis, kita sering menjadi malas, dengan asumsi bahwa - selama dikompilasi - itu benar-benar mungkin berhasil. Ini benar-benar salah, tetapi kita menjadi malas.
Saya yakin ada solusi untuk masalah ini.
Ini bukan "masalah" dan tidak memerlukan "solusi".
Bahasa dinamis adalah tepatnya tentang tidak mengetahui jenis objek yang Anda manipulasi. Ketika Anda menerima parameter, Anda menganggapnya mendefinisikan metode "quack ()" dan "feathers ()", tetapi Anda tidak tahu di mana ada dokumentasi (pada kenyataannya, mereka akan memiliki beberapa dokumen dalam beberapa implementasi mereka).
"tidak tahu jenis benda"? Betulkah. Ketika saya mendesain klien suatu objek, saya tahu tipe apa yang saya desain.
Ketika saya mendefinisikan layanan, digunakan oleh banyak klien, tipe "tepat" tidak relevan, ketika saya telah mendefinisikan antarmuka yang diperlukan dari quack()
dan feathers()
.
Akhirnya, saya memiliki Read-Execute-Print-Loop dan alat-alat lain untuk menentukan tipe "tepat" dalam kasus yang jarang terjadi ketika saya memiliki masalah halus. Itulah yang sebenarnya saya gunakan setiap hari.
>>> x = some_mystery_factory( some, args )
>>> type(x)
>>> dir(x)
Sepertinya tidak terlalu sulit - setidaknya dengan Python - untuk melepas tipe objek. Harus bahasa yang dinamis memiliki REPL, sehingga cukup mudah untuk melihat apa yang terjadi.
Anda juga tidak tahu urutan parameter yang diharapkan. Tampaknya sulit bagi IDE untuk membantu di sana.
Itu tidak masuk akal. help()
bekerja.
Dan IDE saya sering dapat menemukan definisi. Tidak selalu - beberapa konstruksi dinamis yang berbelit-belit dapat dengan mudah menyembunyikan kelas dasar. Dalam hal itu, saya harus benar-benar berpikir tentang kelas objek untuk menemukan definisi metode. Tentu saja, saya sedang menulis kode, jadi ada sedikit (atau tidak ada) misteri di sana.