Nice Blogs.

2021

TLDR

Chào mừng các bạn đã quay trở lại với chuyên mục Coffee Talk, trong buổi trò chuyện hôm nay, xin giới thiệu đến các bạn một nhân vật không xa lạ với Cộng đồng Golang Việt Nam, đó là anh CuongLM, nhiều người biết đến anh với vai trò là một contributor cho ngôn ngữ lập trình Golang.

Hôm nay anh Cường chia sẻ những kinh nghiệm của anh trong việc tham gia các dự án mã nguồn mở (OSS) nói chung và Golang nói riêng. Mình hy vọng những buổi Coffee Talk này sẽ là nguồn cảm hứng để các bạn lập trình viên trẻ trong nước có thể học hỏi và phát triển. Giới thiệu thế đủ rồi, chúng ta bắt đầu nào.

TLDR

Nhiều người lầm tưởng rằng CNTT nói chung và lập trình nói riêng là ngành làm việc với máy móc, mình chọn đi theo con đường lập trình cũng vì thích ngồi làm việc với máy móc hơn là phải deal với loài người. Nhưng lầm tưởng là lầm tưởng. Nói theo Kinh tế học Mác Lê thì máy tính chỉ là Tư liệu lao động — Công cụ để con người sử dụng, tạo ra giá trị khi làm việc cùng với nhau.

Như mọi ngành nghề khác, lập trình là công việc đòi hỏi tính tương tác cao giữa con người với con người, và nó chỉ thực sự trở nên hiệu quả khi giao tiếp giữa các thành viên trong team diễn ra trơn tru, hiệu quả.

TLDR

Neovim từ phiên bản 0.4 có một chức năng cực kì hay ho đó là floating windows, giúp hiển thị một buffer ở bất kì vị trí nào trên màn hình. Nên nhớ là chúng ta đang nói đến Neovim, một editor hoạt động trên terminal, nơi mà mọi thứ chỉ là text và không hề có các khái niệm về giao diện đồ họa.

Sau khi chức năng này được release thì cộng đồng Neovim đã adopt nó khá nhanh, rất nhiều plugin áp dụng nó khá hiệu quả ví dụ như coc.nvim hay denite.nvim.

Trong bài viết này, chúng ta sẽ cùng tìm hiểu về floating window thông qua việc build một chức năng giúp cho Neovim có thể mở nhanh một cửa sổ terminal emulator, nằm floating trên màn hình. Mình thường dùng chức năng này khi cần thực hiện nhanh một thao tác nào đó như tạo git branch, push hoặc pull code mà lười xài Tmux.

2020

TLDR

Những gì sắp kể ra ở đây là về hành trình của mình đến với thế giới open source, đây là một dự án làm cho vui nhưng rốt cuộc lại đóng vai trò khá quan trọng đối với con đường làm kĩ thuật của mình, nhất là khi nó cũng mở ra khá nhiều cơ hội lúc mình đặt chân đến Mỹ (khi có dịp mình sẽ nói về cái này sau).

Từ đó đến giờ cũng khá lâu rồi, nên mình không thể nhớ hoàn toàn mọi chi tiết cũng như rất nhiều tư liệu trong quá trình viết game này đã bị mất, hôm nay quyết định viết ra chứ để lâu nữa có khi lại quên sạch luôn.

TLDR

Chào mừng các bạn trở lại với blog đầy bụi của mình. Github gần đây mới cho ra mắt một tính năng dùng để hiển thị file README ở trên cùng của trang cá nhân. Với chức năng này, các bạn sẽ được tự do…

TLDR

The SOLID Principles are five principles of Object-Oriented class design. They are a set of rules and best practices to follow while designing a class structure.

These five principles help us understand the need for certain design patterns and software architecture in general. So I believe that it is a topic that every developer should learn.

This article will teach you everything you need to know to apply SOLID principles to your projects.

TLDR

Bước ra khỏi căn phòng, nơi bản thân học code ngày qua ngày để đi tìm một công việc đầu tiên thực sự gian nan. Nhưng sau khi đã tìm được…

TLDR

Mình sẽ mở đầu bài viết với một câu châm ngôn của bác Martin Fowler mà mình nghĩ ai là Software Engineer cũng đều nên nhớ,

“Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.”

Tạm dịch là,

