Displaying articles with tag framework

Prototype Javascript Framework

Posted by PunNeng, Wed Sep 05 00:46:00 UTC 2007

ช่วงนี้ดูเหมือนผมจะได้ใช้ Prototype เป็นตัวตายตัวแทนของ javascript เสียแล้ว เลยเอามาเขียนเสียหน่อย

จริงๆ มันก็คือ javascript นี่แหละ แต่มีการเตรียม library อะไรต่างๆ นานา ไว้ให้ อีกอย่างนึงที่ผมว่าเจ๋งคือ มันมี function ที่ดูง่ายๆ อย่าง $() หรือ $$() เป็นต้น หรือแม้กรทั่งการใช้ block แนวๆ Ruby ก็มีให้เห็น ใครเป็นแฟน Ruby อยู่ คงจะชอบใจ

มุมมองการเขียน ก็เป็นการเขียนเชิง Prototype (ซึ่งเป็นที่มาของการตั้งชื่อว่า Prototype นี่แหละ) ซึ่งไม่ต่างอะไรจากการมองเชิง Object-oriented เท่าไหร่ เรื่องความแตกต่าง ยังจะเอาไว้ก่อน เดี๋ยวกันจะกลายเป็น Prototype vs Object-oriented ไปเสียก่อน ซึ่งจริงๆ แล้ว Javascript เอง ก็เป็นภาษาเชิง Prototype ในตัวเองอยู่แล้ว(OO ด้วย)

จุดที่แข็งที่สุดของ Prototype นี้ เห็นจะหนีไม่พ้น library ที่เตรียมไว้ใช้งานกับ DOM หลากหลายชนิด เช่น $() หรือ $$() ที่ว่าไปข้างบน หรือ

  1
  2
  3
Element.hide('comments'); 
var div_height = Element.getHeight(my_div);
Element.addClassName('contactform', 'pending');

อีกส่วนนึงที่ลืมไปไม่ได้คือ AJAX
โดยใช้งานผ่าน Ajax.request เช่น

  1
  2
  3
  4
  5
  6
  7
  8
  9
new Ajax.Request('/some_url',
  {
    method:'get',
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
      alert("Success! \n\n" + response);
    },
    onFailure: function(){ alert('Something went wrong...') }
  });

ยังไม่หมด ยังต่อ JSON ได้อีก

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
$H({name: 'Violet', occupation: 'character', age: 25 }).toJSON();
//-> '{"name": "Violet", "occupation": "character", "age": 25}'


var Person = Class.create();
Person.prototype = {
  initialize: function(name, age) {
    this.name = name;
    this.age = age;
  },  
  toJSON: function() {
    return ('My name is ' + this.name + 
      ' and I am ' + this.age + ' years old.').toJSON();
  }
};
var john = new Person('John', 49);
Object.toJSON(john);
//-> '"My name is John and I am 49 years old."'

library ยังมีอีกเพียบครับ ต้องลอง!!

ถ้าใครเคยใช้ Scriptaculous หรือ Rico หรือ Ajax ของ Rails เอง ก็จะต้องผ่านตากับ Prototype มาแน่นอน เพราะมันต้องใช้ Prototype เป็นฐานการทำงาน ส่วนในอุตสาหกรรมจริงๆ ดูได้ที่นี่

ข้อมูลจาก Prototype Tips and Tutorials

ปล. มาโฆษณาชวนเชื่อครับ ส่วน howto คงไว้คราวหน้าครับ

0 comments | Filed Under: General | Tags: framework

MVC vs Component-Based

Posted by PunNeng, Fri Mar 02 10:58:00 UTC 2007

AMp เขียนครับ

...เออ ไม่รู้ว่ามีใครตะหงิดๆ เหมือนผมบ้างหรือเปล่า ในเรื่องการเอา mvc ไปใช้ในการทำเว็บทั่วๆ ไปเนี่ย

เพราะดูเหมือนๆ ว่า mvc น่าจะเหมาะกับการทำ app มากกว่า เว็บทั่วๆ ไป, ลองคิดดูง่ายๆ เว็บปกติเราจะใส่สารพัดอย่างลงใน 1 หน้า อย่างเช่น counter, banner, content, แล้วก็พวกสรุป content จากหน้าอื่นเป็นกรอบเล็กๆ อีก ถ้าเขียนเป็น mvc คงยุ่งเหยิงน่าดู เพราะ mvc จะมองตาม action มากกว่า (mvc เรียกอีกอย่างว่า action-driven) ดังนั้น ด้วย mvc ในการทำเว็บปกติ เราจะได้โค้ดที่ซ้ำค่อนข้างเยอะ

แต่ถ้าเป็นเฟรมเวิร์กประเภท component-based อย่าง PRADO เนี่ย ปัญหาตรงนี้จะหมดไป เพราะเราสามารถแยกทุกอย่างออกเป็น component ได้ ซึ่ง component ที่ว่านั้น สามารถควบคุมทำงานและแสดงผลได้ด้วยตัวมันเอง ตั้งแต่ต้นจนจบ เหมือนกับการลาก control มาใช้ใน Visual Studio ซึ่งผมมองว่าน่าจะเวิร์กกว่า mvc เยอะ

