IDE modern memiliki banyak trik untuk membantu penulisan kode, refactoring, pencarian. Semua itu sangat membantu, tetapi jarang ada yang terlihat seperti "sihir" sungguhan dan membuat saya berpikir, "Wow! Bagaimana cara mengetahuinya?"
Dapatkah Anda menyebutkan fitur otomatisasi kode IDE (atau lainnya) yang mengesankan yang mengejutkan Anda saat pertama kali melihatnya?
ide
automation
serg
sumber
sumber
Jawaban:
Mundur Debugging
Visual Studio 2010 (dan sekarang 2012) memungkinkan saya melakukan debug mundur dengan IntelliTrace.
Tidak akan pernah lagi saya harus menghidupkan kembali momen di mana saya menekan F10 satu kali terlalu banyak dan harus memulai kembali debugging.
sumber
Pelengkapan kode
Ketika semua yang Anda lihat adalah editor teks, ini mengesankan
sumber
Kemampuan ReSharper untuk menebak apa yang saya inginkan dari variabel bernama terus membuat saya takjub. Ini adalah contoh yang sangat sederhana tetapi Anda mendapatkan idenya.
sumber
foreach(var matche in regex.Matches(str))
. Juga ditetapkanmatche
sebagaiobject
bukanMatch
, tidak terlalu berguna.MatchCollection
koleksi yang belum diketik. Untuk koleksi yang tepat,var
sangat bagus. (Saya masih tidak menyukainya)Saya sangat terkesan dengan alat refactoring Eclipse ketika saya pertama kali menemukannya. Kemampuan untuk mengekstrak metode (yang, ketika Anda belajar desain yang lebih baik adalah kejadian umum) dari sejumlah besar kode dan semuanya ditangani untuk saya cukup keren.
sumber
Bubbles kode. http://www.andrewbragdon.com/codebubbles_site.asp
Saya suka Visual Studio dan Eclipse untuk alat yang mereka berikan kepada saya untuk mengubah kode, tetapi Code Bubbles benar-benar membuat saya senang karena dapat menavigasi dan melihat kode saya. Sayang sekali tidak tersedia untuk umum = - {
sumber
Lingkungan pemrograman yang paling mengesankan yang pernah saya dengar adalah sistem operasi Genera.
Anda bisa mengklik widget apa saja di sistem windowing dan mendapatkan pembacaan penuh dari kode sumber & dokumentasi item. Menjadi bahasa pemrograman dinamis (Lisp), Anda dapat mengedit sumber widget dengan cepat.
ZMACS dari dunia Lisp Machine masih dikatakan sebagai editor yang lebih baik daripada Emacs, yang merupakan lingkungan editor tanpa rekan.
sumber
Secara visual menunjukkan struktur program (program / fungsi / rutinitas / ...)
sumber
Kemampuan ReSharper untuk melakukan refactor. Dalam pengungkapan penuh, saya mungkin berada di belakang kurva di sini karena saya pikir Java dengan Eclipse telah memiliki jenis fungsi ini untuk beberapa waktu, tetapi saya tidak secara teratur bekerja dengan Java.
Delta dalam kemampuan yang ditambahkan ReSharper ke Visual Studio sangat hebat, sulit dipercaya. Saya tahu saya terdengar seperti iklan, tetapi saya tidak berpikir saya bisa kembali menggunakan instalasi Visual Studio tanpa ReSharper di atasnya.
Secara umum, pemahaman semantik tentang kode akan mengalahkan para editor teks biasa kapan saja. Ini mengarah pada hal-hal seperti "temukan penggunaan variabel" atau "fungsi sebaris" atau "peluang untuk menggunakan pola idiomatik", dll.
sumber
Debugger Smalltalk:
Sangat normal di Smalltalk untuk menghabiskan sebagian besar waktu menulis kode dari dalam debugger.
(Saya ingat terpesona dengan menjalankan metode, melihat sesuatu yang salah, mengubahnya, dan menjalankan metode itu lagi tanpa memulai kembali aplikasi pada hari itu dengan Visual Age for Java ... karena VA4J ditulis dalam Visual Age for Smalltalk.)
Pencari Metode Smalltalk
Metode Finder memungkinkan Anda bertanya "pesan mana yang mungkin saya kirim untuk mengambil parameter ini dan mendapatkan hasil ini?" Tanyakan itu
'abc'. 'def'. 'abcdeb'.
dan itu memberitahu Anda'abc' , 'def' --> 'abcdef'
. Tanyakan#(0 1 2 3)
dan katakan#(0 1 2 3) sum --> 6
. * Pengirim, pelaksana-dari Anda semua untuk menemukan semua (*) pengirim pesan atau semua objek yang mengimplementasikan pesan itu.(*) Kecuali ketika Anda melakukan hal-hal seperti membuat nama pesan pada saat runtime:
self perform: (#foo, #bar)
untuk mengirimi diri Anda pesan#foobar
- dalam hal ini Anda tahu apa yang Anda lakukan, dan Anda tidak keberatan dengan potensi mengangkat diri Anda sendiri pada petard Anda sendiri.sumber
Whyline
Whyline untuk Java benar-benar membuat saya terkesan ketika saya melihatnya. Ini adalah alat analisis dinamis yang memungkinkan Anda mengajukan pertanyaan tentang output program, dan bukan hanya teks, tetapi juga grafis. Misalnya, Anda dapat bertanya "mengapa garis itu merah?" atau "mengapa metode cat tidak dipanggil?"
Ini bekerja dengan menginstruksikan program Anda dan merekam lari. Misalnya, anggap ada bug yang dapat Anda buat kembali. Anda instrumen program Anda dengan Whyline, jalankan program Anda di Whyline untuk mereproduksi bug, dan kemudian ketika Anda keluar dari program, Anda dapat menggunakan Whyline untuk memeriksa riwayat eksekusi.
Perekaman dan pemutaran ini bukan hal baru, tetapi bagaimana Whyline mengimplementasikannya cukup apik. Anda dapat melihat riwayat sesuai dengan peristiwa tertentu (mis. Berfokus hanya pada aktivitas seret mouse, atau hanya peristiwa keydown). Ini juga mengaitkan output dengan bagian mana dari program yang mencetaknya, sehingga Anda dapat menavigasi dari output ke kode.
Untuk bekerja, ini menggunakan program slicing, sehingga Anda dapat fokus pada bagian-bagian kode yang benar-benar relevan. CMU sekarang memiliki hak paten di atasnya, dan saya tidak tahu apa rencana mereka, tapi saya harap kita bisa melihatnya lebih banyak dalam produksi. Ini adalah babi memori, tapi itu mungkin karena ini adalah prototipe dan dapat ditingkatkan.
Anda harus melihat demo online, tetapi Anda juga harus mencobanya sendiri untuk mendapatkan pengalaman penuh. Jika ada, demo online akan menjual ide.
sumber
Saya pikir fitur IDE paling mengesankan yang pernah saya lihat adalah SyncEdit , yang AFAIK hanya tersedia di Delphi.
sumber
Apa yang ingin saya lihat di IDE adalah fitur-fitur ini:
sheet[A3]
) dan menggambar dalam kode dan mengaksesnya seperti variabel apa pun.if
kondisi kompleks dengan cara seperti tabel (masih mencari tautan).sumber
Ketik Memeriksa Bahasa Dinamis
Selama kode Anda tidak terlalu 'meta', sebuah IDE untuk Ruby atau Python harus dapat menjalankan tugas latar belakang yang:
Saya belum melihat IDE yang melakukan ini.
sumber
Saya penggemar berat kemampuan klik alt multi baris di Vs2010 hal terbaik yang saya temukan tentang versi baru.
sumber
Eclipse's Auto Build adalah fitur yang paling saya kagumi .... 7 tahun yang lalu. Sekarang saya hanya menerima begitu saja.
sumber
Xcode 4 memperbaiki titik koma dan kesalahan ketik dan menggunakan panah untuk menunjukkan bagaimana kesalahan terjadi.
Misalnya:
Panah akan ditarik dari
[a release]
ke[a length]
untuk menunjukkan mengapa Anda tidak dapat menggunakan[a length]
.sumber
Templat dan perluasan Kode, seperti CodeRush dari DevExpress. Dalam C #, a
DependencyProperty
adalah rasa sakit yang besar untuk dibuat, karena sintaksisnya bisa menjadi verbose, tetapi hanya mengetikkan "dp" memunculkan sesuatu yang mirip dengan snippet di mana Anda mengisi jenis, nama dan nilai default, dan semuanya dilakukan - termasuk menambahkan pernyataan "menggunakan" yang diperlukan, dan mungkin memproyeksikan referensi jika memori berfungsi.Manfaatnya adalah membuat templat sendiri, untuk kode yang sering Anda gunakan ulang atau tulis ulang, seperti implementasi
INotifyPropertyChanged
properti yang sederhana , di mana cukup berikan templat nama dan jenis properti (jika ekspander lain belum menanganinya) yang ingin Anda gunakan , dan menangani sisanya, termasuk membuat variabel pendukung.sumber
Pex melakukan beberapa generasi tes unit otomatis yang cukup keren. Itu melacak kode Anda, menentukan titik cabang, menggunakan pemecah bersyarat untuk menghasilkan input yang mengenai setiap cabang yang mungkin, dan kemudian memungkinkan Anda mengekspor hasilnya sebagai tes unit berulang. Ini dapat mempermalukan kode penanganan string yang kompleks.
sumber
Dalam Eclipse Generate SEtters dan getter secara otomatis, buat metode yang serupa di kelas implement dari sebuah antarmuka
sumber
Dukungan IntelliJ Idea untuk JPA
Sebutkan Anda memiliki DatabaseEntity:
sekarang Anda memiliki beberapa JPA-Queries
setelah beberapa waktu Anda melihat, bahwa Anda membuat kesalahan ketik dalam Entitas Anda dan Anda memutuskan untuk refactor lasname ke lastName .
IDE itu juga akan memperbaiki JPA-Query.
sumber