paint-brush
Quyết định về kiến trúc phần mềm: Tập trung vào sự thật và đừng phỏng đoántừ tác giả@inovak
408 lượt đọc
408 lượt đọc

Quyết định về kiến trúc phần mềm: Tập trung vào sự thật và đừng phỏng đoán

từ tác giả Ivan Novak4m2023/07/28
Read on Terminal Reader

dài quá đọc không nổi

YAGNI là một nguyên tắc được sinh ra từ Lập trình cực đoan. Về cơ bản, đó là một lời nhắc nhở thân thiện không thêm chức năng cho đến khi thấy cần thiết. Đừng như Smitty. Xây dựng những gì cần thiết khi cần thiết. Hãy giống như Slack; hãy để nhu cầu của người dùng hướng dẫn các quyết định về kiến trúc phần mềm của bạn.
featured image - Quyết định về kiến trúc phần mềm: Tập trung vào sự thật và đừng phỏng đoán
Ivan Novak HackerNoon profile picture
0-item

Có lẽ bạn tham gia trò chơi này vì bạn muốn tạo ra phần mềm không chỉ hoạt động mà còn làm hài lòng người dùng, phải không?


Tin tốt! Đây không phải là một trò chơi đoán. Đó là về những quyết định sáng suốt dựa trên sự hiểu biết sâu sắc. Đó là về sự thật hơn là phỏng đoán.


"Trong kiến trúc phần mềm, sự thật là đồng minh đáng tin cậy, nhưng hãy đoán xem? Chúng có thể chỉ xây dựng cho bạn một ngôi nhà kỹ thuật số bằng các quân bài."


Con đường có thể đầy rẫy những lựa chọn khó khăn, nhưng hãy trang bị cho mình kiến thức phù hợp và bạn sẽ tự tin xây dựng điều tiếp theo phù hợp hơn là một tá (hoặc nhiều hơn) phỏng đoán!

Sức mạnh của YAGNI

YAGNI? Bạn sẽ không G onna N eed I t. Đó là một nguyên tắc được sinh ra từ Lập trình cực đoan. YAGNI về cơ bản là một lời nhắc nhở thân thiện không thêm chức năng cho đến khi thấy cần thiết. Và tin tôi đi, nó rất cần thiết.


Kỹ thuật thừa cũng phổ biến như các buổi viết mã đêm khuya đầy cà phê. Điều đó không nên xảy ra, nhưng bạn biết nó diễn ra như thế nào ...


Cho phép tôi chia sẻ một câu chuyện. Tôi đã từng làm việc với một anh chàng, hãy gọi anh ta là Smitty. Bây giờ, Smitty là một nhà phát triển cực kỳ nhiệt tình. Anh ấy là kiểu người có thể thiết kế cả một con tàu vũ trụ khi khách hàng chỉ yêu cầu một chiếc xe đạp. Điều đó thật đáng kinh ngạc, nhưng thường thì nó không cần thiết.


Một ngày nọ, Smitty dành hàng tuần để phát triển một tính năng phức tạp mà, hãy đoán xem, khách hàng chưa bao giờ sử dụng! Tất cả thời gian, năng lượng và cà phê - thật lãng phí.


Đây là cạm bẫy YAGNI giúp bạn tránh. Đừng như Smitty. Xây dựng những gì cần thiết khi cần thiết.

Ngôi sao dẫn đường của bạn: Nhu cầu của người dùng

Nhưng làm thế nào để bạn biết những gì cần thiết? Phần mềm của bạn không phải là để thể hiện sức mạnh công nghệ của bạn. Đó là về việc giải quyết vấn đề cho người dùng của bạn. Ngôi sao dẫn đường của bạn? Nhu cầu của người dùng, không phải ý thích và mong muốn bất chợt của bạn hoặc nhóm của bạn.


Đó là về việc tạo ra một giải pháp liền mạch sao cho phù hợp với cuộc sống của người dùng giống như mảnh ghép còn thiếu.


Kiến trúc phần mềm phải được xem xét một cách thận trọng và có tính đến toàn bộ sản phẩm, không phải thứ gì đó được kế thừa ngẫu nhiên từ một chuỗi các dự án. Hãy tránh "thiết kế một cách tình cờ".


Hãy xem xét Slack, nền tảng nhắn tin được nhiều người yêu thích. Điều làm nên sự khác biệt của Slack là sự tập trung cao độ vào mong muốn của khách hàng. Nó không được định sẵn chỉ là một ứng dụng nhắn tin khác; nó được thiết kế để trở thành một trung tâm cộng tác nơi công việc diễn ra liền mạch.


