Categories
Blog

List icon comment Facebook

Icon Facebook: Facebook Smiley FaceIcon Facebook: Facebook big smile - Grin emoticonIcon Facebook: Facebook Sad EmoticonIcon Facebook: Facebook Cry EmoticonIcon Facebook: Facebook Tounge Out EmoticonIcon Facebook: Facebook Angel Smiley EmoticonIcon Facebook: Facebook Devil EmoticonIcon Facebook: Facebook Confused SmileyIcon Facebook: Facebook Wink SmileyIcon Facebook: Facebook Gasp EmoticonIcon Facebook: Facebook squint emoticonIcon Facebook: Facebook angry smileyIcon Facebook: Facebook Kiss Emoticon

Icon Facebook: Facebook Heart EmoticonIcon Facebook: Facebook Kiki SmileyIcon Facebook: Glasses Smiley for FacebookIcon Facebook: Facebook Sunglasses SmileyIcon Facebook: Facebook Shark EmoticonIcon Facebook: Facebook Robot SmileyIcon Facebook: Facebook Grumpy SmileyIcon Facebook: Facebook Pacman EmoticonIcon Facebook: Facebook Unsure SmileyIcon Facebook: Facebook Curly Lips EmoticonIcon Facebook: Facebook Blush EmoticonIcon Facebook: Thumb Up (y) Like Facebook EmoticonIcon Facebook: Poop - New Facebook Emoticon

Icon Facebook: Chris Putnam emoticonIcon Facebook: Facebook Penguin EmoticonIcon Facebook: Peace Fingers EmoticonIcon Facebook: Facebook Sun EmoticonIcon Facebook: Facebook Cloud IconIcon Facebook: Umbrella EmoticonIcon Facebook: Facebook Thunder EmoticonIcon Facebook: Stars Facebook EmoticonsIcon Facebook: White star Facebook emoticonIcon Facebook: Snowflake Emoji for FacebookIcon Facebook: Facebook Snowman EmoticonIcon Facebook: Cup Of Coffee Facebook EmoticonIcon Facebook: Hot plate emoticon

Icon Facebook: Boat emoticonIcon Facebook: Fuel pump emoticonIcon Facebook: Airplane Facebook emoticonIcon Facebook: Fountain emoticonIcon Facebook: Tent emoticonIcon Facebook: Facebook church emoticonIcon Facebook: Telephone Facebook EmoticonIcon Facebook: Envelope emoticonIcon Facebook: Scissors emoticonIcon Facebook: Toilet emoticon for FacebookIcon Facebook: Bath emoticonIcon Facebook: Red bikini undearwear emoticon for FacebookIcon Facebook: Lipstick emoticon

Icon Facebook: T-shirt emoticonIcon Facebook: Kimono emojiIcon Facebook: Dress emoticonIcon Facebook: Boots emoticonIcon Facebook: High heels emoticonIcon Facebook: Sandal emoticonIcon Facebook: Briefcase emoticonIcon Facebook: HandbagIcon Facebook: Tie emoticon for FacebookIcon Facebook: Top hat Facebook emoticonsIcon Facebook: Womans hat emojiIcon Facebook: Crown emoticonIcon Facebook: Ring emoticon

Icon Facebook: No smoking Facebook emoticonIcon Facebook: Soccer ball emoticonIcon Facebook: Baseball emoticonIcon Facebook: Golf emoticonIcon Facebook: Football emoticonIcon Facebook: Basketball emoticonIcon Facebook: Tennis emoticonIcon Facebook: Billiard emoticonIcon Facebook: Target emoticonIcon Facebook: Skis emoticonIcon Facebook: Racing flags emoticonIcon Facebook: Finish line emoticonIcon Facebook: Trophy emoticon

Icon Facebook: Warning sign emoticon for FacebookIcon Facebook: No entry emoticonIcon Facebook: exclamation point EmojiIcon Facebook: Exclamation mark emoticonIcon Facebook: Red exclamation point emoticonIcon Facebook: Question mark emoticonIcon Facebook: Cross mark emoticonIcon Facebook: Cross mark Facebook emojiIcon Facebook: Multiplication Facebook symbolIcon Facebook: Heart suit emoticonIcon Facebook: Spades emoticonIcon Facebook: Diamond suit emoticon for FacebookIcon Facebook: Clubs suit emoticon

