So sánh Interface và Abstract trong lập trình hướng đối tượng.

Interface và Abstract class là 2 khái niệm cơ bản trong lập trình OOP. Nhưng phân lớn mọi người cảm thấy mơ hồ và lẫn lộn 2 khái niệm này. Vậy chúng là gì, khác nhau như nào? Tại sao dùng cái này Interface mà không phải Abstract và ngược lại ??? Bỏ qua tất cả những phần về lý thuyết của việc ...

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

TestLeft

1. Giới thiệu về Testleft Testleft là UI test framework sử dụng để tạo và chạy functional tests cho Windowns desktop và Web application. Bạn có thể tạo tests trong C#, Visual Basic .NET hoặc bất kỳ ngôn ngữ nào khác .NET và chạy chúng trong hệ thống CI giống như Jenkins, từ Visual studio kiểm tra ...

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

Ứng dụng ReSwift trong dự án iOS

ReSwift (Redux Swift) thực hiện kiến trúc luồng dữ liệu theo một hướng (unidirectional data flow architecture) trong Swift. ReSwift giúp bạn tách biệt ba nội dung quan trọng trong ứng dụng: State : trong ứng dụng áp dụng ReSwift, trạng thái của app được lưu trữ trong một cấu trúc dữ liệu. Việc ...

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

Tìm hiểu về Sensor trong android

Một trong những khác biệt khi phát triển các ứng dụng giữa pc và mobile mà chúng ta có thể dễ dàng nhận thấy đó là mobile có cung cấp cho chúng ta các loại cảm biến. Việc sử dụng cảm biến này có thể tạo ra những ứng dụng hữu ích và thực tế đã có rất nhiều các nhà phát triển thêm nó vào trong các ...

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

Một vài mẹo JS bỏ túi cho Web Developer

Đây là một số mẹo nhỏ được tích góp từ kinh nghiệm bản thân cộng với các bài viết chia sẻ của một số Developer khác khi sử dụng javascript, hy vọng có thể phần nào giúp cho việc sử dụng js của bạn trở nên dễ dàng và thuận tiện hơn. 1. Tránh những lỗi không đáng có khi dùng default function Các ...

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

Lambda và Anonymous Inner class làm việc thế nào

Anonymous inner class và Lambda trong Java có nhiều điểm tương đồng, nhưng hiểu được những điểm khác nhau giữa chúng cũng rất quan trọng và hữu ích trong công việc của lập trình viên. Bài viết này sẽ nêu ra một số điểm khác nhau giữa Lambda và Anonymous inner class, và cách thức làm việc của chúng. ...

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

Series Designing a Successful Application (P1: Exception Handling)

1. Giới thiệu chung: Như chúng ta đã biết, Java có 2 loại exception cơ bản là: checked và uncheck . Ví dụ khi chúng ta viết một ứng dụng lưu trữ dữ liệu trên Android, chúng ta cần phải đảm bảo quá trình đọc/ghi tập tin diễn ra một cách suôn sẻ. IOException có thể xảy ra khi xử lý tập tin ...

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

Xây dựng blog đơn giản bằng Laravel + Vue.js (part 1)

Tổng quan Laravel là một trong số các PHP Framework mã nguồn mở và miễn phí được sử dụng để xây dựng các ứng dụng web theo kiến trúc mô hình MVC (Model - View - Controller) và rất được ưu chuộng trong thời gian gần đây bởi cú pháp dễ hiểu, rõ ràng và rất nhiều tiện ích mà nó Laravel cung cấp. ...

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

Giới thiệu về hàm Module#module_function

Trong Ruby, có 2 cách sử dụng method của module. Cách thứ nhất là 'nhúng' (mixin) - dùng như instance method và cách thứ hai là dùng theo kiểu module function. Ví dụ: Mixin: module MyWords def hello puts "Hello world" end end class HelloWorld include MyWords end HelloWorld.new.hell ...

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

Tạo ứng dụng widget đơn giản

Các bạn dùng android chắc hẳn không xa lạ gì với widget . Vậy ta đặt ra câu hỏi widget là gì ? Khái niệm widget có nghĩa là một thiết bị nhỏ, đính kèm theo một dụng cụ nào đó. Trên Android, bạn có thể hiểu widget chính là những ứng dụng nhỏ gắn trên màn hình chính của Launcher. Những ứng dụng nhỏ ...

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

