2008-10-04 28 views
19

Tôi đọc cuốn sách "Mẫu Phần mềm" của Richard P. Gabriel (pdf), trong đó có một bài luận có tên "Viết Broadside", trong đó ông cho rằng các lập trình viên nên phát triển khả năng viết rõ ràng. Tôi đã thấy rằng các đề xuất của anh ấy chắc chắn đã cải thiện khả năng viết các thông số kỹ thuật và tài liệu thiết kế của tôi.Các lập trình viên có thể viết rõ ràng không?

Một trong những đề xuất của ông là phát triển các buổi hội thảo bằng văn bản tại nơi làm việc. Điều này sẽ giúp cải thiện khả năng thể hiện bản thân một cách rõ ràng khi ghi lại thiết kế của bạn.

Chúng tôi đã có một hệ thống, mỗi tuần một lần, một thành viên trong nhóm đưa ra một cuộc thảo luận Pecha Kucha về bất kỳ chủ đề nào để giúp cải thiện khả năng thuyết trình của chúng tôi.

Vì vậy, tôi cũng đang nghĩ đến việc đề xuất các hội thảo bằng văn bản.

Có ai đã viết hội thảo tại nơi làm việc của họ không?

"Một người có kiến ​​thức nhưng thiếu sức mạnh để thể hiện nó không tốt hơn là nếu anh ta không bao giờ có bất kỳ ý tưởng nào cả." - Thucydides

Chỉnh sửa: Điều tôi đang nói ở đây là khả năng ghi lại mã của bạn một cách rõ ràng, ví dụ: thông số kỹ thuật và tài liệu thiết kế. Không phải bản thân mã nguồn.

+0

@ Rob, hey i không có nghĩa là để khuấy động mọi thứ lên, tôi chỉ là loại bối rối. Bạn đề cập đến rằng bạn không nói về mã, BUt trong bình luận của bài viết của tôi bạn giới thiệu bình luận của Mitch (đó là về mã) và nói rằng đó là những gì bạn đang nói về. Đó là nó? – mattlant

+0

@mattlant, vui lòng đọc lại câu trả lời của Mitch. Các yếu tố của phong cách là một kinh thánh về văn bản rõ ràng. Không mã hóa. Điểm khác của Mitch liên quan đến việc đặt tên biến tốt và anh ta chỉ ra nếu bạn không thể diễn đạt ý tưởng tốt, bạn sẽ nhận được các biến như "x1" thay vì "des_iptance" nhiều hơn desciptive. –

+0

OK, tôi hiểu ý bạn là gì. Nhưng tôi đoán đó là nơi tôi sẽ tiếp tục không đồng ý. Tôi htink bạn tuyệt vời khi viết những tên mô tả, nhưng có một lệnh kém để đưa tất cả những điều đó bằng tiếng Anh kỳ diệu cho mọi người đọc. Bạn thậm chí còn tự mình nói. Điểm duy nhất của tôi cho tất cả điều này là ... – mattlant

Trả lời

20

buộc Dijkstra quote:

Bên cạnh một khuynh hướng toán học, một chủ đặc biệt tốt của một của tiếng mẹ đẻ là tài sản quan trọng nhất của một lập trình viên có thẩm quyền.

+1

Làm chủ bài phát biểu, và làm chủ bài viết là hai điều khác nhau, và người ta có thể vượt trội trên một và không phải là khác và ngược lại. – mattlant

20

Có! Chắc chắn nhất.

Một trong những vấn đề lớn nhất tôi thấy trong mã là không có khả năng đặt tên chính xác. Điều này thường có thể là do không có khả năng thể hiện ý tưởng của một người.

Tài nguyên tuyệt vời để cải thiện kỹ năng viết là: The elements of Style. Nó nhỏ, gọn gàng và dễ đọc.

6

Những gì chúng tôi làm là cho phép đồng nghiệp làm một bài thuyết trình mỗi tuần, chủ yếu là về các chủ đề kỹ thuật, để chúng tôi cũng được đào tạo nâng cao.