Icon Facebook: A-ok signIcon Facebook: Dislike EmoticonIcon Facebook: Facebook Clenched Fist EmoticonIcon Facebook: Index finger emoticonIcon Facebook: High Five EmoticonIcon Facebook: Two hands reaching upIcon Facebook: Muscle armIcon Facebook: Fist EmoticonIcon Facebook: A pair of hands clapping.Icon Facebook: Finger pointing upIcon Facebook: Index fingerIcon Facebook: Finger pointing left emoticonIcon Facebook: Finger pointing down Emoticon

Icon Facebook: Broken Heart EmoticonIcon Facebook: Facebook Blue Heart IconIcon Facebook: Green Heart EmoticonIcon Facebook: Yellow Heart EmoticonIcon Facebook: Purple Heart EmoticonIcon Facebook: Triple Heart EmoticonIcon Facebook: Stabbed HeartIcon Facebook: Cool heart iconIcon Facebook: Wrapped Heart EmoticonIcon Facebook: Sparkling Heart IconIcon Facebook: Revolving hearts EmojiIcon Facebook: White heart in red squareIcon Facebook: Love letter Facebook emoticon

Icon Facebook: Couple in loveIcon Facebook: Lip Mark EmoticonIcon Facebook: Lips EmoticonIcon Facebook: Emoticon in loveIcon Facebook: Emoticon Blowing A KissIcon Facebook: Kiss emoticon for FacebookIcon Facebook: Happy Facebook smiley red in faceIcon Facebook: Smirking smileyIcon Facebook: SatisfiedIcon Facebook: Smiling face for FacebookIcon Facebook: Big smile emoticonIcon Facebook: Disappointed emoticonIcon Facebook: Crying Emoji smiley for Facebook

Icon Facebook: Medic Facebook smileyIcon Facebook: Emoticon with cold sweatIcon Facebook: Fear EmoticonIcon Facebook: Relieved emoticonIcon Facebook: Sleepy smileyIcon Facebook: Scared Facebook EmoticonIcon Facebook: Emoticon screaming in fearIcon Facebook: Dizzy emoticonIcon Facebook: Emoticon Shedding TearsIcon Facebook: Angry face emoticonIcon Facebook: Emoticon with eyes wide openIcon Facebook: Astonished EmoticonIcon Facebook: Big Grin Emoticon

Icon Facebook: Tongue out and winkingIcon Facebook: Tongue out emoticonIcon Facebook: Winking EmoticonIcon Facebook: Sad FaceIcon Facebook: Unamused EmoticonIcon Facebook: Emoticon crying tears of joyIcon Facebook: Red Angry EmoticonIcon Facebook: Purple Devil EmoticonIcon Facebook: Alien EmoticonIcon Facebook: Green Monster EmoticonIcon Facebook: Ghost EmoticonIcon Facebook: Angel EmojiIcon Facebook: Girl with bunny ears

Icon Facebook: Guardsman EmoticonIcon Facebook: Man With TurbanIcon Facebook: Santa Claus EmoticonIcon Facebook: Policeman EmoticonIcon Facebook: Construction Worker EmoticonIcon Facebook: Princess EmoticonIcon Facebook: Older ManIcon Facebook: Older womanIcon Facebook: Man emoticonIcon Facebook: Emoticon of womanIcon Facebook: Boy emoticonIcon Facebook: Girl emoticon for FacebookIcon Facebook: Baby Face

Icon Facebook: Blonde Girl EmoticonIcon Facebook: Boy and girl holding handsIcon Facebook: Man and woman holding handsIcon Facebook: Dancer EmoticonIcon Facebook: Ear EmoticonIcon Facebook: Nose EmoticonIcon Facebook: Eyes EmoticonIcon Facebook: Star EmoticonIcon Facebook: Moon EmoticonIcon Facebook: Facebook Music Note EmoticonIcon Facebook: Music Notes EmoticonIcon Facebook: Zzz EmoticonIcon Facebook: Fire Emoticon

