
Dependency injection
Bài viết này bàn về kĩ thuật Dependency Injection, có nhiều thuật ngữ trừu tượng và khá phức tạp. Trước khi đọc bài viết này, bạn nên tìm hiểu một số principle sau trong thiết kế phần mềm: IoC, Inversion of control (hiểu nôm na là kĩ thuật đảo ngược) https://en.wikipedia.org/wiki/Inversion_of_co ...

Tìm hiểu về testNG framework (Phần 2)
Trong bất kỳ dự án nào, sẽ đến lúc bạn cần phải thực hiện rất nhiều trường hợp thử nghiệm để có thể đảm bảo dự án đi đến hồi kết. Chạy một tập hợp các test case với nhau được gọi là thực hiện một Test suite. Các trường hợp thử nghiệm có thể phụ thuộc lẫn nhau hoặc có thể phải được thực hiện theo ...

Truyền function cho setState thay vì truyền object
Component trong React là một thành phần độc lập, tái sử dụng được và chúng thường mang trạng thái riêng của chính mình, gọi là state. Khi muốn thay đổi hành vi hay hiển thị của component, chúng ta phải thay đổi state của chúng. Vậy làm thế nào để update state của một component? Trong React, mỗi ...

Tìm hiểu về Bot Framework
Đầu năm 2016, microsoft đã giới thiệu về Bot framework. Một công cụ sẽ giúp các nhà phát triển những chatbot cho riêng mình. Microsoft cho biết, trong tương lai con người sẽ nói chuyện với chatbot. Vậy chatbot là gì ? tại sao chúng ta sẽ nói chuyện với chatbot ? Bot là gì? Chúng ta hiểu đơn ...

Sending SMS from Web with Express and Nexmo
Short Message Service (SMS) không phải là một công nghệ mới, nó đã được sử dụng từ rất lâu trước cả khi World Wide Web ra đời. Hiện nay vói API bạn có thể dễ dàng tích hợp SMS vào website. Với SMS API bạn có thể xây dựng nhiều sản phẩm và dịch vụ như xác thực người dùng, cảnh báo, thông báo, công ...

[Linux]9 lệnh hữu ích để lấy thông tin CPU trên Linux
1. Lấy thông tin CPU bằng cat Có thể xem thông tin của của CPU bằng cách xem nội dùng của file /proc/cpuinfo bằng lệnh sau: $ cat /proc/cpuinfo Linux CPU Information processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 69 model name : Intel(R) Core(TM) i5-4210U CPU @ ...

Continuous Integration with Jenkins - Bài 3: Jenkins integration with GIT
Chào các bạn, chúng ta lại gặp nhau trong loạt bài tìm hiểu về Tích Hợp và Bàn Giao Liên Tục trong phát triển phần mềm với Jenkins (Continuous Integration with Jenkins). Ở bài số 3 này, mình sẽ hướng dẫn các bạn tích hợp Git với Jenkins. Kịch bản sẽ là Một team Java làm phải phát triển một sản ...

Mockito từ A đến Z
Bài viết này cung cấp một hướng dẫn toàn diện để inject mock và mock method, và bao gồm cả method void. Hầu hết các class mà chúng ta sử dụng đều có dependency, và đôi khi, các method ủy thác một số công việc cho các method khác trong các class khác. Các class này là sự phụ thuộc của chúng ta. ...

Tìm hiểu về PolymerJS
Polymer JS là một thư viện Javascript được tạo bởi ông lớn Google cho phép tái sử dụng các phần tử HTML để xây dựng ứng dụng với các components. Polymer cung cấp cơ bản nhiều thư viện với các componens như menu, toolbar, map,… Đây là một thư viện mã nguồn mở được Google realease lần đầu ...

Node.js Streams: Everything you need to know
Streams are Node's best and most misunderstood idea -Dominic Tarr Stream là collections của data, giống như là mảng hay string.Sự khác biệt là stream tất cả mọi thứ không cùng tồn tại ở một thời điểm, và nó không phù hợp để lưu tất cả trong bộ nhớ.Chính đặc điểm này khiến stream thực sự giàu ...

