25 thg 5, 2020

Sơ đồ tư duy tốt hơn giúp mã hóa tốt hơn

Anne

Là một nhà phát triển phần mềm và biên tập viên của các tạp chí lập trình nổi tiếng, Andrew đã thường xuyên thảo luận về lợi ích của việc ghi chú trong khi viết mã nhằm tạo ra mã rõ ràng, đáng tin cậy. Anh ấy nhận thấy việc ghi lại các quan sát và các nhiệm vụ cần thực hiện trong một tài liệu có cấu trúc trong khi đang viết mã giúp anh ấy theo dõi được tiến trình của dự án và biết mình cần phải làm gì tiếp theo.

Sau khi thử nhiều cách khác nhau để ghi lại các ghi chú này một cách thông minh, anh ấy đã tìm thấy rằng sơ đồ tư duy là một giải pháp thanh lịch. Anh ấy có thể phân bố phần của dự án mình đang làm trong một sơ đồ tư duy và trang trí nó với các ghi chú và công việc cần làm, sau đó dễ dàng tìm thấy chúng.

Cách tiếp cận này giúp anh ấy giải phóng không gian tinh thần để tập trung vào mã đang làm việc, trong khi không mất đi bất kỳ thông tin ngữ cảnh nào cần thiết. Anh ấy cũng sử dụng sơ đồ tư duy để phân tích mã như đã giải thích trong cuộc phỏng vấn sau đây.

Vui lòng cho chúng tôi biết một chút về bản thân bạn.

Trong năm năm qua, tôi đã là biên tập viên của Java Magazine (thuộc Oracle). Trước đó, tôi là tổng biên tập của Dr. Dobb’s Journal. Và trong những cuộc đời trước, tôi đã là biên tập viên của nhiều ấn phẩm lập trình. Tôi bắt đầu sự nghiệp của mình là một nhà phát triển phần mềm và đã tiếp tục lập trình như một hoạt động bên lề, đóng góp vào các dự án mã nguồn mở khác nhau và làm việc trên các dự án của riêng mình.

Bạn làm gì để giải trí?

Tôi học chơi piano. Nó khó hơn lập trình rất nhiều. Con đường trở thành chuyên gia trên piano thực sự gian nan. Tôi nghĩ rằng hầu hết các lập trình viên có xu hướng tự tin quá mức vào kỹ năng lập trình của họ. Tôi biết mình cũng vậy cho đến khi tôi được nhắc nhở bởi việc nhìn vào mã cũ và tự hỏi làm sao mình có thể viết như thế! Nhưng với piano, bạn luôn khiêm nhường. Bạn liên tục nhận thức được có bao nhiêu điều nữa cần học và mức độ khó đạt được của các nghệ sĩ piano vĩ đại.

Sơ đồ tư duy giúp bạn thế nào trong cuộc sống hoặc công việc của mình?

Tôi sử dụng sơ đồ tư duy trong hai lĩnh vực khác nhau:


  1. Động não các nhiệm vụ và dự án cho bản thân hoặc với gia đình và bạn bè;

  2. Lập trình. Như tôi mô tả sau này, tôi sử dụng sơ đồ tư duy cho ba mục đích chính trong phát triển phần mềm.

Bạn đã sử dụng XMind bao lâu rồi?

Có lẽ khoảng sáu hoặc bảy năm; có thể lâu hơn.

Bạn đã nghĩ đến việc sử dụng XMind trong lập trình như thế nào, khi mà nó không phổ biến với các lập trình viên?