Tôi đoán điều này không chỉ đào tạo khả năng thể hiện bản thân, mà còn tăng cường đội ngũ và thông tin liên lạc trong đội.

Nó thực sự cải thiện năng suất nếu các thành viên trong nhóm biết làm thế nào để thể hiện bản thân, thậm chí xa như những điều nhỏ nhặt như sự khác biệt giữa "tham số" và "đối số" có liên quan.

-4

suy nghĩ của tôi:

A, Điều quan trọng nhất, tôi nghĩ rằng một nhà phát triển cần để có thể viết rõ ràng, súc tích, đẹp, mã tự chủ tài liệu. Điều này quan trọng hơn nhiều so với việc viết tài liệu.

B, Bài kiểm tra đơn vị của bạn cũng phải rõ ràng và súc tích và một dạng tài liệu hướng dẫn cách sử dụng mã.

C. Một phần của điều này phụ thuộc. Nếu họ là những lập trình viên cấp thấp làm việc trên các phần của mã, giá A + B, Tuy nhiên, nếu chúng ở mức cao, hoặc làm việc trên một phần lớn của hệ thống, hoặc toàn bộ hệ thống, biết cách viết rõ ràng và đúng cách, nhưng đến một mức độ nào đó.

Tóm lại, tôi nghĩ điều đó quan trọng, nhưng đó không phải là thước đo mức độ phát triển tốt. Làm thế nào các tài liệu mã chính nó là thước đo thực sự.

Bên cạnh đó nếu mọi nhà phát triển đều có thể viết tài liệu, thì các nhà văn kỹ thuật sẽ không tham gia công việc.

Để tôi biết bất kỳ tài nguyên hoặc những gì để đề xuất, không có tôi không, tôi chưa bao giờ thực sự nhìn để cải thiện khả năng viết của tôi.

EDIT: Tôi cũng nên thêm mặc dù một số điều này phụ thuộc vào quá trình bạn sử dụng và vai trò và trách nhiệm mà nhà phát triển có thể có. Rõ ràng nếu nó yêu cầu các nhà phát triển viết một phần của hướng dẫn sử dụng, thì có, viết rõ ràng là rất quan trọng. Nhưng đây không phải là chuẩn mực.

EDIT2: Không ai trong số này có nghĩa là để nói rằng một devloper không nên có bất kỳ kỹ năng viết, nó đã được nhiều để nói rằng đang viết là quan trọng hơn nghệ/doc bằng văn bản.

EDIT3: Bây giờ nó đã được làm rõ rằng OP không muốn tham chiếu đến viết mã, sau đó tôi phải nói rằng không, nói chung nó không phải là rất quan trọng cho một nhà phát triển để có thể viết tài liệu kỹ thuật và tài liệu thiết kế, vì có rất nhiều điều quan trọng hơn cho một deveoloper để được tốt tại.

+1

Có thể viết những ý tưởng rõ ràng và rõ ràng, không nhất thiết có nghĩa là viết tài liệu. Nó vẫn còn aplies để mã. –

+0

và xin vui lòng cho tôi biết những gì tôi nói rằng quầy những gì bạn nói? "Điều quan trọng nhất, tôi nghĩ rằng một nhà phát triển cần để có thể viết rõ ràng, súc tích, đẹp, tự viết mã." – mattlant

+0

ĐỌC CÂU HỎI! "Tôi đã nhận thấy rằng những gợi ý của anh ấy chắc chắn đã cải thiện khả năng viết công nghệ của tôi. Tài liệu kỹ thuật và tài liệu thiết kế. " là một phần trong đó cho tôi biết rằng OP đã thu hút nhiều hơn mã. – mattlant

2

Nhà phát triển phần mềm rất giống các chuyên gia trong bất kỳ khu vực hoặc ngành nào khác sẽ có thể thể hiện suy nghĩ và ý tưởng của họ.

