9 thủ thuật đơn giản giúp code của bạn chuyên nghiệp hơn

Tôi đã viết code được 20 năm. Trong thời gian đó, tôi đã làm việc với 17 nhóm phát triển các ngôn ngữ khác nhau để xây dựng hàng trăm dự án. Chúng bao gồm tất cả mọi thứ từ một trang blog đơn giản, tới các API hỗ trợ 3.000 request /giây, đến các ứng dụng bán chạy nhất. Từ những kinh nghiệm ...

Tác giả: Vũ Văn Thanh viết 18:50 ngày 22/09/2018

Ngân sách cho Cloud đạt 1,3 ngàn tỷ đô la vào năm 2020

Hơn 1.3 nghìn tỷ đô la ngân sách chi tiêu dành cho CNTT sẽ bị chi phối trực tiếp hoặc gián tiếp bởi sự chuyển giao sang cloud vào năm 2022, theo Gartner. Có vẻ như đây là giai đoạn chuyển đổi quan trọng đối với các nhà cung cấp cơ sở hạ tầng truyền thống, khi ngày càng có nhiều ...

Tác giả: Bùi Văn Nam viết 18:50 ngày 22/09/2018

Java XML

PHP XML là gì? XML là một ngôn ngữ dựa trên văn bản đơn giản được thiết kế để lưu trữ và truyền dữ liệu ở định dạng văn bản thuần túy. Nó là viết tắt của Extensible Markup Language. Sau đây là một số tính năng nổi bật của XML. XML là một ngôn ngữ đánh dấu. XML là một ...

Tác giả: Trần Trung Dũng viết 18:50 ngày 22/09/2018

Java DOM Parser – đọc, tạo, sửa tài liệu XML

PHP Mô hình đối tượng tài liệu (DOM) là một đề xuất chính thức của World Wide Web Consortium (W3C). Nó định nghĩa một giao diện cho phép các chương trình truy cập và cập nhật kiểu dáng, cấu trúc và nội dung của các tài liệu XML. Các trình phân tích cú pháp XML hỗ trợ DOM thực hiện ...

Tác giả: Tạ Quốc Bảo viết 18:50 ngày 22/09/2018

Tìm hiểu về Activity Recognition Transition API trong Android

Hôm nay tình cờ trong lúc lượn lờ trên mạng mình bắt gặp chủ đề khá hay muốn chia sẻ với các bạn đó là Activity Recognition Transition API trong Android. Đã bao giờ các bạn tự hỏi khi chúng ta sử dụng các ứng dụng sức khỏe như là khi chúng ta đi bộ thì ứng dụng sẽ tự động đếm bước chân hoặc khi ...

Tác giả: Trịnh Tiến Mạnh viết 08:30 ngày 22/09/2018

Sublime Merge - Git client, from the makers of Sublime Text

Chắc hẳn mọi người đã quá quen thuộc với trình soạn thảo mã nguồn đa nền tảng Sublime Text. Nhưng đây chỉ đơn thuần là 1 trình soạn thảo text và bạn muốn có thêm các chức năng giống với ide thì phải cài thêm các package của bên thứ 3. Và điển hình với việc sử dụng git để quản lý code. Đa số thường ...

Tác giả: Bùi Văn Nam viết 08:30 ngày 22/09/2018

Test all Reactive Native views, Logic and Asynchronous Processing with jest

Because the test process was quite heavy (as I had expected) so, I am about to write an article on React Native's overall test. Though I am talking about React Native, but it is just the same as React (except the View part). We also need to have some knowledge redux and redux - saga to do ...

Tác giả: Bùi Văn Nam viết 08:30 ngày 22/09/2018

Android Interface Definition Language (AIDL)

Đã bao giờ các bạn ứng dụng của bạn có thể giao tiếp (gửi/nhận) dữ liệu từ ứng dụng khác hay không? Bạn có thể sử dụng Content Provider để có thể chia sẻ dữ liệu(database/file ...) giữa các ứng dụng với nhau, tuy nhiên bạn không thể sử dụng Content Provider để giao tiếp hay xử lý logic giữa các ...

Tác giả: Hoàng Hải Đăng viết 08:30 ngày 22/09/2018

Rest API Pagination with Paging Library.

Vậy paging là gì ? Chính là thư viện phân trang giúp bạn dễ dàng load more data trong ứng dụng của mình sử dụng RecyclerView. Một số ưu điểm của Paging: Giả sư chúng ta có 1000 item , nếu như load hết tất cả ra, thì sẽ mất 1 khoảng time delay khá nhiều, nhưng nế như ta chia nhỏ ra, load 10 item ...

Tác giả: Tạ Quốc Bảo viết 08:29 ngày 22/09/2018

Ứng dụng Proguard vào trong ứng dụng Android

Proguard là gì ? Proguard là công vụ để làm những chức năng sau cho ứng dụng android của bạn: Giảm bớt code Làm xáo trộn Code Tối ưu code Proguard tạo các tác động sau : Giảm dụng lượng của ứng dụng Loại bỏ những lớp và phương thức dư thừa để góp phần vào giới ...

