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ạ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 ...
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ở ...
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 ...
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 ...
[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 đã ...
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ý ...
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 ...
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 ...
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 ...
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 ...
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/ " ...
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 ...
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à ...
Đ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 ...
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 ...
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 ...
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 ...
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 ...
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 ...