Jump to content
troikasix

Camana Professional Programmer Buat Program

Recommended Posts

Aku bukan professional, tapi mmg nak jadi professional.

Korang penah tak bergelumang dgn camana nak design satu satu class.

Contohnya, kalau ada satu class Customer, apa member function dia, apa method dalam Customer tu. Nak kena buat virtual function ke tidak. Pastu, nak kena create class Person dulu baru inherit dari Person buat Customer. Then Inherit lagi satu dari Person jadi Vendor. Tapi rupa-rupanya, Customer/Vendor tak semestinya orang, mungkin Company, atau Koperasi. Tukar pulak, nama class Person jadi class Entity. Pastu Entity tak semestinya ada method makan(), jalankaki() sbb koperasi tak reti jalanKaki(). Then bila nak save ke database, dah lain cerita pulak. Satu variable dalam Person, satu dalam Entity, satu dalam Customer. Lama-lama jadi mee goreng mamak harga $3.50.

Itu kisah benar cerita aku buat Accounting pakai C++. Last last, suma jadi structured. Siap tapi penuh dgn lalat, kumbang, semut dan bermacam lagi binatang ganas yg omputeh panggil bug.

3 tahun kemudian, lepas pening kepala maintain software tu, aku jumpa benda alah ni. So, nak share sikit dgn korang kat Putera.com takyah ler melalui pengalaman pahit aku. Lagipun masa cari topik ni dalam Bahasa Melayu mmg tak ada. So sesapa kat sana yang ada ilmu dlm Pattern, luahkanlah utk membantu kengkawan melayu kita yg tak paham sgt bahasa omputeh tu termasuklah aku.

Apa itu Design Pattern:

Design pattern adalah cara menyelesaikan masalah 'design' dalam OOP. Ia mendefinasi struktur pelbagai class supaya memenuhi keperluan, tak lebih, tak kurang. Dan sebagai 'blueprint' apabila membuat implementasi untuk class2 dalam sesuatu program.

Bila dah tahu apa itu Design Pattern, kena tahu apa yang 'BUKAN' pasal design pattern.

-Design pattern BUKAN cara untuk mengstruktur KESELURUHAN program walaupun mampu utk sampai ke tahap tu.

-Bukan pengganti PSEUDOCODE dalam algorithms tapi fokus kepada hubungan (relation) antara class.

Kebaikan Penggunaan Design Patterns.

Kebanyakan sekrg contoh kod yg org publish kat internet mesti follow design pattern. Tak caya gi tengok. .Net punya language macam C# dan VB.Net pun support pattern dalam language, built-in lagi-(cth:delegate/observer pattern).

Bila pakai Design pattern, proses mengenalpasti implementasi akan jadi lebih terurus, pantas dan mudah. Orang yang baru join sesuatu projek pun akan cepat tangkap apa yg berlaku. Contohnya sekrg bila ada discussion pasal koding kat opensource, kalau tak bercakap dlm konteks pattern. Susah nak discuss.

Akan datang saya akan mula explain pasal pattern dan cara koding utk C++. Tapi saya harap ramai yg akan buat research sendiri dan discuss kat sini. Lagi cepat kita semua belajar. Lagi cepat professional programmer melayu akan lahir.

Senarai Pattern:

Ada 23 jenis pattern yang terbahagi kepada 3 kumpulan besar.

1- Creational :Cara kelahiran sesuatu objek

Factory Method (Kilang buat objek)

Abstract Factory (Kilang abstrak buat objek)

Prototype (Clone, Java jer support, C++ tak)

Singleton (Satu satunya objek dlm program)

Builder

2- Struktural :Sifat sifat objek

Adapter (Macam charger Nokia tukar AC jd DC)

Bridge

Composite

Decorator (Macam mekap org pompuan, tak lawa jadi lawa)

Facade (Depan cakap lain belakang cakap lain)

Flyweight

Proxy (Orang tengah mcm broker)

3- Behavioural :Tingkahlaku objek

Chain of Responsibility

Command

Interpreter

Iterator (Kat STL cth paling baik)

Mediator

Memento

Observer (Dlm .Net nama dia delegate)

State

Strategy

Template Method

Visitor

Setakat ni jer buat masa ni. Tolong research kat internet. Ilmu pattern ni ilmu paling universal dalam programming. Kalau dapat tangkap, program dlm apa bahasa pun ngkorang akan jadi pro.

-Semoga ramai Professional Melayu akan lahir-

Wassalam

Share this post


Link to post
Share on other sites

wlaupun aku tak tau sangat pasal c, tapi cubalah korang tengok link bawah ni:-

Design Pattern In Simple Example

Mungkin xeonn boleh terangkan lebih lanjut di sini. Dan mebantu user lain yg ingin mengetahui lebih lanjut dan tak paham.

Lepas tengok topik sajerlah cari pasal design pattern pastu jumpalah link di atas tadi.

Share this post


Link to post
Share on other sites

Link yang ko bagi tu mmg power. Simple tapi padat. Aku terus bookmark. tq tq.

However, Design Pattern ni bukan utk C++ shj tapi dia utk semua jenis bahasa yg support Object Oriented. Java, C#, VB.Net.. etc.. Jgn risau kalau korang tak tahu C++.

Masa kita belajar OO, buku dan lecturer biasanya guna contoh yg simple. Diorang bagi cth, kereta sbg class, orang sbg class. Buku Deitel&Deitel pulak bagi contoh lif. Bukan nak kecikkan sistem pengajaran, itu semua nak stress yang konsep OO adalah bersandarkan objek. Dah betul caranya.

Masa belajar bolehlah camtu, lg senang faham apa itu OO. Dlm real life, kita takkan tulis program yang ada objek kereta, pokok, kucing, semut, minuman dan pinggan. Nak print 'semut' pegi printer camana...

Design Pattern bantu tentukan objek apa yg akan wujud dlm program. Saya mmg akan kembangkan lagi penerangan. Tapi bukan kat satu thread saja. Saya baca thread panjang saya sendiri boring. Setiap pattern kena bincang panjang lebar. Perlukan Q&A gak. Saya pun masih blaja, tak semestinya apa yg saya tulis sumanya betul.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...