7 pattern để cấu trúc lại ActiveRecord Models

Khi team muốn nâng cao chất lượng ứng dụng Rails, chúng ta phải tìm cách để loại bỏ thói quen làm model trở lên Fat. Fat models là gây ra các vấn đề về bảo trì trong các ứng dụng lớn. Vì sao Model lại Fat ? 1. Áp dụng sai SRP Chỉ gia tăng chứ không tập hợp các controllers vào theo miền ...

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

Sử dụng gem Pundit trong ứng dụng rails

Khi được giao cho làm một chức năng liên quan đến phân quyền. Mình bị comment và được suggest sử dụng Pundit. Lúc đấy cũng thắc mắc tự hỏi, sao lại dùng nó làm gì nhỉ, dùng thì được lợi ích gì chứ? Cũng từ lúc ấy, mình mới bắt đầu tìm hiểu về Pundit là gì? Dùng như thế nào và tại sao lại nên dùng ...

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

Unit test Nodejs project with mocha, chai, supertest and sinon

Hiện nay việc viết unit test là một phần không thể thiếu trong mỗi dự án. Điều đó cũng cần thiết khi chúng ta thực hiện deploy với hệ thống CI/CD. Hôm nay mình sẽ giới thiệu qua việc viết test api với cho Nodejs project với mocha, chai, supertest và sinonjs. Getting started Trước tiên cần chuẩn ...

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

Một số thủ thuật khi làm việc với Chrome DevTools

1. CSS Coverage Tính năng này khá hữu ích. Nó giúp chúng ta nhận biết được đoạn css hay js nào trong app mà chúng ta không dùng đến từ đó chúng ta có thể xóa block css đó đi để làm nhẹ file, 1 phần nào đó giúp tăng performance. Lưu ý: Đối với những file JavaScript thì chúng ta cũng làm ...

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

JPA tut

Table Of Contents Introduction Project setup Basics 3.1. EntityManager and Persistence Unit 3.2. Transactions 3.3. Tables Inheritance Relationships 5.1. OneToOne 5.2. OneToMany 5.3. ManyToMany 5.4. Embedded / ElementCollection Data Types and Converters Criteria API Sequences ...

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

Facial Recognition System: Face Alignment

In my last post I've shown how to identify the face from the given image or video. In this post we are going to talk about "Face Alignment" which is a normalization technique, often used to improve the accuracy of face recognition algorithms, including deep learning models. A process of facial ...

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

Tìm hiểu về testNG framework (Phần 4)

A. TestNG Parameters Mọi người đều biết tầm quan trọng của Parameterization trong thử nghiệm và trong kiểm thử tự động hóa. Nó cho phép chúng ta tự động chạy một trường hợp thử nghiệm nhiều lần với các giá trị đầu vào và xác nhận khác nhau. Vì Selenium Webdriver là một khuôn khổ thử nghiệm tự ...

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

Optional trong Swift

Chắc hẳn các bạn đã được nghe rất nhiều từ những lập trình viên Swift nói về sự tuyệt vời của Optional, một trong những đặc điểm cơ bản của ngôn ngữ lập trình Swift. Optional là một khái niệm mới trong ngôn ngữ lập trình Swift. Với việc sử dụng optional, ngôn ngữ Swift được Apple giới thiệu là ngôn ...

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

ASP.NET MVC Tip #8 – Tạo ASP.NET MVC GridView Helper Method

Trong thủ thuật này, bạn sẽ tìm hiểu làm thế nào để mở rộng ASP.NET MVC framework với một phương pháp helper mới sẽ hiển thị một bảng HTML của dữ liệu trong cơ sở dữ liệu. Hiện nay, framework ASP.NET MVC không bao gồm bất cứ điều gì đó là tương đương trực tiếp đến ASP.NET Web Forms GridView ...

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

Grape api rails .

Như các bạn đã biết hiện nay api là rất phổ biến trong lĩnh vực lập trình website . Hiểu nôn na rằng nó cho phép phần mềm này dao tiếp và tận dụng phần mềm khác một cách linh hoạt . Bài viết này tôi sẽ trình bày xây dựng một ứng dụng api đơn giản với rails và sử dụng gem "grape" . Một giao diện ...

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

Tiến hành kiểm thử bảo mật cho các ứng dụng Web

