Category Archives: Chuyện coding

Tât tần tật những thứ liên quan đến coding.

Series C# hay ho: Tránh xa Web Form, CÀNG XA CÀNG TỐT

Lâu lâu lang thang trên mấy forum và group lập trình,  thấy nhiều bạn vẫn hay có thắc mắc về WebForm. Thôi thì trước đây mình đã từng bình luận về WinFormSilverlight rồi, hôm nay bình về WebForm luôn cho đủ bộ vậy. Bài viết sẽ cho bạn lý do để… từ bỏ WebForm và dành thời gian đi học cái khác có ích hơn.

Lưu ý: bài viết là quan điểm cá nhân của tác giả. Mọi tranh luận về technical và góp ý về cách viết đều được hoan nghênh.

ASPNETlogo

Continue reading Series C# hay ho: Tránh xa Web Form, CÀNG XA CÀNG TỐT

Series SOLID cho thanh niên code CỨNG: Dependency Inversion Principle

Giới thiệu

Chào mừng các bạn đến với bài viết cuối cùng trong series SOLID. Ở bài viết này, mình sẽ nói về Dependency Inversion Principle – Nguyên lý Đảo Ngược Dependency.

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý

1. Các module cấp cao không nên phụ thuộc vào các module cấp thấp. Cả 2 nên phụ thuộc vào abstraction.
2. Interface (abstraction) không nên phụ thuộc vào chi tiết, mà ngược lại. (Các class giao tiếp với nhau thông qua interface, không phải thông qua implementation.)

dependency_inversion_principle_thumb

Continue reading Series SOLID cho thanh niên code CỨNG: Dependency Inversion Principle

Series SOLID cho thanh niên code CỨNG: Interface Segregation Principle

Giới thiệu

Đây là đây là bài viết thứ tư trong series “SOLID cho thanh niên code cứng”. Ở bài viết này, mình sẽ nói về Interface Segregation Principle – Nguyên lý phân tách interface.

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý:

Thay vì dùng 1 interface lớn, ta nên tách thành nhiều interface nhỏ, với nhiều mục đích cụ thể

interface_segregation_principle_thumb

Continue reading Series SOLID cho thanh niên code CỨNG: Interface Segregation Principle

Hướng dẫn viết chat bot cho Facebook – Phần 3: Deploy và submit bot cho Facebook

Series gồm 3 phần:

  1. Giới thiệu một số khái niệm, cơ chế hoạt động của Facebook bot
  2. Hướng dẫn cách code và test bot Facebook
  3. Cách deploy bot và nộp cho Facebook xét duyệt

Sau khi đọc và làm theo phần 2, các bạn đã có 1 con bot chạy được. Tuy nhiên, Cloud9 chỉ hỗ trợ các bạn code và deploy để test thứ chứ không hỗ trợ hosting. Sau khoảng 2,3 tiếng không sử dụng, cloud9 sẽ tự tắt server làm bot ngưng hoạt động. Do đó chúng ta phải deploy con bot lên một host khác.

Deploy bot lên OpenShift

Ở đây mình lựa chọn OpenShift vì nó free, tốc độ cũng khá nhanh, lại dễ deploy. Sau 24h không hoạt động thì nó mới cho host ngủ. Một lựa chọn khác là heroku, host heroku cũng sẽ tự ngủ sau 2, 3 tiếng không sử dụng. Các bạn làm theo video để deploy bot lên host nhé nhé.

Continue reading Hướng dẫn viết chat bot cho Facebook – Phần 3: Deploy và submit bot cho Facebook

Hướng dẫn viết chat bot cho Facebook – Phần 2: Tạo Fanpage và kết nối với bot

Series gồm 3 phần:

  1. Giới thiệu một số khái niệm, cơ chế hoạt động của Facebook bot
  2. Hướng dẫn cách code và test bot Facebook
  3. Cách deploy bot và nộp cho Facebook xét duyệt

Thấy các bạn test hộ nhiều quá, mình rất cảm động nên đã thêm chức năng “đàm luận nhân sinh” vào bot để các bạn có người chém gió nhe. Các bạn có thể tiếp tục trò chuyện với bot tại m.me/toidicodedao nhé

13322034_257454591282863_7403060821970737330_n

phần trước, mình đã giới thiệu cơ chế hoạt động của bot Faceobok, cùng với một số khái niệm các bạn cần nắm rõ. Ở bài này, chúng ta sẽ bắt tay vào tạo fanpage và code nhé. Lần này mình hướng dẫn bằng video, các bạn bật phụ đề lên xem nhé.

Bước 1 – Tạo Fanpage, thêm chức năng Messenger

Các bạn làm theo clip dưới để tạo fanpage nhé. Với bạn nào đã có Fanpage thì xem đoạn sau để tích hợp chức năng Messenger vào fanpage.

