Một mô hình hoạt động cho Microservices

Bài viết này không phải là một bài giới thiệu về microservices, nếu cần bạn có thể đọc nó từ tác giả mà nếu ai làm về Java đều biết Fowler - Microservices Mục đích bài viết sẽ giới thiệu một mô hình hoạt động microservices để decompose một monolithic application thành các microservices do đó việc ...

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

Tạo SiriKit Extension đơn giản trên iOS 10

Siri - trợ lý ảo nổi tiếng do Apple phát triển và được giới thiệu lần đầu vào năm 2011. Tuy nhiên đến tận WWDC 2016, Apple mới cho phép các developer tích hợp Siri vào các app tự phát triển thông qua SiriKit. Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo và tích hợp một SiriKit extension đơn ...

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

Simple Form Validation in Reactjs

Đây là hướng dẫn từng bước làm thế nào để validate một form cơ bản trong React. Cài đặt package từ npm và tạo một ứng dụng mới: $ npm install -g create-react-app $ create-react-app react-form-validation-demo Bây giờ hãy chạy ứng dụng: $ cd react-form-validation-demo/ $ npm start Mở ...

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

Xcode UI Testing

Trong bài viết này mình sẽ giới thiệu về Xcode UI Testing và một số lỗi thường gặp khi chạy UI automation. Xcode có thể generate code khi bạn tương tác với ứng dụng của mình. Chúng ta hãy bắt đầu bằng việc tạo một UI Testing target. Nút record lại bị vô hiệu hóa lúc đầu, bởi vì bạn cần phải chạy ...

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

kintone Plug-in: "Lookup destination Automatic Update" Plugin [VI]

kintone Plaform Part 1 - Giải pháp Quản trị dữ liệu không cần lập trình kintone Plaform Part 2 - Sử dụng Plugin để mở rộng chức năng kintone Plaform Part 3 - Hướng dẫn phát triển Plug-in kintone Plaform Part 4 - Plug-ins list Phần này mình sẽ giới thiệu đến mọi người một Plugin mới. Tuy ...

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

[Phần 1] Tìm hiểu các tính năng mới trong Laravel 5.5

Chào các bạn, Như các bạn đã biết, Laravel vừa released version 5.5 (LTS), do đó trong bài viết hôm nay mình xin giới thiệu một vài tính năng mới trong Laravel 5.5. 1. Whoops Package Link: https://packagist.org/packages/filp/whoops Nếu bạn nào đã làm việc với Laravel từ version 4.x thì hẳn đã ...

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

Algebraic Data Type trong Kotlin và Swift

Introduction Algebraic Data Type (Kiểu dữ liệu đại số) là một khái niệm lạ lẫm đối với các lập trình viên thuộc kiểu lập trình mệnh lệnh. Trong lập trình hàm thì đây là 1 trong những tính năng được sử dụng rất phổ biến và thường được dùng để implement những cấu trúc dữ liệu phức tạp hoặc để xử lý ...

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

Automation Test cho iOS. Part 1

Đối với công việc lâp trình phần mềm thì Unit Test và UI Test là những việc vô cùng quan trọng trong việc bảo đảm 1 phần mềm đạt chất lượng tốt. Bài viết này, mình chỉ tập trung chủ yếu vào UI Test. Với lập trình viện iOS thì việc viết UI Test đã có sự support từ Apple với XCTest framework. Nhưng ...

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

Build application với vue-cli

Dạo này làm nhiều backend quá đầu óc mình đã bị quay cuồng nên giờ đổi gió sang frontend cho nó đỡ buồn. Lướt qua 1 lượt các blog về frontend thì nhận ra rằng thời thế thay đổi chóng mặt quá. 1 loạt những framework cho frontend đã phát triển vù vù. Tại thời điểm mình biết thì có mấy framework mình ...

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

Basic ReactJs (P2)

Đáp án của câu hỏi phần 1 là b, d, c, e, a render() thường chứa những event listener. VD scream() { alert('AAAAAAAAHHH!!!!!'); } render() { return <button onClick={this.scream}>AAAAAH!</button>; } onClick={this.scream} sẽ bắt sự kiện click vào button. Khi user ...

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

