Real time Websockets với Action Cable trong Rails 5
Những năm gần đây, khái niệm web thời gian thực được nhắc tới rất nhiều. Nếu quan sát các ứng dụng mạng xã hội, bạn sẽ thấy các bài viết, thông báo, hay khi chat, bạn nhận được thông tin mới rất ảo diệu. Để thực hiện công việc đó, chúng ta có thể sử dụng phương thức HTTP, thực hiện request để lấy ...
Cách tạo URL thân thiện với SEO trong laravel
Trong bài viết này tôi sẽ chia sẻ cho các bạn cách sinh 1 URL thân thiện đối với SEO trong Laravel 5.3. Như chúng ta đã biết. SEO là 1 phần rất quan trọng đối của 1 website để gia tăng lượng người dùng truy cập vào website. Nếu website của bạn có URL thân thiện với SEO thì nó có thể giúp đỡ việc ...
Mô hình đặc trưng cho dòng sản phẩm phần mềm
a) Định nghĩa Đối với sự phát triển không ngừng của công nghệ, thị trường ngày càng mở rộng và yêu cầu của người dùng đối với sản phẩm ngày càng cao thì việc một công ty nhanh chóng đưa ra thị trường một số lượng lớn các sản phẩm với chất lượng cao, giá thành thấp là một thách thức không nhỏ. ...
Test case và Test scenario - Cái nào tốt hơn?
6 năm trước, khi tôi đang làm việc cùng với một MNC tầm trung, tôi đề nghị làm tài liệu test scenario chứ không phải lãng phí thời gian vào cách làm tài liệu một cách đầy đủ, chi tiết hay người ta gọi đó là tạo nên các test case. Mặc dù không ai phản đối ý tưởng nhưng thậm chí cũng không ai chấp ...
Gửi mail trong Laravel 5.3
Gửi mail là một hoạt động rất hữu ích và cần thiết của hầu hết các ứng dụng. Trước đấy để gửi mail việc lựa chọn thư viện và config khá phức tạp. Nhưng hiện nay, Laravel đã cung cấp một API rõ ràng và đơn giản thông qua thư viện phổ biến SwiftMailer với các driver như SMTP, Mailgun, SparkPost, ...
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 ...
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ờ ...
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 để ...
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 ...
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 ...
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ì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 ...
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 ...
Để 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 ...
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. ...
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ì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 ...
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 ...
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 ...
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 ...