จุดเด่นอีกจุดของ component-based นี่ก็คือ ถ้าเขียน component ดีๆ แล้ว สามารถยกไปใช้กับอีกระบบได้อย่างสบายเลย ต่างกับ mvc ที่ยกไปใช้กับอีกระบบค่อนข้างยุ่งยากกว่า

...เหมือนมาโฆษณาให้ PRADO เลยเนอะ อิอิ

0 comments | Filed Under: General | Tags: framework

Prado + Zend Framework

Posted by PunNeng, Wed Feb 21 16:47:00 UTC 2007

AMp เขียนครับ

บทความนี้ อธิบายเกี่ยวกับการใช้ prado framework ใน zend framework ซึ่งเป็นเหมือนกับการสร้าง webapp ด้วย component ของทั้ง zend และ prado (ทำแบบนี้ถึงจะดูน่าสนใจ แต่คิดว่าน่าจะกระทบกับ performance เอาเรื่องเหมือนกัน)

ว่าไป ผมก็เพิ่งรู้ว่ามี zend framework ด้วย เท่าที่ลองสำรวจเว็บคร่าวๆ รู้สึกว่า zend ทำงานเป็นมืออาชีพจริงๆ ลองไปดูใน Developer Community ก็จะเห็นว่า แค่เรื่อง proposal ของ component ก็ต้องมีการ review กันเป็นขั้นเป็นตอน ดูแล้วน่าจะเป็น framework ที่มีการ support ที่แข็งกว่า framework ตัวอื่นแน่ๆ

อีกสิ่งหนึ่งที่เห็นก็คือ zend framework น่าจะเน้น component เช่นเดียวกับ prado แต่ตัวมันเองทำงานแบบ mvc ซึ่ง component ใน zend มีค่อนข้างเยอะ แต่ที่น่าสนใจจริงๆ อยู่ที่ proposal ครับ ผมเห็น proposal หลายตัวที่เน้นทำงานกับ webservice ของเว็บดังๆ อย่าง technorati, youtube, gg earth แล้วก็มี service ที่เกี่ยวกับ payment กับ currency อยู่ด้วย

ไปๆ มาๆ ผมว่าน่าจะขโมย component จาก zend framework มาใช้ใน prado มากกว่านะ เพราะเท่าที่ดูคร่าวๆ แล้ว component ของ zend ยังไม่มี dependencies กับ component อื่นมากนัก (โดยเฉพาะพวก webservice component)

1 comment | Filed Under: General | Tags: framework

Prado Framework

Posted by PunNeng, Tue Feb 20 23:38:00 UTC 2007

AMp เขียนครับ

...และแล้ว เฟรมเวิร์กตัวนี้ก็เสร็จผมจนได้ เหอๆ คราวที่แล้วติดใจกับ CodeIgniter ที่น่าสนใจตรงที่ ใช้งานง่ายมาก เหมาะสำหรับเซียน php ที่ถนัดเขียนโค้ดเองเป็นอย่างยิ่ง