Tác giả: Trịnh Tiến Mạnh viết 08:29 ngày 22/09/2018

Giới thiệu thư viên IQKeyboardManager cho IOS

Thông thường khi phát triển một ứng dụng ios có sử dụng đến các from nhập liệu, login... , bạn thường gặp phải một vấn đề khi thao tác với UITextField / UITextView thì bàn phím iPhone hiển thị lên và che hết các from UITextField / UITextView. Có nhiều cách để xử lý trường hợp này ta dùng thư viện ...

Tác giả: Hoàng Hải Đăng viết 08:29 ngày 22/09/2018

Elasticsearch trong Rails với Gem Searchkick

Giới thiệu về Elasticsearch ES được gọi là "search & analyze in real time" là vì nó có khả năng trả về kết quả tìm kiếm một cách nhanh hóng và chính xác trong một nguồn dữ liệu lớn (big data source) ES là một công cụ tìm kiếm dựa trên phần mềm Lucene. ES có thể tích hợp vào các ...

Tác giả: Hoàng Hải Đăng viết 08:29 ngày 22/09/2018

Vấn đề lưu số điện thoại trong Database

Trước đây mình đã từng đặt một câu hỏi thế này trên Viblo: https://viblo.asia/q/laravel-login-su-dung-so-dien-thoai-khong-can-ma-nuoc-jeZ1eo1YZWz. Ngày đó mình vẫn thắc mắc rằng không biết các hệ thống người ta lưu trữ số điện thoại kiểu gì để có thể vừa đăng nhập được khi nhập mã vùng hoặc không ...

Tác giả: Tạ Quốc Bảo viết 08:29 ngày 22/09/2018

Custom navigation bar view, A replacement Navigation bar system.

Trong hai bài trước mình đã hướng dẫn xây dựng một BaseTableContorller và BaseCollectionController. Trong bài này mình sẽ làm một ví dụ nhỏ sử dụng BaseTableController đồng thời hướng dẫn các bạn customize Navigationbar thay thế cho Navigationbar của hệ thống. Tại sao chúng ta phải thay thế khi ...

Tác giả: Trịnh Tiến Mạnh viết 08:29 ngày 22/09/2018

Two way data binding in VueTwo way data binding in Vue

Two way data binding Vue là một trong những tính năng mà Vue cung cấp, đồng bộ hóa đầu vào của người dùng và state của modal, tương tác qua lại giữa view và modal. Như vậy state sẽ được cập nhật bất cứ khi nào template thay đổi và ngược lại. Two way binding là một tính năng mạnh mẽ, nếu được sử ...

Tác giả: Vũ Văn Thanh viết 08:29 ngày 22/09/2018

Iphone chưa Active? Có nên mua thiết bị này?

Iphone chưa active là gì? Bạn đã biết về vấn đề điện thoại (https://huca.vn/dien-thoai) này của dòng Iphone chưa? Hiện nay vẫn có một số người dùng chưa có nhiều kiến thức về thiết bị di động này và lắm bắt được đâu là sản phẩm chính hãng – giả, cũ – mới, máy dựng, hàng fake. Vì vậy, bài viết này ...

Tác giả: Hoàng Hải Đăng viết 08:29 ngày 22/09/2018

The Android Lifecycle cheat sheet - Phần 2: Multiple Activities

Trong loạt bài: Phần 1: Activities - Single activity lifecycle Phần 2: Multiple activities - Navigation và backstack (Bài này) Phần 3: Fragments - Vòng đời Activity và Fragment Lưu ý rằng, khi hiển thị vòng đời cho multiple components (acitivities, fragment, vv..) trong 1 sơ đồ, các ...

Tác giả: Vũ Văn Thanh viết 08:29 ngày 22/09/2018

A Deep Dive into CSRF Protection in Rails

Chắc hẳn các bạn developer đã rất quen thuộc với CSRF - một tính năng khá là quan trọng và hữu ích của Rails. Cross-Site Request Forgery (CSRF) là một dạng tấn công cho phép user dùng những mã độc hại giả mạo những request hợp pháp gửi đến server, giả mạo như một user đã xác thực. Rails bảo vệ và ...

Tác giả: Vũ Văn Thanh viết 08:29 ngày 22/09/2018

Tìm hiểu Javascript nâng cao

Chào mọi người, hôm nay mình sẽ nói về một số thứ nâng cao trong Javascript, có thể không phải nâng cao so với bạn đang đọc bài này nhưng cũng có thể nó sẽ là nâng cao với người khác <img alt="

Tác giả: Tạ Quốc Bảo viết 08:29 ngày 22/09/2018

Rxjs - Sử dụng concatMap và mergeMap

Khi làm việc với RxJS có 2 operators mình sử dụng khá thường xuyên khi cần xử lý nhiều luồng dữ liệu (stream). Bài viết này mình sẽ chia sẻ cách sử dụng 2 operators concatMap và mergeMap. ConcatMap concatMap thường được sử dụng khi chúng ta muốn xử lý dữ liệu theo thứ tự. Giả sử bạn cần làm ...

Tác giả: Tạ Quốc Bảo viết 08:29 ngày 22/09/2018