23 điểm bởi GN⁺ 2025-02-05 | 4 bình luận | Chia sẻ qua WhatsApp
  • Chat là một mẫu UI tệ cho công cụ phát triển

    • Việc mã nguồn đòi hỏi con người phải chính xác là điều hợp lý, vì máy tính cần sự chính xác
    • Nhưng điều đó cũng buộc con người phải suy nghĩ như máy móc
    • Trong nhiều thập kỷ, chúng ta đã nỗ lực để làm cho lập trình thân thiện hơn với con người. Ngôn ngữ bậc cao và giao diện trực quan là những ví dụ
    • AI từng được kỳ vọng sẽ giải quyết vấn đề này. Người ta kỳ vọng có thể lập trình bằng tiếng Anh
  • Làn sóng đầu tiên của các công cụ lập trình AI

    • Những công cụ lập trình AI đầu tiên đã lãng phí cơ hội. Chúng tạo ra các bản demo hào nhoáng nhưng sản xuất ra phần mềm vô dụng
    • Chúng thường chỉ được nhắc đến là “dùng để tạo prototype”, nhưng độ chính xác lại không đủ để sử dụng thực tế
    • Nhiều người đổ lỗi cho các mô hình AI và cho rằng chúng cần thông minh hơn
    • Nhưng khi xây dựng phần mềm quan trọng, điều cần thiết là sự hiểu biết rõ ràng chứ không phải phỏng đoán
  • Viết phần mềm không phải là trò chuyện

    • Viết phần mềm giống như soạn thảo luật pháp. Dù dùng tiếng Anh, nó vẫn phải định nghĩa thuật ngữ, đặt ra quy tắc và quản lý các tương tác phức tạp
    • Không thể viết bộ luật thuế bằng tin nhắn chat. Cần có tài liệu
    • Tài liệu giúp tổ chức sự phức tạp, tham chiếu đến các điểm cụ thể và theo dõi thay đổi một cách có hệ thống
  • Tầm quan trọng của lập trình dựa trên tài liệu

    • Khi ý định được đặt trong tài liệu, tiếng Anh mới thực sự trở thành một ngôn ngữ lập trình
    • Có thể nhìn toàn bộ hệ thống trong một cái nhìn
    • Có thể làm rõ và cải thiện ý định
    • Có thể theo dõi thay đổi một cách phù hợp
    • Nhóm có thể cùng nhau làm việc trên hệ thống
    • Yêu cầu trở thành cơ chế tự kiểm tra chất lượng
    • Mọi thay đổi bắt đầu từ một đặc tả rõ ràng
  • Cốt lõi của công cụ phát triển AI ở giai đoạn tiếp theo

    • Cách biểu đạt và quản lý ý định của người dùng theo hướng dựa trên tài liệu sẽ ngày càng quan trọng
    • Cần những công cụ mang lại độ chính xác cần thiết cho phát triển phần mềm thực tế, thay vì chỉ là prototype mang tính hội thoại
    • Những công ty thực sự áp dụng đúng góc nhìn này sẽ dẫn dắt tương lai của các công cụ phát triển AI

4 bình luận

 
softer 2025-02-06

Nghe nói họ đang cố gắng phản ánh knowledge graph vào việc hỗ trợ LLM, và điều đó cũng có vẻ hiệu quả.

 
beoks 2025-02-05

Tiêu đề nói rằng UI chat không phù hợp, nhưng nội dung lại giải thích rằng vấn đề cốt lõi là các yêu cầu mơ hồ.
Có vẻ đây là vấn đề có thể giải quyết được nếu, trong định dạng chat, yêu cầu AI làm rõ ngay những điểm mơ hồ trong yêu cầu của người dùng.
Tôi không hiểu vì sao lại nhất thiết phải chỉ trích UI chat.

 
jhj0517 2025-02-05

