Kata Pengantar: Saat ini saya sedang menulis buku untuk programmer Delphi yang terampil tentang topik membangun program yang dirancang dengan baik menggunakan teknik pemrograman berorientasi objek di Delphi.
Buku ini masih dalam proses penulisan. Saya berharap semua orang dapat memiliki pemahaman awal tentang tema dan gaya bahasa buku ini. Pada saat yang sama, Anda dapat mengemukakan pendapat Anda sendiri. Sebagai seorang penulis, saya berharap buku ini bisa menjadi buku klasik di antara buku-buku Delphi asli di China. Mungkin tidak berhasil, tapi saya akan berusaha sebaik mungkin.
Karena alasan di atas, tidak mungkin saya memposting keseluruhan bukunya (haha, nanti tidak akan ada yang membelinya), jadi tidak boleh ada bab selanjutnya yang diposting di sini (mungkin akan ada beberapa kutipan).
Di sini saya ingin mengucapkan terima kasih kepada teman-teman yang telah menyemangati saya dan memberikan pendapat (saya mempostingnya di forum Delphi csdn dan mendapat tanggapan yang beragam, terima kasih semuanya). Saya juga ingin mengucapkan terima kasih kepada pacar saya, Esan, yang selalu mendukung dan menginspirasi saya. Yang bisa saya lakukan hanyalah menulis dengan baik dan membalas semua orang. Saya tahu bahwa semua orang (termasuk saya) telah menunggu terlalu keras untuk mendapatkan buku yang bagus!
Bab 1 Memahami Kembali Delphi
Kesederhanaan adalah hal yang paling sulit diperoleh di dunia: ini adalah batas akhir dari pengalaman dan tujuan akhir dari kejeniusan. ——George Sand Anda sudah menjadi programmer Delphi yang terampil dan dapat menggunakan Delphi untuk dengan cepat menulis program yang indah dan praktis; Anda menyukai Delphi; dia telah menjadi bagian tak terpisahkan dari pekerjaan dan studi Anda. Saya berasumsi bahwa ini benar, maka Anda pasti mempunyai alasan atau alasan tersendiri dalam memilih Delphi sebagai alat pengembangan pilihan pertama Anda. Setidaknya, saya memenuhi semua asumsi di atas. Nah, yang ingin saya bagikan kepada anda adalah alasan dan alasan mengapa saya memilih Delphi, serta pemahaman saya tentang Delphi. Anda bisa menganggap saya sebagai seorang fanatik yang mendukung Delphi, meskipun itu akan membuat saya merasa bahwa Anda memandang saya terlalu dangkal. Saya tidak mengakuinya, tapi saya tidak keberatan. Sebab, aku sangat mencintainya. Versi Delphi yang pertama kali saya kenal adalah 3.0. Saat itu, saya hanya menggunakannya sebagai alat RAD seperti Visual Basic. Namun seiring berjalannya waktu, Delphi 3, Delphi 4, Delphi 5, Delphi 6 dan Kylix memiliki pemahaman yang semakin mendalam tentang Delphi. Ini adalah alat yang memiliki konotasi yang kaya. Semakin banyak orang memahaminya, mereka semakin terobsesi dengannya dan semakin mereka merasa tidak terpisahkan darinya, meskipun itu masih sekedar alat. Pascal adalah bahasa yang memperhatikan estetika program - tidak ada keraguan bahwa kode Pascal adalah kode yang paling indah - Delphi berdasarkan Object Pascal (bahasa Pascal yang mendukung berorientasi objek) membawa keindahan ini secara ekstrim. Sekarang, Anda dapat membuka Delphi, pilih menu "Bantuan" - "Tentang", ketika jendela Tentang muncul, tahan tombol Alt dan ketik "tim" secara berurutan. Apa yang Anda lihat? Ya, daftar pengembang Delphi, mari kita berterima kasih kepada mereka karena telah menciptakan alat pengembangan yang lebih mirip karya seni!
1.1 Teori alat pembangunan yang “berorientasi pada masyarakat”.
Anda sering melihat pertanyaan seperti ini di berbagai forum pemrograman: "Apakah VB masih memiliki masa depan?"; "Apakah Delphi akan dihilangkan?"; "Apakah MFC akan digantikan oleh .NET?"... Faktanya, Ketika pertanyaan ini diajukan, tidak ada yang bisa memberikan jawaban. Karena masa depan suatu teknologi atau suatu produk tidak sepenuhnya ditentukan oleh teknologi itu sendiri, tetapi juga terkait dengan faktor-faktor seperti permintaan pasar dan arah perkembangan perusahaan produsennya. Dan apa yang harus kita perhatikan adalah jawaban atas pertanyaan-pertanyaan ini? Saya rasa tidak. Kita tahu bahwa segala sesuatu di dunia terdiri dari atom; program yang selalu berubah pada akhirnya terdiri dari tiga struktur: urutan, loop, dan cabang; baik MFC VC dan VCL Delphi dibangun dengan teknologi berorientasi objek (terlepas dari derajat objeknya). -berorientasi ). Ketika Anda melihat melampaui penampakan dangkalnya, apa yang Anda lihat adalah esensi yang sama atau mirip! Setelah menguasai esensinya, Anda akan menemukan bahwa perwujudan penampilan begitu natural. Bayangkan saja, ketika Anda bisa mengupas MFC sepenuhnya seperti Hou Jie (penulis "Introduction to MFC"), apakah Anda masih khawatir MFC akan digantikan oleh kerangka tertentu? Dari perspektif ini, bagi seorang programmer profesional, konsep pemrograman tetap tidak berubah. Ada pola tertentu dalam proses menemukan, menganalisis, dan memecahkan masalah. Setelah Anda menguasai pola ini, bahasa pemrograman yang berbeda dan lingkungan pengembangan yang berbeda akan memiliki kesamaan bagi Anda. Saya pikir C++ adalah sesuatu yang harus dikuasai oleh setiap programmer profesional. Tentu saja, ini tidak berarti sekadar mempelajari sintaksisnya (Anda bahkan dapat mengabaikan pembelajaran beberapa sintaksis), tetapi mempelajari desain berorientasi objek dan metode pemrograman melalui C++. Karena C++ luas dan mendalam, karena C++ mahakuasa. Di C++, Anda dapat mempelajari semua tentang teori berorientasi objek. Setelah belajar, Anda akan diubah oleh C++. Karena fitur kontroversial yang ada dalam teori berorientasi objek (seperti pewarisan berganda) didukung di C++. Hanya setelah Anda menguasainya, Anda dapat membuat pilihan sendiri (mendukung atau menentang). Setelah menguasai teori berorientasi objek, baik itu C++, Object Pascal, java atau bahkan C#, Anda akan merasakan persamaannya. Apakah itu berarti tidak ada perbedaan lain antara alat pengembangan (mungkin harus disebut lingkungan pengembangan terintegrasi, tapi saya akan menyebutnya sebagai alat pengembangan sesuai kebiasaan saya di bawah) kecuali bahasa yang didukungnya? Tentu saja tidak. Alat pengembangan adalah alat yang membantu Anda mewujudkan ide-ide Anda, yang merupakan suprastruktur yang dibangun di atas ide-ide dasar. Sejauh mana alat pengembangan mendukung konsep yang ingin diterapkan dan sejauh mana alat tersebut menyederhanakan proses implementasi merupakan pertimbangan alat pengembangan. Alat pengembangan bagi programmer seperti senjata bagi tentara. Jika senjata tersebut tidak berguna, setengahnya akan dikalahkan sebelum pertempuran. Saya selalu menyukai slogan iklan ponsel Nokia: Teknologi berorientasi pada manusia! Ya, "manusia" adalah dasarnya, dan misi alat ini adalah membantu orang mencapai tujuan mereka dengan lebih cepat dan mudah. Oleh karena itu, alat pembangunan juga harus berpusat pada masyarakat! Sebagai seorang programmer dan pengguna langsung alat pengembangan, saya berharap alat pengembangan yang saya gunakan benar-benar dapat menjadi mitra dan asisten saya. Alat ini dapat memberi saya rasa kebebasan dan memungkinkan saya untuk dengan bebas menavigasi dunia kode saya dan beradaptasi dengan saya alih-alih membelenggu saya! Saat ini di platform Windows, ada banyak alat pengembangan yang dapat dipilih: Visual C++, Visual Basic, Delphi, C++ Builder, JBuilder... Mereka didasarkan pada bahasa pemrograman yang berbeda dan setia pada konsep produk dari berbagai perusahaan. Dari sudut pandang ini, perbedaan di antara keduanya sangat besar. Jadi, alat pengembangan seperti apa yang unggul, penuh perhatian, dan berorientasi pada masyarakat? Standar saya adalah memenuhi empat poin berikut: 1. Mampu menyederhanakan masalah yang ingin diselesaikan dan segera mengimplementasikannya dengan konsep tertentu 2. Tidak menyembunyikan detail apa pun yang ingin Anda ketahui 3. Dapat mengabaikan detail yang tidak Anda inginkan untuk mengetahui 4. Ambil inisiatif untuk Apakah ada alat pengembangan yang memenuhi empat poin di atas yang cocok untuk programmer dari berbagai level? Jawaban saya adalah: ya! Itu Delphi! Dia menyederhanakan segalanya tetapi tidak pernah menghentikan saya mencari kebenaran. Anda dapat menyelesaikan tugas di dunia virtual VCL sederhana yang dia buat untuk Anda. Anda juga dapat mempelajari dunia VCL untuk mengeksplorasi hubungan pemetaannya dengan dunia nyata (yaitu antarmuka sebenarnya dari platform Windows) dan mempelajari desain Kerangkanya. Anda juga dapat memperluas dunia VCL virtual tersebut sesuai dengan kebutuhan Anda. Saya merasa beruntung karena ada alat pengembangan seperti itu, dan lebih beruntung lagi saya bisa memilihnya dan menyelesaikan pekerjaan saya bersamanya! (Pada kenyataannya, bahasa pemrograman dan alat pengembangan yang digunakan dalam proyek seringkali berada di luar kendali Anda dan akan dibatasi oleh banyak faktor. Misalnya: lingkungan perangkat keras pelanggan, lingkungan sistem operasi, lingkungan pengembangan, biaya dan lisensi alat pengembangan. Sertifikat, dll. Oleh karena itu, saya sangat beruntung dapat memilih alat pengembangan favorit saya untuk pekerjaan pengembangan.) Mempelajari konsep berorientasi objek melalui C++ dan menggunakan Delphi untuk memecahkan masalah dunia nyata adalah pendekatan saya. Pada saat yang sama, hal ini juga membenarkan pepatah: belajar dari tempat yang sulit dan menerapkan dari tempat yang mudah. Pemrogram sejati menggunakan C++, pemrogram cerdas menggunakan Delphi. Ya, programmer yang sangat pintar menggunakan C++ untuk memahami Delphi!
1.2 Lebih banyak keuntungan dari Delphi
Saya telah menggunakan banyak alat pengembangan mainstream, mengapa saya memilih Delphi? Mungkin karena saya belum familiar dengan development tools lain secara mendalam, namun keunggulan Delphi sendiri setidaknya menjadi salah satu alasannya! Apa hebatnya Delphi? n Pengembangan Delphi yang efisien adalah RAD (Rapid application Development tool), yang memiliki lingkungan pengembangan visual. Tentu saja, ada banyak alat pengembangan dengan fungsi serupa (seperti Visual Basic), tetapi Delphi memiliki fitur unik berikut: 1 ) Delphi benar-benar berorientasi objek. Semua komponen di perpustakaan VCL yang dibangun berdasarkan teknologi OO dapat diwarisi untuk membuat komponen baru, termasuk kelas formulir TForm. Sebaliknya, komponen ActiveX tidak memiliki fleksibilitas ini. 2) Teknologi CodeInsight Delphi (yaitu fungsi pelengkapan otomatis kode) didasarkan pada informasi kompiler, sedangkan VB menggunakan informasi perpustakaan tipe. Keuntungan menggunakan informasi kompiler adalah lebih banyak fleksibilitas. Namun, pemrogram sering mengeluh bahwa perintah kode Delphi memakan waktu terlalu lama. Bahkan, saya pribadi merasa setelah terbiasa dengan kecepatannya, saya bisa merasakan kenikmatan ritmis. n Bahasa Delphi yang efisien didasarkan pada bahasa Object Pascal. Ini adalah bahasa yang benar-benar berorientasi objek namun elegan. Ini tidak kalah dengan berbagai bahasa berorientasi objek lainnya dalam hal integritas fungsional, tetapi pada saat yang sama tidak serakah untuk lebih dan secara membabi buta meningkatkan kompleksitas. Hal ini memungkinkan pengembang untuk menerima dukungan penuh ketika mendesain menggunakan berbagai pola tanpa harus mempertimbangkan terlalu banyak detail bahasa/kompiler selama implementasi. n Efisiensi kompilasi Dapat dikatakan bahwa Delphi adalah kompiler kode lokal bahasa tingkat tinggi tercepat di platform Windows. Apa manfaat kompilasi cepat? Kompiler cepat memungkinkan Anda untuk sering beralih antara memodifikasi kode dan mengompilasi serta menjalankannya. Setidaknya saya sudah terbiasa dengan cara kerja ini: jalankan program untuk melihat efeknya, keluar dari program, ubah sedikit kode, lalu jalankan program. Dan kompiler Delphi tidak pernah membuat saya merasa menunggu. n Eksekusi yang efisien Delphi tidak hanya memiliki kecepatan kompilasi yang cepat, tetapi juga efisiensi eksekusi kode target yang dihasilkan sangat tinggi. Delphi dan C++Builder menggunakan pengoptimal back-end yang sama, sehingga kode yang dihasilkan sama efisiennya dengan kode yang dihasilkan oleh kompiler C++ yang sangat baik. Delphi menghasilkan kode yang sepenuhnya asli, sehingga file eksekusi yang dihasilkan dari kompilasi Delphi dapat dieksekusi dan didistribusikan secara mandiri (ini sangat penting untuk pengembangan "perangkat lunak ramah lingkungan"). Tidak diperlukan dukungan runtime lainnya. Tentu saja, Anda juga dapat memilih kompilasi tautan dinamis, yang dapat sangat mengurangi panjang file yang dapat dieksekusi, namun, dalam kasus ini, saat mendistribusikan program, file runtime yang diperlukan harus didistribusikan pada waktu yang sama. n Pemeliharaan yang efisien C++ memberikan banyak kekuatan pengambilan keputusan bagi pemrogram, sehingga sangat kuat. Namun, pada saat yang sama, menggunakan C++ untuk menulis kode berorientasi objek yang baik memerlukan pemrogram untuk memiliki kualitas tertentu. Pemrogram Delphi akan dibatasi pada kerangka kerja yang disediakan oleh VCL sampai batas tertentu (tentu saja, sangat mungkin untuk menghilangkan pemrograman VCL di Delphi). Visual Basic tidak menyediakan mekanisme pemrograman berorientasi objek sama sekali (VB6.0 dan versi sebelumnya berbasis objek, bukan berorientasi objek). Keunggulan kerangka kode sangat mengurangi biaya pemeliharaan perangkat lunak. Berdasarkan semua alasan di atas, saya memilih Delphi!
1.3 Tema buku ini
Biasanya kita menulis banyak kode, untuk perusahaan, untuk diri kita sendiri atau untuk teman. Terkadang, untuk memverifikasi ide atau mempelajari teknologi tertentu, saya akan menulis beberapa kode eksperimental. Siklus hidup kode tersebut sangat singkat dan pada dasarnya tidak memerlukan pemeliharaan. Namun, ketika Anda benar-benar ingin menyelesaikan sebuah proyek, desain kode sangatlah penting. Karena kode tersebut memerlukan pemeliharaan jangka panjang, modifikasi atau peningkatan terus-menerus. Desain kode yang berantakan membuat pemeliharaan menjadi sulit atau tidak mungkin dilakukan, dan memodifikasi kode tersebut berarti lebih banyak bug atau bencana. Oleh karena itu, sebelum kode dapat ditulis, kode tersebut perlu dirancang. Desain yang disebutkan di sini tidak mengacu pada desain fungsional, tetapi mengacu pada desain kerangka kode oleh pemrogram sebelum pengkodean, sehingga kode akan lebih mudah dipahami dan dipelihara di kemudian hari. Saya sering mendengar pepatah: Kehidupan program seorang programmer hanya berumur 35 tahun. Saya tidak pernah menyangka umur seorang programmer hanya 35 tahun. Mungkin setelah umur 35 tahun, kemampuan implementasi (sebenarnya kemampuan pengerjaan) bisa menurun, sedangkan kemampuan desain tidak berkurang tetapi meningkat seiring bertambahnya pengalaman. Ini adalah hal yang paling berharga. Tulang punggung tim pengembangan perangkat lunak asing umumnya adalah orang-orang yang berusia sekitar 40 tahun. Mereka adalah programmer master. Yang disebut programmer yang tidak bisa menjadi programmer setelah usia 35 tahun sama sekali tidak memenuhi syarat untuk disebut programmer. Rekayasa perangkat lunak perlu mengubah pemrogram menjadi pembuat kode dan menjadi penghubung di jalur perakitan, dan pekerjaan desain diselesaikan oleh perancang khusus (seperti perancang kerangka kerja). Mungkin, trennya adalah menyempurnakan pembagian kerja, namun apakah kita puas menjadi pembuat kode atau berharap untuk berkembang menjadi desainer bergantung pada visi dan upaya kita. Bukalah wawasan Anda, daripada membatasi diri Anda dan menuruti keinginan untuk "mencapai master". Kemampuan realisasi adalah fondasinya. Hanya dengan kemampuan realisasi tertentu kita dapat berkembang. Namun, itu hanya syarat yang diperlukan, bukan syarat yang cukup. Jika tidak, itu seperti mendaki ke lereng gunung dan berpikir bahwa Anda telah mencapai puncak gunung dan mengalami stagnasi. Kemudian, Anda hanya bisa menjadi pembuat kode, dan masa hidup program Anda hanya 35 tahun. Setelah mendapatkan perspektif ini, saya berharap buku ini dapat membantu Anda memulai. Buku terkait Delphi yang diterbitkan di China pada dasarnya menjelaskan implementasinya. Judul buku ini adalah "Terobosan oleh Delphi Masters". Jadi, asumsikan bahwa Anda sekarang adalah seorang master Delphi. Oleh karena itu, buku ini tidak akan membahas terlalu banyak teknik implementasi. Meskipun terdapat contoh kode, fokusnya adalah pada desain arsitekturnya, bukan implementasinya. Pada titik ini, Anda mungkin sudah menebak tema buku ini: bagaimana menggunakan teknologi berorientasi objek di Delphi untuk membangun kode yang dirancang dengan baik. Menurut saya, menulis kode adalah kreasi artistik. Kode yang elegan sudah cukup jelas tanpa perlu komentar berlebihan. Jika terlalu banyak komentar, inilah saatnya mempertimbangkan apakah desainnya masuk akal. Menulis buku juga harus menjadi sebuah kreasi artistik. Jika Anda bisa menceritakan pemahaman dan pengalaman Anda sendiri secara artistik kepada pembaca tanpa perlu terlalu banyak "anotasi" (omong kosong yang membuang-buang ruang), itu akan sangat berhasil. Saya harap saya bisa melakukannya, setidaknya mencoba yang terbaik.
1.4 Ringkasan
Saya percaya bahwa tidak dapat dihindari bagi saya untuk memulai jalur pemrograman. Menjadi seorang programmer profesional juga merupakan hal yang saya impikan dan wujudkan. Namun, harus dikatakan bahwa kemunculan Delphi dan fakta yang saya ketahui, kenali, terobsesi dengannya, dan menjadi bagian dari pekerjaan saya adalah kejutan yang tidak terduga. Yang ingin saya katakan di sini adalah Anda harus lebih ngotot pada diri sendiri. Ketika Anda sudah memposisikan diri dengan jelas dan mengetahui dengan jelas jalan yang Anda pilih, Anda tidak perlu lagi ragu atau ragu dan terus melangkah. Meskipun saya mungkin tidak berhasil pada akhirnya (tentu saja, definisi sukses setiap orang berbeda-beda), saya mencintai apa yang saya sukai tanpa penyesalan!