9 posts tagged with "programming"

View All Tags

RxJava Legacy (03) - Observable và chuỗi Observer hoạt động ra sao?

Doko

Doko

Administrator
info

Đây là bài viết cũ, ở thời điểm hiện tại RxJava 3 đã ra mắt nhưng concept và các khái niệm cơ bản vẫn còn dùng được. Series gốc có thể tìm thấy tại đây.

Cách hoạt động của Observable và chuỗi observer#

Chuỗi ObservableObserver rất quan trọng. Cần phải hiểu cách hoạt động của chúng để hiểu được RxJava hoạt động ra sao.

Để bắt đầu, chúng ta lấy một ví dụ đơn giản của đơn giản:

RxJava Legacy (01) - Retro Lambda

Doko

Doko

Administrator
info

Đây là bài viết cũ, ở thời điểm hiện tại RxJava 3 đã ra mắt nhưng concept và các khái niệm cơ bản vẫn còn dùng được. Series gốc có thể tìm thấy tại đây.

Java 8+ với rất nhiều tính năng và cú pháp mới được giới thiệu, trong đó có Lambda Expression được sử dụng để viết anonymous class ngắn gọn hơn. Hiện nay Android Studio 3 đã hỗ trợ cú pháp Java 8 gần như hoàn chỉnh (đã hoàn chỉnh ở API 24) nhưng vì lý do nào đó mà các bạn không thể sử dụng Android Studio 3 thì Retrolambda chính là giải pháp.

Message Queue với Bull (NodeJS + TypeScript)

Doko

Doko

Administrator

Bull là một trong số các thư viện hỗ trợ message queue rất tốt trên NodeJS (bên cạnh RabbitMQ, Kafka, rsmq, agenda,...), và dựa trên Redis để lưu dữ liệu.

Message queue là giải pháp để giải quyết các vấn đề trong công nghệ, thường là backend:

  • Xử lý background.
  • Gửi thông tin theo hàng đợi.
  • Xử lý đồng bộ, concurrency.

Bull là thư viện có thể giúp cả 3 vấn đề trên, và bản thân cũng có 3 thành phần chính:

  • Producer: Thành phần tạo ra các công việc (job) và ném chúng vào queue (hàng đợi).
  • Consumer: Thành phần nhận việc từ queue.
  • Listener: Thành phần lắng nghe các sự kiện diễn ra trong hàng đợi (completed, failed, stalled).

RxJava Legacy (02) - Immutable

Doko

Doko

Administrator
info

Đây là bài viết cũ, ở thời điểm hiện tại RxJava 3 đã ra mắt nhưng concept và các khái niệm cơ bản vẫn còn dùng được. Series gốc có thể tìm thấy tại đây.

Bất biến#

Có 2 vấn đề mà lập trình viên luôn luôn phải giải quyết trong quá trình làm việc:

  • Xử lý vấn đề.
  • Giảm thiểu độ phức tạp của công việc.

Cái thứ nhất thì không phải bàn cãi.

TypeScript + CRA 3 + Absolute Import + Electron

Doko

Doko

Administrator
info

Lưu ý: Ở thời điểm hiện tại, CRA 3.0 đã hỗ trợ absolute import. Ta không cần phải dùng đến craco để import mà có thể dựa vào src/ làm alias gốc.

Kể từ phiên bản Create React App (CRA 2.0), ta đã có thể tạo project với TypeScript mà không cần dùng đến create-react-app-typescript. Và nhờ có Babel 7 với khả năng hỗ trợ TypeScript mạnh, việc migrate sang TypeScript trở nên dễ dàng hơn rất nhiều.

Tuy nhiên...

Rust + GTK on Windows - Getting Started

Doko

Doko

Administrator

rust-gtk

Okay, if you are reading this, you may (probably) have been searching for something like "rust gtk getting started" on Google. Most of them points to another awesome guides such as here.

Rust is an interesting language and I decided to get along with it (after years of working with JavaScript, Java and Dart). I decided to give it a try with desktop UI development, but bumped into toolchain obstacles.

Hướng dẫn viết test ReactJS cho người mới bắt đầu

Doko

Doko

Administrator

react-testing

Các lập trình viên đều biết việc test là rất quan trọng trong quá trình phát triển phần mềm, nhất là với các ứng dụng lớn. Lý do thì rất nhiều:

  • Bạn sẽ có thể làm vỡ, hỏng ứng dụng dù chỉ đổi 1 dòng code.
  • Test thủ công sau mỗi lần sửa là quá phiền.
  • Test giúp cho chúng ta tài liệu hoá các case khó, khoai.
  • Biết viết test giúp cho chúng ta có ưu thế hơn các ứng viên khác khi tìm việc.

Tuy nhiên với nhiều người mới làm quen, việc viết test thực sự khá... lạ. Chúng ta sẽ phải làm việc trong một "môi trường" hoàn toàn mới, có thể là không biết bắt đầu từ đâu, đi như thế nào cho đúng. Có thể chúng ta sẽ mất hàng giờ chỉ để viết một cái test đơn giản chỉ vì viết phát là lỗi lên lỗi xuống. Hoặc cũng có thể chúng ta đã quá quen với việc nhấn F11 để debug cái DOM và console log trình duyệt một cách tiện lợi, còn viết test thì không như vậy.

Nhưng việc gì cũng có cách của nó. Viết test không khó. Và với cách tiếp cận đúng, chúng ta có thể tự tin viết test như thần, kể cả khi mới bắt đầu.

Mục tiêu của bài viết dài hơi này là để các bạn có thể tự viết case test đầu tay của mình. Chúng ta sẽ tạo một ứng dụng nhỏ và viết test cover cho nó. Chúng ta sẽ thảo luận xem: Cái gì nên test và tại sao lại test nó. Chúng ta sẽ dùng các kĩ thuật khác nhau để giúp chúng ta viết test mà không cần phải viết rồi xem thử trên trình duyệt.