Tại sao không biết chữ lập trình chính thống? [đóng cửa]


32

Lập trình văn học có lý tưởng tốt. Tại sao bạn nghĩ rằng đây không phải là chủ đạo? Đó là bởi vì nó đã thất bại để cung cấp?


2
Bởi vì các công cụ được phát triển cho nó vẫn còn khá yếu. Microsoft có thể có một cơ hội dẫn đầu về vấn đề này.
Công việc

3
Khi tiếp cận một vấn đề mới, tôi thường sử dụng tốc ký 'Lập trình biết chữ' của riêng mình bằng bút chì và giấy. Nó cho phép tôi bỏ qua ngữ nghĩa ngôn ngữ và trộn lẫn trong ngôn ngữ của con người để mô tả những thứ sẽ được gọi là chức năng, v.v.
oosterwal

1
Ngay cả Knuth cũng không còn bị thuyết phục về khái niệm này: "Và chúng tôi đang từ bỏ quan niệm cũ về lập trình xóa mù chữ mà tôi đã sử dụng khi phát triển TEX82, bởi vì tài liệu đã được chứng minh là quá đau đớn." tug.org/TUGboat/tb31-2/tb98knut.pdf .
h0b0

6
Đối với những người không quen thuộc với TeX và triết lý của nó, nên đề cập rằng trích dẫn Knuth rất có thể có ý mỉa mai.

3
@ h0b0 & user1249: Toàn bộ bài viết của Knuth thật trớ trêu, vì bạn có thể tìm hiểu chỉ bằng cách đọc lướt qua nó. Ông cũng chế giễu Steve Jobs, web, Agile, tái cấu trúc, OOP, AOP và nhiều thứ khác. Đó là một trò đùa!
Andres F.

Câu trả lời:


35

Lần đầu tiên tôi nhìn thấy nó trong một cuốn sách của Knuth, và nghĩ rằng nó trông gọn gàng. Sau đó, tôi đã cố gắng sử dụng màn hình lập trình văn học để hiểu những gì đang diễn ra trong chương trình, và thấy nó khó hơn so với vẻ ngoài của nó. Có thể là tôi đã quá quen với việc xem qua các danh sách chương trình, nhưng có vẻ khó hiểu.

Sau đó, tôi nhìn vào mã nguồn, và điều đó đã tắt tôi ở đó và ở đó. Tôi phải học cách viết chương trình theo một cách hoàn toàn mới, với ít sự tương ứng giữa văn bản chương trình và những gì trình biên dịch đã thấy, và không thấy lợi ích tương ứng.

Ngoài ra, mọi người có thể viết các lập luận dài và thuyết phục rằng mã đang thực hiện X khi nó thực sự làm Y và tôi đã gặp phải những chia sẻ sai lệch của mình. Tôi đã thích đọc mã để xem những gì nó đang làm khá sớm. Lập trình biết chữ là phản đề của điều đó.


4
Lập trình biết chữ, cũng như các bình luận nói chung, không phải là về những gì mã của bạn đang làm. Bạn có thể đọc nó từ chính mã. Đó là tất cả về lý do tại saonhư thế nào , và thông tin cần thiết này hầu như luôn bị thiếu nếu không có một chương trình biết chữ phù hợp. Không cần phải đề cập rằng phần " tại sao? " Thường sẽ liên quan đến toán học phức tạp và phức tạp, đôi khi là sơ đồ và bảng biểu, đôi khi là sơ đồ. Các công cụ lập trình biết chữ là cần thiết để duy trì các bình luận đó một cách dễ đọc.
SK-logic

1
@ SK-logic công bằng, nhưng điểm mà David Thornley đang đưa ra là ngay cả TẠI SAO cũng có thể trở thành một lời nói dối sai lệch (một điều thực sự thậm chí còn khó hiểu hơn).
MrFox

1
+1 Knuth đã viết lại trong những ngày lập trình (theo chủ đề) miền tây hoang dã khi làm việc bằng ngôn ngữ "nâng cao" có nghĩa là viết "C" gần như trên kim loại thay vì sử dụng mã máy. Bộ nhớ rất chặt chẽ và các tên khác thường chỉ là các chữ cái đơn, thường được sử dụng lại từ phạm vi này sang phạm vi khác. Phần lớn các chương trình trong đó mỗi lần một chìa khóa trao tay được viết và duy trì bởi mỗi người với phong cách lập dị của riêng mình. Phải tiếp quản một cơ sở mã là giải mã nhiều hơn đọc. Không có kiểm soát nguồn vv để giúp đỡ.
TechZen