Phát triển phần mềm là nỗ lực của nhóm và giao tiếp là yếu tố quan trọng nhất có thể gây ra lỗi dự án. Ngày càng nhiều nhà phát triển về các dự án giao tiếp với bán hàng, tiếp thị, người kinh doanh, người dùng và những người khác như thế nào không có manh mối trong phát triển phần mềm. Và khả năng giao tiếp ý tưởng và nạc người khác đối với họ là kỹ năng rất quan trọng.

Không cần phải nói rằng nếu Trưởng nhóm công nghệ có thiết kế tuyệt vời nhưng không thể truyền đạt thiết kế của mình cho phần còn lại của nhóm, điều này có nghĩa là bạn có không có thiết kế.

+0

Aha, nhưng dẫn đầu công nghệ có nhiều điểm khác biệt so với lập trình viên * như được tổng quát bởi OP – mattlant

+0

Dẫn đầu về công nghệ có phần khác với nhà phát triển, nhưng ý tưởng chung vẫn đúng: nếu có hoặc muốn có ý tưởng khác sẽ theo bạn phải có khả năng truyền đạt chúng. Các trích dẫn từ Thucydides trong câu hỏi ban đầu bắt tất cả. –

+0

Thật vậy, nhưng trong nhiều công ty lớn, những ý tưởng của * lập trình viên * không được nghe. Điều đó đang dần thay đổi đặc biệt với số lượng lớn các tổ chức nhỏ, nhưng với điều đó thì tôi sẽ nói rằng họ không còn là lập trình viên nữa. – mattlant

0

Ở Argentina, chúng tôi phải liên lạc với bạn bè của chúng tôi tại Hoa Kỳ để hoàn thành công việc của chúng tôi.

Cách liên lạc chính là email và IM. Bạn sẽ không tưởng tượng được khó khăn như thế nào để hiểu rất nhiều và rất nhiều email vì thiếu văn bản tốt. Và tôi không nói về những thứ kỹ thuật khó, nhưng chỉ là cách thể hiện bản thân bằng tiếng Anh đơn giản.

Vì vậy, có. Tôi nghĩ rằng đó là rất quan trọng.

3

@slashmais: Bất kỳ ai thuộc bất kỳ loại năng lực chuyên môn nào đều có thể giao tiếp rõ ràng, có thể là kỹ sư, người quản lý, người kiểm tra hay bất kỳ thứ gì. Đây không chỉ là sở thích cá nhân, tôi tin điều này vì lợi ích của một tổ chức hay doanh nghiệp. Bạn không muốn lập trình viên mà chỉ có chức năng của nó là triển khai và mã tài liệu kém; bạn muốn các kỹ sư có thể suy nghĩ sâu sắc về mã và truyền đạt ý định của nó cho người khác trong một môi trường bên ngoài danh sách mã.

Những gì chúng tôi làm tại công ty của tôi là bản trình bày kỹ thuật hàng tuần của kỹ sư về chủ đề mà họ chọn. Đây là một chiến thắng lớn cho tất cả mọi người - nó giúp các kỹ sư trau dồi kỹ năng nói và viết của họ và giáo dục chúng ta về những gì họ đang làm. Chúng tôi cũng có các đánh giá mã nơi tài liệu của mã được phê bình nhiều như chính mã đó. Điều này dẫn đến mã dễ bảo trì hơn nhiều.Không có vấn đề gì nếu đó là IM, email, tài liệu hoặc mã - ít thời gian hơn tôi phải dành để phân tích thông tin liên lạc của bạn và tôi dành nhiều thời gian hơn để hoàn thành mọi thứ do kết nối của bạn, thì càng tốt cho công ty của tôi.

2

Có, người lập trình nên ghi lại công việc của mình; bạn sẽ xây dựng một ngôi nhà từ mô hình một phần tám và tin tưởng rằng bản thiết kế không cần thiết?

Đọc có giá trị: Steve McConnell's Code Complete, đặc biệt là các chương về chức năng đặt tên và tài liệu viết. Nếu bạn đặt tên và nhận xét mã của mình một cách thích hợp, các tài liệu sẽ tự viết.

