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

Understanding android input event

Cho dù bạn làm bất cứ ứng dụng android nào thì đều phục vụ 1 nhóm đối tượng người dùng nào đó. Và phần lớn người sử dụng tương tác với ứng dụng của bạn là thông qua 1 loạt các action click button, swipe left/right, fling ... tôi gọi chung các action đầu vào này là touch event. Về cơ bản mọi touch ...

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

Waterfall vs Agile vs Scrum - Part 2: Waterfall là gì?

Other posts Phần 1: Agile là gì? Phần 2: Waterfall là gì? Phần 3: Scrum là gì? Phần 4: So sánh Agile, Scrum và Water? Con đường nào phù hợp với bạn Phần 5: Agile có thực hiện phù hợp với outsource và các dự án offshore Phần 6: Kết hợp mô hình waterfall và scrum để thích nghi với các dự án ...

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

Vài vấn đề về deadline trong SCRUM''s Sprint

Chúng ta đều biết rằng deadline sẽ điều khiển hành vi. Đó là lý do tại sao trong Scrum, và các phương pháp Agile khác, chúng ta timebox việc phát triển với những deadline (Sprint). Nó sẽ chỉ rõ cho chúng ta: Tập trung vào những thứ quan trọng và đảm bảo rằng nó được thực hiện đúng. Về bản chất điều ...

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

[Xamarin Form] How to create PageView

1. Tổng quan Như các bạn đã biết, Xamarin Form có một sức mạnh lớn khi giúp chúng ta có thể code một lần, nhưng chaỵ được trên nhiều nền tảng. Tuy nhiên, chỉ dựa vào những UI Control default mà nó cung cấp thì không đủ để làm, ví dụ như trường hợp này, mình muốn tạo ra môt màn hình mà có nhiều ...

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

Rack basics

I. Lời nói đầu: Trong hệ thống Ruby web, Rack là một thành phần không thể thiếu. Khi code Rails chắc hẳn bạn đã từng nghe tới Rack - aka Web server interface . Tò mò search thử trên trang chủ của nó thì đập thẳng vào mặt cái mô tả: Rack provides a minimal interface between webservers ...

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

FuelPHP: Làm việc hiệu quả với cơ sở dữ liệu thông qua migrations, generate migration và DBUtil

Migrations giúp quản lý, control database một cách dễ dàng. Bạn có thể sử dụng migration để chỉnh sửa database cả về cấu trúc lẫn dữ liệu. Khi sử dụng migration để thay đổi database sẽ giúp cho các dev trong cùng dự án hay trong quá trình maintain có thể tường minh về database. Khi bạn là một dev ...

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

Một số kiến thức về Angular 2 router - reuse component với RouteReuseStrategy

Trong quá trình xây dựng single-app, đôi khi ta gặp phải tình huống sau: Ta cần giữ lại trạng thái của trang trước sau khi quay về từ một trang nào đó. Ví dụ: Khi từ trang tìm kiếm, ta mong muốn sau khi xem một kết quả và quay lại, trang đó vẫn giữ lại các kết quả tìm kiếm. Khi từ trang index, ...

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