1
Knuth đang nhìn xuống đường, 30 năm trước. Ông biết rằng các chương trình sẽ trở nên lớn hơn, phức tạp hơn, được viết bởi các nhóm có thành viên thay đổi, sẽ chạy trong nhiều năm hoặc nhiều thập kỷ và yêu cầu đầu vào, đánh giá và cuối cùng là sự chấp nhận từ những người không lập trình. Lập trình biết chữ là một ý tưởng để giải quyết tất cả điều đó. Ông đã phác thảo những gì chúng ta gọi là logic kinh doanh và BDD ngày nay. Ý tưởng cốt lõi là các lập trình viên sẽ biết phải làm gì và những người không lập trình có thể làm theo. Như đã lưu ý, ý tưởng đã thất bại vì không có cơ chế tồn tại để thực thi mối liên kết giữa văn bản "biết chữ" và mã.
TechZen

BTW: Đây là lý do tại sao tôi thích các ngôn ngữ "tự viết tài liệu" như Objective-C. Lúc đầu, mã trông có vẻ lộn xộn với các tên phương thức dài vô lý, nhưng ngay cả một lập trình viên không biết ngôn ngữ hoặc API cũng có thể nhanh chóng hiểu được mã đang làm gì. Tốt nhất, tự động thay đổi mã và "bình luận" thay đổi đồng bộ hóa. Tất nhiên, đó là lý do tại sao Objective-C được viết với tính năng tự động hoàn thành được tích hợp sẵn. Không có nó, việc viết Objective-C khá tệ.
TechZen

13

Tôi sẽ đổ lỗi cho hiệu ứng mạng . Đối với những người khác để chỉnh sửa mã và tài liệu của bạn, họ phải có khả năng hiểu nó.

Điều này đẩy mọi người ra khỏi một cái gì đó như cweb / noweb, bởi vì sử dụng chúng sẽ yêu cầu bạn học TeX và cú pháp dành riêng cho chương trình trên ngôn ngữ lập trình bạn đang sử dụng cho dự án. Điều này có thể được coi là một sự lãng phí rất lớn thời gian, đặc biệt là nếu họ không cần bất kỳ kiểu sắp xếp toán học nào là một lợi thế lớn cho TeX ngay từ đầu. (Và đối với nhiều lập trình viên ứng dụng, họ thực sự sẽ không cần đến nó.) Thay vào đó họ thích những thứ như nhận xét XML của Visual Studio, bởi vì điều đó đã phổ biến và được thiết lập tốt.

Những nơi tôi đã thấy lập trình biết chữ cất cánh là trong máy tính khoa học / thống kê, nơi hầu hết các lập trình viên được đào tạo đáng kể (còn gọi là tiến sĩ) về toán, CS, hoặc thống kê, và do đó đã quen thuộc với LaTeX. Tài liệu họ viết có nhiều khả năng bao gồm rất nhiều công thức phức tạp được viết tốt nhất bằng TeX và họ có nhiều khả năng lập trình trong R. Tỷ lệ lập trình viên R biết về SWeave chắc chắn cao hơn nhiều so với, nói, tỷ lệ lập trình viên C biết về cweb.


2
Câu trả lời này dường như cho rằng tất cả các công cụ lập trình biết chữ đang sử dụng LaTeX. Điều này có đúng không? Dường như không có bất cứ điều gì về khái niệm đòi hỏi nó.
HỎI

@AShelly: Không bắt buộc - Tôi biết rằng noweb, ít nhất, cho phép bạn sử dụng HTML. Nhưng trong thực tế, những người viết tài liệu HTML sẽ sử dụng javadoc và những thứ tương tự thay vì biết các công cụ lập trình.
Larry Wang

1
@AShelly, để lập trình biết chữ hoạt động, bạn cần có khả năng tạo tài liệu cần in. Điều này dễ dàng hơn nhiều khi định dạng dựa trên văn bản và theo hiểu biết của tôi, trình định dạng tài liệu dựa trên văn bản mạnh nhất TeX và cách dễ nhất để làm việc với TeX là sử dụng LaTeX.