Icon Facebook: Bell EmoticonIcon Facebook: Balloon EmoticonIcon Facebook: Happy New Year EmoticonIcon Facebook: Cocktail Glass EmoticonIcon Facebook: Beer EmoticonIcon Facebook: Beer EmojiIcon Facebook: Bottle emoticonIcon Facebook: Teacup emoticonIcon Facebook: Fork and knife emoticonIcon Facebook: Bread emoticonIcon Facebook: Frying Pan - Cooking emoticonIcon Facebook: French fries emoticonIcon Facebook: The food pot emoticon

Icon Facebook: Bowl of sushiIcon Facebook: Spaghetti foodIcon Facebook: Steaming bowlIcon Facebook: Facebook cake emoticonIcon Facebook: Shaved iceIcon Facebook: Ice cream emoticonIcon Facebook: Hamburger EmoticonIcon Facebook: Red Apple EmoticonIcon Facebook: Strawberry EmoticonIcon Facebook: Orange EmoticonIcon Facebook: Watermelon emoticonIcon Facebook: Tomato iconIcon Facebook: Aubergine

Icon Facebook: Seedling EmoticonIcon Facebook: Palm EmoticonIcon Facebook: Cactus EmoticonIcon Facebook: Maple Leaf EmoticonIcon Facebook: Fallen Leaf EmoticonIcon Facebook: Fluttering LeafIcon Facebook: Cherry BlossomIcon Facebook: Facebook Rose EmoticonIcon Facebook: Tulip EmoticonIcon Facebook: Sunflower EmoticonIcon Facebook: Hibiscus EmoticonIcon Facebook: Bouquet EmoticonIcon Facebook: Christmas Tree Emoticon

Icon Facebook: Puppy EmoticonIcon Facebook: Teddy Bear EmoticonIcon Facebook: Monkey FaceIcon Facebook: Mouse EmoticonIcon Facebook: Hamster EmoticonIcon Facebook: Wolf EmoticonIcon Facebook: Tiger EmoticonIcon Facebook: Horse faceIcon Facebook: Pig EmoticonIcon Facebook: Cat EmoticonIcon Facebook: Bunny EmoticonIcon Facebook: Poodle EmoticonIcon Facebook: Sheep Emoticon

Icon Facebook: Penguin faceIcon Facebook: Koala EmoticonIcon Facebook: Cow EmoticonIcon Facebook: Wild boar EmoticonIcon Facebook: Chicken EmoticonIcon Facebook: Yellow ChickIcon Facebook: Bird EmoticonIcon Facebook: Elephant EmoticonIcon Facebook: Horse EmoticonIcon Facebook: Monkey EmoticonIcon Facebook: Camel EmoticonIcon Facebook: Dolphin EmoticonIcon Facebook: Whale emoticon

Icon Facebook: Tropical FishIcon Facebook: Fish EmoticonIcon Facebook: BlowfishIcon Facebook: OctopusIcon Facebook: Seashell EmoticonIcon Facebook: Frog FaceIcon Facebook: Snake EmoticonIcon Facebook: Bug EmoticonIcon Facebook: Wind EmoticonIcon Facebook: Wave EmoticonIcon Facebook: Droplets EmoticonIcon Facebook: Snowflake Facebook EmoticonIcon Facebook: Rainbow Facebook Emoticon

Icon Facebook: Phone emoticonIcon Facebook: Fax emoticonIcon Facebook: Speakers emoticonIcon Facebook: Emoticon of radioIcon Facebook: Camera EmojiIcon Facebook: Movie emoticonIcon Facebook: VHS emoticonIcon Facebook: SatelliteIcon Facebook: Facebook TV EmoticonIcon Facebook: PC Facebook EmoticonIcon Facebook: Floppy disk emoticonIcon Facebook: CD or DVD EmoticonIcon Facebook: Tablet or smartphone emoticon

Icon Facebook: Present emoticonIcon Facebook: Carp streamersIcon Facebook: Anger symbol emoticonIcon Facebook: Nail Polish EmoticonIcon Facebook: Footprints Facebook EmoticonIcon Facebook: Clover EmoticonIcon Facebook: Graduation HatIcon Facebook: Pumpkin EmoticonIcon Facebook: Skull emoticonIcon Facebook: Automated Teller MachineIcon Facebook: Money bag emoticonIcon Facebook: Dollar emoticonIcon Facebook: Yen bill

