วันเสาร์ที่ 20 มิถุนายน พ.ศ. 2558

Fix by Absolute part 1

>> เรื่องนี้สมชายต้องจัดเต็ม เลิกลูกทุ่งมุ่งสู่อนาคต part 1

>> ได้ขอความรู้จากพี่ซีเนียร์เกี่ยวกับการแสดง popup และการตัดตัวอักษรเมื่อขนาดของ container ไม่แน่นอนด้วย absolute panel ทำให้หมดปัญหาเรื่องการคำนวณความกว้างของ container นั่นหมายความว่ามันสามารถคำนวณความกว้างด้วยตัวของมันเอง โดยไม่ต้องใช้ java โค้ดที่แสนทะมึน

>> อย่างว่าผมเป็นโปรแกรมเมอร์ที่พัฒนาหน้าบ้านด้วย GWT หากจะสมมติให้เห็นตัวอย่างโดยตัด GWT ออกไปก่อน ก็พอจะจำลองงานที่เขียน GWT นี้ด้วย java script กับ CSS ธรรมดา

>> ทว่าก่อนจะถึงเวลานั้น ผมขออนุญาต (ใครสักคน) แชร์สิ่งที่รับทราบมาแบบไม่ต้องคิดมากดังนี้
- ในยุคไดโนเสาร์นั้น GWT โปรแกรมเมอร์ไม่อยากรู้จัก CSS พวกเขาจะคำนวณขนาดของ widget (คิดเอาประมาณว่า container ต่างๆก็แล้วกัน) ทั้งความกว้างและความสูง ด้วยจาวาโค้ด ยกตัวอย่างโค้ดของนายสมชาย

int containerWidth = 0;
if(getBrowserWidth() > 1280) {
containerWidth = 500;
}

กล่าวได้ว่า ถ้าขนาดของหน้าจอ (getBrowserWidth) มากกว่า 1280 px เมื่อไร เจ้า container หรือ widget ของนายสมชายจะมีขนาด 500 px อ๊ะ ก็นายสมชายไม่รู้นี่ไปว่าเขาได้อย่างไร

- เรื่องเว็บ responsive ลืมไปได้เลย เพราะแม้จะผ่านยุคไดโนเสาร์มาแล้ว นายสมชายก็ยังคงความรู้เท่าเดิม วันหนึ่งหัวหน้าบอกกับเขาว่า นี่สมชาย จอขนาด 22 นิ้ว app ของนายดูไม่ดีเลยนะ ปรับความกว้างหน่อย เอาแล้ว งานเข้า แต่สบาย เพราะสมชายทำแบบนี้

int containerWidth = 0;
if(getBrowserWidth() > 1920) {
containerWidth = 1000; //22 นิ้ว
} else if(getBrowserWidth() > 1280) {
containerWidth = 500; //14 นิ้ว
}

กล่าวได้ว่า ถ้าขนาดจอมากกว่า 22 นิ้ว สมชายกำหนดความกว้างได้แล้ว แก้ปัญหาสำเร็จ อิอิ พาหญิงเที่ยวเพลินจิต

- แล้วก็มาถึงยุคหิน และถึกไถ สมชายยังคงมุ่งมั่น if และ else หน้าจอที่มีขนาดแตกต่างกันต่อไปซึ่งตอนนี้มีถึง 10 ขนาด ไม่พอหัวหน้ายังบอกกับเขาอีกว่า เออน้องสม พวกข้อความที่มันยาวเกินบรรทัดไม่ต้องตัดขึ้นบรรทัดใหม่นะ พี่ว่าเราทำเป็น ... (จุดจุดจุด) แล้วแสดงเป็นป๊อปอัพดึ๋งดั๋งขึ้นมาดีกว่า ตกลงตามนี้ไปทำงานได้ โอ้ยสบาย สมชายบอกหัวหน้ากลับไปว่า ง่ายดั่งปีนต้นงิ้ว ซัดเข้าไปอย่างนี้ (ยกมาแค่บางส่วน)

int containerWidth = 0;
int textSize = 0;
if(getBrowserWidth() > 1920) {
containerWidth = 1000;
textSize = 30;
} else if(getBrowserWidth() > 1280) {
containerWidth = 500;
textSize = 15;
} else if...

กล่าวได้ว่า ถ้าขนาดจอ 22 นิ้ว จะมีความยาวของข้อความเต็มที่ที่ 30 ตัวอักษร ถ้าขนาด 14 นิ้ว ก็จะมีความยาวของข้อความเต็มที่ที่ 15 ตัวอักษร หากเกินก็จะใช้จาวาโค้ดตัดข้อความแล้วใส่ จุดจุดจุด เข้าไป แก้ปัญหาสำเร็จ อิอิ พาหญิงเที่ยวนานา

- มาถึงยุคปัจจุบัน ทีมของสมชายโตขึ้น บริษัทโตขึ้น สมชายก็มีลูกน้องหน้าตาดีชื่อสมปองมาร่วมชะตากรรม พอดีสมปองต้องมาแก้โค้ดของสมชาย วินาทีแรกที่เธอได้เห็นสุดยอดสังฆกรรมงานบุญที่สมชายทำไว้ เธอจึงหลุดอุทานออกมาเบาๆแบบไม่รู้ตัวว่า นี่มันตัวเงินตัวทอง! จากนั้นก็ลงมือเขียน if else เข้าไปอีกห้าชุด

>> เรื่องนี้ยังไม่จบ (มีต่อ part 2) ใช้คำแรงไม่ได้เพราะสมชายกับสมปองจิตใจหวั่นไหว คิดเสียว่าอ่านเอามันส์แถมความรู้ก็แล้วกันนะครับ อยากให้คิดอยู่เสมอว่าไม่มีสิ่งใดเกิดมาแล้วดีไปเสียทุกอย่าง ภาษาโปรแกรมมีวิวัฒนาการ มีศาสตร์มีศิลป์อยู่ในตัว ชีวิตของเราก็ไม่ต่างกัน ยอมรับความผิดพลาดแล้วแก้ไขคือพัฒนาการที่ดีของนักเขียนโปรแกรมที่ยึดอาชีพเขียนโปรแกรมหาเงิน ผมเชื่ออย่างนี้ครับ คืนนี้ฝันดีครับผม

ไม่มีความคิดเห็น:

แสดงความคิดเห็น