Ồ, ý kiến này nghe vừa thú vị vừa rất đáng đồng cảm 😊

 
GN⁺ 2025-02-05
Ý kiến trên Hacker News
  • Một người dùng cho biết đã thực hiện dự án tạo mã bằng o3-mini và o3-mini-high, đồng thời nói rằng cách tiếp cận "lập trình cặp" là rất quan trọng

    • Nhấn mạnh tầm quan trọng của việc review code và đưa ra phản hồi, đồng thời giải thích rằng việc chỉ đơn giản chấp nhận mã được tạo ra là không tốt
    • Đề cập tầm quan trọng của việc tạo unit test, và nói rằng sau khi nắm được phần cốt lõi của mã thì nên yêu cầu smoke test
    • Khuyên rằng trong ngữ cảnh dài, mô hình có thể bị rối nên tốt hơn là bắt đầu một cuộc trò chuyện mới
    • Khuyến nghị cung cấp ví dụ mã và không chỉ prompt bằng tiếng Anh
  • Một người dùng khác cho rằng chat là một mẫu UI không phù hợp, giải thích rằng nó tốt cho việc lưu lại lịch sử nhưng không tốt để thực hiện công việc

    • Nói rằng cách tiếp cận mang tính tường thuật không phù hợp để tạo ra sản phẩm
  • Một người dùng khác nữa bày tỏ ngạc nhiên vì Cursor không được nhắc đến, và nói rằng Cursor đã cải thiện đáng kể tốc độ viết code

    • Giải thích rằng đầu ra được áp dụng vào tệp theo kiểu git-diff nên có thể chấp nhận hoặc từ chối các thay đổi
    • Nói rằng nó hiểu ngữ cảnh của codebase ở một mức độ nhất định và hoạt động tốt nhất khi gắn thẻ tệp một cách rõ ràng
    • Giải thích rằng việc chèn trực tiếp log terminal hoặc lỗi kiểu dữ liệu vào giao diện chat là cực kỳ tiện lợi
  • Một người dùng cho rằng "dùng chat làm UX" là ngõ cụt, và giải thích bằng cách lấy ví dụ về SQL

    • Dự đoán rằng giao diện chat dựa trên LLM sẽ không bị lộ ra cho người dùng cuối
    • Đề cập rằng giao diện ngôn ngữ tự nhiên sẽ chỉ được dùng trong những trường hợp ngoại lệ khi tương tác với máy móc
  • Giải thích rằng ngôn ngữ tự nhiên không được tạo ra để phục vụ độ chính xác, và để giao tiếp với AI thì cần một tập con của ngôn ngữ lập trình

  • Về ý kiến của Daniel, có người giải thích rằng vấn đề không phải là cho rằng chat nói chung là một UI bất tiện, mà là để đặc tả hoàn chỉnh một chương trình máy tính thì cần rất nhiều chi tiết

    • Giải thích rằng LLM sẽ lấp đầy sự mơ hồ bằng các giá trị mặc định hợp lý, ví dụ như cung cấp một màn hình đăng nhập thông thường
  • Có ý kiến nói rằng họ mong chờ khả năng triển khai trải nghiệm kiểu Cursor bằng giọng nói để có thể thảo luận về các thay đổi trong mã

  • Mô tả một cách tiếp cận thúc đẩy phát triển phần mềm dựa trên AI từ tài liệu yêu cầu, đồng thời đưa ra ví dụ về việc chuyển các yêu cầu thành checklist để dùng làm chỉ dẫn bổ sung

  • Có ý kiến cho rằng làn sóng đầu tiên không phải là chat mà là autocomplete, và chat thì trực quan hơn cũng như đòi hỏi ít công sức hơn

    • Giải thích rằng tài liệu không phải là thứ cố định mà có thể được chỉnh sửa lặp đi lặp lại thông qua AI
  • Có ý kiến nói rằng họ kỳ vọng vào một mô hình ngôn ngữ có cấu trúc, có thể mô tả chương trình máy tính bằng cách phát minh ra một ngôn ngữ mới