Icon Facebook: Bicycle emoticonIcon Facebook: Automobile emoticonIcon Facebook: Car Facebook emoticonIcon Facebook: Truck emoticonIcon Facebook: Bus emoticonIcon Facebook: Fire truck emoticonIcon Facebook: Police car emoticonIcon Facebook: Ambulance emoticonIcon Facebook: Taxi emoticonIcon Facebook: Train emoticonIcon Facebook: Tram carIcon Facebook: Speed trainIcon Facebook: Station emoji

Icon Facebook: Speedboat emojiIcon Facebook: Ship emoticonIcon Facebook: Roller coasterIcon Facebook: Rocket emojiIcon Facebook: Ticket emoticonIcon Facebook: Bus stop signIcon Facebook: Traffic lightsIcon Facebook: Construction sign on roadIcon Facebook: Barber signIcon Facebook: Antenna signalIcon Facebook: No under 18 emoticonIcon Facebook: Vibration mode emoticonIcon Facebook: Phone off emoticon

Icon Facebook: Sunrise emoticonIcon Facebook: Sunrise over mountainsIcon Facebook: Sunset emoticonIcon Facebook: Dusk emojiIcon Facebook: Starry night emoticonIcon Facebook: Snow mountain emoticonIcon Facebook: Japanese castle emojiIcon Facebook: Japanese building emojiIcon Facebook: Castle emoticonIcon Facebook: Bank emoticonIcon Facebook: Statue of Liberty emoticon for FacebookIcon Facebook: Ferris wheel emoticonIcon Facebook: Tokyo tower emoji

Icon Facebook: Hotel emoticonIcon Facebook: Love hotel emojiIcon Facebook: Office emoticonIcon Facebook: School emoticonIcon Facebook: Factory emoticonIcon Facebook: Hospital emoticonIcon Facebook: Department store emoticonIcon Facebook: Convenience storeIcon Facebook: Wedding emoticonIcon Facebook: House emojiIcon Facebook: House emoticonIcon Facebook: Mailbox emoticonIcon Facebook: Mailbox with raised flag

Icon Facebook: Postbox emojiIcon Facebook: Mail emoticon for FacebookIcon Facebook: Incoming mail Facebok emoticonIcon Facebook: Memo signIcon Facebook: School bag emoticonIcon Facebook: Open book emoticonIcon Facebook: Paint paletteIcon Facebook: Microphone emoticonIcon Facebook: Megaphone emoticonIcon Facebook: Headphones emoticonIcon Facebook: Saxophone emoticonIcon Facebook: Trumpet emoticonIcon Facebook: Guitar emoticon for Facebook

Icon Facebook: Public address systemIcon Facebook: Lock emojiIcon Facebook: Closed lock with a keyIcon Facebook: Key Facebook emoticonIcon Facebook: Open lock emoticonIcon Facebook: Magnifying glass emoticonIcon Facebook: Light bulb emoticonIcon Facebook: Dollar sign for FacebookIcon Facebook: Pistol emoticonIcon Facebook: Bomb emoticonIcon Facebook: Cigarette emoticonIcon Facebook: Pill emoticonIcon Facebook: Syringe emoji

Icon Facebook: Mask emoticonIcon Facebook: Clapper boardIcon Facebook: Film roleIcon Facebook: RestroomIcon Facebook: Mens emoticonIcon Facebook: Womens emoticonIcon Facebook: Child emoticonIcon Facebook: VS emoticon versusIcon Facebook: Up emojiIcon Facebook: Cool emoticon signIcon Facebook: Wheelchair emoticonIcon Facebook: Curly loops signIcon Facebook: WC emoticon

Icon Facebook: Congratulations emoticonIcon Facebook: Secret Facebook emoticonIcon Facebook: Free service symbolIcon Facebook: Available Facebook symbolsIcon Facebook: Destination emoticonIcon Facebook: Finger pointIcon Facebook: Full emoticonIcon Facebook: Sale emoticonIcon Facebook: Have nothing emoticonIcon Facebook: Month symbolIcon Facebook: Own emoticonIcon Facebook: Request emoticonIcon Facebook: Working emoticon for Facebook

