Fullstack chuyên nghiệp bằng Sublime Text
Khuyến cáo:
Nếu bạn đang sử dụng thuần thục một IDE (PHP/Web Storm, Aptana Studio, Zend Studio, Eclipse, Text Wrangler…) nào đó và cảm thấy hài lòng hoặc không nhắm đến là trở thành Fullstack Developer, xin vui lòng bỏ qua bài viết này. Đây không phải là một bài viết mang tính so sánh, hơn nữa việc sử dụng IDE còn tùy theo sở thích cá nhân, hay sự giới hạn bản thân.
Tính năng cơ bản của Sublime Text:
- Gọn nhẹ: tốc độ nhanh, ít tốn RAM, chạy được trên Win và Mac.
- Kho plugin: cực kì phong phú, hiện tại có khoảng 3300 plugin tại Package Control, chưa tính các plugin khác không liệt kê chính thức trên này.
- Đa ngôn ngữ: cho dù bạn dùng PHP, Ruby, Python, Java, ShellScript, hay HTML/CSS/JS đều được.
- Lượng người dùng: khoảng 5 triệu lập trình viên trên toàn thế giới đang sử dụng. Do vậy, nếu bạn cần thông tin hỗ trợ, hoặc cần một plugin nào đó thì sẽ dễ dàng hơn.
- Có tất cả các tính năng chủ đạo (Key Features) của các IDE nổi tiếng trên.
Tại sao sử dụng Sublime Text:
Trước khi đến với Sublime Text, mình đã sử dụng qua PHP Storm, Web Storm, Aptana Studio, Zend Studio với các ngôn ngữ như PHP, Python, Java, Html/Css/Javascript ; Các IDE này đều giúp mình lập trình tốt với các chức năng nổi bật: hiển thị danh sách function, class trong tập tin; Goto Defined Function, Autocomplete, … Tuy nhiên, điểm trừ của các IDE này nói chung là chạy chậm, tốn bộ nhớ và thời gian khởi động lâu. Khi sử dụng Sublime Text, mình bật khoảng 5 dự án/workspace cùng lúc, thao tác chuyển qua lại các dự án rất nhẹ nhàng.
Ở đây, mình nói thêm là tại sao dùng tới 5 workspace, đối với 1 lập trình viên fullstack, việc 1 dự án bạn phải sử dụng PHP hoặc Ruby, Python (Server side), Javascript, HTML/CSS (Client side), Shell Script (Command Task, Automation) là thường xảy ra, nếu bạn chỉ sử dụng 1 workspace cho tất cả thì rất khó quản lý và tập trung code (khi danh sách file đang mở hỗn độn ngôn ngữ). [Tips] Thay vì vậy hãy chia từng phần ra thành từng workspace tách biệt nhau, ngay cả khi các thành phần trên nằm chung 1 thư mục!
Quay trở lại với Sublime Text, vào cái lần mình chuyển qua sử dụng là do trong quá trình tìm hiểu lập trình, có quá nhiều lập trình viên sử dụng Sublime Text trên các bài hướng dẫn đó, và một phần trong đó đến từ các đại gia Facebook, Google (Có thể kiểm chứng bằng cách search trên Youtube nhé) và từ đó mình bắt đầu sử dụng và thích luôn :).
Việc sử dụng Sublime Text ban đầu cũng không phải là không gặp khó khăn. Bạn tưởng tượng như vậy: các hãng xe máy sản xuất ra nào là @, SH, Vespa, Dream, Jupiter, Nouvo….tất cả đều có thể chạy được trên đường, mua về leo lên là chạy thôi nhưng chỉ chạy trong đô thị, đó chính là chức năng của các IDE khác, còn với Sublime Text, họ chỉ đưa cho mình một chiếc xe máy cào cào nhanh nhẹ, và có hàng loạt thiết bị thay đổi để có thể chạy được ở đường phố hay dưới nước. Và cái khó ở đây khi sử dụng Sublime Text là kiếm cho ra cái phụ tùng thay thế phù hợp trong hàng ngàn plugin kia.
PHP Storm, Zend Studio mặc định có mở được Objective C, Go, Rails không? Chắc chắn là không, tất nhiên với thừa kế từ Eclipse, có thể cũng được đó, nhưng tin mình đi, không ai mở PHP Storm/Zend Studio ra để viết thứ gì khác ngoài PHP/Html/Css/Js đâu.
Với định nghĩa Fullstack, bạn phải làm với rất nhiều sự thay đổi về ngôn ngữ, cũng như một số cấu trúc ngữ pháp thay đổi theo thời gian nhanh kinh khủng như Javascript: Babel, Ecma Script 5, Ecma Script 6, hoặc template JSX của React/React Native.
Hơn hết với khái niệm tất cả code đều là text, nên việc sử dụng một IDE không chuyên một ngôn ngữ nào giúp cho nó uyển chuyển hơn bao giờ hết.
Việc chọn lựa cho mình một IDE phù hợp cho fullstack là cực kì quan trọng, và mình đề nghị sử dụng Sublime Text 3. Trong năm nay, nếu Atom có sự đột phá lớn, mình sẽ đánh giá lại.