2

Giao tiếp là điều cần thiết trong bất kỳ ngành nghề, kỹ nghệ phần mềm và lập trình máy tính nào cũng không có ngoại lệ. Không quan trọng ý tưởng của bạn là như thế nào nếu bạn không thể truyền đạt hiệu quả nó cho đồng nghiệp, người quản lý và khách hàng của bạn. Bạn có thể có nhiều ảnh hưởng với văn bản được viết tốt như với mã được viết tốt.

Một ví dụ tốt mà tôi chắc chắn là quen thuộc với hầu hết mọi người đọc sách này là cuốn sách R & R nổi tiếng. Theo tôi, một trong những lý do mà C trở thành một ngôn ngữ lập trình nổi bật là bởi vì Kernighan và Ritchie đã tạo ra một cuốn sách hay. Họ đã tạo ra một hướng dẫn sử dụng điển hình cho phong cách của các sổ tay biên dịch vào thời điểm đó thay vì một cuốn sách giáo khoa ngắn gọn, gọn gàng và cạnh tranh mà tôi nghi ngờ C sẽ trở nên thống trị như nó có.

+0

Đó là một ví dụ kém. K & G cao hơn mức "lập trình viên" – mattlant

1

Nhiệm vụ lập trình bao gồm hai phần chính. Đầu tiên là giao tiếp với một máy tính mà bạn đang cố gắng làm với mã của bạn. Đó là phần dễ dàng, trình biên dịch/thông dịch/máy ảo thực hiện hầu hết công việc ở đó. Phần khó khăn là giao tiếp với các lập trình viên khác những gì bạn đang cố gắng làm với mã của bạn.

Do khía cạnh của con người về lập trình, điều quan trọng là bạn là một nhà văn hiệu quả để trở thành một lập trình viên hiệu quả. Làm cho mọi thứ hoạt động không đủ tốt, những người đến sau khi bạn cần để có thể hiểu nó và làm việc với nó chỉ là tốt.

Có kỹ năng viết tốt có thể giúp bạn viết mã theo cách ngôn ngữ tự nhiên hơn (mặc dù có lỗ hổng đối với ngôn ngữ tự nhiên, do đó hãy sử dụng khi thích hợp). Nó cũng sẽ giúp bạn viết tài liệu, nhận xét và giải thích mã đó tốt hơn.

Như Blair Conrad đã nói, việc đặt tên mọi thứ cũng quan trọng và được hưởng lợi rất nhiều nhờ có kỹ năng viết tốt hơn. Những gì bạn gọi là mọi thứ có tác động đến cách mọi người nghĩ về chúng. Nếu các lập trình viên khác có thể tìm ra cách mã được nghĩ ra, thì họ có cơ hội tốt hơn khi sử dụng mã đó như dự định.

0

Vâng,


Nhưng văn bản rõ ràng là không giống như có chính tả và ngữ pháp không lầm lổi.

Tuy nhiên, cách viết của người khác sẽ khó hiểu nếu họ không thể đặt hàng suy nghĩ một cách hợp lý và quyết định chi tiết nào cần đưa vào (và để lại).

Nhận xét ngắn gọn về vấn đề này là tốt hơn rất nhiều, sau đó là một nhận xét dài với ngữ pháp không lỗi mà không đạt điểm.

Nếu bạn muốn chuyển sang quản lý thì có thể nhanh chóng viết tài liệu dài với chính tả và ngữ pháp hoàn hảo trở nên quan trọng hơn rất nhiều.

Hãy nhớ tất cả về cách dễ dàng ai đó hiểu ý bạn là gì, chứ không phải cách họ thích kiểu viết của bạn.

Ngữ pháp không phải lúc nào cũng không phải là cách tốt nhất để giao tiếp, ví dụ:

“Đây là loại tiếng Anh với mà tôi sẽ không đưa.”

Các vấn đề liên quan