Icon Facebook: Good bargain symbolIcon Facebook: Square symbolIcon Facebook: CircleIcon Facebook: Rightwards arrowIcon Facebook: Downwards arrowIcon Facebook: Leftwards arrowIcon Facebook: Upwards arrowIcon Facebook: Northeast arrowIcon Facebook: Northwest arrowIcon Facebook: Southeast arrowIcon Facebook: Southwest arrowIcon Facebook: Up right arrowIcon Facebook: Arrow pointing down right

Icon Facebook: Ribbon emoticonIcon Facebook: Closed umbrella emojiIcon Facebook: Droplet emojiIcon Facebook: Hammer Facebook emoticonIcon Facebook: Seat emoticonIcon Facebook: Part alternation markIcon Facebook: Trident emoticonIcon Facebook: Noob signIcon Facebook: Mahjong tile red dragonIcon Facebook: Gem stoneIcon Facebook: Diamond emoticonIcon Facebook: Blue diamond emojiIcon Facebook: Orange diamond

Categories
Blog

Nợ kỹ thuật – Technical debt – Vay ko biết là vay nên nợ chồng nợ chất

Technical Debt (Nợ kĩ thuật) là một món nợ mà hầu như lập trình viên nào cũng phải gánh trong quá trình làm việc. Hẳn bạn sẽ thắc mắc: Hầu hết lập trình viên chúng mình đều là những con người siêng năng chăm chỉ, không cờ bạc gái gú, hết giờ làm là đi nhậu, mát xa … nhầm, về nhà với vợ con. Chúng ta không vay mượn ai bao giờ thì làm sao có nợ???

technical-debt
Muốn biết câu trả lời, hãy đọc bài viết để tìm hiểu thêm về Technical Debt nhé! Đây là một khái niệm khá quan trọng và bổ ích đấy.

Technical Debt là gì?

Khái niệm này được đưa ra bởi Ward Cunningham (Cha đẻ của wiki đầu tiên). Trong cuộc sống, đôi khi bạn sẽ phải mượn tiền để xài, sau đó cày cuốc trả. Số tiền này được gọi là nợ. Trong lập trình cùng thế, đôi khi ta chọn cách giải quyết “mì ăn liền”, giải quyết được vấn đề ngay, nhưng sẽ gây khó khăn cho quá trình phát triển và bảo trì về sau. Mỗi lần như vậy, ta tạo thêm 1 khoản “nợ kĩ thuật” cho dự án.
Technical bebt ban đầu rất ít, nhưng theo quá trình code thì càng ngày nó càng nhiều lên, trở thành nợ nầng chồng chất. Một số ví dụ:

  • Để tái sử dụng code đã viết, ta copy và paste code sửa đôi chút (thay vì phải tách thành module riêng). Cách này nhanh, nhưng khi có bug thì sửa… chết mẹ vì code được copy ở đủ chỗ.
  • Khi có requirement mới, thay với áp dụng sửa lại code cho dễ mở rộng, ta viết thêm hàm if. Cách này nhanh, nhưng mở rộng nhiều thì code sẽ một đống if.
  • Có bug khủng liên quan tới kiến trúc hệ thống, thay vì fix bug và refactor thì ta try/catch nuốt lỗi và fix tạm ở phần ngọn, gọi là hotfix.

Technical Debt là điều tất yếu trong quá trình code. Mỗi quyết định ta đưa ra trong lúc code đều làm tăng số nợ này lên. Điều quan trọng là mượn xong thì phải trả, nếu để lâu, techinical debt tích lỹ sẽ gây ra nhiều hậu quả nguy hiểm khôn lường.

Tác hại “khủng khiếp” của nợ kỹ thuật

Nếu không trả nợ, cả vốn lẫn lãi sẽ dần chồng chất trong quá trình phát triển. Quá nhiều technical debt làm chậm tốc độ của team, đồng thời ảnh hưởng đến tinh thần làm việc của các thành viên trong nhóm.
Trong nhiều dự án, vì ban đầu bị trễ deadline nên team phải code ẩu, sinh ra technical debt. Nợ làm cho tốc độ phát triển chậm dần lại, dẫn tới trễ dealine -> code ẩu -> thêm nợ, thành 1 vòng lẩn quẩn. Một tính năng có thể chỉ mất 1 ngày để hoàn thành, nhưng nếu technical debt quá nhiều sẽ mất tới 1 tuần.
Tới một mức nào đó, khi không trả được lãi nữa, ta sẽ bị “phá sản”. Lúc này, code hiện tại đã nát tới mức cực kì khó mở rộng hay bảo trì, phải đập đi viết lại. Đây cũng là nguyên nhân gây trễ deadline/thất bại cho nhiều dự án.