@AShelly bạn có thể muốn xem org-modehỗ trợ của lập trình biết chữ . Nó khá tiện dụng và tôi thấy việc hiểu (không đề cập đến quản lý ) dễ dàng hơn nhiều so với WEB hoặc NOWEB. Một khía cạnh quan trọng của mã là khả năng đọc và điều này có thể đọc được. (cf github.com/vermiculus/stack-mode )
Sean Allred

12

Tôi đã bị cuốn hút bởi khái niệm Lập trình Văn học vào cuối những năm 90 trong khi học, và tôi vẫn bị thu hút bởi cách tiếp cận của Knuths về lập trình và sắp chữ. Không có gì nhưng tốt nhất sẽ làm.

Hệ thống Lập trình Văn học mà Knuth thiết kế đã làm được rất nhiều, ngay lập tức bắt mắt, cụ thể là nó khắc phục được nhiều thiếu sót trong ngôn ngữ lập trình cơ bản mà công cụ tạo mã được tạo từ tài liệu nguồn Knuths, cụ thể là Pascal tiêu chuẩn.

Đối với những người may mắn chưa thử Standard Pascal, đây là một số điểm nổi bật.

  • Để làm cho nó dễ dàng hơn để có một trình biên dịch một lượt, đặc tả ngôn ngữ nói rằng tất cả các khai báo phải đi theo một thứ tự nhất định. Từ trang wikipedia: "Mỗi thủ tục hoặc hàm có thể có các khai báo riêng về nhãn goto, hằng, loại, biến và các thủ tục và hàm khác, tất cả phải theo thứ tự đó." Điều này có nghĩa là bạn không thể nhóm các thứ của bạn một cách hợp lý với nhau trong tệp nguồn.
  • Xử lý chuỗi là tẻ nhạt hơn ở đồng bằng C.
  • Định danh không thể có chiều dài tùy ý.
  • Nhiều điều nữa tôi không thể nhớ được nữa.

Tất cả những điều này về cơ bản có nghĩa là Knuth cần một ngôn ngữ lập trình tốt hơn (vì vậy ông đã phát minh ra một ngôn ngữ) và nó đã sử dụng Pascal làm ngôn ngữ lắp ráp.

Hầu hết các ngôn ngữ hiện đại có thể thực hiện những việc này mà không cần nỗ lực nhiều, do đó loại bỏ một phần LỚN của công việc mà Lập trình Văn học phải giải quyết.

Ngoài ra các ngôn ngữ hiện đại có nhiều biểu cảm hơn cho phép nhiều suy nghĩ được đặt vào chính mã.

Vì vậy, những gì còn lại? Khả năng tạo một dạng tài liệu sắp chữ từ mã nguồn và THAT tồn tại đến ngày nay.

Chỉ cần nghĩ rằng JavaDoc - API thời gian chạy Java có lẽ là phần Lập trình biết chữ lớn nhất hiện nay (ngoại trừ mã không thực sự được trình bày, nhưng COULD đã có nếu Java được mở nguồn từ đầu). Xem ví dụ: bản trình bày khung bộ sưu tập trên http://doad.oracle.com/javase/6/docs/api/java/util/Collection.html

Tôi tin rằng các hệ thống tương tự tồn tại cho .NET và các chương trình chính thống khác.


To make it possible to have a single-pass compiler, all declarations had to come in a certain order. Một thứ tự khai báo như thế chắc chắn đơn giản hóa thiết kế trình biên dịch, nhưng nó không cho phép / ngăn chặn quá trình biên dịch một lần. Delphi, chẳng hạn, không có hạn chế thứ tự đó, nhưng nó vẫn là trình biên dịch Pascal một lần duy nhất.
Mason Wheeler

Đã đồng ý. Turbo Pascal cũng không có hạn chế này. Tuy nhiên, lưu ý rằng hạn chế này nằm trong định nghĩa của Pascal ngay từ đầu.

1
Không, Knuth đã chuyển sang CWEB từ lâu, đó không phải là về việc sửa chữa thiếu sót của Pascal. Không, JavaDoc không liên quan gì đến "lập trình biết chữ" của Knuth - anh ta nói về việc thay đổi căn bản cách anh ta tạo mã và tuyên bố nó cho phép anh ta giải quyết sự phức tạp mà anh ta khẳng định sẽ không thể cho anh ta hoặc bất kỳ ai khác đảm nhận.
Ron Burk