9 ứng dụng trên chrome dành cho lập trình viên.

Làm việc với web đồng nghĩa với việc bạn sẽ tiêu tốn mội khối lượng thời gian kha khá với các loại trình duyệt. Nếu google chrome là sự lựa chọn của bạn thì xin chúc mừng, bài viết dưới đây sẽ cung cấp cho bạn 10 ứng dụng mở rộng của google chrome nhằm làm giảm bớt tối đa khối lượng công việc mà ...

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

Layout, Template, block trong magento(Phần 1)

Những developer mới làm việc mới magento thường bị nhầm lẫn layout với hệ thống hiển thị .Bài viết này sẽ cho chúng ta biết chúng kết nối với nhau như nào và chúng có vai trò gì trong cái mô hình MVC. Trong magento thì tầng View bao gồm có Block và Template . Block là những đối tượng php còn ...

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

Ứng dụng Repository vào Laravel

Hôm nay tôi cùng các bạn đi tìm hiểu về viết Repository trong 1 dự án sử dụng Laravel Framework. Về định nghĩa và khái niệm chúng ta có thể xem qua ở đây . Trước đầu tiên ta cần thống nhất về cách thức viết Repository đã nhé. Theo 1 lời của 1 GL của Framgia thì trình tự để tạo Repository như sau: ...

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

Spring Boot + AngularJS + Spring Data + JPA CRUD App Example

Trong bài trước tôi đã có giới thiệu về Spring Boot, 1 framework rất mạnh mẽ được xây dựng dựạ trên backbone của Spring Framework , giúp giảm tải cấu hình, tăng tốc quá trình phát triển. Ở bài này, tôi sẽ demo 1 ứng dụng thêm, sửa, xóa sử dụng Spring Boot kết hợp với AngularJS , JPA và ...

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

Khắc phục DRY code trong Rails

Khi bạn làm việc với Rails có rất nhiều đoạn code xử lý giống nhau trong các controllers hay models khiến việc DRY code khá nhiều và đọc thấy rất khó chịu. Bạn có bao giờ để ý đến thư mục concerns không. Folder này nằm trong app/controllers và app/models nó sẽ là cứu cánh để xử lý DRY code Trong ...

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

Build a Machine Learning Application with TensorFlow: a chatBot

I've been fascinating on clever machine since I was at the university. Therefore, I do a little research about the awesomeness of machine learning, and I am thrilled to show you guy the result of what I found where we can use machine learning theory to make machine clever. So in this article, I ...

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

Cách viết requirements spec và external design spec

Nguồn bài viết: 要求仕様書の書き方 外部設計書の書き方 Requirements spec là gì Là văn bản tổng hợp những điều kiện về hệ thống(trong dự định) mà khách hàng yêu cầu đối với developer. Nó cũng được gọi là văn bản định nghĩa yêu cầu, spec ủy thác công việc hay RFP. Mặc dù khá giống với basic spec nhưng điểm khác ...

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

Tìm hiểu game framework Phaser qua việc làm một game infinite scrolling đơn giản

Phaser là một framework làm game HTML5 khá thú vị và dễ sử dụng. Bài viết này mình sẽ giới thiệu cách làm một game infinite scrolling đơn giản sử dụng framework này. Game của chúng ta bao gồm một nhân vật chạy xuyên suốt game và tránh các vật cản sinh ra ngẫu nhiên bằng cách nhảy qua chúng. Điều ...

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

Authentication trong Laravel 5.3 P2

Xin chào các bạn. Hôm nay mình sẽ tiếp tục giới thiệu về Authentication trong Laravel 5.3 cho các bạn. Ở bài trước mình đã giới thiệu tổng quát về Authentication cũng như cách tạo một Authentication cơ bản. Bài viết này mình sẽ đi sâu hơn vào Authentication và sẽ giới thiệu những phần còn lại ...

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

ARC and Memory Management in Swift Part 3

Tiếp theo từ phần trước Link tutorial gốc Reference Cycles with Closures Reference cycles của các objects xuất hiện khi các property reference lẫn nhau. Giống như object, closures cũng là reference types nên cũng có thể xảy ra cycles. Closures giữ lại đối tượng chỗ nó khai báo để thực hiện ...

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