van-de-no-ky-thuat

Vòng tròn lẩn quẩn: trễ deadline -> nợ -> code chậm -> trễ deadline

 

Nợ ơi em từ đâu tới?

Nếu như nợ công của Việt Nam là do các bác “ở trển” ăn xài thoải mái thì nợ technical debt lại do chính bản thân các developer gây ra.
Có rất nhiều lý do gây ra technical debt:

  • Do khách hàng thay đổi requirement liên tục, kiến trúc dự án không kịp thay đổi cho phù hợp
  • Do bị dealine dí/manager gây áp lực nên developer code ẩu để hoàn thành task.
  • Do bản thân developer làm biếng, code không có comment, không viết document.
  • Do team không có technical lead giỏi, hoặc các thành viên không đủ nền tảng kĩ thuật tốt.

Đôi khi technical debt là do cố ý: Chấp nhận làm nhanh vì phải có sản phẩm giao khách hàng, giành dự án, vấn đề technical tính sau. Hoặc trong các công ty start-up, người ta xây dựng sản phẩm (MVP) nhanh chóng nhất có thể để khảo sát nhu cầu người dùng. Lúc này, chức năng và tốc độ phát triển mới là quan trọng nhất, code ẩu hay kiến trúc tệ không quan trọng.

Làm sao trả nợ ???

Như mình đã nói, code nào cũng sẽ có bug, dự án nào cũng sẽ có technical debt. Cách đối phó với technical debt là tạm ngưng việc phát triển, tập trung vào trả nợ. Ta có thể trả nợ bằng cách phân tích và tái cấu trúc hệ thống, hoặc viết thêm document, viết thêm test case, refactor code để code rõ ràng, dễ cải tiến.
Đôi lúc ta cũng có thể bỏ qua technical debt, ví dụ như khi làm prototype để demo cho khách hàng. Vì prototype xong rồi vứt luôn nên ta có thể xù nợ. Tuy nhiên nên cẩn thận, có rất nhiều trường hợp khách hàng đòi mở rộng/nâng cấp prototype thành sản phẩm để tiết kiệm thời gian. Lúc này ta phải trả nợ chết cmn luôn.

Hãy nhớ một điều: Mỗi lần bạn code ẩu, code đểu, bạn đang thêm nợ cho dự án. Nợ đời có vay có trả, bạn không trả thì thằng khác trong team sẽ trả. Technical debt phải trả bằng thời gian, công sức và mồ hôi nước mắt của lập trình viên đấy nhé.
P/S: Nếu sắp nghỉ việc, chuyển công ty thì các bạn cứ code ẩu thoải mái, không sao đâu! Một lập trình viên xấu số nào khác sẽ trả nợ giùm bạn :))

 

Nguồn: Toidicodedao

Categories
Blog

Câu chuyện về sự hơn thua trong cuộc sống

3×8=24, nhưng kỳ thực là 23, hãy xem hết để hiểu tại sao…

Ba nhân tám rõ ràng là 24, vì sao lại là 23? Câu chuyện Nhan Uyên và Khổng Tử sẽ cho bạn biết tại sao như vậy…

 

Nhan Uyên ham học hỏi, tính tình tốt bụng, là một đệ tử đắc ý của Khổng Tử.
Một ngày nọ, trên đường đi làm việc, Nhan Uyên thấy một đám đông ồn ào trước cửa tiệm vải. Anh bước đến hỏi, mới biết là đang có tranh chấp giữa người mua và người bán vải.