Các ứng dụng web cho các dịch vụ khác nhau đã nhận được sự tin tưởng của khách hàng qua một thời gian dài. Hàng triệu triệu dữ liệu được tải và chia sẻ giữa các nền tảng khi mọi người cho rằng các giao dịch được giám sát an toàn. Tuy nhiên, khi các cuộc tấn công trên mạng tiếp tục gây ra ...

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

Top 20 SQL Management Tools (Phần 2)

11) Free SQL Performance Monitoring Tool: Công cụ kiểm tra hiệu suất SQL miễn phí được phát triển bởi ManageEngine. Nó cho phép người dùng để giữ một mắt về hiệu suất SQL Server! Công cụ này cũng giúp người dùng giám sát các máy chủ MS SQL để có hiệu suất và tính khả dụng. Nó có thể sử dụng với ...

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

20 câu hỏi phỏng vấn về mobile testing

1) Giải thích sự khác biệt giữa kiểm thử Web và kiểm thử WAP là gì? Kiểm thử WAP: Đây là kiểm thử WAP (Wireless Application Protocol) được sử dụng trong các ứng dụng mạng. Kiểm thử Web: Nó liên quan đến việc kiểm thử các ứng dụng web như website và portal. 2) Liệt kê một số công cụ kiểm ...

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

Phát triển Android hiện đại với Kotlin (Phần 1)

Thật khó để tìm thấy một dự án bao gồm tất cả những công nghệ mới mẻ nhất trong phát triển Android. Trong bài này, chúng ta sẽ được tìm hiểu những điều mới mẻ đó: 0. Android Studio 3, beta 1 1. Kotlin language 2. Build Variants 3. ConstraintLayout 4. Data binding library 5. MVVM ...

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

ObjectBox database

ObjextBox là cơ sở dữ liệu hướng đối tượng( object-oriented database) đơn giản, siêu nhanh trên mobile được hỗ trợ mạnh mẽ. ObjectBox database được sử dụng thay thế hoàn toàn SQLite trên mobile và nó cũng phù hợp với IoT. ObjectBox được tối ưu hóa hiệu suất và thiết kế giúp developers có thời gian ...

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

Rails''s Security Checklist

Trong việc xây dựng ứng dụng bằng Rails, Security đóng một vai trò hết sức quan trọng nhưng các lập trình viên vẫn chưa chú trọng những vấn đề liên quan đến nó một cách nghiêm túc. Trong bài viết này mình sẽ giới thiệu những khía cạnh khác nhau để nâng cao tính an toàn cho ứng dụng của bạn. ...

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

Những câu lệnh cơ bản về SQL ( Phần 2)

Như bài viết trước mình đã giới thiệu về các câu lệnh SELECT , hôm nay mình sẽ giới thiệu cho các bạn các câu lệnh cơ bản tiếp theo. Câu hỏi đặt ra khi làm dự án thật như sau: Thêm bản ghi để hiển thị ra màn hình list. Hoặc chèn thông tin vào các cột trống của 1 hay nhiều bản ghi. Update ...

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

Tạo nhiều version chất lượng cho video như Youtube mà không làm ảnh hưởng performance của web-app

Trong các loại assets của web-app thì video là một trong những loại asests nặng và chiếm nhiều băng thông nhất. Vì vậy, để đáp ứng được nhiều người dùng hơn thì tạo nhiều version chất lượng cho video như cách Youtube đã làm là một điều cần thiết. Nhưng việc xử lý video thường tốn nhiều thời gian và ...

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

Vài thứ thú vị với Github

Bài dịch từ trang Medium Tôi sẽ bắt đầu với cái mà tôi nghĩ hầu hết mọi người đều biết (mặc dù tôi không biết cho đến một tuần trước). Khi bạn đang ở trong GitHub, nhìn vào một tệp (bất kỳ tệp văn bản nào, bất kỳ repository nào), có một cái bút chì nhỏ ở trên cùng bên phải. Nếu bạn nhấp vào ...

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

Làm thế nào để tiếp cận hiệu quả Pentest trong kiểm thử bảo mật ứng dụng Web (Phần I)

Như chúng ta thấy yêu cầu đối với một tester càng ngày càng cao, bên cạnh việc kiểm thử chức năng dưới vai trò người dùng đầu cuối, nhiều dự án đã và đang đòi hỏi các tester cần nhiều kỹ hơn test chuyên sâu vào các vấn đề phức tạp hơn như kiểm thử bảo mật, dữ liệu, ..... Một trong những chủ đề kiểm ...

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