“Bất cứ thằng ngu nào cũng có thể viết code cho máy tính có thể hiểu.
Lập trình viên giỏi là người viết code để cho người khác có thể hiểu.”

Nhắc trước, đây là bài viết hoàn toàn dựa trên quan điểm cá nhân của mình và có thể sẽ làm cho nhiều bạn không vui, vì thế để tránh những sự tổn thương không đáng có bạn có thể tắt trình duyệt ngay lúc này.

2019

TLDR

Bắt đầu từ một pet product để giải quyết những vấn đề cá nhân gặp phải trong quá trình làm việc, bạn Nghĩa Trần đã dày công theo đuổi và xây dựng Proxyman trở thành một sản phẩm chuyên nghiệp thu hút được hàng nghìn user đến từ khắp nơi trên thế giới, đem về doanh thu cực khủng.

Bài phỏng vấn dưới đây là những chia sẻ hết sức thú vị và bổ ích của Nghĩa về kinh nghiệm cũng như quá trình xây dựng và phát triển Proxyman.

TLDR

Lưu ý: Bài viết này không dành cho những bạn chưa biết gì về Vim, nếu bạn chưa biết xài Vim, không sao, hãy dành ra 5 phút để làm quen với nó và thêm 10 phút nữa để học cách cấu hình nó, xong rồi hãy quay lại đọc bài này .


Sau gần 2 năm xài Emacs thì giờ mình đã quay trở lại xài Vim, chính xác là Neovim.

2018

TLDR

Trong quá trình đi làm, nhất là nếu làm frontend thì chắc chắn sẽ có một lúc nào đó các bạn bị Chrome (trình duyệt nói chung) chửi vô mặt những thứ đại loại liên quan đến cái của nợ Access-Control-Allow-Origin header.

Tôi đã từng nghĩ đại đa số các bạn làm Web developer đều hiểu cái này rồi nhưng sự thật không hẳn là như vậy. Sau khi tổ chức một cuộc điều tra nho nhỏ, thì có vẻ như các bạn backend hiểu về CORS nhiều hơn là frontend. Và có kha khá bạn không hiểu, hay hiểu một cách mơ hồ, không thể giải thích được về CORS.

Và vì thế, tada, tôi viết bài viết này để lỡ chẳng may có bạn nào chưa hiểu thì cũng có thể vớt vát được chút xíu sau khi đọc xong!

2017

TLDR

Chuyện tối ưu code, viết code cho thật đẹp là công việc hàng ngày của mỗi lập trình viên, điều đó ai cũng biết. Nhưng liệu code tối ưu có phải là code đẹp, và ngược lại? Đây là câu hỏi mà chắc hẳn nhiều bạn đều thắc mắc. Tôi sẽ kể một câu chuyện, và kết luận thế nào thì các bạn vui lòng kéo xuống phần “Kết luận” để đọc nhé.

TLDR

Mấy hôm nay thấy các bạn đang rần rần về chuyện lương sinh viên mới ra trường do clip chém gió của Tôi đi code dạo rồi thì The Full Snack cũng viết về chuyện lương lậu lúc mới đi làm, nên tôi cũng …

TLDR

Đây là câu hỏi rất hay được tranh luận trên các diễn đàn. Có người bảo công ty cứ trả lương cao là tốt, có người cho rằng chỉ có công ty product mới có thể là good-team, có luồng ý kiến khác lại nói văn hóa công ty sẽ quyết định sự thành bại của một team.

2016

TLDR

Trong phần cuối cùng này chúng ta sẽ cùng nói về Spring Data Access, Aspect Oriented Programming (AOP), Spring MVC.

TLDR

Trong bài trước đã có bạn hỏi về cấu trúc các module trong Spring, đây chính là hình minh họa. Trong phần này, chúng ta sẽ lần lượt nói về Spring Beans, Spring Annotations.…

TLDR

Đã lâu rồi tôi không viết bài về Java. Tình cờ đọc được một bài viết từ JavaCodeGeek nên tôi quyết định sẽ lấy ý tưởng từ đó để thực hiện bài viết này, trong bài viết này, tôi sẽ tổng hợp lại những…

2015

TLDR

In object-oriented development, we are all familiar with design patterns such as the Strategy pattern and Decorator pattern, and design principles such as SOLID. The functional programming community has design patterns and principles as well. This talk will provide an overview of some of these, and present some demonstrations of FP design in practice.