Saya telah melihat-lihat akhir-akhir ini, khususnya pada beberapa alat MS yang tersedia, dan saya memperhatikan fokus besar pada alat perancang dan penyihir. Bukan hanya untuk pengembangan UI tetapi untuk semuanya.
- Entity Framework memiliki modeller
- Layanan RIA memiliki panduan DomainService
- Workflow memiliki seluruh perancang alur kerja thingy ... (Saya tidak tahu, belum benar-benar menggunakannya)
Masih ada lagi, tetapi saya pikir Anda mendapatkan idenya. Ada banyak alat desainer. Menggunakan beberapa ini saya menemukan bahwa:
Mereka memperumit masalah di luar kasus penggunaan yang ditentukan
(yaitu semua video demo teknologi)
Saya telah mengevaluasi beberapa teknologi ini baru-baru ini, dan mencoba untuk bekerja dengan mereka, saya akhirnya harus membedah apa yang dilakukan oleh perancang, pemodel, dan penyihir untuk saya ... jika tidak, saya tersesat ketika saya benar-benar harus mencoba melakukan sesuatu dengan apa pun yang dibuat.
Ini berakhir sampai menjadi kasus di mana saya harus berjuang alat, atau melawan output cukup sehingga saya bisa saja melakukan semuanya sendiri tanpa itu - dan memiliki banyak pemahaman kuat tentang apa yang terjadi. Saya menemukan ini sangat menyebalkan dengan desainer silverlight dan wizard layanan domain layanan RIA.
Saya mendapati diri saya bertanya, "Apa gunanya alat ini jika saya harus mencari tahu cara kerjanya atau menulis ulang setengah dari hasilnya untuk menggunakannya?"
Mereka tidak secepat itu
Titik penjualan alat ini adalah untuk meningkatkan produktivitas dan titik ini dapat berubah dari waktu ke waktu menggunakan alat, dan tidak selalu berlaku untuk perancang UI (meskipun, dalam beberapa kasus masih terjadi -> Saya sedang melihat Anda perancang perak) . Saya menemukan bahwa saya dapat meretas beberapa kode lebih cepat daripada yang dapat saya seret-dan-jatuhkan, ubah ukuran, pindahkan, apa pun dalam perancang.
UI menghalangi model
Mungkin ini hanya saya, tetapi ketika saya menggunakan sesuatu yang mengingatkan pada alat desain UML, saya akhirnya menghabiskan lebih banyak waktu untuk meletakkan semuanya sehingga garis saya tidak melintas dan sehingga saya bisa melihat semuanya di layar daripada memodelkan apa yang saya Saya berusaha untuk mencapai.
Itu tidak menyenangkan
Setengah dari alasan saya mencari nafkah adalah karena saya menikmatinya. Mengklik kotak centang dan memilih kotak kombo lalu memperbaiki semua yang keluar tidak menyenangkan.
Saya tidak tampak sendirian
Masyarakat tampaknya juga tidak menginginkan alat-alat ini. Contoh terbaik yang dapat saya pikirkan saat ini adalah Entity Framework Code-First.
Jadi saya bertanya:
- Apakah alat desainer benar-benar meningkatkan produktivitas?
- Apakah mereka pembunuh yang menyenangkan?
- Apakah 'komunitas' sebenarnya meminta lebih banyak alat perancang, atau apakah vendor hanya berpikir kita?
sumber
Saya pikir itu mungkin tergantung. Jika Anda adalah pengembang yang cukup berpengalaman maka menggunakan alat desain mungkin lebih produktif daripada mengetiknya. Saya cukup yakin bahwa saya lebih produktif di awal VB6 saya menggunakan perancang daripada yang akan saya cranking dengan tangan. Hal lain yang perlu dipertimbangkan adalah bagaimana teknologi (setidaknya bagaimana IDE menyajikannya) cocok untuk pengeditan tangan. VB6 dan .NET WinForms tentu tidak (atau lebih tepatnya Anda mungkin tidak ingin mengedit file kode "yang dihasilkan" (atau bagian dari). Dengan WPF dan ASP.NET saya pikir pengembang yang cukup berpengalaman akan mulai dengan perancang tetapi dengan cepat beralih ke mengedit XAML / ASP secara langsung. Setelah Anda tahu apa yang Anda lakukan, tentu saja lebih cepat untuk mengedit markup secara langsung. Berpikir kembali ke EF v1.0,
Tergantung apakah markup itu menyenangkan untuk dikerjakan. WPF dan ASP (.NET) bisa menyenangkan. VB6 / WinForms - tidak ingin mengedit bagian kode yang dihasilkan lebih dari yang diperlukan.
Saya tidak berpikir komunitas melakukannya secara eksplisit. Meskipun ketika mempelajari sesuatu yang baru, perancang dapat membuatnya lebih mudah untuk menelan potongan pembelajaran.
sumber
seperti biasa, itu tergantung
Ketika saya pertama kali diselidiki menggunakan layanan web, Java memiliki tutorial 50 halaman dan .NET memiliki panduan. Tebak yang mana yang digunakan?
sumber
Sama di sini, tidak ada alat desain.
Saya mendesain ERD basis data di atas kertas, dan menulis penyebar yang mengeluarkan pernyataan "buat tabel", dengan cara itu saya dapat menghapus dan membangun kembali sesuka hati. Juga membantu untuk pembuatan versi basis data.
Saya menemukan bahwa kertas 11x17 (A3) dapat menjadi tempat yang bagus untuk merancang sistem yang sangat lengkap. Dapatkan penghapus dan pensil yang bagus (saya lebih suka Staedtler ).
sumber
Dari perspektif vendor, semua alat desainer mewah itu tampaknya memiliki tujuan yang mirip dengan diskon / lisensi siswa gratis. Idenya adalah untuk memungkinkan Anda membuat sesuatu dengan usaha dan biaya minimal. Setelah diinvestasikan, mereka bertaruh bahwa Anda akan belajar untuk mengembangkan keterampilan Anda dengan alat-alat mereka alih-alih belajar milik orang lain.
Itu tidak berarti alat tidak memiliki kegunaan produktif yang sah. Ini harus berharga untuk memeriksa kode yang dihasilkan dan belajar dari itu. Sayangnya seperti yang dicatat oleh Ken Henderson, kode ini sering tidak dapat dibaca dan bukan sesuatu yang ingin Anda gunakan sebagai templat untuk pekerjaan di masa mendatang. Saya teringat beberapa bagian dalam Pemrograman Layanan WCF , di mana penulis menjelaskan cara menulis kode secara manual atau membuatnya dihasilkan oleh Visual Studio. Tidak dapat dihindari, opsi yang dihasilkan memerlukan bagian tindak lanjut untuk menghapus kode asing.
sumber
Apakah alat desainer benar-benar meningkatkan produktivitas?
Mereka mungkin selama proyek Anda sederhana dan tidak terlalu rumit untuk mereka. Pengalaman saya Anda menabrak dinding segera setelah Anda mencoba menerapkan / memecahkan masalah dunia nyata.
Apakah mereka pembunuh yang menyenangkan?
WF (Workflow) & WPF di mana menyenangkan tetapi juga pembunuh ketika VS 2008 mogok setiap 30 menit.
Apakah 'komunitas' sebenarnya meminta lebih banyak alat perancang, atau apakah vendor hanya berpikir kita?
Banyak alat yang dirilis oleh MS akhir-akhir ini tampaknya merupakan upaya putus asa untuk mempertahankan para pengembang. Pertempuran sekarang terjadi di pasar ponsel pintar. Siapa yang akan memenangkan hart pengembang, MS, Google atau Apple?
sumber
Selalu seperti itu, bahkan pada zaman dulu kami dulu membedakan antara pengembang yang hanya tahu cara mengeklik penyihir, dan pengembang yang tahu kode apa yang dihasilkan penyihir dan bisa memodifikasinya untuk kasing tepi.
Bahwa Anda memiliki lebih banyak alat, penyihir, dan perancang semua melakukan hal-hal di balik selimut untuk mencegah Anda memotong bagian-bagian yang tajam adalah manfaat bagi pengembang yang tidak ingin tahu, atau tidak memiliki luas pengalaman atau keterampilan untuk memahami kode yang dihasilkan. Saya membayangkan ada titik manis antara apa yang Anda ingin komputer lakukan untuk Anda, dan apa yang perlu Anda lakukan sendiri sebagai alternatifnya adalah bahasa pemrograman sepenuhnya berdasarkan pada menyeret dan menjatuhkan blok ke formulir. (Dulu saya bekerja pada lingkungan khusus domain, saya tidak ingin menggunakannya!)
sumber