คราวนี้ก็ได้มาลองเล่น Prado Framework (http://www.pradosoft.com) ซึ่งตอนนี้พัฒนามาถึง v3 แล้ว concept หลักของ prado จะไม่ใช่ mvc แล้วครับ (ถึงแม้ว่าจะสามารถมองเป็น mvc ได้ก็ตาม) prado เป็น component-based framework ครับ ใครที่นึกภาพไม่ออก ก็ลองนึกถึง .NET หรือพวก JAVA ครับ เหมือนกันเลย การพัฒนาระบบ prado นั้นจะเน้นที่การสร้าง component แล้วเอามาประกอบกันเป็นระบบใหญ่ๆ ซึ่งการพัฒนาแอพลิเคชั่นที่ซับซ้อนเนี่ย การพัฒนาแบบ component-based เนี่ย จะช่วยเพิ่มความยืดหยุ่น และ reusable ได้มาก ซึ่งการันตีได้จากการที่ทั้ง .NET และ JAVA เองก็ถูกนำไปพัฒนาระบบใหญ่ๆ กันมาก

เล่น prado เนี่ย ไม่ต้องมองหาระบบ automatic อย่างใน cake หรือว่า rails หรอกนะครับ ระบบแบบนี้เน้น component จริงๆ โดย prado จะมี component มาให้ใช้เพียบ ทั้ง component data, template, html ฯลฯ นึกเอาง่ายๆ ใน .net เขียนติดต่อ db ยังไง ใน prado ก็แบบนั้นน่ะแหละ

ใครที่ไม่ได้อยู่สาย m$ ล่ะก็ การเขียน prado ออกจะหนักหนาสาหัสเอาการเลยทีเดียว และข้อเสียของ prado น่าจะอยู่ที่ด้านการ learning ที่ต้องใช้เวลามาก สำหรับพวกที่ไม่คุ้นกับ style ของ .net/java

ง่วงละ สรุปง่ายๆ เลยละกัน prado มีดีอะไร:

  • เขียน even-driven ได้
  • มี state ช่วยให้ทำงานแบบ state ได้ (เว็บทั่วไปจะเป็นแบบ state-less)
  • ผสานกับ ajax ได้โดยอัตโนมัติ เพียงแค่เรียกใช้ control ให้ถูก และมันฉลาดพอที่จะรู้ว่า เราวาง control แบบไหนควรจะ process ที่ฝั่ง server หรือใช้ ajax/js
  • ยืดหยุ่นเช่นเดียวกับ .net/java
  • component/control ที่ให้มา ค่อนข้างครบครัน
  • ระบบ template ก็เป็นการเรียกใช้ component เหมือนเดิม ไม่ได้มองเป็น php scripting (แต่จะเขียนโค้ดทั้งดุ้นเองก็ได้ไม่ผิด)
  • แถม extension ของ dream มาให้ด้วย เอาไว้เวลาสร้าง template จะได้ไม่ต้องมาคอยเปิด manual มันจะมี auto complete ขึ้นให้เลย (แต่รู้สึกเหมือนจะไม่ค่อยมีประโยชน์เท่าไหร่ เพราะพาธไม่ตรง ทำไปก็ต้องไป preview ใน browser ไป)
  • เขาวางแผนจะทำ IDE สำหรับ prado กันอยู่ ยิ่งถ้าได้ใช้ใน vs ล่ะก็ มันส์ (ผมติดใจ intellisense ใน vs นี่แหละ ชอบมากๆ - แต่รู้สึกว่าเขาจะไม่สนใจ commercial IDE ซักเท่าไหร่)

proda ห่วยตรงไหน:

  • คนที่ไม่คุ้นกับ .net/java งงแน่ๆ
  • ถ้าไม่คุ้น งงกับ config แน่ เพราะโค้ดบางตัวมันใส่ได้ทั้ง config และใส่ใน code (ถ้าใครเคยเขียน .net จะรู้ว่ามันมี web.config ประมาณนี้แหละ)
  • sample น้อยมาก ต้องคลำเอาเองซะเยอะ
  • ใช้ php5
  • ระบบ automation สำหรับช่วยเหลือตอนเขียนโปรแกรม ไม่ค่อยมี (db auto mapping, etc.)
  • ไม่รู้จะถือว่าเป็นข้อเสียหรือเปล่า friendly-url ต้อง map เองแน่ๆ เพราะ prado ไม่ได้มองเป็น mvc แต่จะมองเป็นการเรียกใช้ component แทน ซึ่งมันไม่ฉลาดพอที่จะทำ friendly-url maping ให้ได้ (แต่ถ้าจะทำก็น่าจะทำได้นะ)

ตอนนี้ผมกำลังลุยเล่น prado อย่างจริงจัง ก็คงหยุดการเฟ้นหา framework โดนใจที่ prado นี่แหละครับ ถือว่าถูกใจเลยทีเดียว (จริงๆ บริษัทของผมมันสาย m$ ถ้าได้เล่น prado อย่างน้อย concept มันก็ไม่หนีกันเท่าไหร่ ประหยัดเวลาศึกษา .net ไปได้อีก - ผมยังเขียน .net ไม่เป็นเลย เหอๆ)

0 comments | Filed Under: General | Tags: framework

Properl Framework

Posted by PunNeng, Fri Jan 19 15:45:00 UTC 2007

AMp เขียนครับ

"...ไอ่โรคจิต..."

ตั้งใจจะด่าผมแบบนี้ใช่มั้ยคับ - -"
อย่าเพิ่งด่าเลย แค่แวะมาบอกอะไรน่ารู้นิดๆ หน่อยๆ

เมื่อกี้ที่อ่าน doc ของ CI กะ Qcodo อะ เห็นคำว่า Active Record ก็สงสัยว่ามันเหมือนหรือต่างกันกับ ORM ยังไง ก็ไปค้นใน wikipedia ปรากฏว่า ..... มันก็อันเดีัยวกันนั่นแหละ - -"

แต่ทันใดนั้นเอง ก่อนที่จะปิดมันลงไป ผมเหลือบไปเห็น See also มีลิ้งค์คำว่า Propel ด้วย ผมก็เริ่มตะหงิดๆ ละ แล้วก็นึกขึ้นได้ว่า ตอนเล่น symfony มันมีการสร้าง ORM แล้วชื่อคลาสมันเนี่ย มีคำว่า propel ต่อท้ายด้วย ก็สงสัยเหมือนกัน แต่ก็ไม่ได้หาต่อ นึกว่าเปิดดิกเอาก็คงรู้

พอตามลิ้งค์ไป เท่านั้นแหละ .......... http://propel.phpdb.org .... ห่ะ ORM ยังเป็น framework อีกหรอวะ - -*

ใช่ครับ Propel is an Object Relational Mapping (ORM) framework for PHP5. มิน่าล่ะ Symfony ถึงไม่ support php4

แวะมาบอกแค่นี้ล่ะคับ - -"

0 comments | Filed Under: General | Tags: framework

codegent: we're hiring