@RonBurk CWEB chỉ biên dịch thành "ngôn ngữ lắp ráp" tốt hơn. Điều này không làm mất hiệu lực các quyết định thiết kế ban đầu.
Thorbjørn Ravn Andersen

5

Một điều tôi phát hiện ra khi tôi bắt đầu lập trình biết chữ vào những năm 90 là nó đã thu hút những người rất đam mê muốn thực hiện Chính xác Điều đó - và liên quan đến việc viết hệ thống lập trình biết chữ của riêng họ bởi vì không có ai đủ khả năng cho họ. noweb là một nỗ lực tốt để cắt đứt điều đó bằng cách cung cấp mẫu số chung đủ tốt nhất cho mọi người, mặc dù sau đó, tôi đã dành phần lớn thời gian LP của mình để phát triển một máy in đẹp cho nó ...

Một vấn đề khác là nó thực sự chống nhanh nhẹn. Trong một số cách, bị chậm lại là tốt bởi vì nó buộc bạn phải suy nghĩ nhiều hơn và làm mọi thứ ngay lần đầu tiên. Mặt khác, ghi chép tỉ mỉ khi bạn đi có nghĩa là có một rào cản lớn để tái cấu trúc mã của bạn. Và nếu bạn đợi cho đến khi mã của bạn được làm cứng trước khi LP-ify, bạn sẽ kết thúc với một nhiệm vụ tài liệu nhiều ngày, điều này thực sự có thể ngăn bạn theo dõi.


Sau khi thử nghiệm tôi đã thấy rằng điểm ngọt ngào của LP đối với phần còn lại của chúng tôi, có thể là trong tài liệu quyết định thiết kế và chi tiết kiến ​​trúc ngay bên cạnh mã thực tế. Tôi đồng ý với LP là khó hơn để tái cấu trúc. Theo hiểu biết của tôi, Knuth đã thiết kế ban đầu trên giấy và chỉ khi hài lòng mới bắt đầu thực hiện. Đây rất có thể là tình huống tương tự mà tôi thấy làm việc cho tôi.
Thorbjørn Ravn Andersen

3

Theo ý kiến ​​khiêm tốn của tôi, nhiều công ty có một nền văn hóa trái ngược với mục tiêu của Lập trình biết chữ: họ muốn kết quả nhanh hơn (họ chỉ khóc về chất lượng khi ứng dụng được sản xuất). Theo kinh nghiệm của riêng tôi, các sếp của tôi đã từ chối hiểu rằng kết quả nhanh hơn không có nghĩa là "một chương trình có thể chạy được ngay sau khi tôi yêu cầu." Đối với họ, nếu một nhà phát triển không bận gõ bàn phím, anh ta không làm việc, thì "lãng phí thời gian của mình vào thiết kế không có ý nghĩa". Vâng, tôi biết, ông chủ của tôi là một kẻ lừa đảo.


Sau đó, với Lập trình biết chữ, họ có thể nghĩ rằng bạn đang bận viết Sci-Fi Book thay vì phần mềm khác! : D
Mahdi

Các công ty như vậy không hiểu rằng phần mềm tốt tồn tại rất lâu và tài liệu càng tốt thì nguồn đó càng có giá trị.
Thorbjørn Ravn Andersen

2

Coders viết mã không phải tiếng Anh.

Các lập trình viên không thích viết tài liệu vì nó không giúp mã chạy.

Coders không giỏi viết tài liệu vì nó là phương tiện kém để thể hiện ý tưởng của họ.

Lập trình biết chữ dường như là ý tưởng của việc đưa tài liệu lên cấp độ tiếp theo, nơi mã hơn là một suy nghĩ sau. Có thể nó sẽ hoạt động, nhưng với hầu hết các lập trình viên, nó trông giống như tài liệu đáng ghét.


29
Các lập trình viên tuân thủ các điểm bạn mô tả không phải là các lập trình viên mà tôi muốn làm việc với tôi.
Paul Nathan

1
@Paul, được cấp. Nhưng đó là những gì thực sự ra khỏi đó. Nhưng dường như với tôi rằng nhiều tài liệu hơn không nhất thiết phải tốt hơn.
Winston Ewert

1
đủ có thể là tốt nhất
mlvljr