Tính mình thích ngắn gọn, không muốn lê thê dài dòng nên video cũng rất ngắn gọn, chỉ khoảng 1-2 phút để không lãng phí thời gian của mọi người.

Continue reading Hướng dẫn viết chat bot cho Facebook – Phần 2: Tạo Fanpage và kết nối với bot

Hướng dẫn viết chat bot cho Facebook – Phần 1: Kiến thức cơ bản & Cơ chế hoạt động

Cách đây 1,2 tháng, Facebook vừa ra mắt Facebook Messenger Platform, cho phép ta viết 1 con bot hỗ trợ tự động trả lời người dùng. Vốn đam mê công nghệ nên mình cũng tò mò viết thử 1 con. Các bạn có thể thử trò chuyện với bot tại: m.me/toidicodedao, hoặc xem video demo tại đây.

Continue reading Hướng dẫn viết chat bot cho Facebook – Phần 1: Kiến thức cơ bản & Cơ chế hoạt động

Tổng hợp những series/bài viết hay nhất trên blog

Blog này mình viết cũng được một khoảng thời gian kha khá rồi. Với tiến độ đều đặn 2 bài/tuần, số lượng bài viết hiện tại đã lên tới con số hơn 300 bài. Để các bạn khỏi tốn công đào mộ và lục tìm, mình viết bài này tổng hợp lại những bài viết hay nhất của blog từ trước đến nay. Các bạn có thể xem bài viết này bằng cách bấm vào tab “Bài viết hay” trên menu nhé.

book.jpg

Phần lớn những bài viết này đã được tổng hợp và biên tập trong cuốn sách “Code dạo kí sự – Lập trình viên đâu phải chỉ biết code“. Quyển sách bao gồm những kĩ năng từ mềm đến cứng mà mỗi developer phải có, đảm bảo sẽ rất có ích cho các bạn sinh viên hoặc lập trình viên đã đi làm. Các bạn xem thông tin và đặt mua sách tại đây nhé: Sách Code Dạo Ký Sự.

Ngày cập nhật: 11/11/2017 (Cập nhật 3 tháng/lần).

Continue reading Tổng hợp những series/bài viết hay nhất trên blog

Series SOLID cho thanh niên code CỨNG: Liskov substitution principle

Giới thiệu

Đây là đây là bài viết thứ 3 trong series “SOLID cho thanh niên code cứng”. Ở bài viết này, mình sẽ nói về Liskov Substitution Principle – Nguyên lý Thay Thế Lít Kốp (LSP).

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý:

Trong một chương trình, các object của class con có thể thay thế class cha mà không làm thay đổi tính đúng đắn của chương trình

Continue reading Series SOLID cho thanh niên code CỨNG: Liskov substitution principle

Top 26 sai lầm mà các lập trình viên “non trẻ” hay mắc phải

Gần đây, do mình bận việc học hànhlàm thêm nên không có thời gian rảnh để lên stackoverflow farm rep nữa. Tuy vậy mình vẫn giữ thói quen vào quora để theo dõi những bài hỏi đáp về Software EngineerComputer Science. Khác với stackoverflow chủ yếu tập trung vào code, những câu hỏi trên quora có phạm vi rộng hơn rất nhiều, bao gồm đủ mọi lĩnh vực đời sống.

Bản thân mình khuyên các bạn nên ít lướt facebook lại để chuyển qua đọc quora. Thay vì xem gái xinh, clip 18+, xem các thanh niên cãi nhau về việc Trấn Thành dắt Tiến Đạt vào nhà nghỉ, việc đọc các câu hỏi trên quora bổ ích và thú vị hơn nhiều. Thành viên trong quora thuộc đủ mọi thành phần, từ Junior Developer cho tới Software Architect, CTO. Những câu trả lời, lời khuyên của họ vô cùng chi tiết và hữu ích, đôi khi còn dí dóm nữa (Điển hình là 2 bài viết về “Mánh khóe không bao giờ tiết lộ của dev trùm” và “comment bá đạo“).

quora-logo Continue reading Top 26 sai lầm mà các lập trình viên “non trẻ” hay mắc phải

Series SOLID cho thanh niên code CỨNG: Open/Closed Principle

Giới thiệu

Đây là đây là bài viết thứ 2 trong series SOLID cho thanh niên code cứng. Ở bài viết này, mình sẽ nói về Open/Closed Principle – Nguyên lý Đóng Mở.

  1. Single Responsibility Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

Nội dung nguyên lý:

Chiều dài váy con gái nên đủ ngắn để khơi MỞ tính tò mò của con trai, nhưng nên đủ dài để ĐÓNG lại những suy nghĩ đen tối của bọn nó.

Continue reading Series SOLID cho thanh niên code CỨNG: Open/Closed Principle