Tổng quan về branch trong Git

Branch là gì?

Nói đơn giản dễ hiểu branch là phân nhánh, là nhiều version của 1 repository. Hay nói dễ hiểu hơn trong lĩnh vực lập trình là nhiều version khác nhau của 1 phần mềm (web, phone app, game …). Bạn có bao giờ thắc mắc khi sử dụng phần mềm của các hãng lớn khi họ có rất nhiều phiên bản như alpha, beta, … rồi mới đến bản final? Một phần mềm khi phát triển bao gồm rất nhiều công đoạn và nhiều thành viên tham gia vào lập trình. Có thể kể ra như: phát triển frontend, phát triển backend, sửa lỗi … , rồi trong mỗi công đoạn to lại có những công đoạn nhỏ hơn như phát triển tính năng A, phát triển tính năng B, …..

Tại sao branch lại rất quan trọng trong Git?

Thông thường trong Git, branch master là branch để release sản phẩm chạy hoàn hảo nhất, không lỗi, là sản phẩm gọi là chạy ổn định của phần mềm đó. Vậy nên chức năng branch giúp chúng ta chia nhánh ra để giúp đội ngũ phát triển có thể phát triển thêm những tính năng mới, fix bug những tính năng đang phát triển và có thể của tính năng cũ … mà không ảnh hưởng đến branch chính đang release sản phẩm.

Sơ đồ dưới đây sẽ giúp bạn hiểu rõ hơn tại sao lại phải tạo branch (phân nhánh) trong Git

Sau khi đã phát triển xong những tính năng mới, và fix bugs. Việc kế đến là làm sao để những thay đổi đó có hiệu lực trên phiên bản phần mềm đang release (nhánh master). Lúc này chúng ta sử dụng đến tính năng merge branch của Git, gọi là gộp nhánh (theo nghĩa tiếng Việt). Sau khi merge branch, tất cả những thay đổi của các branch sẽ được gộp chung vào branch master để chúng ta có thể release phiên bản mới của phần mềm.

Các branch được tạo ra có thể phát triển 1 cách song song, nghĩa là chúng ta có thể giao cho nhiều người làm việc trên nhiều branch. Cách chia branch này vô cùng hiệu quả để có thể quản lý được công việc, quản lý được task, mà không gây ảnh hưởng giữa các thành viên trong team.

Để dễ hiểu hơn quy trình chia branch và merge branch, bạn có thể tham khảo sơ đồ dưới đây

Cài đặt Git

1/ Cài đặt Git trên Windows

– Đầu tiên bạn cần tải về file cài đặt Git cho Windows tại https://gitforwindows.org/

– Nhấp đúp vào file exe cài đặt và làm theo hướng dẫn để quá trình cài đặt được hoàn tất



– Mở command line của Windows (cmd) hoặc GitBash (Git sẽ tự động cài đặt GitBash) và chạy đoạn lệnh sau để thiết lập ban đầu cho Git (bao gồm username và email)

*** Đối với ai đang sử TortoiseGit trên Windows thì có thể thiết lập username và email nhanh chóng thông qua giao diện GUI rất trực quan của TortoiseGit. Click phải chuột và chọn TortoiseGit > Settings



– Chọn mục Git bên tay trái, sau đó điền vào Name & Email, sau đó bấm OK để hoàn thành thiết lập ban đầu cho Git



2/ Cài đặt Git trên Linux


Đối với Linux phiên bản Debian/Ubuntu (apt-get)

Chạy dòng lệnh dưới đây

Sau khi hoàn tất cài đặt bạn có thể kiểm tra mình đã cài đặt thành công Git chưa bằng cách

Nếu kết quả trả về là tên version của Git nghĩa là bạn đã cài đặt thành công. Bước tiếp theo là bạn cấu hình username và email cho Git (tương tự như trên Windows)

Đối với Linux phiên bản Fedora/CentOS (dnf/yum)

Bạn chạy dòng lệnh sau

Hoặc

Sau đó bạn kiểm tra cài đặt hoàn tất chưa tương tự như trên Linux phiên bản Ubuntu, và kế đó thiết lập username và email tương tự như trên (xem lại phần cài đặt trên Windows hoặc Linux phiên bản Ubuntu)


 

Tìm kiếm và thay thế text nhanh chóng trong WordPress database với plugin Better Search & Replace

Better Search & Replace là plugin vô cùng hữu dụng khi bạn cần tìm kiếm và thay thế nhanh chóng nội dung trong database của WordPress mà không cần phải truy cập vào MySQL command line hay PHPMyAdmin. Một số trường hợp bạn có thể gặp phải và cần đến plugin này là khi bạn chuyển website từ http sang https, tuy bạn đã đổi site url sang https tuy nhiên những link cũ của media như hình ảnh vẫn còn là link http. Lúc này việc sử dụng plugin “Better Search & Replace” là cách tối ưu và tiết kiệm công sức nhất cho bạn.

Dưới đây là cách sử dụng Better Search & Replace

– Để cho an toàn, bạn cần backup database của bạn trước khi thao tác để có thể khôi phục lại nếu có sự cố xảy ra
– Cài đặt plugin “Better Search & Replace” thông qua menu Plugins > Add New
– Sau khi cài đặt thành công và activate plugin, bạn truy cập vào menu Tools > Better Search Replace. Giao diện sẽ tương tự như hình bên dưới

–Wordpress Better Search & Replace plugin

– Bây giờ bạn bật tab “Search/Replace”, phần “Search for” điền vào text tìm kiếm, “Replace with” điền vào text cần thay thế, chọn những table trong database cho phép replace text trong phần “Select tables”, đánh dấu check vào “Run as dry run?” nếu bạn muốn chạy thử để preview trước. Sau đó bấm “Run Search/Replace”

