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ác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

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ác giả: Trịnh Tiến Mạnh viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Hoàng Hải Đăng viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

[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 @ ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Trịnh Tiến Mạnh viết 15:33 ngày 12/08/2018

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ác giả: Trịnh Tiến Mạnh viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Bùi Văn Nam viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Trịnh Tiến Mạnh viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Bùi Văn Nam viết 15:33 ngày 12/08/2018

Ướ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ác giả: Hoàng Hải Đăng viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Hoàng Hải Đăng viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Trịnh Tiến Mạnh viết 15:33 ngày 12/08/2018

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à ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Trịnh Tiến Mạnh viết 15:33 ngày 12/08/2018

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. ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Bùi Văn Nam viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018

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 ...

Tác giả: Tạ Quốc Bảo viết 15:33 ngày 12/08/2018