thánh Đường và chợ (cathedral and bazaar)
DESCRIPTION
Thánh Đường và Chợ (Cathedral and Bazaar). TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP. Trình bày: Ths Trương Vĩnh Hảo. Viết phần mềm như thế nào?. Cách suy ngh ĩ cổ điển: Xây thánh đường Cách viết phần mềm theo phương án Linux của Linus Torvald Xay chợ. Phương án nguồn mở đầu tiên. N ăm 1996 - PowerPoint PPT PresentationTRANSCRIPT
www.dtvc.edu.vn/?tvhao
1
Thánh Đường và Chợ(Cathedral and Bazaar)
Trình bày: Ths Trương Vĩnh Hảo
TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP
www.dtvc.edu.vn/?tvhao
2
Viết phần mềm như thế nào?
• Cách suy nghĩ cổ điển:
– Xây thánh đường
• Cách viết phần mềm theo phương
án Linux của Linus Torvald
– Xay chợ
www.dtvc.edu.vn/?tvhao
3
Phương án nguồn mở đầu tiên
• Năm 1996
• Chester County InterLink (CCIL) cần
Post Office Protocol 3 (POP3)
• Phương án nguồn mở đầu tiên của
Eric Raymond
www.dtvc.edu.vn/?tvhao
4
Bài học đầu tiên
• “Every good work of software starts
by scratching a developer’s itch”
– Mỗi một sản phẩm phần mềm tốt bắt
đầu từ việc gãi vào chổ ngứa của
người lập trình viên
www.dtvc.edu.vn/?tvhao
5
Bài học thứ hai
• “Good programmers know what to write. Great ones know what to rewrite (and reuse)”– Người lập trình viên giỏi biết cách lập trình.
Người thành thạo biết cách nào để viết lại và dùng lại.
• Linus Torvalds dùng mã nguồn và sáng kiến của Minux cho Linux.
• Eric Raymond chọn Seung-Hong Oh’s fetchpop làm nền tản cho POP3
www.dtvc.edu.vn/?tvhao
6
Bài học thứ ba
• Raymond phát hiện popclient của
Carl Harris
• “Plan to throw one away; you will,
anyhow” (Fred Brooks. The Mythical
Man Month. Chapter 11)
– “Hãy chuẩn bị để vứt bỏ phương án
của minh; dầu sao đi nữa, bạn cũng sẽ
phải như vậy”
www.dtvc.edu.vn/?tvhao
7
Bài học thứ tư
• “If you have the right attitude,
interesting problems will find you”
– Nếu chúng ta có quan điểm đúng đắn,
những vấn đề lý thú sẽ tự tìm đến”
www.dtvc.edu.vn/?tvhao
8
Bài học thứ năm
• “When you lose interest in a program, your last duty to it is to hand it off to a competent successor.”– “Nếu bạn đã mất nguồn cảm hứng đối với một
phương án, bạn nên thực hiện nhiệm vụ cuối cùng của bạn là trao phương án này cho một người nối nghiệp kế tiếp có tài năng.”
www.dtvc.edu.vn/?tvhao
9
Bài học thứ sáu
• “Treating your users as co-developers is
your least-hassle route to rapid code
development and effective debugging”
– Đối xử với người dùng phương án của bạn
như người cùng lập trình với bạn. Đây là con
đường dễ dàng nhất đưa đến việc lập trình và
sửa lỗi mau lẹ.”
www.dtvc.edu.vn/?tvhao
10
Bài học thứ bảy
• “Release early, release often”
– Phát hành sớm, phát hành thường
www.dtvc.edu.vn/?tvhao
11
Bài học thứ tám (Luật Linus)
• “Given enough eyeballs, all bugs are
shallow”
– Mọi lỗi lầm phần mềm đều dễ tìm nếu
có nhiều cặp mắt ngó vào
• ~ Delphi effect
– Ý kiến của nhiều người sẽ đúng hơn ý
kiến cá nhân của một chuyên gia
www.dtvc.edu.vn/?tvhao
12
Brooks’s Law
• Sự phức tạp = N*(N-1)/2
– N: số người lập trinh vien
www.dtvc.edu.vn/?tvhao
13
Tìm lỗi
• Nguồn đóng– Tìm lỗi nhưng không có kiến thức về mã
nguồn
– Sự sai lệch trong truyền đạt giữa người lập trình và nhân viên bảo đảm chất lượng/người dùng
• Nguồn mở– Người tìm lỗi đọc mã nguồn khi phát hiện lỗi
– Người tim lỗi có khi cũng là người sửa lỗi
www.dtvc.edu.vn/?tvhao
14
Bài học thứ chín
• “Smart data structures and dumb
code works a lot better than the other
way around”
– Cấu trúc dữ kiện thông minh và mã
nguồn ngốc nghếch hơn là sự tương
phản.
www.dtvc.edu.vn/?tvhao
15
Bài học thứ mười
• “If you treat your beta-testers as if they’re
your most valuable resource, they will
respond by becoming your most valuable
resource”
– Nếu bạn coi những người sử dụng beta là tài
nguyên quí giá nhất của bạn, thì họ sẽ hồi báo
khi trở thành tài nguyên quí giá nhất.
www.dtvc.edu.vn/?tvhao
16
Bài học thứ mười một
• The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better”– Khi bạn không có sáng kiến, cách hay nhất là
hãy chấp nhận và tuyên dương những ý kiến hay của người dùng của bạn. Đôi khi, cách này còn tốt hơn là ý kiến của bạn.
www.dtvc.edu.vn/?tvhao
17
Bài học thứ mười hai
• “Often, the most striking and innovative
solutions come from realizing that your
concept of the problem was wrong”
– Nhiều khi, giải pháp tốt nhất là sự nhận thức
được con đường mình đi là sai
www.dtvc.edu.vn/?tvhao
18
Bài học thứ mười ba
• Antoine de Saint-Exupery:
“Perfection (in design) is achieved not
when there is nothing more to add, but
rather when there is nothing more to take
away”
– Sự hoàn mỹ chỉ đạt được không phải khi
không còn có gì để thêm vào, mà chỉ khi
không có gì để bỏ đi.
www.dtvc.edu.vn/?tvhao
19
Bài học thứ mười bốn
• “Any tool should be useful in the expected
way, but a truly great tool lends itself to
uses you never expect”
– Dụng cụ cũng nên hữu dụng trong công
chuyện của nó, chỉ có những dụng cụ phi
thường có thể được sử dụng một cách phi
thường.
www.dtvc.edu.vn/?tvhao
20
Bài học thứ mười lăm
• “When writing gateway software of any kind, take pains to disturb the data stream as little as possible – and never throw away information unless the recipient forces you to!”– Khi viết phần mềm cửa ngõ, cố gắng đừng
thay đổi dòng dữ kiện và đừng bỏ đi dữ kiện nào trừ phi người nhận bắt buộc.
www.dtvc.edu.vn/?tvhao
21
Bài học thứ mười sáu
• “When your language is nowhere near
Turing-complete, syntactic sugar can be
your friend”
– Khi ngôn ngữ của bạn chưa được hoàn chỉnh,
đường có thể là bạn của bạn
www.dtvc.edu.vn/?tvhao
22
Bài học thứ mười bảy
• A security system is only as secure as its
secret. Beware of pseudo-secrets.
– Một hệ thống an ninh chỉ thể giữ tính an ninh
khi chìa khóa của nó còn được giữ bí mật.
Hãy coi chừng những chìa khóa bán bi mật.
www.dtvc.edu.vn/?tvhao
23
Yếu tố cần thiết cho cách xây chợ
• Phương án phải tạo được sự thu hút– Người lanh đạo nhận rõ được ý kiến hay của
người khác– Người lãnh đạo nên linh hoạt trong việc xã
giao
• Người lãnh đạo không nên dùng quyền lực– Khuyến khich– Khen thưởng
• “Hồi ức của một nhà cách mạng” của Pyotr Alexeyvich Kropotkin
www.dtvc.edu.vn/?tvhao
24
Thời gian phôi thai
• Thiết kế nên đơn giản
– Thu hút nhiều người dù là với tay nghề còn trẻ
www.dtvc.edu.vn/?tvhao
25
Bài học thứ mười tám
• To solve an interesting problem, start
by finding a problem that is
interesting to you
– Muốn giải một vấn đề lý thú, hãy bắt
đầu tìm một vấn đề lý thú cho bạn
www.dtvc.edu.vn/?tvhao
26
Bài học thứ mười chín
• Provided the development coordinator has
a communication medium at least as good
as the Internet, and knows how to lead
without coercion, many heads are
inevitably better than one
– Cho dù người điều khiển có một phương tiện
thông tin tốt như Mạng Lưới, và biết lãnh đạo
dùng sự áp bức, nhiều cái đầu vẫn hơn một
cái đầu
www.dtvc.edu.vn/?tvhao
27
Reference
• Raymond, Eric (2005). Cathedral
and the Bazaar. Retrieved August
10th, 2005
www.dtvc.edu.vn/?tvhao
29