Expanding view to client end: Ionic - A framwork for mobile apps

Did you get a little confused with the title? Yeah, it's a little biased. I'm a backend developer and I am considering the potential readers to be backend developers. </p> <div class= Tác giả: Trịnh Tiến Mạnh viết 17:02 ngày 12/08/2018

Xây dựng full stack web apps với MEVN Stack [Phần 2/2]

Hôm nay mình xin viết tiếp bài hướng dẫn về việc xây dựng web app với MEVN. Hôm này mình sẽ tập trung vô việc CRUD(Create, Read, Update, Delete) bằng cách sử dụng ExpressJS và MongoDB(mongoose). Ở hướng dẫn trước, mình đã làm: Tạo khung cơ bản cho ứng dụng MEVN Tạo kết nối giữa phần ...

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

Nguyên lý KISS trong lập trình

KISS = Keep It Simple Stupid Bài viết này nhằm giới thiệu nguyên lý KISS (Keep It Simple Stupid) trong lập trình ứng dụng. Bài viết được thể hiện theo quan điểm của tác giả, nếu các bạn cảm thấy chưa chính xác, hãy vui lòng góp ý! "Make things as simple as possible, but not simpler" –Einstein ...

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

Bắt đầu với Reactjs- Phần 5, Tìm hiểu về redux-form

Redux form là 1 Higher-Order Components làm việc với React Redux để lưu trữ state của react form vào store của redux. Redux cung cấp cho chúng ta 1 chuỗi các event dựa trên các thay đổi của react form để handle các thay đổi 1 cách dễ dàng. 2.1. Cài đặt i18next npm package npm i ...

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

Strategies của Warden

Warden sử dụng khái niệm Strategies để xác định nếu có request authenticated. Warden sẽ trả về 1 trong 3 trạng thái: One succeeds No Strategies are found relevant A strategy Fails Warden dùng strategies để authenticate nhưng nó lại không hề tạo ra cho bạn bất kì một strategies nào mà thay vào đó ...

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

Tìm hiểu về ứng dụng Rack và Middleware

Nhiều web developer làm việc ở mức độ trừu tượng cao nhất khi chúng ta lập trình. Và đôi khi thật dễ dàng chấp nhận mọi thứ. Đặc biệt là khi chúng ta đang sử dụng Rails. Bạn đã bao giờ đào vào internals để xem chu kì request/response hoạt động trong Rails như thế nào? Gần đây tôi mới nhận ra rằng ...

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

UIKit View Shadow