Chỉ nghe người mua hét lớn: “Ba nhân tám là 23, sao ông cứ đòi ta 24 đồng?”
Nhan Uyên đến trước mặt người mua, lễ phép nói: “Vị đại ca này, ba nhân tám là 24, sao có thể là 23 được? Anh tính sai rồi, không nên cãi lộn ầm ĩ nữa”.
Người mua không phục, chỉ thẳng mặt Nhan Uyên nói: “Ai cần ngươi phân xử hay sao? Ngươi biết tính toán sao? Muốn phân xử chỉ có cách tìm Khổng phu tử, đúng hay sai hãy để ông ấy định đoạt! Đi, ta hãy tìm ông ấy để phân xử!”
Nhan Uyên đáp: “Được. Nếu Khổng phu tử nói anh sai, vậy xử lý sao?”
Người mua nói: “Nếu ta sai, hãy lấy đầu ta. Nhà ngươi sai thì sao?”
Nhan Uyên trả lời: “Nếu tôi sai, tôi sẽ từ quan”.
Hai người đánh cuộc với nhau như thế, cũng đã tìm gặp được Khổng Tử.
Khổng Tử nói: “Ba nhân tám là 23”, Nhan Uyên lòng không phục.
Khổng Tử hỏi rõ tình huống, rồi quay sang Nhan Uyên cười nói: “Ba nhân tám là 23 đó! Nhan Uyên, con thua rồi, lấy mũ quan xuống đem cho người ta đi!”
Nhan Uyên trước giờ chưa bao giờ cãi lại sư phụ. Nghe Khổng Tử nói mình sai, anh đành tháo mũ xuống giao cho người mua kia. Người mua nhận mũ, đắc ý rời đi.
Đối với lời phân xét của Khổng Tử, Nhan Uyên biểu hiện là tuân theo, nhưng trong tâm lại không phục. Anh cho rằng Khổng Tử già rồi đâm ra hồ đồ, liền không muốn ở lại học tập Khổng Tử nữa.
Ngày hôm sau, Nhan Uyên quay lại lấy cớ nhà có việc muốn xin nghỉ học… Khổng Tử rất rõ tâm tư Nhan Uyên, nhưng không nói gì, chỉ gật đầu đồng ý. Trước khi đi, Nhan Uyên quay lại cáo biệt Khổng Tử. Khổng Tử muốn Nhan Uyên trở về nhà bình an, cũng dặn dò hai câu: “Ngàn năm cổ thụ không náu thân, sát nhân không rõ chớ động thủ”. Nhan Uyên đáp lại một câu: “Con xin ghi nhớ”, rồi rời đi.
Trên đường về, gió thổi mây dâng, sấm rung chớp giật, trời muốn đổ mưa to. Nhan Uyên tiến đến một cây đại thụ mục rỗng bên ven đường, muốn tránh mưa. Anh đột nhiên nhớ lại lời Khổng Tử đã nói: “Ngàn năm cổ thụ không náu thân”… Nghĩ thầm, sư đồ nhất tràng, anh nghe theo lời sư phụ, tránh xa khỏi cái cây rỗng. Vừa rời đi không xa thì nghe một tiếng sấm, sét đã đánh tan cây cổ thụ kia. Nhan Uyên kinh ngạc: “Câu đầu sư phụ nói đã ứng nghiệm sao! Chẳng lẽ ta còn có thể sát nhân ư?”
Khi về tới nhà thì trời cũng đã khuya. Không muốn kinh động người nhà, Nhan Uyên dùng bảo kiếm mang theo bên người để đẩy chốt cửa phòng nơi thê tử của anh đang ngủ. Đến bên giường, sờ lại thấy hai người nằm hai bên giường. Nhan Uyên vô cùng tức giận, giơ kiếm định chém, lại nghĩ đến câu nói thứ hai của Khổng Tử: “Sát nhân không rõ chớ động thủ”, bèn đốt đèn lên xem, hóa ra một người là thê tử, người kia là muội muội của anh.
Ngày hôm sau, Nhan Uyên quay trở lại, thấy Khổng Tử liền quỳ xuống nói: “Sư phụ, hai câu người nói đã cứu ba người là con, vợ con và muội muội của con đó! Sao người lại biết trước chuyện sẽ xảy ra vậy?” Khổng Tử có đúng là có thể nhìn trước được tương lai? Hãy cùng xem tiếp… Nhan Uyên cảm thấy kính phục sâu sắc, cũng đã biết được ẩn ý của Khổng Tử Khổng Tử đỡ Nhan Uyên dậy và nói: “Ngày hôm qua thời tiết khô nóng, đoán chừng sẽ có cơn dông, nên ta nhắc nhở con: “ngàn năm cổ thụ không ai náu thân”, con lại mang khí bực trong người, trên thân đeo bảo kiếm, cho nên ta khuyên con “sát nhân không rõ chớ động thủ”!” Nhan Uyên vừa vái lạy vừa nói: “Sư phụ liệu sự như thần, đệ tử mười phần kính nể!”
Mạng người quan trọng hay địa vị quan trọng? Khổng Tử lại nói tiếp: “Ta biết rõ con xin phép về nhà nghỉ là mượn cớ, thật ra cho rằng ta đã già nên hồ đồ rồi, không muốn học ta nữa. Con nghĩ xem, ta nói ba nhân tám bằng 23 là đúng, con thua, bất quá là thua cái mũ quan kia, nếu ta nói ba nhân tám bằng 24 mới đúng, người mua kia thua, đây là một mạng người đó! Vậy con nói xem, chức vị quan trọng hay mạng người quan trọng hơn?” Nhan Uyên bỗng nhiên tỉnh ngộ, quỳ gối trước mặt Khổng Tử mà thưa:“Sư phụ trọng đại nghĩa coi nhẹ tiểu tiết, đệ tử còn tưởng rằng Sư phụ vì lớn tuổi mà thiếu minh mẫn, đệ tử hổ thẹn vạn phần!”