Nó ban đầu bắt đầu với Kent Beck (cha đẻ của Agile) người từng gợi ý rằng đó là một thói quen tốt để theo dõi tất cả các quyết định bạn đưa ra trong khi lập trình. (Cả những quyết định quan trọng như: “Tôi sẽ giữ giá trị tối đa cho biến này là 70.” “Tôi sẽ đảm bảo người dùng có thể nhập giá trị thập phân trong đơn đặt hàng của họ.” và những quyết định nhỏ hơn, chẳng hạn như “Tôi cần mở rộng các bài kiểm tra tích hợp để bao trùm mã mới này.” Và vân vân.) Tôi nhận thấy rằng chỉ viết xuống những quyết định này là không đủ. Nhưng đưa chúng vào trình theo dõi tác vụ/lỗi của dự án là quá mức cần thiết. Vì vậy, tôi bắt đầu với một sơ đồ tư duy mà tôi phát triển từ phần của dự án tôi đang làm và sẽ trang trí nó với những quyết định nhỏ và ghi chú, để tôi có thể tìm và xem xét lại khi làm việc trên một phần khác của dự án. Tôi thấy rằng sơ đồ tư duy rất hỠu dụng để nhanh chóng tìm thấy ghi chú, để tôi có thể tìm và xem xét chúng khi làm việc trên một phần khác.

Tôi cũng sử dụng sơ đồ tư duy khi làm việc trên thiết kế của một tính năng. Tôi sẽ bắt đầu với tính năng mới là chủ đề chính và sau đó tôi sẽ phát sinh các nhánh cho các tính năng con rồi gắn các quyết định vào những nhánh đó, cũng như các ghi chú triển khai, lời nhắc nhở, và có thể ngay cả những thứ như tên được đề xuất cho các đối tượng và phương thức. Điều này cho phép tôi suy nghĩ chi tiết về mã từ lâu trước khi tôi viết một dòng nào. Nhiều khi, tôi sẽ di chuyển một nhánh chứa một số phương thức sang một nhánh khác, điều này cho phép tôi thay đổi dễ dàng và mang lại cho tôi sự tự tin cao hơn về hướng đi khi tôi bắt đầu viết mã.

Đây là một trường hợp của một tính năng mới - một sự bổ sung của HTML vào một công cụ hiện có:

Mind map illustrating HTML5 support, covering output verification, plugin details, and startup process.

Cuối cùng, tôi đã bắt đầu sử dụng sơ đồ tư duy khi đọc mã không quen thuộc. Hầu hết các chương trình có kiến trúc phân cấp, điều này khá hữu ích cho việc trình bày trong một sơ đồ tư duy. Đây là một phân tích từ một thư viện gọi là iText 7, một trường hợp sử dụng ít thấy nhưng thực tế.

⚠️ hình ảnh thiếu

Cách này khi tôi đang đọc mã, tôi có thể thấy trên sơ đồ tư duy, đường tôi đã đi và cách tôi đã đến được vị trí hiện tại của mình. Tôi có thể thấy con đường dẫn đến vị trí hiện tại của tôi. Ngoài ra, khi tôi đọc, tôi đang phát triển tài liệu mà tôi có thể tham chiếu lại sau này. Tôi vẫn đang thử nghiệm với trường hợp sử dụng này.

Điều gì làm bạn thích nhất tính năng/tính năng nào trong XMind? Tại sao?

Thật lòng, đó là sự dễ sử dụng. Tôi có thể di chuyển nhanh chóng và đưa vào sơ đồ tư duy những gì đang ở trong đầu tôi. Tôi rất thích điều đó, bởi vì rất thường xuyên thời gian là điều cốt yếu khi bạn có thứ gì đó mà bạn muốn nắm bắt.

Bạn làm thế nào để giữ cho mình có năng suất? Bạn có đang sử dụng ứng dụng nào khác để tăng năng suất không?

Tôi đã viết rất nhiều về chủ đề này trong các bài xã luận khác nhau. Tôi thấy việc loại bỏ các phiền nhiễu, sử dụng các công cụ tốt và nghe nhạc cổ điển đều rất hữu ích.


Cà phê hay trà?

Cà phê để giúp tôi tỉnh táo vào buổi sáng. Sau đó uống trà cả ngày. Về các lựa chọn nhị phân khác: Thích chó hơn mèo, khoảng trắng hơn tab, thích Brahms hơn Wagner, Monet hơn Manet.

Ghi chú: Ảnh với sự cho phép của Bob Adler

Xem thêm bài viết