Hôm nay chúng ta sẽ nói về layout.shadowX để một view nhìn giống như một Card với các cool effects. Chúng ta bắt đầu với view đơn gian và tôi biết bạn cần điều này. myCard.layer.cornerRadius = 10 myCard.layer.shadowOpacity = 1 myCard.layer.shadowColor = UIColor(named: "Swift ...

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

Xây dựng một Blockchain đơn giản (40 lines of code)

Quay trở lại hơn 20 năm trước, sự xuất hiện của internet được xem là một cuộc cách mạng trên thế giới. Internet giúp chúng ta có thể cập nhật thông tin vào bất cứ thời điểm nào ở bất cứ đâu trên thế giới, làm thay đổi toàn bộ cục diện cho cả thế giới nói chung và ngành báo chí, truyền thông nói ...

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

[iOS] [Swift] Tổng hợp tất cả từ khóa trong ngôn ngữ Swift (Part 2)

Tiếp tục phần phần 1: https://viblo.asia/p/ios-swift-tong-hop-tat-ca-tu-khoa-trong-ngon-ngu-swift-part-1-E375zEAdlGW Trong phần này chúng ta sẽ tiếp tục với các từ khóa thường xuyên được sử dụng trong các câu lệnh. Keywords in Statements if : đảm bảo 1 hoặc nhiều điều kiện khi thực hiện 1 ...

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

Fun Fact: Té Ngửa Với Những Hiểu Lầm Thường Gặp Về Agile

Có một số vấn đề lặp đi lặp lại và đó là kết quả của những câu chuyện “thần thoại” mà mọi người nghĩ về Agile. Do đó, tôi sẽ dành thời gian của mình để debug những huyền thoại này một lần nữa. Tôi đã lên một danh sách và hàng chục câu chuyện “thần thoại: để tái hiện lại sự ...

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

Code reviews - how to make it awesome part 2

Đây là phần hai tiếp nối phần một của bài viết tại đây Nâng cao chất lượng của PR một cách chậm rãi Các thành viên trong team luôn luôn muốn tìm cách nâng cao code của họ tuy nhiên, sự kiên nhẫn thì không phải ai cũng có được. Nếu chúng ta cứ chăm chăm vào bắt lỗi tất cả các vấn đề nhỏ nhặt ...

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

Các cách tạo đối tượng trong JavaScript

Chào các bạn, Trong JavaScript ta có muôn vàn cách tạo ra 1 object, trong bài này chúng ta sẽ tìm hiểu về các kiểu tạo object này. Kiểu đầu tiên tôi muốn giới thiệu đó là Object Literals , 1 kiểu tạo đối tượng không class, không template, không prototype, chỉ cần method và data Ví dụ: var o ...

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

Hướng dẫn về ASO (App Store Optimization) dành cho App Store (Phần 4)

Xin chào các bạn. Hôm nay mình xin giới thiệu với các bạn loạt bài cuối cùng trong bài tìm hiểu về ASO (App Store Optimization) dành cho Apple Store. Ở bài này mình sẽ giới thiệu về cách áp dụng ASO cho trang ứng dụng. Với phiên bản iOS 11 thì ứng dụng App Store đã được thiết kế giao diện mới khá ...

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

[Clean Code] Replace Conditional with Polymorphism

Khi học bất cứ một ngôn ngữ hay là một framework nào đó, Developers chúng ta thường học những cú pháp đầu tiên, một trong những cú pháp mà bất cứ ngôn ngữ hay framework nào cũng có đó là câu điều kiện (Conditional Statement). Không quá khó để bắt gặp những đoạn code có conditional statement phức ...

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

Tìm hiểu về nested attributes

Nested attributes cho phép bạn lưu các thuộc tính trên hồ sơ liên quan thông qua cha mẹ. Mặc định trong rails thì nested atrributes updating được tắt và bạn có thể kích hoạt nó bằng cách sư dụng phương thức accepts_nested_attributes_for trong model tương ứng. Nếu muốn xác nhận rằng một bản ghi con ...

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

Kotlin : Collection Những Extension Functions Hay Ho

Đây là các Extension Functions nằm trong thư viện chuẩn được Kotlin cung cấp với nhiều tiện ích khác nhau sau quá trình làm và đọc mình thấy rất nhiều tiện ích hỗ trợ nên chia sẻ cùng anh em </p> <div class= Tác giả: Hoàng Hải Đăng viết 17:02 ngày 12/08/2018

Ruby Percent Notation %Q, %q, %W, %w, %x, %r, %s

%Q This is an alternative for double-quoted strings, when you have more quote characters in a string.Instead of putting backslashes in front of them, you can easily write: >> %Q(Joe said: "Frank said: "#{what_frank_said}"") => "Joe said: "Frank said: "Hello!""" The parenthesis ...

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

Một Tính Năng Tuyệt Vời Của Kotlin: Parcelize

Bạn sẽ xoá rất nhiều dòng code trong ứng dụng của bạn Làm thế nào bạn gửi các model (các class bạn định nghĩa của riêng bạn ) giữa các Activity ? Serializable ? EventBus / Otto ? Parcelable ? Serializable nó không tốt cho hiệu suất trong ứng dụng Android của bạn Libaries Bus giống ...

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

Hệ thống phần mềm vi dịch vụ

1.1.1 Đặc điểm của kiến trúc hệ thống vi dịch vụ Hệ thống vi dịch vụ (Microservice System – MS) đã nổi lên trong vài năm qua để mô tả một cách đặc biệt của thiết kế các ứng dụng phần mềm như là một hệ thống các dịch vụ được triển khai độc lập và giao tiếp với nhau qua mạng. Trên thực tế, ...

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

RESTFul API

An API is an Application-Programmer Interface essentially a set of functions, objects, and methods that are made publicly known to developers that allow them to interact with a particular technology. APIs are useful because they enable programmers to utilize the capabilities of different ...

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