Từ đó về sau, bất luận Khổng Tử đi đến đâu, Nhan Uyên theo đến đó không rời sư phụ.
Câu chuyện này gợi cho tôi nhớ tới ca từ trong một bài hát tuyệt vời của Khắc Lý Lâm: “Nếu như mất đi bạn, được cả thế giới cũng để làm gì?”
Cũng như vậy, Đôi khi bạn tranh đấu giành được điều bạn cho là lẽ phải, Nhưng điều mất đi có lẽ còn quan trọng hơn;
Luôn luôn phân rõ sự tình nặng nhẹ”. Đừng gắng sức tranh giành, rồi sau hối hận không kịp! Rất nhiều chuyện không cần tranh giành, Lùi một bước biển rộng trời cao.
Hơn thua với khách hàng, thắng ấy cũng là thua (khi sản phẩm mới cần đổi mẫu, bạn sẽ biết)
Hơn thua với ông chủ, thắng ấy cũng là thua (cuối năm lúc đánh giá thành tích, bạn sẽ biết)
Hơn thua với người già, thắng ấy cũng là thua (người ta không để ý tới bạn đâu, bạn vẫn phải tự mình làm thôi)
Hơn thua với bằng hữu, thắng ấy cũng là thua (làm không tốt sẽ mất đi một người bạn)
Lá trà nhờ nước sôi mới có thể tỏa ra mùi hương thơm ngát, Sinh mệnh vượt qua bao trắc trở, mới để lại tiếng thơm cho đời… Hiểu được điều đó sẽ luôn luôn cảm ơn cuộc đời… vậy là hạnh phúc nhất đấy.
Giáo dục là một vấn đề vô cùng trọng yếu! Bất luận điều gì chưa rõ, hãy cùng nhau bàn bạc giải quyết. Nếu không, sai một niệm có thể sẽ hỏng một đời…
Thật là những suy nghĩ sâu sắc!

Categories
Blog

Tôi tạo website cá nhân

Làm web cũng hơn 2 năm, cũng nhiều lần có ý định tạo cho mình 1 website cá nhân với mục đích viết lách linh tinh và chia sẻ những điều mình biết, mình học được, nhưng mỗi lần có ý định là lại có một vài lý do để mình không làm luôn được, đa phần là vì không có thời gian, vướng bận nhiều chuyện … Nhiều lần vào website cá nhân của các pro cùng lĩnh vực cũng thấy hứng thú và thêm độ máu 😀

Hôm nay độ máu đã đủ và không còn nhiều vướng bận nữa, quyết định làm trang cá nhân để có nơi vẽ vời. Tạm thời ý tưởng chỉ là nơi đưa profile, viết blog, chia sẻ kiến thức trước hết là trong lĩnh vực lập trình web(html, css, jquery, php, mysql …)