Sử dụng Grunt trong ASP.NET Core
Grunt là một JavaScript task runner nhằm mục đích tự động hóa script minification, biên dịch TypeScript, đảm bảo chất lượng code với tools "lint", CSS pre-processors, và bất kì công việc gì lập đi lập lại cần để hỗ trợ quá trình phát triền phía client. Trong bài này tôi sẽ giới thiệu đến các bạn ...

Ước tính chi phí và độ lớn của dự án theo cách của scrum
Trước tiên tôi xin lưu ý cho các bạn rằng bài viết này chỉ ra cách thức tính toán chi phí theo cách của Scrum với giả định bạn đã có sẵn một Scrum Team. Công thức này chỉ mang tính tương đối trong dự án, tất nhiên trong giai đoạn phát triển phần mềm sẽ có nhiều yếu tố ảnh hưởng đến quá trình và kế ...

Tạo 1 chrome extention của riêng bạn? Tại sao không?
Chrome là một trình duyệt đang được sử dụng phổ biến hiện nay. Có đến hơn 75% người dùng sử dụng trình duyệt Chrome (theo thống kê ở W3School https://www.w3schools.com/Browsers/default.asp). Và chắc hẳn khi sử dụng Chrome thì bạn cũng đã cài đặt ít nhất 1 extention (có thể là extention chặn quảng ...

Làm chủ Chrome Developer Tools
Bài dịch từ trang Medium Bạn có thể đã quen thuộc với các tính năng cơ bản của Chrome Developer Tools: DOM inspector, styles panel và JavaScript console. Nhưng có một số tính năng ít được biết đến có thể cải thiện đáng kể quá trình fix bug hoặc quy trình viết app của bạn. Chrome đi kèm với ...

Refactoring - How to do with Large Class?
Như phần trước tôi đã trình bày Refactoring là gì, các khái niệm liên quan và khi nào cần phải Refactoring. Trong bài viết này tôi sẽ trình bày các phương pháp có thể áp dụng để refactor. Tôi sẽ trình bày trong phần này những thứ mà khiến cho code trở nên không được clean và các phương pháp mà ...

SQL trong PHP
Giới Thiệu Ở bài này mình xin giới thiệu về SQL cũng như một số hàm của sql trong PHP, đầu tiên ta đi vào tìm hiểu sql là gì. Định Nghĩa: SQL (Structured Query Language) là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ. SQL gồm 2 ...

Node.js in Containers Using Docker
Chào các bạn, ở bài viết hôm nay mình sẽ hướng dẫn các bạn cách build một ứng dụng Node.js sử dụng Docker Container. Đầu tiên mình sẽ hướng dẫn các bạn tạo một ứng dụng Node.js đơn giản, sau đó chúng ta sẽ build một Docker image cho ứng dụng này, cuối cùng là chạy image vừa build trên container. ...

Try in Rails
Trong Rails, try() cho phép bạn gọi các method trên một đối tượng mà không phải lo lắng về khả năng method của đối tượng đó đã được định nghĩa hay chưa và cũng không cần phải bắt exception cho nó. Mình thấy trong thực tế try() được dùng rất nhiều bởi sự thuận tiện của nó.Vì vậy, hôm nay mình muốn ...

Browser test trong Laravel
Unit test là 1 bước rất quan trọng trong quá trình phát triển sản phẩm. Với ngôn ngữ PHP, PhpUnit được tích hợp trong Laravel cùng với những method được viết sẵn phục vụ chúng ta dễ dàng test dự án hơn. Laravel giúp chúng ta test dự án với 4 mục như sau: HTTP Browser Database Mocking ...

Custom view trong android
View là một đối tượng được sử dụng để xây dựng giao diện cho ứng dụng android. Android đã xậy dựng một hệ thống View và các thư viện support rất mạnh, cung cấp cho các lập trình viên một hệ thống các component đa dạng cho việc phát triển ứng dụng. Không những vậy hiện nay các thư viện open source ...