Bài viết của Trịnh Tiến Mạnh

Bốn sai lầm thường gặp khi viết Rspec

Đôi khi thà không viết test còn hơn viết test yếu (một cách sơ sài, cẩu thả). Bởi vì khi bạn không viết test, bạn biết bạn phải test mọi thứ, nhưng với cách viết test yếu, bạn đang tự đánh lừa mình và mọi người xung quanh rằng nó ổn. Làm thế nào để phát hiện ra cách viết test nào là yếu và chúng ta ...

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

Binding Value Converters trong Xamarin.Form

Khi bạn sử dụng Xamarin.Form với MVVM pattern kết hợp cùng DataBinding sẽ giúp bạn phát triển ứng dụng một cách rất dễ dàng. Và 1 trong những chức năng mà khi phát triển ứng dụng khi dùng MVVM + DataBinding mà không thiếu được đó là Binding Value Converters. Một chức năng nằm trong DataBinding rất ...

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

Basic design patterns in Ruby on Rails

Không chỉ trong công việc lập trình, trong cuộc sống hàng ngày, chúng ta đều gặp một số vấn đề. Mọi người đều có những khó khăn gần tương tự nhau, và xã hội chúng ta đã tìm ra những cách thức, khuôn mẫu phổ quát để giải quyết những vấn đề đó. Và xét trên khía cạnh lập trình những phương pháp, khuôn ...

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

SQL vs NoSQL: Đâu là lựa chọn phù hợp cho dự án của bạn?

Trước khi đi vào chủ đề chính của bài viết, hãy cùng điểm qua lại các điểm khác nhau giữa hai hệ cơ sở dữ liệu SQL và NoSQL. Dựa trên các điểm khác nhau dưới đây, ta sẽ cùng áp dụng chúng vào các trường hợp dự án cụ thể và quyết định lựa chọn tốt nhất Cơ sở dữ liệu SQL Chứa các dữ liệu liên ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa

Wemos authenticate qua laravel (phần 4.4 - Server kết nối với Wemos)

Xin chào các bạn! Bài trước mình đã giới thiệu với các bạn cách tạo gửi request GET và POST trong wemos. Hôm nay chúng ta sẽ cùng xây dựng chức năng đăng nhập vào server laravel và kết nối socket.io sử dụng jwt để xác thực cho wemos nhé. Xem lại sơ đồ cho đỡ quên nào: Mình sẽ nói lại các bước ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa

Tìm hiểu về Deployer - Công cụ deploy hữu ích cho các dự án PHP

Deploy là một công đoạn không thể thiếu cho mỗi dự án PHP nói riêng và dự án IT nói chung. Nó gần giống với công đoạn cài đặt phần mềm chung chung, là bước triển khai dự án lên một môi trường (testing, development, staging hoặc production). Đảm bảo cho dự án chạy một cách trơn tru không gặp lỗi về ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa

Command Line History

Khi các bạn sử dụng Linex command line thường xuyên, việc sử dụng history về các câu lệnh mình đã dùng sẽ giúp tăng hiệu suất công việc. Ví dụ: mấy hôm trước mình có cài 1 đống package hoặc phần mềm gì đó, mà hôm nay không hiểu máy có vấn đề gì mà phải cài lại. Ta có thể xem lại history để coi ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa

Phòng chống DDoS với Nginx và Nginx Plus

Distributed Denial‑of‑Service (DDoS) attack là hành động cố gắng làm cho các dịch vụ thường là website. Website thường bị tấn công bởi rất nhiều yêu cầu được gửi từ nhiều máy tính khác nhau khiến cho trang web trờ nên quá tải và ko thể phản hồi lại yêu cầu từ các máy client. Sử dụng NGINX và ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa

Sử dụng AsyncDisplayKit để phát triển ứng dụng iOS

Năm 2011 có một anh chàng tên Mike Matas đã giới thiệu một cách mới để tương tác với giao diện người dùng. Nó mang tới một trải nghiệm thật đáng kinh ngạc, bạn sẽ không thể tưởng tượng được nó mượt tới mức nào. Năm ngoái mình có một dự án với giao diện thực sự rất phức tạp, logic phức tạp ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa

Firebase Analytics in ios app

1. Thiết lập ban đầu X-Code từ 8.0 trở lên Swift từ 3.0 CocoaPod từ 1.2.0 (có thể sử dụng cocoaPod hoặc nếu ko có thể add trực tiếp file thư viện vào project ) Bundle id của app 2. Add firebase to your app Tạo Firebase Project trên Firebase console , thêm bundle-id của ios app vào ...

Tác giả: Trịnh Tiến Mạnh viết 17:11 ngày 12/08/2018 chỉnh sửa