วันศุกร์ที่ 14 พฤษภาคม พ.ศ. 2553

ฟังก์ชั่น การทำงาน กับตัวอักษรของ PHP


ก็ห่างหายไปนานเลยนะเนี่ย กลับมาแล้วค๊าฟ Y Y วันนี้ได้ทำงานเกี่ยวกับ การใช้ฟังก์ชั่นต่างๆ ที่ทำงานเกี่ยว string เลยรวบรวมข้อมูลมาได้ เยอะพอควร เนื้อหาก็มีดังนี้ครับ

ฟังก์ชั่น การทำงาน
strlen() หาความยาวของข้อความ
strpos() หาตำแหน่งข้อความที่ค้นพบอยู่ในขณะนั้น
strrchr() ตัดข้อความจากตัวสุดท้ายที่พบจนถึงตัวท้ายสุด
str_repeat() แสดงข้อความซ้ำ ๆ ตามความต้องการ
strrev() เรียงสลับข้อความจากหลังไปหน้า
strrpos() หาต่ำแหน่งสุดท้ายที่ค้นพบ
strstr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่ค้นพบจนถึงตัวสุดท้าย
strtolower() แปลงข้อความให้เป็นตัวพิมพ์เล็ก
strtoupder() แปลงข้อความให้เป้นตัวพิมพ์ใหญ่
str_replace() เปลี่ยนข้อความที่ค้นพบด้วยข้อความใหม่ที่ต้องการ
strtr() แปลงตัวอักษรที่แน่นอน
substr() ตัดตัวอักษรที่ต้องการใช้ออกมา
substr_replace() เปลี่ยนข้อความภายในส่วนของข้อความ
trim() ตัดช่องว่างด้านหน้าและด้านหลังข้อความ
ucfirst() เปลี่ยนตัวอักษรตัวแรกของข้อความให้เป็นตัวพิมพ์ใหญ่
ucwords() เปลี่ยนอักษรตัวแรกของแต่ละคำในข้อความ
stristr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงตัวสุดท้าย ทั้งตัวพิมพ์เลก็กและพิมพ์ใหญ่
strip_tags() ตัดแท็ก php และ Html ออกจากข้อความ
strchr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงตัวสุดท้าย
sprintf() ให้ค่าของข้อความที่มีรูปแบบ
similar_text() คำนวณความเหมือนระหว่าง 2 ข้อความ
setlocale() ปรับค่าข้อมูลท้องถิ่น
prinf() แสดงผลข้อความที่มีรูปแบบ
prin() แสดงผลข้อความ
parse_str() รับค่าข้อความใว้ในตัวแปร
Ord() แปลงตัวอักษรเป็นรหัส ASCII
ltrim() ตัดข้อความด้านหน้าข้อความออกไป
join() รวม Array เป็นข้อความ
implode() รวม Array เป็นข้อความ
htmlspecialchars() แสดงแท็ก Html
flush() เคลียร์บัฟฟอร์
eregi_replace() แทนที่ข้อความที่ค้นพบด้วยคำที่ต้องการ โดยไม่สนใจว่าจะเป็นตัวพิมพ์เล็กหรือใหญ่
ereg_replace() แทนที่ข้อความที่พบด้วยคำที่ต้องการ
explode() แยกข้อความโดยใช้เครื่องหมายแยก
echo() แสดงผลข้อความ
Chr() แปลงรหัส ASCII เป็นตัวอักษร
Chop() ตัดช่องว่างท้ายข้อความออกไป

วันพุธที่ 5 พฤษภาคม พ.ศ. 2553

ชนิดของตัวแปร

วันนี้ว่างๆ เลยไปลองหาข้อมูลเกี่ยวกับชนิดตัวแปรมาดูเล่นๆ ก็มีเนื้อหาประมาณนี้ครับ

VARCHAR (ย่อมาจาก Variable Character Field อ่านว่า วาร์คาร์ หรือ วาร์ชาร์) หมายถึงกลุ่มข้อมูลตัวอักขระที่ไม่สามารถระบุความยาวได้ คำนี้มักใช้เป็นชนิดข้อมูลในระบบจัดการฐานข้อมูล ชนิดข้อมูลประเภท varchar สามารถเก็บข้อมูลตัวอักขระขนาดเท่าใดก็ได้ที่ไม่เกินความยาวที่จำกัดไว้ การจำกัดความยาวก็แตกต่างกันออกไปในแต่ละฐานข้อมูล

TINYINT : สำหรับเก็บข้อมูลชนิดตัวเลขที่มีขนาด 8 บิต ข้อมูลประเภทนี้เราสามารถกำหนดเพิ่มเติมในส่วนของ "แอตทริบิวต์" ได้ว่าจะเลือกเป็น

TEXT : สำหรับเก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่สามารถเก็บได้มากขึ้น โดยสูงสุดคือ 65,535 ตัวอักษร หรือ 64KB เหมาะสำหรับเก็บข้อมูลพวกเนื้อหาต่างๆ ที่ยาวๆ

DATE : สำหรับเก็บข้อมูลประเภทวันที่ โดยเก็บได้จาก 1 มกราคม ค.ศ. 1000 ถึง 31 ธันวาคม ค.ศ. 9999 โดยจะแสดงผลในรูปแบบ YYYY-MM-DD

SMALLINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 16 บิต จึงสามารถเก็บค่าได้ตั้งแต่ -32768 ถึง 32767 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 65535 (ในกรณี UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

MEDIUMINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 24 บิต นั่นก็หมายความว่าสามารถเก็บข้อมูลตัวเลขได้ตั้งแต่ -8388608 ไปจนถึง 8388607 (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 16777215 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ TINYINT

INT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 32 บิต หรือสามารถเก็บข้อมูลได้ตั้งแต่ -2147483648 ไปจนถึง 2147483647 ครับ (ในกรณีแบบคิดเครื่องหมาย) หรือ 0 ถึง 4294967295 (ในกรณีที่เป็น UNSIGNED หรือไม่คิดเครื่องหมาย) ซึ่งสามารถเลือก Attribute เป็น UNSIGNED และ UNSIGNED ZEROFILL ได้เช่นเดียวกับ

TINYINTBIGINT : สำหรับเก็บข้อมูลประเภทตัวเลขที่มีขนาด 64 บิต สามารถเก็บข้อมูลได้ตั้งแต่ -9223372036854775808 ไปจนถึง 9223372036854775807 เลยทีเดียว (แบบคิดเครื่องหมาย)

FLOAT[(M,D)] : ที่กล่าวถึงไปทั้งหมด ในตระกูล INT นั้นจะเป็นเลขจำนวนเต็ม หากเราบันทึกข้อมูลที่มีเศษทศนิยม มันจะถูกปัดทันที ดังนั้นหากต้องการจะเก็บค่าที่เป็นเลขทศนิยม ต้องเลือกชนิดขอฟิลด์เป็น FLOAT โดยจะเก็บข้อมูลแบบ 32 บิต

DOUBLE[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่มีขนาดเป็น 64 บิต สามารถเก็บได้ตั้งแต่ -1.7976931348623157E+308 ถึง -2.2250738585072014E-308, 0 และ 2.2250738585072014E-308 ถึง 1.7976931348623157E+308

DECIMAL[(M,D)] : สำหรับเก็บข้อมูลประเภทตัวเลขทศนิยม เช่นเดียวกับ FLOAT แต่ใช้กับข้อมูลที่ต้องการความละเอียดและถูกต้องของข้อมูลสูง

DATETIME : สำหรับเก็บข้อมูลประเภทวันที่ และเวลา โดยจะเก็บได้ตั้งแต่ 1 มกราคม ค.ศ. 1000 เวลา 00:00:00 ไปจนถึง 31 ธันวาคม ค.ศ. 9999 เวลา 23:59:59 โดยรูปแบบการแสดงผล เวลาที่ทำการสืบค้น (query) ออกมา จะเป็น YYYY-MM-DD HH:MM:SS

TIMESTAMP[(M)] : สำหรับเก็บข้อมูลประเภทวันที่ และเวลาเช่นกัน แต่จะเก็บในรูปแบบของ YYYYMMDDHHMMSS หรือ YYMMDDHHMMSS หรือ YYYYMMDD หรือ YYMMDD แล้วแต่ว่าจะระบุค่า M เป็น 14, 12, 8

TIME : สำหรับเก็บข้อมูลประเภทเวลา มีค่าได้ตั้งแต่ -838:59:59 ไปจนถึง 838:59:59 โดยจะแสดงผลออกมาในรูปแบบ HH:MM:SS

YEAR[(2/4)] : สำหรับเก็บข้อมูลประเภทปี ในรูปแบบ YYYY หรือ YY แล้วแต่ว่าจะเลือก 2 หรือ 4 (หากไม่ระบุ จะถือว่าเป็น 4 หลัก) โดยหากเลือกเป็น 4 หลัก จะเก็บค่าได้ตั้งแต่ ค.ศ. 1901 ถึง 2155 แต่หากเป็น 2 หลัก จะเก็บตั้งแต่ ค.ศ. 1970 ถึง 2069

CHAR : สำหรับเก็บข้อมูลประเภทตัวอักษร แบบที่ถูกจำกัดความกว้างเอาไว้คือ 255 ตัวอักษร ไม่สามารถปรับเปลี่ยนได้เหมือนกับ VARCHAR หากทำการสืบค้นโดยเรียงตามลำดับ

TINYBLOB : สำหรับเก็บข้อมูลประเภทไบนารี ได้แก่ ไฟล์ข้อมูลต่างๆ, ไฟล์รูปภาพ, ไฟล์มัลติมีเดีย เป็นต้น คือไฟล์อะไรก็ตามที่อัพโหลดผ่านฟอร์มอัพโหลดไฟล์ในภาษา HTML โดย TINYBLOB นั้นจะมีเนื้อที่ให้เก็บข้อมูลได้ 256 ไบต์


TINYTEXT : ในกรณีที่ข้อความยาวๆ หรือต้องการที่จะค้นหาข้อความ โดยอาศัยฟีเจอร์ FULL TEXT SEARCH ของ MySQL เราอาจจะเลือกที่จะไม่เก็บข้อมูลลงในฟิลด์ประเภท VARCHAR ที่มีข้อจำกัดแค่ 256 ตัวอักษร แต่เราจะเก็บลงฟิลด์ประเภท TEXT แทน โดย TINYTEXT นี้ จะสามารถเก็บข้อมูลได้ 256 ตัวอักษร

BLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่สามารถเก็บข้อมูลได้ 64KBM

EDIUMBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 16MB

MEDIUMTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 16,777,215 ตัวอักษร

LONGBLOB : สำหรับเก็บข้อมูลประเภทไบนารี เช่นเดียวกับ TINYBLOB แต่เก็บข้อมูลได้ 4GB

LONGTEXT : เก็บข้อมูลประเภทตัวอักษร เช่นเดียวกับ TINYTEXT แต่เก็บข้อมูลได้ 4,294,967,295 ตัวอักษร

SET : สำหรับเก็บข้อมูลที่เป็นกลุ่มของข้อมูลที่ยอมให้เลือกได้ 1 ค่าหรือหลายๆ ค่า ซึ่งสามารถกำหนดได้ถึง 64 ค่า

ENUM(Enumeration) >> หมายถึงเซตของข้อมูลชุดหนึ่งที่มีจำนวนสมาชิกที่กำหนดไว้แน่นอนและทราบค่าทุกตัว ซึ่งมักจะเป็นข้อมูลที่มีลักษณะคงที่

BINARYระบบเลขที่มีสัญลักษณ์เพียงสองตัวคือ 0 (ศูนย์) กับ 1 (หนึ่ง) บางครั้งอาจหมายถึงการที่มีโอกาสเลือกได้เพียง 2 ทาง เช่น ปิดกับเปิด, ไม่ใช่กับใช่, เท็จกับจริง, ซ้ายกับขวา เป็นต้น

BOOL คือข้อมูลที่มีค่าเป็นจริง (True) หรือเท็จ (False)

VARBINARY คือ มีลักษณะการเก็บคล้าย Varcha คือการเก็บข้อมูลตามที่รับมาจริงเท่านั้น มีขนาดสูงสุดมากถึง 8000 ไบต์


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

วันพฤหัสบดีที่ 29 เมษายน พ.ศ. 2553

twitter oauth

      วันนี้จะแนะนำใหนรู้จักกับ  Twitter Oauth ครับ คือเป็นส่วนหนึ่งตัวหนึ่งของ Twitter API ที่ช่วยให้เราสามารถเชื่อต่อ Application ของเรากับเจ้าตัว Twitter ได้ เช่นเราสร้างแอพถ่ายรูปแล้วอยากให้รูปไปโผล่บน Tweet  ของเรา ก็จะเชื่อมผ่าน Twitter Oauth  โดยจะมีการยืนยันตัวตนเพื่อรักษาความปลอดภัย โดยวิธีการสร้างง่ายมากครับ เพราะปัจจุบันมีนักพัฒนาได้เขียนเป็นไลบลารี่ไว้อยู่แล้ว  เราสามารถมาพัฒนาต่อในรูปแบบต่างๆได้เลยครับ
      ในปัจจุบันนั้น Oauth ไม่ได้มีเฉพาะ Twitter  ทางเว็บไซต์ที่เป็นโซเชียลเว็บส่วนมากก็จะมีเจ้า Oauth กันทั้งนั้น เช่น facebook ที่เราใช้เชื่อมต่อเล่นเกมส์ต่างๆกับบัญชีของเรา Google ,Hotmail ฯลฯ มีเยอะเลย สนใจตัวไหนต้องลองศึกษาเพิ่มเติมเอา แต่แนวทางการเขียนก็คงไม่ต่างกันมากครับ

ป.ล. ทิ้งท้ายด้วยลิ้งค์ Developers ของ Twitter ครับผม
https://dev.twitter.com/docs/auth/oauth

วันอังคารที่ 6 เมษายน พ.ศ. 2553

ฝึกงานวันที่ 12 การเขียน requirement

สำหรับวันนี้ได้เขียนความต้องการของระบบนะครับทำให้ได้รู้หลักในการคิดเพิ่มขึ้นก็ขอพุูดอย่างคร่าวๆ
1 การเก็บข้อมูลจากรู้ค้าควรเก็บใ้ห้ละเอียดเพื่อเมื่อเรานำมาวิเคราะห์จะได้มีเนื้อหาครบถ้วน
2. การวิเคราะห์ข้อมูลควรแตกงานเป็นงานย่อยเพื่อสะดวกในการจัดการงาน
3. วางแผนการทำงานโดยให้นึกถึงเวลาที่มีด้วย เพราะอาจทำให้เราต้องทำงานหนักขึ้นโดยที่เราไม่ได้อะไรเลย
4. หากว่างานที่รับมามีมาก แต่ เวลาที่ทำจริงๆมีน้อย ให้ทำงานที่ได้ในช่วงเวลานั้นให้เสร็จแล้วก็บอกกับเจ้าของงาน
ไปเลยว่างานที่ยังไม่ได้ทำ ทำไมไม่เสร็จ เพราะ เวลามันมีไม่พอนั่นเอง
5. ตัดงานที่ไม่ใช่งานหลักออกไปก่อน ให้วิเคราะห์ดูว่างานไหนที่จำเป็น ให้ทำงานนั้นให้เสร็จก่อน

หากทำได้ประมาณนี้รับรองว่างานไม่มีท่วมหัวแน่ๆครับ

วันจันทร์ที่ 5 เมษายน พ.ศ. 2553

ฝึกงานวันที่ 11 คำสั่งแสดงผล ใน PHP

สำหรับวันนี้ได้ใช้ฟังก์ชั่นที่เกี่ยวกับการดึงข้อมูลมาใน PHP มาแสดงนะครับ โดยมีอยู่ตัวนึงที่น่าสนใจ คือ
var_dump คำสั่งตัวนี้จสามารถดึงข้อมูลในตัวแปรมาแสดงได้ โดยไม่คำนึงถึงชนิดประเถทของตัวแปร
เหมาะกับการทำงานแบบไดนามิคส์และไม่มีการประกาศประเภทข้อมูลให้ตัวแปรอย่างชัดเจน หมายความว่าจะไม่ทราบประเภทข้อมูลปัจจุบันที่แน่นอน ฟังก์ชัน var_dump แสดงประเภทและค่าของตัวแปรในผลลัพธ์ สำหรับข้อความ var_dump ให้จำนวนตัวอักษรในข้อความ

print_r ฟังก์ชัน print_r คล้ายกับ var_dump แต่สร้างผลลัพธ์ที่อ่านได้ง่าย print_r ให้มีการเพิ่มค่าตัวเลือก(เรียกว่า พารามิเตอร์) ที่บอกให้ฟังก์ชันนี้ส่งออกผลลัพธ์เป็นข้อความแทนที่การส่งผลลัพธ์ออกไป

var_exportฟังก์ชันแสดงผลสุดท้ายคือ ฟังก์ชัน var_export ที่คล้ายกับ var_dump มาก ยกเว้นผลลัพธ์ได้รับการนำเสนอค่าของข้อมูลแบบคำสั่ง PH

วันศุกร์ที่ 2 เมษายน พ.ศ. 2553

ฝึกงานวันที่ 10 drupal 7


l
วันี้เรามาทำความรู้จักกับดรูปาลกันนะครับ

ดรูปาล (Drupal) เป็นระบบจัดการเนื้อหาเว็บ (Content Management System) แบบโอเพนซอร์ส เริ่มต้นพัฒนาโดย Dries Buytaertในภายหลังดรูปาลมีจุดเด่นในเรื่องสถาปัตยกรรมภายในที่ยืดหยุ่น ชื่อ Drupal นั้นเป็นการสะกดภาษาดัทช์คำว่า druppel ด้วยภาษาอังกฤษ ความหมายของ druppel นั้นแปลว่า drop (หยดน้ำ) ซึ่งมีที่มาจากเว็บไซต์แรกที่ใช้ Drupal คือ drop.org

ข้อดีของดรูปาลนะครับ
ติดตั้งง่าย
Drupal มาพร้อมกับตัวติดตั้ง (Installer) ที่ใช้งานได้ง่ายโดยไม่จำเป็นต้องมีความรู้ทางเทคนิคมากนัก เพียงแค่สร้างฐานข้อมูลและย้ายไฟล์ Drupal ไปบนเซิร์ฟเวอร์ งานที่เหลือนั้นตัวติดตั้งของ Drupal จะช่วยจัดการให้ทั้งหมด

URL อ่านง่าย
Drupal มาพร้อมกับความสามารถในการสร้าง URL ที่เหมาะสมกับ search engine ในตัว สร้างเว็บด้วย Drupal แล้วคุณอาจตกใจว่าเว็บของคุณมีอันดับดีอย่างที่ไม่เคยคิดมาก่อน


พร้อมสำหรับบล็อกและเว็บบอร์ด
Drupal เป็น CMS ที่ออกแบบมาเพื่อเว็บชุมชนขนาดใหญ่เป็นเป้าหมายหลัก Drupal จึงมีรวมส่วนของเว็บบล็อกและเว็บบอร์ดมาให้ในตัวโดยไม่ต้องติดตั้งอะไรเพิ่ม เติม แค่ลง Drupal สมาชิกในเว็บไซต์ของคุณสามารถเขียนบล็อกส่วนตัว และสนทนาผ่านเว็บบอร์ดได้ทันที

RSS Feed ในตัว
ปัจจุบัน RSS หรือ Feed ได้รับความนิยมมาก ผู้อ่านสามารถสมัครสมาชิก RSS เพื่อติดตามข่าวสารอย่างสะดวกและอัตโนมัติ ความสามารถด้าน RSS ถูกรวมเข้ามาใน Drupal ไม่ว่าคุณจะสร้างเนื้อหาแบบใดในเว็บไซต์ก็ตาม Drupal จะสร้าง RSS Feed ให้คุณโดยอัตโนมัติ เป็นการอำนวยความสะดวกใหักับผู้เยี่ยมชมเว็บของคุ

lDigg this - อำนวยความสะดวกให้ผู้ใช้ส่งเรื่องบนเว็บของคุณไปยัง Digg และ social bookmark อื่นๆ
lAdSense - หารายได้เข้าเว็บ ผ่านโฆษณาของ Google AdSense ซึ่งติดตั้งผ่านหน้าเว็บได้สะดวก
lGoogle map - เชื่อมข้อมูลเว็บไซต์เข้ากับแผนที่ Google Maps
lUbercart - ระบบอีคอมเมิร์ซครบวงจร
lXML Sitemap- ส่งข้อมูลเว็บไซต์ไปยัง search engine อย่างอัตโนมัติ เพื่อเพิ่มอันดับในผลค้นหา
l

วันจันทร์ที่ 29 มีนาคม พ.ศ. 2553

ฝึกงานวันที่ 6 testing

unit testing -มีลักษณะเป็นประเภท white box เป็นหน่วยที่เล็กที่สุดของโปรแกรม อาจจะเป็นพวก class ย่อยๆ เมธอดย่อยๆ

integration testing - คือเอา unit แต่ละตัวมาต่อๆกัน แล้ว test เพื่อทดสอบ การทำงานในแบบต่างๆ

functional testing - คือนำ integrated component มารวมแล้วทดสอบตามรายการ functionality ขั้นนี้มักจะเป็น black box

system testing - อันนี้จะมี flow มากขึ้น คือทดสอบทั้งระบบ เพื่อทดสอบการทำงานโดยรวม

acceptance testing - อันนี้ถ้าทดสอบไม่ผ่านก็ไม่ต้องเอาเงินครับ คือทดสอบกับความพอใจของลูกค้านั่นเอง

วันศุกร์ที่ 26 มีนาคม พ.ศ. 2553

ฝึกงานวันที่ 5 MVC & เทคนิคการนำเสนอข้อมูล

วันนี้นะครับได้นำเสนอข้อมูลที่ไปค้นหามาทั้งอาทิตย์ ในหัวข้อ MVC ก็สรุปเนื้อหาได้ดังนี้ครับ















MVC ป็นหนึ่งในหลายๆ pattern ของ Architectural patterns โดยแยกออปเจคที่เก็บข้อมูล (model) ออปเจคที่แสดงข้อมูล (view) และออปเจคที่ติดต่อกับผู้ใช้ (controller) ออกจากกันอย่างชัดเจน เหมือนการสร้างโปรแกรมเป็นส่วนๆ
สามารถถอดออกหรือนำมาประกอบกันได้ ทำให้ง่ายสำหรับการเขียนโปรแกรม
ที่จำเป็นจะต้องแก้ไขบ่อยๆ สามารถแก้ไขเป็นส่วนๆได้เลย

M-odel เป็นส่วนที่เกี่ยวข้องกับข้อมูลต่างๆ เช่น ฐานข้อมูลต่าง หรือแหล่งข้อมูลต่างๆ ซึ่งตัว Model เองก็จะต้องมี Model Logic อยู่ด้วย ซึ่งก็หมายถึง เงื่อนไขการเข้าถึงหรือการเก็บข้อมูล จะเก็บอย่างไร ชนิดไหน ต้องผ่านขั้นตอนอย่างไรมาก่อน ซึ่งสรุปสั้นๆว่า Process นั่นเอง หน้าที่ของ Model ไม่มีอะไรไปมากกว่า “การเก็บข้อมูล” และ “การส่งข้อมูล” ส่วนเรื่องที่ว่าจะ "เก็บยังไง" และ "ส่งยังไง" อันนี้เป็นเรื่องของ Model Logic

V-iew คือ ส่วนของการแสดงผล หน้าที่ของ View ไม่มีไปมากไปกว่า “การแสดงผล” View มีลักษณะเช่นเดียวกับ GUIs ของ Application ต่างๆ ซึ่งภายใน View ก็ต้องมี View Logic เช่นเดียวกันกับ Model สำหรับ View Logic ก็คือข้อกำหนดของการแสดงผล ขนาดของหน้าต่าง, สไตล์ของปุ่ม, ตัวอักษรสีอะไร ฯลฯ แต่

C-ontroller ส่วนนี้เป็นส่วนที่เชื่อมการทำงานระหว่าง Model กับ View แต่ในการทำงานจริง มันคือ “User Logic หรือ Action Logicเพราะมันเป็นส่วนควบคุมการทำงานของ User ที่ทำต่อ Application ว่า User ทำอะไรได้บ้าง เช่น ปุ่มนี้กดได้, Slider นี้ปรับค่าได้, Option นี้เลือกได้ เป็นต้น จากนั้น Controller ก็จะทำหน้าที่เชื่อมโยงระหว่าง Model กับ View ตามคำสั่งที่กำหนดเอาไว้ ว่าต้องไปติดต่อกับ Model (ติดต่อกับ Model ยังไงขึ้นกับ Model Logic) แล้วเอามาแสดงผลใน View (แสดงผลยังไงก็ขึ้นกับ View Logic)

เพิ่มเติมด้วยวิธีการนำเสนอข้อมูลที่ดีนะครับจากที่ได้รับคอมเม้นมา
- การอธิบายที่มีเนื้อหาที่ค่อนข้างยาวให้เราทำความเข้าใจกับเนื้อหาให้เต็มที่แล้วอาศัยรูปถาพในการนำเสนอ
- ถ้าเนื้อหาที่จะใส่ลงไสล์ค่อนข้างยากให้แยกเพิ่มมาอีกสไลด์แต่เป็นรูปภาพแทนเพื่อง่ายในการสื่อความหมาย
- การนำเสนอไม่ควรใช้วิธีการอ่านสไลด์ แต่ให้ทำความเข้าใจแล้วอธิบายสิ่งที่เข้าใจออกมา
- ควรบอกด้วยว่าหัวข้อที่จะพูดถัดไปว่าจะเสนอเรื่องอะไร
- นำเสนอเหมือนกับการเล่าเรื่อง ดำเนินไปตามเนื้อเรื่องที่เราเข้าใจ แต่เนื้อหาถูกต้อง

วันพฤหัสบดีที่ 25 มีนาคม พ.ศ. 2553

ฝึกงานวันที่ 4 architectural patterns

สำหรับเนื้อหาที่ด้เรียนรู้วันนี้นะครับ ขอเขียนสรุปเป็นบทความเลยละกัน

architectural patterns คือรูปแบบ การออกแบบทางสถาปัตยกรรมคอมพิวเตอร์ ที่ใช้สำหรับแก้ไขปัญหาทางสถาปัตยกรรม หรือเป็นรูปแบบโครงสร้างที่ใช้สร้างแอพลิเคชั่นต่างๆ ซึ่งมีหลายประเภทด้วยกัน

ประกอบด้วยรูปแบบต่างๆดังนี้
1. layer ใช้กับสถาปัตยกรรมที่เป็น OOD จะแบ่งกลุ่มของโมดูลต่างๆ โดยจะมีที่แต่ละโมดูลจะสามารถเรียกใช้โมดูลอื่นๆได้
2.MVC (Model View Controler) เป็นรูปแบบที่จะแบ่งระบบออกเป็น 3 ส่วน คือ Model View และ Controler โดยแต่ละส่วนจะทำหน้าที่ต่างกัน
ในส่วนแรก Model จะเป็นส่วนที่ ทำหน้าที่เกี่ยวกับฐานข้อมูล และข้อมูลต่างๆ โดยที่จะถูกกำหนดการเข้าถึงข้อมูลโดยนักพัฒนา ระบบโดยการสร้าง subclass เพื่อช่วยในการจัดการกับข้อมูลให้ได้ง่ายขึ้น โดยส่วนนี้จะมีหน้าที่ตรวจสอบความสัมพันธ์ของข้อมูล
ความถูกต้อง
View เป็นส่วนที่จะแสดงผลออกทางเว็บ
Controler เป็นส่วนของของ process

*ขอเกริ่นนำไว้เพียงเท่านี้ เดี๋ยวพรุ่งนี้มีพรีเซนต์เรื่องนี้เดี๋ยวไม่มีอะไรเขียน

3.Multitier architecture (ใช้กับองค์กรณ์ธุรกิจเป็นส่วนใหญ่ ) เป็นโครงสร้างที่แบ่งออกเป็น 3 ชั้นคล้ายๆ กับ MVC มีฐานข้อมูลที่ ชั้น อื่นๆสามารถเรียกใช้ได้ ทำให้ลดความซ้ำซ้อนของข้อมูล ชั้นแรกคือ
Presentation เป็นชั้นที่อยู่สูงที่สุด ชั้นนี้จะทำหน้าที่เกี่ยวกับการนำเสนอข้อมูล หรือการรับข้อมูลเข้ามาเพื่อส่งต่อไปดำ เนินการในชั้นถัดไป
Application เป็นชั้นที่ แยกออกจากชั้นนำเสนอ มีหน้าที่ควบคุมการทำงานของโปรแกรม โดยการประมวลผลที่ละเอียด
Data ชั้นนี้จะประกอบด้วย Server database การจัดเก็บข้อมูลต่างๆ จะเรียกใช้ในชั้นนี้ โดยจะเก็บ้อมูลในลักษะ เป็นกลางให้ชั้น อื่นๆ เรียกใช้งานได้
4 Pipe and filter architecture โครงสร้างแบบท่อ ???
5 Peer-to-peer (P2P) เป็นเทคโนโลยีการสื่อสารข้อมูลบนเครือข่ายคอมพิวเตอร์แบบ client-client โดยที่ client แต่ละเครื่องมีข้อมูล เก็บอยู่ และสามารถจำลองตนเองเป็น server เพื่อเปิดให้ client เครื่องอื่นๆ สามารถเข้ามาโหลดข้อมูลจากเครื่องของตนเองได้โดย อาศัยพลังงานและ bandwidth ที่เครื่องตนเองมี ซึ่งจะแตกต่างกับการสื่อสารแบบ client-server ที่มี server เก็บข้อมูลไว้เพียงเครื่อง เดียว และเปิดให้ client เครื่องอื่นเข้ามาโหลดข้อมูล
6. Implicit invocation ???
7. Blackboard system ???
8. Service-oriented architecture เป็นสถาปัตยกรรมเชิงบริการ การพัฒนาระบบอาจจะเป็นอิสระต่อกัน อาจจะมีเทคโนโลยีที่ใช้ระบบ แตกต่างกันไป เช่น นเช่น Java, .NET, Oracle แนวคิดของระบบ SOA คือการจัดระบบ Silo-Oriented Architecture ใหม่ โดยการสร้างระบบไอทีให้เป็น 4 ชั้น (Layer)
Resource Layer ซึ่งจะเป็นชั้นของระบบโครงสร้างไอทีต่างๆ ในปัจจุบัน เช่นระบบฐานข้อมูล Oracleระบบโซลูชัน SAP หรือ PeopleSoft เป็นต้น
Service Layer ซึ่งเป็นชั้นของส่วนประกอบเซอร์วิสต่างๆ ที่สามารถนำมาใช้ใหม่ได้ โดยส่วนประกอบเซอร์วิสเหล่านี้จะพัฒนามาจากโมดูล (Module) ต่างๆ ที่รันบน Resource Layer เช่นโมดูลของฐานข้อมูล Oracle โมดูลของระบบโซลูชัน SAP หรือ PeopleSoft และโมดูลของโปรแกรมประยุกต์ที่อาจพัฒนาด้วย Java หรือ .NET เป็นต้น
Process Layer ซึ่งเป็นชั้นของกระบวนการทางธุรกิจ (Business Process) ที่พัฒนาขึ้นมาจากการส่วนประกอบเซอร์วิสต่างๆ
Access Layer ซึ่งเป็นชั้นของการเรียกใช้กระบวนการทางธุรกิจที่พัฒนาขึ้น โดยอาจผ่านทางเว็บไซต์ (Web Site) หรือโทรศัพท์ เคลื่อนที่ (Mobile Phone)

9. Naked objects ???


*เครื่องหมาย ??? หมายถึงเนื้อหาในเว็บมีค่อนข้างน้อยบางส่วนก็เป็นภาษาอังกฤษแปลไม่ค่อยออก

วันพุธที่ 24 มีนาคม พ.ศ. 2553

ฝึกงานวันที่ 3 ฟังสัมนาของไมโครซอฟท์ ที่แชงการีล่า

สรุปเนื้อหาวันนี้ ในช่วงเช้าจะเป้น preview มีทั้งหมด 3 เรื่อง เรื่องแรกคือ visio share point เป็น tool ที่ใช้สำหรับเขียน ไดอะแกรม มีความสามารถเพิ่มมาจากตัวเดิม สามารถดึงข้อมูลมาจากฐานข้อมูลได้ ซึ่งจะโยงกับหน้าเว็บสามารถแก้ไขตัวฐานข้อมุล โดยผ่านหน้าเว็บได้

เรื่องที่ 2 Sql server 2010 เรื่องนี้ไม่ได้ฟัง T T
เรื่องที่ 3 VS 2010 ได้เพิ่มลูกเล่นต่างๆ เข้าไปเยอะมาก เช่น view mouse คือการเลือกซูมเข้าออกดูโค๊ดได้ด้วยเม้าส์ สามารถดูได้ว่าโค๊ดที่เราเขียนมีฟังก์ชั่นอะไรบ้างที่กำลังเรียกใช้อยุ่ , มีหมุดสำหรับปักสำหรับการทำ Debug code เพื่อเวลาแก้ไขสามารถรู้ได้ว่าเราได้แก้ไขตรงส่วนไหนไปแล้วบ้าง


ในช่วงบ่ายได้เข้าฟังของส่วน VS 2010
ซึ่งมีเนื้อหาดังนี้

เรื่องแรก VB 10 พูดโดยคุณ Banpote Ryan กล่าวถึงวิธีการเขียนโค๊ดที่ทำได้สั้นลง การเขียนอาร์เรย์ที่เป็นลักษณะ Array literral คือเป็นการเขียนอาร์เรย์แบบสั้น เช่น

int a(4);
a(0)=1;
a(1)=2; ก็มาเป็น int a(4)={1,2,3,4};
a(2)=3;
a(3)=4;

มีฟังก์ชั่นเสริมในการตัดบรรทัด สามารถสร้าง Shotcut ของแต่ละคำสั่งเพื่อใช้ในการดึงข้อมูลได้
มันสามารถสร้างคลาสที่กำลังทำงานอยู่ ได้เลย โดยที่เราไม่ต้อง ไปสร้างลาสเอง และยังสามารถสร้าง interface ให้เราได้อีกด้วย มีตัวคำสั่งที่ช่วยในการปรับ perfomance ทำให้อ่านโค๊ดได้เร็วขึ้น

เรื่องที่ 2 C# 4 โดยคุณ สุเทพ แสงวิโรจนพัฒน์ C# 4 tool ตัวนี้นั้น จะเป็นลักษณะ Dynamic การทำงานที่เพิ่มมาจะมีลักษณะ คล้ายๆ กับ VB 10 มีสิ่งเพิ่มขึ้นมาคือ วิธีการส่งพารามิเตอร์ ที่สามารถเพิ่มชื่อ ของพารามิเตอร์ เข้าไปด้วยได้ เช่น
a.Calculate(1,2,3) เป็น a.Calculate(A 1,B 2,C 3) เป้นต้น การเรียกใช้คำสั่ง Dynamic เป็นการเรียกใช้ Object ที่ไม่มีอยู่ในคลาส แต่อาจอยู่ในคลาสอื่น ๆ คอมไพล์เล่อร์ ช่วยเราเขียนโค๊ด ทำให้ง่ายขึ้น

เรื่องที่ 3 ASP .net 4
มี EF ที่ช่วยทำงานเกี่ยวกับฐานข้อมูล โดยจะทำฐานข้อมูลให้อยู่ในรูป Object หลังจากนี้ฟังไม่ค่อยรู้เรื่องแล้ว เพราะเค้าใช้การเขียนโค๊ด แต่ผมมองไม่เห็น บอร์ด เพราะไม่ได้ใส่แว่นมาด้วย

เรื่องที่ 4 Silverlight 4 มีคุณสมบัติใหม่มากมาย สามารถเชื่อมฐานข้อมูลได้ง่ายขึ้น เชื่อมต่อเว็บแคมได้
จัดการกับข้อมมูลได้โดยเข้ามาที่ Data grid ,สามารถส่งข้อมูลเข้า Excel แต่ต้องทำให้เป็น Window application ก่อน

เรื่องที่ 5 UML Features ใน VS 2010 แปลงโค๊ดเป็น Sequen diagram ได้
มีไดอะแกรมให้ใช้ทั้งหมด 5 ตัว คือ usecase , Sequen,activity อีก 2 อันจำจดมาอ่านไม่รู้เรื่อง

ทั้งหมดนี้คือสรุปเนื้อหาเท่าที่หนุ่มรู้เรื่องครับผม ส่วนใหญ่จะเป็นการแนะนำtool ใหม่ๆ กับเทคนิคการใช้ tool ใหม่ ๆ มากกว่า

วันอังคารที่ 23 มีนาคม พ.ศ. 2553

ฝึกงานวันที่ 2 HTML,XML,XHTML และ CSS คืออะไร


HTML (Hyper Text Markup Language)

HTML ย่อมาจากคำว่า Hyper Text Markup Language คือภาษาคอมพิวเตอร์ที่ใช้ในการแสดงผลของเอกสารบน website หรือที่เราเรียกกันว่าเว็บเพจ ถูกพัฒนาและกำหนดมาตรฐานโดยองค์กร World Wide Web Consortium (W3C) และจากการพัฒนาทางด้าน Software ของ Microsoft ทำให้ภาษา HTML เป็นอีกภาษาหนึ่งที่ใช้เขียนโปรแกรมได้ หรือที่เรียกว่า HTML Application 
       HTML
 เป็นภาษาประเภท Markup   สำหรับการการสร้างเว็บเพจ โดยใช้ภาษา HTML สามารถทำโดยใช้โปรแกรม Text Editor ต่างๆ เช่น Notepad, Editplus หรือจะอาศัยโปรแกรมที่เป็นเครื่องมือช่วยสร้างเว็บเพจ เช่น Microsoft FrontPage, Dream Weaver ซึ่งอํานวยความสะดวกในการสร้างหน้า HTML ส่วนการเรียกใช้งานหรือทดสอบการทำงานของเอกสาร HTML จะใช้โปรแกรม web browser ในการแสดงผล

XML (eXtensible Markup Language)

ปัจจุบันเทคโนโลยีมีแพลตฟอร์มมากมาย หลากหลายภาษา แต่ละภาษาก็จะคุยกันด้วยสำนวนของมันเอง ในงานที่ต้องใช้แพลตฟอร์มหลากหลาย จะมีปัญหาก็คือมันจะทำงานร่วมกันอย่างไร? จะส่งข้อมูลอย่างไร ? เช่นถ้าจะเขียน ASP.net ให้คุยกับ JSP(Java) หรือภาษาอื่น ๆ ต้องทำอย่างไร ? XML จึงเกิดขึ้นมาเพื่อแก้ปัญหานี้ มันจะทำหน้าที่เป็นตัวกลางเก็บข้อมูล โดยที่ ASP.net , JSP(Java) หรือภาษาอื่นๆ ต้องสามารถเข้าใจภาษา XML เป็นมาตรฐานอยู่แล้ว 
ขอยกตัวอย่างให้เห็นชัด ๆ ASP.net ต้องการแลกเปลี่ยนข้อมูลกับ JSP เราก็เขียน ASP.net ให้สร้างไฟล์ XML พร้อมทั้งใส่โครงสร้างและข้อมูลตามที่เราต้องการ จากนั้นเราก็เขียน JSP ให้มาอ่านไฟล์ XML นั้นๆแค่นี้ ASP.net ก็แลกเปลี่ยนข้อมูลกับ JSP ได้แล้ว

       XML คืออะไร ? : เริ่มกันที่ว่า XML ย่อมาจาก Extensible Markup Language เป็นภาษาหนึ่งที่ใช้ในการแสดงผลข้อมูล ถ้าเปรียบเทียบกับภาษา HTML จะแตกต่างกันที่ HTML ถูกออกแบบมาเพื่อการแสดงผลอย่างเดียวเท่านั้น เช่นให้แสดงผลตัวเล็ก ตัวหนา ตัวเอียง เหมือนที่คุณเคยเห็นในเวบเพจทั้วไป แต่ภาษา XML นั้นถูกออกแบบมาเพื่อเก็บข้อมูล โดยทั้งข้อมูลและโครงสร้างของข้อมูลนั้นๆไว้ด้วยกัน ส่วนการแสดงผลก็จะใช้ภาษาเฉพาะซึ่งก็คือ XSL (Extensible Stylesheet Language) 


    โครงสร้างของภาษา XML เป็นอย่างไร ?
ภาษา XML มีโครงสร้างที่ประกอบด้วยแท็ก(Tag)เปิด และแท็กปิด เช่นเดียวกับภาษา HTML แต่ภาษา XML คุณสามารถสร้างแท็กรวมทั้งกำหนดโครงสร้างของข้อมูลได้เอง ซึ่งความสามารถตรงนี้ตัวภาษา HTML ทำไม่ได้เพราะภาษา HTML ถูกกำ

หนดแท็กตายตัวโดย W3C


XHTML (eXtensible Hyper Text Markup Language)

เป็นภาษาที่รวมเอาทั้ง HTML และ XML ไว้ด้วยกัน ประโยชน์ของมันคือการสร้างเว็บเพื่อการส่งข้อมูลทั่ว ๆ ไปอย่างหนึ่ง เพิ่มขีดความสามารถในการสร้างแท็กใหม่ ๆ ได้เองอย่างหนึ่ง (โดยที่เรากำหนดได้ด้วยว่าจะให้แท็กเหล่านั้นแสดงผลอย่างไร) รองรับภาษาอื่น ๆ ที่ใช้ XML เป็นฐาน เช่น (SVG, MathML, chemML, SMIL) อีกอย่างหนึ่งและสุดท้ายคือ รองรับเทคโนโลยีในอนาคตซึ่งจะมี XML เป็นบทบาทหลัก เนื่องจากว่าในปัจจุบันนี้ มีความพยายามที่จะเข้าถึงเว็บด้วยอุปกรณ์ที่ไม่ใช่คอมพิวเตอร์มากขึ้นเช่น โทรศัพท์มือถือ โปรแกรมเสียงสังเคราะห์ ทีวี เบรลล์ หรืออุปกรณ์พกพาอื่น ๆ แต่เนื่องจากอุปกรณ์เหล่านี้ มีขนาดเล็กและอาจมีหน่วยความจำไม่มาก จึงอาจไม่สามารถประมวลผล HTMLแบบทั่ว ๆ ไปได้เพราะไม่มีความสามารถที่จะแก้ข้อผิดพลาดได้หากมีการเขียนโค้ดไม่ถูกต้อง XHTML จึงเป็นทางเลือกที่ดีที่สุด เนื่องจากว่าเอกสาร XHTML นั้นจะต้องมีลักษณะที่เรียกว่า well-formed ไม่มีข้อผิดพลาด มีการเปิดปิดแท็กอย่างถูกต้อง ฯลฯ จึงทำให้สามารถแสดงผลเอกสารนี้ได้อย่างง่ายดาย หากเอกสารไม่ถูกต้อง ก็อาจจะไม่แสดงผลไปเลย เหมือนกับเอกสาร XML

CSS(Cascading Style Sheet)  


     CSS ย่อมาจาก Cascading Style Sheet  มักเรียกโดยย่อว่า "สไตล์ชีต" คือภาษาที่ใช้เป็นส่วนของการจัดรูปแบบการแสดงผลเอกสาร  HTML โดยที่ CSS กำหนดกฏเกณฑ์ในการระบุรูปแบบ (หรือ "Style") ของเนื้อหาในเอกสาร อันได้แก่ สีของข้อความ สีพื้นหลัง ประเภทตัวอักษร และการจัดวางข้อความ ซึ่งการกำหนดรูปแบบ หรือ Style นี้ใช้หลักการของการแยกเนื้อหาเอกสาร HTML ออกจากคำสั่งที่ใช้ในการจัดรูปแบบการแสดงผล กำหนดให้รูปแบบของการแสดงผลเอกสาร ไม่ขึ้นอยู่กับเนื้อหาของเอกสาร เพื่อให้ง่ายต่อการจัดรูปแบบการแสดงผลลัพธ์ของเอกสาร HTML โดยเฉพาะในกรณีที่มีการเปลี่ยนแปลงเนื้อหาเอกสารบ่อยครั้ง หรือต้องการควบคุมให้รูปแบบการแสดงผลเอกสาร HTML มีลักษณะของความสม่ำเสมอทั่วกันทุกหน้าเอกสารภายในเว็บไซต์เดียวกัน โดยกฏเกณฑ์ในการกำหนดรูปแบบ (Style) เอกสาร HTML ถูกเพิ่มเข้ามาครั้งแรกใน HTML 4.0  เมื่อปีพ.ศ. 2539 ในรูปแบบของ CSS level 1 Recommendations ที่กำหนดโดย องค์กร World Wide Web Consortium หรือ W3C
     ประโยชน์ของ CSS
1.CSS มีคุณสมบัติมากกว่า tag ของ html เช่น การกำหนดกรอบให้ข้อความ รวมทั้งสี รูปแบบของข้อความที่กล่าวมาแล้ว
2.CSS นั้นกำหนดที่ต้นของไฟล์ html หรือตำแหน่งอื่น ๆ ก็ได้ และสามารถมีผล กับเอกสารทั้งหมด หมายถึงกำหนด ครั้งเดียวจุดเดียวก็มีผลกับการแสดงผลทั้งหมด ทำให้เวลาแก้ไขหรือปรับปรุงทำได้สะดวก ไม่ต้องไล่ตามแก้ tag ต่างๆ ทั่วทั้งเอกสาร
3.CSS สามารถกำหนดแยกไว้ต่างหากจาก ไฟล์เอกสาร html และสามารถนำมาใช้ร่วม กับเอกสารหลายไฟล์ได้ การแก้ไขก็แก้เพียง จุดเดียวก็มีผลกับเอกสารทั้งหมด
     CSS กับ HTML / XHTML  นั้นทำหน้าที่คนละอย่างกัน โดย HTML / XHTML จะทำหน้าที่ในการวางโครงร่างเอกสารอย่างเป็นรูปแบบ  ถูกต้อง เข้าใจง่าย  ไม่เกี่ยวข้องกับการแสดงผล  ส่วน CSS จะทำหน้าที่ในการตกแต่งเอกสารให้สวยงาม เรียกได้ว่า HTML /XHTML คือส่วน coding ส่วน  CSS คือส่วน desig


สรุปโดย NoOm

ผมขอเรียบเรียงภาษาคนให้เป็นภาษาคนอีกรอบนะครับเพื่อความเข้าใจของผมเอง 
  1. HTML เป็นภาษาที่ใช้สำหรับนำเอกสารมาโชว์ให้คนอื่นดูโดยแสดงผลผ่านทางเว็บเบราว์เซอร์
  2. XML เป็นภาษาที่เขียนเพื่อให้ภาษาอื่นคุยกันได้ (ล่าม) เนื่องจากมีแพลตฟอร์มที่มันหลากหลายจนเกินไปการเขียนจึงต้องถูกต้องที่สุด
  3. XHTML คือเอา HTML กับ XML มารวมกันเพื่อให้ ภาษา HTML นั้นไปแสดงผลได้ในทุกแพลตฟอร์ม
  4. CSS คือตัวควบคุมการแสดงผลในเบราว์เซอร์ ของภาษา HTML และ  XHTML




ข้อมูลอ้างอิง/แหล่งที่มา
http://www.mindphp.com
http://www.nextproject.net/contents/default.aspx?00048