Là một lập trình viên/kĩ sư phần mềm/kĩ sư nhúng/thợ code :v, liệu bạn đã hiểu rõ các công cụ mình sử dụng?
1. IDE - Integrated Development Environment: Bản chất IDE chính xác là môi trường phát triển tích hợp do nhà phát hành cung cấp cho một hoặc một số đối tượng nhà phát triển sản phẩm cụ thể. Các thành phần tích hợp trong một trình IDE chuẩn: + Code editor - Trình soạn thảo mã nguồn + Compiler/Interpreter - Trình biên dịch/thông dịch + Debugger - Trình gỡ lỗi + Syntax Highlighter: tô sáng phần code lỗi, code sai + Graphical User Interface - GUI: Thanh công cụ, cửa sổ điều hướng, cửa sổ output, etc + Build Automation Tools: Bộ công cụ giúp build tự động!!!
Hiện tại mình xin phép chia các IDE vào 2 nhóm chính + 1 nhóm riêng cho anh em nhúng: + Hỗ trợ một ngôn ngữ: Microsoft Visual Basic IDE (Microsoft BASIC - thời tiền sử cho máy Altair 8800, con PC đúng nghĩa đầu tiên trên thế giới), Turbo Pascal (mấy bạn chuyên Tin học về thuật toán hình như dùng em này nhiều, mình học chuyên Anh không rõ lắm :v). Hiện tại các IDE loại này dần được thay thế hoặc bị khai tử. + Hỗ trợ đa ngôn ngữ: Eclipse IDE (các bác làm Android đời đầu dùng plugin ADT trên này), Android Studio (Google giờ hỗ trợ long-term cho gà nhà, Android mình chuyển hết qua đây làm thích nhé :v), Visual Studio, Netbeans, IntelliJ, Phpstorm, WebStorm, etc. (Mấy ông làm Web, .NET check hộ em :v) + Hỗ trợ lập trình nhúng (bare/OS-based): EB tresos Studio (Anh em làm Autosar cho em hỏi cái này phải IDE không nhé), Atmel Studio (xưa mình làm AVR - ATmega - nhúng thẳng vô con chip trên Arduino dùng card nạp và mò datasheet :v), STM32Cube IDE (em này thì khỏi nói nhiều ha), etc
2. Text editor/Code editor: Mình gom chung hai bạn này lại vì cơ bản code editor thực chất là một text editor được thiết kế chuyên môn hóa cho việc viết code. Code editor chính là một phần không thể thiếu của IDE, nó được thiết kế sao cho các thành phần (biến, tên hàm, etc) được tách biệt với các đoạn mã (routines) giúp người dùng đọc/viết source code tốt hơn (chuyên biệt và chuyên môn hóa hơn so với text editor). Lợi thế này được thể hiện rõ rệt ở các phần mềm quy mô lớn! Một số thành phần chính trong một code editor: syntax highlighting (tô sáng), indentation (thụt dòng), autocomplete (tự động hoàn tất), brace matching (tự điền ngoặc). + Một số code editor mình từng trải nghiệm: Atom, VSCode (everyone must know! :v) + Một số text editor mình từng trải nghiệm: notepad++ (recommend!), notepad (viết script đọc lúc training newbie :v), MS WORD (!!!), WordPad (dùng tạm khi mới cài lại Win, chưa kịp cài MSOffice :v), Vi/Vim (Vi mặc định trên Ubuntu mình chịu, phải install ông vim mới xài được), Neovim (ngon!), Gedit (newbie dùng như notepad, ngon!), nano (tạm), Sublime, Emacs (dùng rồi nhưng khó quá bỏ qua), etc
3. Lời kết: Qua một số chia sẻ về hiểu biết của mình đối với các khái niệm IDE và code/text editor, chắc hẳn các bạn đã có cái nhìn khái quát, phân biệt và hiểu rõ hơn các công cụ sẽ đồng hành cùng ta đến già (maybe :v). Cảm ơn các bạn đã giành thời gian đọc bài viết nhé.