– Better Search & Replace sẽ thông báo cho bạn kết quả tương ứng sau khi chạy, khi bạn muốn chạy thật sự thì bỏ dấu check ở “Run as dry run” rồi bấm lại “Run Search/Replace”

Cài đặt Package Control cho Sublime Text

Sublime Text là code editor khá quen thuộc đối với dân lập trình bởi vì tính gọn nhẹ, tiện dụng và cũng không kém phần mạnh mẽ. Package Control là phần quản lý các gói plugin cho Sublime Text. Đối với 1 developer chuyên nghiệp thì code editor chỉ hỗ trợ để code không thôi là chưa đủ, ngoài ra phải hỗ trợ FTP/SFTP, Git, … v.v… Với Package Control bạn có thể dễ dàng làm điều này. Để cài đặt nó cho Sublime Text bạn làm theo các bước sau.

– Mở Sublime Text và nhấn Ctrl + ~ để mở cửa sổ console như hình bên dưới

– Tùy vào phiên bản Sublime của bạn và copy + paste đoạn code bên dưới vào console rồi nhấn Enter để cài Package Control

Sublime 2

Sublime 3

– Đợi chờ trong chốc lát và truy cập vào menu Preferences, nếu bạn thấy kết quả như hình bên dưới nghĩa là bạn đã làm thành công

Tạo standalone script để chạy Magento 1

Magento 1 có thể được tích hợp dễ dàng vào các đoạn script PHP thuần, hoặc được nhúng vào các hệ thống CMS khác (WordPress, …) hay PHP Framework.

Dưới đây là 1 đoạn code đơn giản để sử dụng Magento 1 trên file PHP script:

 

Tự động submit sitemap lên Google

Đoạn code PHP nhỏ sau đây giúp bạn có thể tự động submit sitemap XML lên Google mà không cần phải thực hiện bằng tay, nếu cần submit sitemap 5 phút/lần hoặc theo 1 thời gian quy định sẵn bạn có thể sử dụng chức năng cronjob trên Linux để tùy biến thêm

 

Tạo custom settings (cấu hình) trong backend của Magento 1

Đầu tiên bạn cần tạo file etc/config.xml để cấu hình cho extension mới của bạn, ở đây tôi lấy ví dụ là Laptrinhinfo_CustomConfig

Tiếp theo bạn định nghĩa các custom settings trong extension, ở đây các cấu hình cần lưu sẽ được hiển thị trong admin dưới dạng các input được nhập dữ liệu vào như textfield, textarea, select box, ….. Để làm điều này, bạn cần định nghĩa chúng dưới dạng XML trong file etc/system.xml

Để phần quản lý các custom settings này có thể được phân quyền cho các role của user, bạn cần tạo file etc/adminhtml.xml và tạo cấu trúc XML như bên dưới

Sau cùng để trả về kết quả cho kiểu dữ liệu dropdown và multiple_dropdown mà chúng ta đã định nghĩa ở phần sourcemodel, chúng ta cần tạo file Model/System/Config/Source/Dropdown/Values.php

 

Tạo shipping method (phương thức thanh toán) mới cho Magento 2

Mặc định, Magento 2 có sẵn một số shipping method như Free Shipping, Table Rates, Flat Rate. Nếu bạn muốn tạo 1 shipping method mới thì trong bài viết này tôi sẽ hướng dẫn các bạn cách để thực hiện.

– Đầu tiên bạn cần tạo 1 extension mới, ở đây tôi lấy ví dụ là Laptrinhinfo_Customshipping. Tiếp theo bạn tạo file cấu hình cho extension của bạn

app/code/Laptrinhinfo/Customshipping/etc/config.xml

– Tiếp tục bạn cần tạo file model được định nghĩa trong config.xml. File model này sẽ tính toán cho phí shipping cho website.

app/code/Laptrinhinfo/Customshipping/Model/Carrier.php

– Sau cùng để tạo những custom settings (cấu hình) cho shipping method mới của bạn (như Ship to Applicable Countries, Ship to Specific Countries … ), bạn cần phải tạo file system.xml để làm điều đó

app/code/Laptrinhinfo/Customshipping/etc/adminhtml/system.xml

 

Lấy tweets từ Twitter sử dụng Python Selenium

Selenium là công cụ khá quen thuộc được sử dụng trong việc test các sản phẩm web hoặc có thể làm công cụ để tự động hóa các thao tác trên website. Selenium hỗ trợ rất nhiều ngôn ngữ lập trình (như Java, C#, Python, Ruby, PHP, Perl, Javascript) cũng như hỗ trợ rất nhiều trình duyệt web (như Firefox, Opera, Chrome, Microsoft Edge, Safari …)

Trong bài viết này, chúng ta sẽ sử dụng Python Selenium để lấy các dữ liệu tweet từ trang web Twitter. Quy trình hoạt động của nó sẽ như sau:

– Mở trình duyệt web (ở đây tôi sử dụng Firefox) để vào trang Twitter search advanced
– Điền vào các tiêu chí để tìm kiếm tweet như: từ ngày, đến ngày, hashtag, …. (Bạn có thể tham khảo form tìm kiếm của Twitter tại đây => https://twitter.com/search-advanced)
– Submit form tìm kiếm, sau đó scroll màn hình web cho đến khi không còn tweet nào được load tiếp nữa.
– Bóc tách HTML từ trang web Twitter và lưu danh sách các tweets vào file .txt hoặc .html

Đoạn code dưới đây sẽ thực hiện các bước trên, do trong code đã comment khá kỹ nên tôi sẽ không giải thích thêm nữa. 😀  . Một số library Python quan trọng được sử dụng trong code là:

Lxml để bóc tách HTML
Selenium để điều khiển web browser từ Python