6
Các lập trình viên có kinh nghiệm biết rằng họ CẦN viết tài liệu bởi vì đó là nơi "TẠI SAO tôi đã làm như thế".

1
@ Thorbjørn Ravn Andersen, đúng vậy. Nhưng lập trình biết chữ, (theo tôi hiểu) gợi ý rằng bạn viết mã bằng tài liệu của bạn thay vì tài liệu bằng mã của bạn. Là nhiều tài liệu thực sự hữu ích?
Winston Ewert

2

Chủ yếu bởi vì mọi người RẤT STUPID. Bằng chứng rõ ràng là một luồng vô tận của những phỏng đoán và hiểu lầm được thể hiện bởi những người trẻ tuổi về bản chất của kỹ thuật đơn giản này.

Mọi người coi LP là: (a) một phương pháp tài liệu (b) một phương pháp viết một số bài luận được đánh bóng đòi hỏi một số kỹ năng hoặc tài năng đặc biệt (c) đơn giản là không có đầu mối - với tư cách là người tạo ra trình soạn thảo lập trình Leo, bằng cách thừa nhận của mình v.v.

Tuy nhiên, LP chỉ đơn giản là: (1) viết chương trình bằng hỗn hợp mã và cụm từ bằng ngôn ngữ con người (= bất kỳ), trong đó phần sau đại diện cho các đoạn mã khác và / hoặc cụm từ được bao gồm. Đây chính xác là những gì tác giả của vô số sách giáo khoa lập trình làm .. và (2) nó là một bộ tiền xử lý đơn giản mở rộng các cụm từ đó ở người (trở thành tên của các chương trình con được bao gồm) để làm sáng tỏ kết quả TRONG LỆNH YÊU CẦU B COMPNG MÁY TÍNH (hoặc thông dịch viên). Mặt khác, người ta có thể mở rộng văn bản bằng văn bản với một tiện ích nhỏ khác để bao gồm các biểu tượng định dạng để biến "nguồn biết chữ" thành một văn bản dễ đọc được định dạng tốt.

Những người trẻ tuổi không bao giờ thử ý tưởng cực kỳ đơn giản này - và tưởng tượng hoặc tưởng tượng những lý do giả mạo tại sao họ sẽ không bao giờ thử hoặc thực hiện nó.

Về cơ bản, ý tưởng chính của lập trình "bằng mã giả" được viết bằng ngôn ngữ của con người và sau đó mở rộng nó với một tiện ích tiền xử lý đơn giản HPS TRỢ TẠO HẠN (hạn chế, một khó khăn chính cho bất kỳ chương trình dài nào), gần giống như việc gấp mã hoặc phân chia luồng chương trình của bạn vào các chức năng / chương trình con, cần thiết để bạn không bị mất chi tiết, nhưng hoàn toàn không cần thiết cho việc thực hiện máy.


3
Bạn đang thiếu một bit quan trọng: (3) một cách để sắp xếp lại mã theo bất kỳ ngôn ngữ nào thành chuỗi tự nhiên và dễ đọc nhất, không nhất thiết phải theo thứ tự trình biên dịch phải xử lý. Nó bao gồm ẩn các chi tiết triển khai trong chú thích hoặc bất cứ nơi nào khác ngoài phác thảo mã.
SK-logic

1

Có 2 khía cạnh của lập trình biết chữ mà tôi làm điều ước đã được đưa vào chương trình chính - nhúng hình ảnh (ví dụ, sơ đồ thiết kế) và con trỏ đến những nỗ lực trước đây và thay thế (ví dụ, "Lý do đó là như thế này là bởi vì tôi đã cố gắng cách nào khác này và nó không hoạt động vì ... "). Cả hai khía cạnh này đều có thể được xử lý bằng các nhận xét doc và URI.


1

Bởi vì logic của các chương trình không hoạt động giống như chúng ta nói. Một chương trình có một luồng được xác định rõ, các điều kiện và các vòng lặp.

Sau khi có nhiều mã hóa, tôi nghĩ về các điều khoản này. Bộ não của tôi biến đổi các vấn đề thành miền mục tiêu của mã thực thi. Và nó hiệu quả hơn nhiều đối với tôi khi viết nó ra bằng ngôn ngữ lập trình thông thường, hơn là phải thực hiện bước biến đổi thêm để làm cho chương trình của tôi biết chữ.