Họ đã quan sát, đặt câu hỏi, đối chiếu dữ liệu và đưa những thông tin chi tiết đó vào ứng dụng mà chúng tôi không thể thiếu. Hãy giống như Slack; hãy để nhu cầu của người dùng hướng dẫn các quyết định về kiến trúc phần mềm của bạn.

Bản chất của các quyết định dựa trên dữ liệu

Bây giờ, để đưa ra những quyết định sáng suốt, bạn cần có dữ liệu - những sự thật phũ phàng và lạnh lùng. Phỏng đoán là kẻ thù mà bạn không cần đến trong đời. Nó giống như cố gắng đánh một con bò tót bằng một chiếc khăn bịt mắt - hầu hết, bạn sẽ trượt.


Các quyết định dựa trên linh cảm cũng tốt như tung đồng xu, đó không phải là cách xây dựng phần mềm thành công.


Hãy xem xét Amazon, một công ty thực sự tôn thờ dữ liệu. Mọi quyết định về kiến trúc, mọi tính năng được thêm vào và mọi thay đổi được thực hiện đều dựa trên phân tích toàn diện về dữ liệu khách hàng. Kết quả? Trải nghiệm mua sắm siêu cá nhân hóa giúp khách hàng quay lại.

Xây dựng cơ chế thu thập dữ liệu

"Tôi lấy dữ liệu này ở đâu?" Câu hỏi hay! Bạn xây dựng cơ chế để thu thập nó! Chúng có thể đơn giản như phản hồi trực tiếp của người dùng hoặc phức tạp như đường ống phân tích dữ liệu tự động. Hãy nghĩ về nó giống như việc đặt bẫy để thu thập thông tin chi tiết - bạn càng đặt nhiều bẫy, bạn càng bắt được nhiều bẫy.


Điều đó nói rằng, điều quan trọng cần nhớ là thu thập dữ liệu không phải vì lợi ích của nó. Đó là về việc thu thập thông tin chi tiết hữu ích giúp bạn cung cấp các tính năng tốt hơn, hữu ích hơn cho người dùng của mình. Hãy tiếp tục, nắm lấy nhà khoa học dữ liệu bên trong của bạn!

Hành trình hướng tới phương pháp tiếp cận dựa trên dữ liệu, lấy người dùng làm trung tâm

Xoay vòng sang cách tiếp cận dựa trên dữ liệu, lấy người dùng làm trung tâm có vẻ khó khăn, nhưng kết quả hoàn toàn xứng đáng. Việc áp dụng các phương pháp mới, nâng cao hiểu biết về dữ liệu và thúc đẩy văn hóa ưu tiên người dùng là những thay đổi trên toàn nhóm.


Vâng, nó có vẻ khó khăn, nhưng phần thưởng là một quy trình phát triển phần mềm dựa trên giá trị, hiệu quả hơn, gọn gàng hơn. Khi chúng ta tập trung vào những điều đúng đắn thường xuyên hơn, chúng ta có thể đạt được nhiều hơn với chi phí ít hơn!

Đấu tranh cho sự thay đổi

Hãy nhìn xem, có thể có sự kháng cự. Có thể có những người bám vào những cách cũ, những cách thoải mái. Nhưng đây là cơ hội để bạn vô địch một kỷ nguyên mới. Cơ hội của bạn để dẫn dắt nhóm của bạn hướng tới một tương lai nơi các quyết định được hướng dẫn bởi thực tế chứ không phải phỏng đoán.


Nơi phần mềm được xây dựng để giải quyết các vấn đề thực tế, không phải để thỏa mãn sở thích của nhà phát triển.

Lời kêu gọi hành động của bạn

Đây là bước đầu tiên của bạn. Khởi đầu nhỏ. Lần tới khi bạn chuẩn bị thêm một tính năng hoặc đưa ra quyết định về kiến trúc, hãy hỏi: "Chúng tôi có dữ liệu để hỗ trợ cho quyết định này không? Nó có phục vụ người dùng không hay nó chỉ là một thứ mới mẻ?"


Phần mềm tuyệt vời không được xây dựng dựa trên ý tưởng bất chợt hoặc linh cảm; nó được xây dựng trên các quyết định sáng suốt.


Cuối cùng, đó là việc mang lại giá trị to lớn cho người dùng của bạn - về việc tạo ra phần mềm mà mọi người sử dụng, yêu thích và không thể tưởng tượng được cuộc sống của họ nếu thiếu nó. Và bạn thừa khả năng để làm điều đó.


Vì vậy, hãy ra khỏi đó, thu thập dữ kiện của bạn, đặt người dùng của bạn lên hàng đầu và bắt đầu xây dựng phần mềm đáng kinh ngạc. Người dùng của bạn đang chờ đợi.