Sự khác nhau giữa Unit, Integration và Functional Testing

Đối với bất kỳ ứng dụng phần mềm nào, cả Unit Test và Integration test thì đều rất quan trọng khi mỗi loại sử dụng các quy trình khác nhau để test các ứng dụng phần mềm. Nhưng một hoặc cả hai không thể thay thế cho kiểm thử chức năng (Functional Testing). Trong bài viết này, chúng ta sẽ hiểu ...

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

Android Studio Build chậm - Cách khắc phục

Chắc chắn các bạn đã quen với việc phải chờ một thời gian lúc run app rồi. Chẳng ai lập trình android mà lại không run app cả. =)) Câu chuyện mình muốn chia sẻ là cái thời gian phải chờ đợi đó. Bạn cũng biết đó là thời gian build app của Android Studio. Với mỗi app khác nhau thì thời gian chờ ...

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

Window Manager trong Android

Bạn nào sử dụng Iphone chắc chắn sẽ biết đến nút Home ảo. Hoặc bạn nào không dùng Iphone thì hãy để ý đến ứng dụng Messenger của Facebook cũng có view nổi có thể di chuyển theo ý muốn của người sử dụng. Ngày hôm nay nhận dịp đang phải tìm hiểu về vấn đề này nên mình xin hướng dẫn các bạn cách để ...

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

Memoization, Function level caching in JavaScript

Definition Memoization is an optimization technique primarily used to speedup programs by storing the results of expensive function calls, and serving the cached result when the same function is called again. It derived from the latin world Memorendum which meant 'to be remembered'. Why ...

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

Một số lệnh giúp làm việc hiệu quả hơn với Git

Git là một hệ thống quản lý phiên bản mã nguồn mạnh mẽ. Thông thường thì bạn chỉ sử dụng những lệnh cơ bản của git trong khi có nhiều lệnh hay ho và rất tiện lợi mà có thể bạn chưa biết để sử dụng nó.Bài viết này mình sẽ chia sẽ một số lệnh có thể giúp bạn làm việc hiệu quả hơn với git. 1. Git ...

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

Giới thiệu: EasyAnimation, đơn giản hóa animation trong iOS

Hàm "UIView.animateWithDuration:animations:" rất quen thuộc và dễ sử dụng để tạo các chuyển động của view. Nhược điểm của nó là không thao tác được với layer, và không get được đối tượng để handle về sau. EasyAnimation đã giải quyết chuyện đó, giúp mọi chuyện với animation lại càng dễ dang ...

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

Tìm hiểu mã nguồn mở PHP CMS Drupal hướng dẫn tìm hiểu Block và Regions, Độ linh động trong hiển thị - bài 7

Tiếp theo loạt bài viết về Drupal : Loạt bài đều nói về Drupal 8 nhé các bạn. Bài 1 Bài 2 Bài 3 Bài 4 Bài 5 Bài 6 Tổng quan Drupal chia một trang thành nhiều khu vực (regions). Region trong Drupal ám chỉ các khu vực trên website, chúng được ghép lại để tạo thành một website ...

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

Visual Format Language

Đây là một cách AutoLayout bằng code, thay vì phải AutoLayout từng Constraint một. Ta có thể AuLayout cùng lúc nhiều Constraint. Cùng xem đoạn code example sau: let view1 = UIView() view1.backgroundColor = UIColor.red self.view.addSubview(view1) view1.translatesAutoresizingMaskI ...

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

Để khởi đầu dự án thuận lợi - Cần hỏi gì? (Phần 2)

Như đã đề cập ở phần 1, mỗi dự án khởi đầu đều cần đưa ra rất nhiều câu hỏi. Các câu hỏi này đóng vai trò rất quan trọng trong việc làm sáng tỏ insight của khách hàng cũng như các member làm việc trong dự án đó. Phần 1 đã đưa ra 5 câu hỏi thuộc nhóm "Tại sao?" (5 Why), đó là các câu hỏi liên quan ...

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

Làm quen với Docker Compose

Compose là công cụ giúp định nghĩa và khởi chạy multi-container Docker applications. Trong Compose, chúng ta sử dụng Compose file để cấu hình application’s services. Chỉ với một câu lệnh, lập trình viên có thể dễ dàng create và start toàn bộ các services phục vụ cho việc chạy ứng dụng. ...

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