Trên thực tế, tôi tin rằng các chương trình của tôi đã biết chữ ... nhận dạng nói, tên chức năng tốt, nhận xét khi tôi thực hiện một số tin tặc mà tôi sẽ không hiểu ngay lập tức sau vài tháng.

Để kết luận: Mã Java của tôi tự biết chữ hơn khi mọi chương trình "biết chữ" muốn có.


2
Mã Java không thể biết chữ. "Số nhận dạng nói" của bạn sẽ không bao giờ giải thích lý do tại sao bạn chọn thuật toán cụ thể này hơn thuật toán khác, giới hạn là gì, kỳ vọng hồ sơ hiệu suất của bạn là gì, v.v. Các chương trình biết chữ của tôi được tạo ra chủ yếu từ các công thức, sơ đồ và đồ thị, và không nhiều văn bản tiếng anh. Nhưng tất cả những điều đó không thể được thể hiện trong một mã và trông xấu xí trong các bình luận đơn giản.
SK-logic

1

Tôi đã đến để biết chữ lập trình theo cách khác - tôi mơ ước có mã được tổ chức vì nó phù hợp với tâm trí của tôi, không phải như trình biên dịch yêu cầu. Tôi thấy Leo gần như lý tưởng cho mục đích này. Nó cũng hỗ trợ theo dõi các tập tin thay đổi bên ngoài. Các tệp này không phải chứa bất kỳ đánh dấu đặc biệt nào, vì vậy tôi có thể sử dụng Leo cho chính mình mà không cần bất kỳ ai khác trong nhóm biết. Tính năng này - "@shadow cây" - rất hứa hẹn, mặc dù vẫn còn một chút lỗi, cần nhiều nhãn cầu hơn. Và nó cũng khắc phục vấn đề "ồ không, mọi thứ trong một tệp lớn" bằng cách tổ chức mọi thứ thành phác thảo cây và hỗ trợ cho các tệp bên ngoài.

Đối với tôi, trái với tên gọi, "lập trình biết chữ" hoàn toàn không phải là về tài liệu. Tôi không có nhiều tài liệu hơn trước. Đó là về việc có cấu trúc giúp tôi không bị lạc . Tôi thề với điều đó đặc biệt là khi quản lý các tệp tin khổng lồ (và mặc dù Leo ban đầu chủ yếu dành cho Python và nó không hỗ trợ ngôn ngữ JSP - tôi phải tách tệp thành cây Leo theo cách thủ công!).


0

Tôi thấy nó là một công cụ giảng dạy có giá trị, trong đó có thể viết một bài luận văn về mã, và sau đó các đoạn mã làm việc xen kẽ trong đó để hướng dẫn người đọc về các mức độ, những gì và các đoạn mã.

Bên ngoài một môi trường giáo dục thuần túy, tôi nghĩ chỉ Knuth thực sự hiểu cách sử dụng nó tốt nhất.


-4

Đó là điều tồi tệ nhất trong tất cả các thế giới - bạn phải viết một chương trình máy tính rất chính xác, đặc biệt cao bằng một ngôn ngữ không cụ thể = tiếng Anh. Vì vậy, bạn phải cẩn thận viết nó bằng cách sử dụng chính xác các cụm từ chính xác - vì vậy bạn cũng có thể chỉ cần viết mã.


3
Bạn không nên lặp lại mã của bạn bằng tiếng Anh. Nhận xét phải giải thích lý do tại sao mã ở đó, không phải những gì nó đang làm. Tôi thường nhồi các biểu đồ, sơ đồ và sơ đồ vào các bình luận biết chữ của mình và nó thực sự giúp hiểu được mã.
SK-logic

Nếu các bình luận không nói mã đang làm gì thì làm thế nào để biết chữ lập trình - đó chỉ là lập trình thông thường với các bình luận. Tôi nghĩ rằng toàn bộ quan điểm của lập trình biết chữ là để mô tả chương trình trong các tài liệu và hệ thống tạo mã từ tài liệu?
Martin Beckett

3
cố gắng đọc "TeX, chương trình". Mã không bao giờ được lặp lại trong các ý kiến ​​đó. Nhận xét giải thích tại sao mã được viết theo cách đó và giải thích kiến ​​trúc.
SK-logic

3
@MartinBeckett Những gì bạn mô tả không phải là LP.
Andres F.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.