Saya memiliki teman yang memiliki pengalaman pemrograman sedikit lebih besar daripada saya. Kami berbicara tentang semua teknologi pemrograman yang berbeda yang kami gunakan dan Interface Builder muncul dalam percakapan.
Karena tidak memiliki latar belakang pemrograman kecuali untuk apa yang telah saya pelajari sendiri, saya pribadi percaya bahwa IB dan semua fiturnya ( IBOutlets
, IBActions
) membantu pembuat kode tingkat keterampilan saya (dan semua tingkat keterampilan, dalam hal ini) menyelesaikan proyek mereka dalam waktu yang lebih singkat.
Pandangannya tentang IB sedikit antusias. Dia percaya bahwa pembuat kode yang menggunakan Interface Builder "curang" dalam kenyataan bahwa mereka tidak perlu membuat antarmuka dengan tangan.
Pertanyaan:
Haruskah menggunakan pembangun GUI untuk meletakkan elemen antarmuka dianggap "curang" (karena sebagian besar pemrograman awalnya diperlukan membuat antarmuka dengan tangan dalam kode)? Mengapa?
sumber
Jawaban:
Itu tidak curang. Program seperti IB adalah alat. Gunakan yang tepat untuk pekerjaan itu. Tidak perlu menjadi dogmatis tentang hal itu.
Jika Anda lebih efektif menggunakan alat seperti itu, gunakan itu. Satu-satunya peringatan adalah bahwa Anda harus mempelajari pertukaran ketika membuat keputusan. Melakukan tata letak dengan tangan memberi Anda kontrol tepat dengan mengorbankan kemudahan seret-dan-jatuhkan. Alat seret-dan-jatuhkan memungkinkan Anda melakukan banyak hal dengan cepat dan mudah, tetapi mungkin membuat kode Anda lebih sulit dipertahankan seiring waktu.
Secara pribadi, saya tidak pernah sukses atau mendapatkan banyak kesenangan dari menggunakan alat desain UI drag and drop, tapi itu hanya saya. Saya menemukan meletakkan GUI dengan tangan adalah yang paling efektif bagi saya , dan menghasilkan basis kode yang lebih mudah dipertahankan dari waktu ke waktu. Yang lain memiliki pengalaman sebaliknya.
sumber
Pemrograman sebagai pekerjaan bukanlah olahraga atau permainan. Jadi argumen curang itu sangat tipis. Jika alat visual meningkatkan produktivitas Anda, Anda akan bodoh untuk tidak menggunakannya. Pengalaman saya adalah ini membuat saya menghabiskan lebih banyak waktu pada kode pemecahan masalah yang sebenarnya tanpa melakukan hal-hal antarmuka sepele berulang kali.
Namun berhati-hatilah, mudah untuk pengaturan atau data masuk ke antarmuka. Jadilah radikal tentang menjaga presentasi dan logika terpisah.
sumber
Itu hanya curang jika Anda mengorbankan sesuatu untuk sampai ke sana. Sebagian besar tata letak GUI hanya menghasilkan kode yang ingin Anda buat (dan seringkali harus diedit dengan tangan karena tata letak tidak mencukupi).
Jadi pada dasarnya, tidak.
Semuanya sama, alat apa pun yang memungkinkan Anda menyelesaikan hal yang sama lebih cepat adalah baik.
sumber
Selingkuh adalah nama permainannya. Anda harus selalu mengambil rute termudah yang Anda bisa saat membuat keputusan pengembangan apa pun. Sebut itu curang, sebut saja "menjadi produktif"; tidak ada bedanya. Anda harus memilih alat yang membantu Anda menyelesaikan pekerjaan dengan jumlah usaha paling sedikit (tentu saja, jangan lupa tentang pemeliharaan dan skalabilitas).
Sekarang khusus dengan IB, Anda harus mempertimbangkan waktu yang dihemat oleh IB vs biaya karena harus mempertahankan kode yang lebih ceroboh dan yang kurang Anda kenal. Ini benar-benar kasus per kasus dan orang dengan jenis keputusan. Dalam banyak kasus, alat dan penyihir memungkinkan Anda menyelesaikan lebih banyak pekerjaan dengan biaya perawatan tambahan yang rendah ... dan kadang-kadang mereka memperkenalkan kode slop dan abstraksi yang lebih bocor daripada yang Anda tahu harus dilakukan dengan apa. Sepertinya Anda telah membuat keputusan untuk diri Anda sendiri bahwa IB bernilai biaya apa pun yang ditambahkannya untuk pengembangan, namun, teman Anda mungkin akan dengan mudah menemukan bahwa alat tersebut menghalangi dia lebih daripada membantu.
sumber
Tidak. Namun, melakukannya sepenuhnya dengan tangan, adalah kasus yang jelas untuk membuat pekerjaan yang tidak perlu untuk Anda sendiri.
(Umumnya saya akan meletakkannya menggunakan pembangun dan jika ada fine-tuning diperlukan itu cenderung - tetapi tidak selalu - dilakukan dengan tangan).
sumber
Ini tentu saja tidak curang, meskipun saya akan sedikit kurang menghormati pengembang yang tidak bisa mengeluarkan GUI tanpa itu. IMO, menggunakan satu tidak berbeda dengan menggunakan tipe data yang disediakan sistem - mengapa menerapkan daftar tautan atau hash Anda sendiri jika Anda dapat menggunakan satu dari perpustakaan sistem?
FWIW Saya harus mengimplementasikan UI di Java Swing beberapa bulan yang lalu. Saya tidak pernah menggunakannya, jadi saya menulis semuanya dengan tangan sehingga saya bisa mendapatkan pemahaman yang lebih baik tentang cara kerjanya. Sekarang saya tahu API dasar, saya tidak akan pernah menulis satu tangan lagi jika saya bisa membantu!
sumber
Seperti yang dinyatakan oleh @Bryan Oakley , itu hanya alat dan bukan "cheat". Itu semua tergantung pada apa yang Anda jelaskan. Jika dengan tangan membuatnya menjadi latihan yang sangat melelahkan maka Anda harus benar-benar mencari alternatif lain yang membuat Anda lebih produktif.
Dulu saya berada di tangan pengkodean antarmuka, tetapi kemudian setelah serangan antarmuka saya mengambil panah ke lutut dan memiliki pendapat yang berbeda. Jika saya bisa dan itu membuat saya lebih produktif maka saya akan menggunakan alat grafis untuk mengeluarkan GUI.
Baru-baru ini menggunakan pola MVVM, dengan perbedaan View dan ViewModel, itu membuat sedikit lebih jelas ketika Anda akan menggunakan alat grafis. Phil Haack membahas ini secara singkat dalam episode Github untuk Windows dari podcast Herding Code ketika ditanya tentang transisi dari web ke pengembangan aplikasi. Lebih masuk akal untuk melakukan ViewModel dengan pengkodean "dengan tangan", dan biarkan perancang membangun Tampilan secara grafis (dan sesuaikan ViewModels dengan sesuai).
sumber
Salah satu keuntungan besar dari alat-alat seperti Interface Builder adalah bahwa mereka memungkinkan untuk memisahkan pekerjaan desain UI dari implementasi program. Seseorang dengan keterampilan pengkodean minimal dapat dengan mudah mengubah tata letak UI, mengubah tombol dan keterangan menu, menerjemahkan UI ke bahasa yang berbeda, dll.
sumber