PhantomJS là gì?

Theo Wikipedia, headless browser là một trình duyệt web không có giao diện đồ họa người. Các headless browser cung cấp tương tác tự động một trang web trong một môi trường giống như các trình duyệt web phổ biến khác, nhưng nó được thực hiện thông qua giao diện dòng lệnh hoặc qua một mạng truyền ...

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

Upload file using Net::HTTP in Ruby

First, you'll need to know how the browser work on uploading files or how the HTTP request looks like when sending as upload files request. To upload files in the browser, we use a form like this: < form enctype = " multipart/form-data " action = " http://localhost:3000/ " ...

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

JVA đi học swift

Với một developer đã học một ngôn ngữ nào đó rồi thì việc học thêm một ngôn ngữ mới sẽ như thế nào? Hiện tại swift đang là ngôn ngữ khá được ưa chuộng, với một Java developer mình muốn chia sẻ cảm nhận của bản thân khi học swift sẽ như thế nào. Trong swift không thấy cái dấu ; nào cả :v Việc ...

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

Toán tử === trong Ruby

Gần đây công việc của tôi hay dùng tới với module Enumerable của Ruby. Và tôi cố gắng cân bằng giữa việc học các API phổ biến nhất (mà có thể bạn đã biết) với các API ít phổ biến hơn nhưng rất hữu ích. Qua đó tôi cũng học được rất nhiều điều thú vị. Sau đây tôi sẽ chia sẻ một trong số những điều mà ...

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

Điểm nhấn của AngularJS-P1

Chao! (Tiếng Ý, không biết có đúng không nữa) Một tháng nữa lại về với hàng tá bài Report được post lên trên Viblo. Thú thực là mấy hôm nay mình đang loay hoay, tìm ra một chủ đề thiệt hay để viết report nhưng mãi vẫn không thấy được vấn đề chi đẹp-độc-lạ cả. Nên tới ngày ni, mình quyết định chia ...

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

Processes vs Threads

Process và thread là 2 khái niệm khá phổ biến và gây nhập nhằng cho nhiều developer. Hôm nay mình sẽ phân tích rõ hơn về bản chất của 2 khái niệm này. Một process là một thực thể thực thi của một ứng dụng. Điều này có nghĩa là gi? Như thế này nhé, khi bạn kích đúp chuột vào biểu tượng Microsoft ...

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

Golang - ngôn ngữ lập trình mã nguồn mở giúp xây dựng ứng dụng dễ dàng, đáng tin cậy và hiệu quả.

Có một bài toán đau đầu dành cho các công ty là khi họ đã lên tới tầng scale cho một dự án. Thời gian đầu thì sẽ là optimize code, database, scale phần cứng… nhưng khi tới một lượng user cực lớn thì vấn đề đó sẽ càng ngày càng nan giải. Và giải pháp của một số công ty đó là chọn Go. Nó được ...

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

So sánh giữa Capistrano và Mina.

Sau khi phát triển 1 ứng dụng Rails, việc tiếp theo ta cần làm là deploy nó lên server cho tất cả mọi người cùng truy cập. Bài trước mình đã hướng dẫn các bạn deploy bằng Capistrano. Tuy nhiên, việc deploy bằng Capistrano khá tốn kém thời gian (Mình sẽ phân tích rõ phía dưới.), và mình đi tìm một ...

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

Immutability in React.js

Nếu đã từng tìm hiểu về " Functional Programing ", hẳn bạn đã từng nghe thấy thuật ngữ " Immutability - Tính bất biến ". Đây là 1 trong những tính chất quan trọng nhất của Functional Programing . 1 đối tượng bất biến là 1 đối tượng không thể thay đổi trạng thái sau khi đã được khởi tạo ...

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

How and when override equals() and hashCode()

1. Giới thiệu Chào các bạn hôm nay chúng ta sẽ tìm hiểu một chủ đề không mới lắm, nhưng vẫn luôn là quan trọng cho những ai vẫn còn đang mơ hồ về hai method hashcode() và equals() trong java. Đồng thời tìm hiểu và mục đính sử dụng của hai hàm đó trong Hash collections. Như chúng ta biết thì tất ...

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