แบไต๋ iSTEE มีดีอะไร ?
iSTEE มีดีอะไร ? เราเชื่อว่านี่คือคำถาม จากหลายท่านที่ได้เข้ามาเยี่ยมชมเวบไซต์ของเรา
แน่นอนครับ การเปิดตัวกับสาธารณะแบบนี้ว่าเราคือ Middleware หรือ เฟรมเวิร์ก ย่อมมีความเสี่ยงต่อการถูกท้าทายจากบรรดาเซียนโปรแกรมเมอร์ทั้งหลาย รวมทั้งจะสร้างความน่าเบื่อให้กับผู้เยี่ยมชมเวบไซต์นี้ ว่าเมื่อไหร่จึงจะมีแอพพลิเคชั่นดีๆ ออกมาให้ได้ชมกันเสียที
…..
วันนี้เราจะนำท่านมาชมในลักษณะการ …แบไต๋ของ iSTEE … กันแบบเห็น ๆ แต่จะเป็นการเผยแพร่ในระดับของการหลักการคิดก่อน ว่าเบื้องหลังการพัฒนานั้นมีลำดับขั้นตอนอย่างไร
….
กล่าวคือ หลักคิดง่ายๆ ในการพัฒนา iSTEE ซึ่งเป็นแกนของระบบ Middleware ของเรานั้น ยึดหลักธรรมชาติแห่งการเกิดขึ้น ตั้งอยู่ และจำเป็นต้องดับไป และกระทั่งการบรรลุนิพพาน และรวมกับหลักการ อริยสัจ 4 คือ ทุกข์ สมุทัย นิโรธ มรรค หรือ ทุกข์ หรือปัญหา สาเหตุ วิธีการ
….
ซึ่งในทางเทคนิคการพัฒนาซอฟท์แวร์ในระดับสากลก็ได้ใช้หลักคล้ายๆ กัน คืือ การประกอบด้วยวัตถุ การมีกระบวนการ การมีภาระงาน และ การมีเหตุการณ์ กล่าวคือ มีความเป็นเหตุเป็นผลกันว่า จะต้องมีตัวการ ตัวกรรม (Entity) ตัวกริยาหรือเหตุการณ์ (Event) และกระทำอย่างเป็นกระบวนการ (System) เพื่อให้เกิดผลบางประการตามภาระกิจ (Task) ครั้นเมื่อเกิดขึ้นครบองค์ประกอบแล้ว หรือพบว่าไม่มีทางที่ภาระกิจนั้น ๆ จะสำเร็จตามเป้าหมายแล้ว ภาระของเหตุการณ์ ระบบ และองค์ประกอบการเกิดกรรมนั้น ก็ต้องถึงคราต้องสลายไปเพราะไม่มีสิ่งใดจะอยู่ยั้งยืนยง
…
ในทางเทคโนโลยีคอมพิวเตอร์ก็เช่นกัน การที่ระบบจะทำงานได้ จะเริ่มตั้งแต่จะต้องสนใจว่า สิ่งนั้นที่ต้องการพัฒนาเพื่อไปตอบโจทย์แก้ไขปัญหานั้นนั้น คือ กระบวนการอะไร ต้องการอินพุตอะไรจากผู้ใช้งาน หรือภายใต้ปัจจัยสิ่งแวดล้อมต่าง ๆ หรือภาระกิจนั้นจะต้องเกิดขึ้นเมื่อไหร่ และเมื่อสถานการณ์พร้อม ปัจจัยพร้อมแล้ว สิ่งนั้นจะต้องเป็นไปตามกระบวนการอย่างไร
…
ในระหว่างกระบวนการ ยังอาจจะมีความจำเป็นในการเรียกหาเครื่องมือ ตัวการ ตัวกรรม หรือต้องการเหตุการณ์ปลีกย่อยรอง ๆ ลงไป แบบนี้จึงจะเรียกว่าเป็นการเรียกใช้ หรือ use สิ่งต่าง ๆ ที่เคยเกิดขึ้น ที่ได้เตรียม สร้างขึ้น ไว้ก่อนหน้านั้นแล้ว ราวกับไว้ได้หยั่งรู้ว่าตลอดกระบวนการนั้นจะต้องการสิ่งใด และสิ่งนี้ได้ถูกสรา้งและเกิดขึ้นโดยอัตโนมัติแล้วภายในกรอบของ iSTEE
…
ผู้สร้าง _iSTEE ได้ออกแบบ iSTEE ให้มีความเก่งกาจในการทำภาระกิจ ตอบโจทย์กระบวนการด้านต่าง ๆ ที่พึงมีในธุรกิจและหน่วยงานบริการของราชการ จึงได้มีการสร้าง วัตถุ อุปกรณ์ที่มีความจำเป็นต้องถูกใช้งาน ไว้อย่างมากมาย ดังที่จะได้อธิบายด้วยแผนภาพโครงสร้างของวัตถุ class ต่าง ๆ และในการพัฒนางานแอพพลิเคชั่นจริง ๆ จะยังคงสามารถเรียกใช้วัตถุของเครื่องมือ Delphi (หรืออย่างอื่น ในโอกาสต่อไป)
…
และนี่คือ การพัฒนาซอฟท์แวร์ในระดับเครื่องมือ ที่ย่อมจะมีความล้ำลึกไปกว่าการพัฒนาเพียงแค่ โซลูชั่นใด ๆ เพียงเรื่องเดียว แต่มันคือ เครื่องมือ เพื่อรองรับการพัฒนาโซลูชั่นได้อีกนับแสนนับล้านชิ้น
…
เป็นที่น่าสนใจว่า iSTEE มีขนาดของไฟล์องค์ประกอบรวมกันแล้วทั้งหมดเป็นกี่ GB หรือเป็นสัดส่วนกี่ เปอร์เซนต์ของ Raid Studio และเป็นที่อัศจรรย์ใจเมื่อพบว่า iSTEE และ Samong Framework ที่ถูกพัฒนาขึ้นมานั้น มีขนาดรวมกันไม่น้อยกว่า 4 GB หรือคิดเป็น 30 % ของส่วนประกอบของ Delphi ทั้งหมดที่ไฟล์แต่ละส่วนนั้นเป็นไฟล์รหัสโปรแกรมระดับคุณภาพล้วน ๆ และการพัฒนารหัสโปรแกรมได้ขนาดนี้นั้นจำเป็นจะต้องใช้จินตนาการขั้นสูงประกอบกับความพยายามเป็นอย่างมาก และหากไม่มีธรรมขั้นสูงจริง ๆ ผู้พัฒนาคงจะพ่ายแพ้ไปเมื่อตั้งแต่ 15 ปีก่อน
…
และถึงเวลาแล้วที่ iSTEE จะได้รับการเปิดเผยและถ่ายทอดให้กับ เจได ผู้มีธรรม ให้มีความรู้ และเข้าถึงพระธรรมไปพร้อมกับการพัฒนาแอพพลิเคชั่น และเหล่านี้คือ สิ่งมหัศจรรย์ แห่งการพัฒนาซอฟท์แวร์ ที่ไม่สามารถจะหาชมได้ที่ใด
..
ส่วนถัดไปของบทความนี้ คือ คำอธิบายความของผู้พัฒนา iSTEE ที่ได้อธิบายความต่อเจไดท่านหนึ่ง ที่ผู้อ่าน อ่านแล้วอาจจะปวดเศียรเวียนเกล้า แต่โปรดได้อ่านซ้ำ ๆ แล้วจะค้นพบว่า การพัฒนาเครื่องมือ iSTEE นี้ เป็นการพัฒนาแบบสูงสุดคืนสู่สามัญจริง ๆ
======================================
จุดเริ่มต้นของการพัฒนา หรือทางเข้าของระบบ ……………
….
…ทางเข้าของทั้งหมด เริ่มต้นที่ยูนิต Stee.Nature.Systems การเขียนโปรแกรมแล้วค้นพบด้วยตนเอง! …จึงเป็นการค้นพบแบบที่สุดแล้ว
เราใช้ iSTEE และ Samong และตัวเราเองเป็นเครื่องมือ กลยุทธ์ที่แสนธรรมดา และมีประสิทธิภาพมาก ช่วยให้เข้าถึงจินตนการและพลังชีวิตในตัวได้อย่างมีประสิทธิภาพ ไม่ต้องไปค้นหาที่ไหน ดังแผนภาพนี้
เมื่อลงลึกในชั้นที่ 3 องค์ประกอบของภายในยูนิต Class คือตัวสำคัญ…มาดูตัวแรกคือ TSteeApplication, TMainStee
ให้มองไปปที่เรื่อง “สติ” หรือการตื่นรู้ เป็น ระบบ (System) – ผมเลยใช้ว่า TSteeApplication โดยมาตรฐานทั่วไปของ Delphi ถือว่าอะไรเป็นคลาสจะใช้ T ตัวใหญ่นำหน้าชื่อครับ
…
ตัว TSteeApplication นี่ได้ค้นพบและประสพความสำเร็จมาในปีที่แล้วนี่เอง…ตอนแรกเรียกมันว่า TMainStee และตั้งใจว่าจะสิ้นสุดการพัฒนา iSTEE ณ จุดนั้นแล้ว แต่ที่ไหนได้ ความจริงของธรรมยังไม่เพียงพอ มันยังมีอีกชั้นหนึ่ง คือ TSteeApplication ครอบ TMainStee โดย TMainStee อยู่ภายใน
ตรง Variables คือ ตัวแปรที่เก็บตำแหน่งวัตถุ หรือที่เรียกว่า Instance อยู่ 2 ตัวคือ FMainStee และ FSteeApplication …. คนดูแลต้นกำเนิดจะเข้าถึงตัวแปรภายในนี้ได้ คนอื่นๆ เรียกใช้ได้ผ่าน ฟังก์ชั่นชือ SteeApplication กับ ฟังก์ชั่นชื่อ MainStee
…
ใน Delphi – Procedure , function – เรียกโดยทั่วไปว่า Method
…
วัตถุตัวแรกในโปรแกรมของ Delphi จะถูกสร้างอัตโนมัติคือ Application เอาคลาส TApplication มาสร้างเป็นวัตถุและเก็บตำแหน่งไว้ในตัวแปรชื่อ Application การเรียกใช้ Application.xxxx คือการใช้งานวัตถุ ผ่าน Method ที่อยู่หลังจุด สิ่งที่อยู่หลังจุด (xxx) มี 2 ประเภทใหญ่คือ Property กับ Method Property เช่น สี น้ำหนัก ส่วนสูง ส่วน Value ของคุณสมบัติ สี คือ ขาว ดำ แดง ม่วง ส่วน Value ของคุณสมบัติ น้ำหนัก คือ 100, 80 ,50 เป็นต้น
…
หลังจาก Application ถูกสร้างขึ้น เราได้กำหนดให้มีการสร้างวัตถุ SteeApplication ขึ้นมาโดยอัตโนมัติเช่นกัน การรู้สึกตัวของเรา หรือสติ มีอยู่ตลอดเวลา ไม่งั้นคนเราจะไม่สามารถดำเนินชีวิตไปตามปกติได้ การตื่นรู้ ในแต่ละขณะแท้จริงแล้วเปรียบเทียบได้กับ แต่ละระบบ…ที่มันถูก Activate ขึ้นมา หรือเป็นการใช้สติพิจารณา เรื่องที่สนใจ แล้วมันก็ผ่านไป เหมือนตัวชี้ของ ซีพียู แล้ววนกลับมาใหม่ ถ้า Stack เยอะ กว่าจะกลับมาก็นานหน่อย
…
SteeApplication ถูกทำลายได้ แต่มันจะเกิดใหม่ขึ้นเองได้อัตโนมัติตลอดเวลา MainStee ถูกำทำลายได้ แต่มันจะเกิดใหม่ขึ้นเองได้อัตโนมัติตลอดเวลา ถ้าเราใช้แบบจำลองที่นิยม คือ จิตสำนึก และ จิตใต้สำนึก ตัว SteeApplication กับ MainStee คึอจิตใต้สำนึก มันมีกลไกอัตโนมัติภายในของมันที่ทำงานอยู่เพื่อให้ทุกอย่างเดินหน้าต่อไปได้ตามวิถีพื้นฐาน
…
ตัวระบบที่เราพัฒนาขึ้นมา หรือแอพต่างๆ คือ จิตสำนึก…เดี๋ยวมา เดี๋ยวไป
สิ่งที่ผมกำลังอธิบายนี้…มันทำงานอัตโนมัติไปหมดแล้ว…แต่ท่านนักพัฒนา ต้องรู้เป็นพื่นฐานก่อนว่า กลไกการทำงานมันทำอย่างไร ถึงจะควบคุมมันได้อยู่หมัด
…
ใน Routine… IsClassOf ….คือ ถามว่ามันคือคลาสอะไร? ไม่ใช่ถามว่ามันคืออะไร? ใช้ประโยชน์อย่างไร?…..Instance หรือ ตัวแปรที่เก็บวัตถุ…
var
A : TObject
B: TjgSystem;
begin
B:=TjgSystem.Create(Nil);
A:=B; //ถามว่า A เป็น TjgSystem หรือไม่
if IsClassOf(A.ClassType,’TjgSystem’) then msgbox(‘A is a System’);
if A is TjgSystem then msgbox(‘A is a System’);
end;
…
การใช้ประโยชน์ของ SteeApplication คืออะไร?….เอาไว้ตั้งค่าเริ่มต้นต่างๆ กำหนดคุณสมบัติที่ต้องการ แล้ว StartMainStee หรือ StopMainStee เพื่อเริ่มทำงานและยุติการทำงาน หรือเริ่มมีลมหายใจ หรือหมดลมหายใจ
คือที่มาของ MainStee และ SteeApplication
…
MainStee และ SteeApplication… คือวัตถุ 2 ตัวหลักที่ทำงานตลอดเวลา
…
ในขณะที่เราได้ยินเสียง ตาเราก็เห็นตัวอักษร มือก็สัมผัสแป้นพิมพ์ ท่านรับรู้ 3 เรื่องได้พร้อมกันใช่ไหม นี่ึคือ Session ที่ทำงานอยู่ใน MainStee …. ใน MainStee มีได้หลาย Session ถ้าเป็น Server Application …แต่ละ Connection ที่ติดต่อเข้ามาจะเกิด Session ขึ้นมาเพื่อเป็น ห้องควบคุมสื่อสาร..ประจำ Connection นั้น
…
กลไกพื้นฐานของ Server คือตรงนี้ครับ Session จะกี่ Session ก็อยู่ที่หน้างานล่ะ ว่าจะปรับ Load Balance อย่างไร
เขียน Server Application ก็แค่นี้เองครับ มีตรงนี้แอพก็เป็น Server ได้แล้ว..555
พวกคำสั่ง Register ทั้งหลาย ใช้ทำอะไร…โกดังคลาสครับ ปกติมาตรฐานมีโกดังเดียว ผมเขียนโกดังเพิ่มติม แยกเป็นหลายโกดัง เพื่อทำให้การค้นหาคลาส เอามาปั็มได้เร็วมากขึ้น
…
แค่นี้ท่านอ่านก็แยกหมวดได้แล้วว่า จะ Register อะไรไปวางไว้ในโกดังไหน ที่สำคัญท่านเขียนของใส่โกดังมั่วไม่ได้แน่ เพราะผมกำหนดชนิดคลาสที่ท่านจะลงทะเบียนไว้แล้วสังเกตุดู หลักสูตรนี้ของ เจได..ท่าน
…
ตรงนี้ก็ลดต้นทุนบำรุงรักษาระบบได้ไปเยอะแล้ว เมื่อระบบขยายตัว…แต่อาจจะมองข้ามไปถ้าเขียนโปรแกรมหรือระบบขนาดเล็กๆ…
แต่หากเราเชื่อว่า โปรแกรมต้องเติบโตเหมือนต้นไม้ มุ่งไปที่เอไอ..โครงสร้างแบบนี้เครื่องมือแบบนี้คือสิ่งจำเป็นยิ่งยวด
…
กว่าจะเข้าใจก็หลายปีอยู่…บางคนบอกว่าใช้ของมาตรฐานเลยสิ… พอระบบมันโตถีงระดับหนึ่ง…ท่านหมดโอกาสแตกโกดังแบบนี้เลย… เพราะยูนิตต่างๆ มันพันพัว ก้นมั่วไปหมดแล้ว…แนวคิดเรื่องนี้ไม่เกี่ยวกับภาษา..พิสูจน์กันชัดๆ
การกำหนดให้โปรแกรมเมอร์ลงทะเบียนผ่าน ศูนย์ลงทะเบียนแบบนี้ ตัวควบคุมทะเบียนคือ MainStee เราสามารถจะคัดกรองสายพันธุ์ที่เราไม่ต้องการออกได้ในอนาคต เพราะเราเขียนคำสั่งเอง ฝังเป็นระบบคัดกรองหรือเป็น Firewall สายพันธุ์ที่ตรวจสอบพบว่ามีปัญหาออกไปโดยระบบอัตโนมัติ
..
Nirvana หรือ นิพพาน คือ คำสั่งใช้ทำลายวัตถุ และคืนหน่วยความจำให้ระบบ…แนะนำใน iStee ใช้ตัวนี้เพื่อซ่อนการทำลายวัตถุและคืนค่าในหน่วยความจำด้วยวิธีที่แตกต่างกันในแต่ละแพลตฟอร์ม…นี่คืออีกเรื่องหนึ่งที่พิสูจน์บทบาทของ Middleware
…
พอเห็นแนวทางนะท่าน…ไม่ยากเลย…ระดับโลกเขาก็ทำกันแบบนี้ …แค่รายละเอียดต่างกันแค่นั้น API ชุดนี้…ผ่านการวิวัฒนาการมาค่อนข้างสมบูรณ์แล้ว…เหลือแค่บน iOS อาจต้องปรับบ้าง แต่ก็ไม่น่าจะมีผลกระทบอะไรมากมาย…
…
ตัวจดลิขสิทธิ์แท้จริง คือ API ชุดนี้แหละครับ…OS แต่ละตัวก็มีแบบนี้ แต่มั่นใจว่าความแตกต่างเกิน 40% แน่นอน ถือว่าเป็นของใหม่ไม่ได้เลียนแบบใครครับ
…
...เราพัฒนาเครื่องมือเอง…ให้มีศักยภาพในการผลิตซอฟต์แวร์แบบนี้ กับยอมสิโรราบ…ใช้ของแบบที่ชาวบ้านเขาใช้ตามพี่ใหญ่… ผลลัพธ์ก็ดีกันคนละอย่าง…
===========================================
นอกจากนี้ เราใคร่นำเอา บางส่วนบางตอนของระบบ Help ที่ใช้เป็นคำอธิบายรายละเอียดของ iSTEE ที่มีความจำเป็นสำหรับนักพัฒนาที่จะได้เข้ามามีส่วนร่วมในการพัฒนาแอพพลิเคชั่นด้วนเครื่องมือนี้
รูปหน้าจอที่ 1 แสดงให้เห็นถึงโครงสร้างของบรรดาไฟล์องค์ประกอบ ไฟล์ class ต่าง ๆ ที่ได้ถูกพัฒนาขึ้นเป็ิ้นส่วนของระบบ
หน้าจอนี้แสดงถือ ลำดับชั้นของวัตถุ ในโครงสร้าง ในแต่ละสายพันธุ์
หน้าจอนี้แสดงถึง ความพยายามในการอธิบายชิ้นส่วนที่ถูกพัฒนาขึ้นมาอย่างละเอียดยิบ
ผมในฐานะผู้ร่วมทีมพัฒนา หรือผู้ที่จะพยายามมาบอกเล่าในภาษาคนที่เข้าใจกันได้ทั่วไป ที่ได้พยายามศึกษาระบบไปพร้อมๆ กับท่านผู้อ่าน จึงจะได้ให้ความมั่นใจกับท่านผู้อ่าน และผู้ติดตามข่าวสารของเราว่า นี่ คือ วิวัฒน์กรรม หรือ นวัตกรรมที่มีการพัฒนาต่อยอด เป็นผลงานชิ้นเอกจากคนไทยเพื่อคนไทย
..
ท่านจะเห็นได้ว่า กรอบแนวคิดการพัฒนาไปตลอดจนเทคนิคการพัฒนานั้น ไม่ได้มีความจำเป็นจะต้องผูกติดอยู่กับ โปรแกรมภาษาใด ภาษาหนึ่งเท่านั้น แต่สำคัญอยู่ที่การจะเรียนรู้อย่างลึกซึ้งและได้สั่งสมผลงานมาอย่างยาวนานแค่ไหน
..
การพัฒนาของเราจึงไม่ได้เป็นการพัฒนาแบบปักชำ แต่เป็นการพัฒนา แบบหยั่งรากแก้วลึก ๆ เพื่อให้วงการพัฒนาแอพพลิเคชั่นของเมืองไทยมีความยั่งยืน แข่งขันกับนานาประเทศได้
….
พบกับเราในการแบไต๋ iSTEE ในตอนต่อไป ที่จะลองนำเอา โค้ด ของ class บาง class มาให้ชมกัน และไม่ต้องสงสัยครับ เราจะจัดให้มีการฝึกอบรมการใช้ iSTEE อย่างละเอียดลึกซึ้งให้กับนักพัฒนาระดับ เจได และนักพัฒนาระดับเจไดขั้นสุดยอดผู้เปี่ยมด้วยเมตตาธรรมจะได้รับการถ่ายมทอดสุดยอดวิชา iSTEE แบบถึงแก่นแท้ และนั่นคือฝันสุดยอดของนักพัฒนาผู้หนึ่งที่จะได้นอนตายตาหลับและได้ชื่อว่า ได้สร้างสิ่งนี้ไว้ให้กับโลกสมกับคำปวารณาตน ก่อนการตัดสินใจเดินทางไกล เผยแพร่ธรรมผ่านเทคโนโลยีการพัฒนาโปรแกรม
1522total visits,4visits today