Circle CI - (part 1)

Circle CI CircleCI gives web developers powerful Continuous Integration and Deployment with easy setup and maintenance. Simply connect your GitHub account and CircleCI can run tests on your Ruby, Python, Node.js, Java, and PHP projects. CircleCI support authentication with GitHub and Bitbucket. ...

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

Tìm hiểu về các loại Test Level

Nội dung bài viết này được dịch từ Chương 2. Testing throughout the software life cycle trong cuốn Foundations Of Software testing (ISTQB certification) của các tác giả Rex Black, Erik Van Veenendaal, Dorothy Graham hi vọng sẽ giúp mọi người hiểu thêm về các loại Test Level cũng như áp dụng một ...

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

Upload và play file mp3 với Google Drive SDK

1. Enable Google Drive API Truy cập đến link này , sau đó tạo hoặc chọn 1 project có sẵn và click continue Ở trang Add credentials to your project , chọn Cancel . Ở trang Credential , chọn Tab OAuth consent screen , chọn Email address và Product name . Nhấn Save . Qua lại Tab ...

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

Kiểm thử khả năng mở rộng - Scalability Testing

Việc quy hoạch và phát triển thận trọng là cần thiết cho bất kỳ dự án phát triển ứng dụng. Tuy nhiên, để làm cho một ứng dụng thực sự khả năng mở rộng, điều quan trọng là cách chặt chẽ và thường xuyên kiểm tra nó cho vấn đề khả năng mở rộng. 1. Khái niệm Scalability testing (Kiểm thử khả năng ...

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

Laravel và những điều cần biết - phần 2

Giới thiệu Tiếp theo loạt bài viết về Laravel. Hôm nay chúng ta sẽ đi tìm hiểu: Mail Schedule Nội dung 1. Mail Laravel cũng cấp một API với trình điều khiển cho SMTP, Mailgun, SparkPost, Amazon SES, sendmail giúp việc gửi mail nhanh chóng và dễ dàng hơn. Chuẩn bị Để có thể gửi ...

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

Ứng dụng Support Vector Machine trong bài toán phân loại hoa

Xin chào các bạn, mình lại trở lại rồi đây. Tiếp tục với loạt bài viết về Machine Learning trong bài trước mình đã giới thiệu với các bạn một cách tổng quan nhất về Support Vector Machine - một phương pháp vô cùng hiệu quả trong bài toán phân lớp dữ liệu. Tuy nhiên nếu đọc lý thuyết nhiều ...

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

Một vòng Laravel (Part 2)

Nối tiếp lọat bài về Một vòng laravel, chúng ta sẽ đi tiếp các nội dung còn lại, bao gồm: Localization Authorization (Access Control List) Mail Schedule Event Job Inversion Of Control Service Provider Contracts Facade Localization Một tính năng khá hay mà laravel hỗ trợ, ...

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

Các phương pháp thiết kế hướng đối tượng (SOLID)

Giới thiệu SOLID - 5 nguyên lý của thiết kế hướng đối tượng S – Single-responsiblity principle (nguyên lý đơn nhiệm) O – Open-closed principle (nguyên lý mở rộng - hạn chế) L – Liskov substitution principle (nguyên lý thay thế Liskov) I – Interface segregation principle (nguyên lý giao ...

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

Getting Started With RxSwift and RxCocoa

Getting started with rxswift and rxcocoa What is rxswift and rxcocoa RxSwift và RxCocoa là 1 phần của ReactiveX (thường gọi là “Rx”) được sử dụng ở rất nhiều ngôn ngữ và platform khác nhau. ReactiveX bắt nguồn từ .Net/C#, sau đó nó phát triển mạnh mẽ với Ruby-ists, ...

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

Cách khắc phục CSS object-fit không hoạt động trên IE

Thuộc tính object-fit xác định một element đáp ứng với height và awidth của content box chứa nó. Thuộc tính này nằm mục định nhúng các ảnh, video và các loại phương tiện có thể nhúng được khác kết nối với thuộc tính object-position. object-fit có thể được set với một trong các 5 giá trị sau: ...

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