thắc mắc black box là xu hướng?

alexTVr1

Member
công nghệ càng phát triển thì người ta càng tạo nhiều thư viên , api ... nói chung là black box nhầm che giấu cái phức tạp lại mà cung cấp sự đơn giản , tính năng cho người khác dùng, từ ngôn ngữ, framework, hệ thống ... nhưng có 1 thứ ngược đời mà mình thấy là muốn đi làm ngành IT thì lại bắt buộc phải ngồi mò ngược cái black box này, không những là biết được cách sử dụng, cách nó hoạt động, mà còn phải có khả năng copy được nó, mình thấy mấy dịch vụ cloud của amz,google dạng DBaaS ,IaaS ,BaaS,PaaS , serverless ... họ muốn giấu hết cái phức tạp đi để cung cấp cái dễ dàng cho ltv tương tác, nhưng trong quá trình làm thì chính cái dễ dàng đó nhiều khi lại là cái khó khăn vì phải custom theo đúng ý thì phải nắm rõ cốt lõi của nó , thành ra nhiều khi chỉ muốn tự build trên vps cho khỏe, ý mình muốn nói ở đây là các thông tin của black box nhiều khi mình chả biết tìm manh mối ở đâu, các framework, ngôn ngữ lâu đời thì dễ vì có cộng đồng lớn, chứ bọn mới hoặc ít người dùng nó đúng là ngồi mò, trong document nó nhiều khi chỉ dừng lại ở chữ how to use it
 
Đọc thêm bài https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ nhé

Đại ý là có cố dấu độ phức tạp kiểu gì dưới api đơn giản thì cũng sẽ có lúc cái sự phức tạp đấy lộ ra ngoài.

Còn bạn bảo tự build thì có vẻ bạn chưa có nhiều kinh nghiệm làm software phức tạp rồi. Nhiều software về cloud tự build thì code nó hẳn cả triệu dòng, bạn thuê trăm người còn chưa chắc build được huống hồ là tự làm

Dùng framework thì phức tạp, tự build thì bất khả thi, nên chuyện khả năng đọc code lớn và hiểu được code đó làm gì là một kĩ năng không thể thiếu nếu bạn muốn phát triển lâu dài về nghiệp kĩ sư IT.
 
Đọc thêm bài https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/ nhé

Đại ý là có cố dấu độ phức tạp kiểu gì dưới api đơn giản thì cũng sẽ có lúc cái sự phức tạp đấy lộ ra ngoài.

Còn bạn bảo tự build thì có vẻ bạn chưa có nhiều kinh nghiệm làm software phức tạp rồi. Nhiều software về cloud tự build thì code nó hẳn cả triệu dòng, bạn thuê trăm người còn chưa chắc build được huống hồ là tự làm

Dùng framework thì phức tạp, tự build thì bất khả thi, nên chuyện khả năng đọc code lớn và hiểu được code đó làm gì là một kĩ năng không thể thiếu nếu bạn muốn phát triển lâu dài về nghiệp kĩ sư IT.
thì đó cũng là 1 nghịch lý mà mình muốn nói đó :D, sao phải làm khổ nhau, nếu dùng đồ thằng nào thì thằng cung cấp hãy show tất cả cho thằng dev bên tích hợp đỡ khổ đỡ tốn công cặm cụi fix bug chỉ vì ko thật sự hiểu bản chất chạy bên trong cái api, phải ngồi suy diễn mò và tự chứng minh, nhiều khi lại tự tạo lại bánh xe nữa
 
thì đó cũng là 1 nghịch lý mà mình muốn nói đó :D, sao phải làm khổ nhau, nếu dùng đồ thằng nào thì thằng cung cấp hãy show tất cả cho thằng dev bên tích hợp đỡ khổ đỡ tốn công cặm cụi fix bug chỉ vì ko thật sự hiểu bản chất chạy bên trong cái api, phải ngồi suy diễn mò và tự chứng minh, nhiều khi lại tự tạo lại bánh xe nữa
Thật ra bọn nó cũng muốn show nhưng ko biết show kiểu gì đấy chứ. Viết docs cho người khác hiểu được hệ thống lớn là kĩ năng cũng khó phết chứ chả đùa, cũng giống trên giảng đường thì một ông giáo sư làm nghiên cứu giỏi chưa chắc đã giảng được cho sinh viên hiểu vấn đề.


Những project quan trọng tôi thấy bọn nó opensource có show commits history + documents tốt thì mình hiểu đc cũng nhiều từ đấy
 
sao phải làm khổ nhau, nếu dùng đồ thằng nào thì thằng cung cấp hãy show tất cả

đơn giản là ko có xiền, hoặc bạn có tiền thì chọn thằng lớn mà chơi, nó cũng đánh đổi hết thôi. thằng thuê bạn thay vì trả tiền cho provider thì trả tiền cho bạn để làm việc đó. Giờ nó chọn thằng provider xịn hơn rồi trả tiền ít cho bạn bạn có chịu không :hehe:
 
Đọc đi đọc lại vẫn không hiểu ý thớt muốn nói gì. Black box thì có lý do nó mới là black box.

Đặc điểm IT hay các ngành công nghiệp khác nói chung là có độ tích luỹ (cho tới khi xuất hiện một phát minh đột phát). Nếu thím xài thôi thì cứ xài, thắc mắc bên trong làm gì. Thím muốn clone thì thím tưởng tượng công sức của 10k kỹ sư làm việc hơn 20 năm nó lớn như thế nào, không phải kêu replica là replica được ngay, muốn làm cũng phải có 10k kỹ sư và X năm nhất định mới bằng được họ bây giờ.

via theNEXTvoz for iPhone
 
Đọc đi đọc lại vẫn không hiểu ý thớt muốn nói gì. Black box thì có lý do nó mới là black box.

Đặc điểm IT hay các ngành công nghiệp khác nói chung là có độ tích luỹ (cho tới khi xuất hiện một phát minh đột phát). Nếu thím xài thôi thì cứ xài, thắc mắc bên trong làm gì. Thím muốn clone thì thím tưởng tượng công sức của 10k kỹ sư làm việc hơn 20 năm nó lớn như thế nào, không phải kêu replica là replica được ngay, muốn làm cũng phải có 10k kỹ sư và X năm nhất định mới bằng được họ bây giờ.

via theNEXTvoz for iPhone
đi pv nhiều chỗ nó hỏi mình về cái nằm bên trong black box đó thím, nên đó mới là cái nghịch lý, thằng cung cấp thì muốn giấu, thằng đi thuê thì bắt thằng làm thuê phải biết cái mà người ta giấu
 
đi pv nhiều chỗ nó hỏi mình về cái nằm bên trong black box đó thím, nên đó mới là cái nghịch lý, thằng cung cấp thì muốn giấu, thằng đi thuê thì bắt thằng làm thuê phải biết cái mà người ta giấu
Bạn ko hiểu ý người ta rồi.

Dấu ở đây nghĩa là trong lúc viết code, bạn ko nên quan tâm bên trong cái box nó có gì. Đây là nguyên lí cơ bản của encapsulation hay information hiding: càng ít phụ thuộc vào implementation detail của người ta thì phần mềm của bạn sẽ ít bị lỗi khi người ta upgrade implementation của họ.

Còn hiểu ở đây là trong lúc debugging hoặc performance tuning, code có thể không phụ thuộc vào implementation nhưng khi có lỗi integration hay phần mềm chạy chậm thì mặc dù bạn đã dùng đúng Api thì bạn cần có khả năng đọc hiểu được bên dưới api mình đang dùng chuyện gì thật sự xảy ra.

Nên nhớ là "the test of a first-rate intelligence is the ability to hold two opposed ideas in the mind at the same time, and still retain the ability to function"
 
Nó không dấu thì lại để đối thủ cạnh tranh, hay mấy ông Open source làm app free nó mất miếng ăn à ? Quy lại là vì lợi nhuận của nó hết còn sự phát triển công nghệ hay gì nó cũng tính thâu tóm hết chứ không phải là 1 cộng đồng có kiến thức có năng lực làm việc ....
 
Nó không dấu thì lại để đối thủ cạnh tranh, hay mấy ông Open source làm app free nó mất miếng ăn à ? Quy lại là vì lợi nhuận của nó hết còn sự phát triển công nghệ hay gì nó cũng tính thâu tóm hết chứ không phải là 1 cộng đồng có kiến thức có năng lực làm việc ....
mình cũng nghĩ thế này, nên mấy thằng mà làm mấy cái opensource mấy thấy nể vl, bỏ thời gian công sức ra làm cho cộng đồng, mà chất lượng cũng chả thua kém đồ off là mấy
 
mình cũng nghĩ thế này, nên mấy thằng mà làm mấy cái opensource mấy thấy nể vl, bỏ thời gian công sức ra làm cho cộng đồng, mà chất lượng cũng chả thua kém đồ off là mấy
Thím cứ tưởng tượng được làm những thứ thím thích, có một cộng đồng lớn sẵn sàng giúp đỡ nhau như anh chị em trọng một nhà, nó tuyệt vời lắm chứ!

Còn ở VN nói riêng thì chữ "Tiền", Giàu-Nghèo nó quá nặng rồi :embarrassed:
 
mình cũng nghĩ thế này, nên mấy thằng mà làm mấy cái opensource mấy thấy nể vl, bỏ thời gian công sức ra làm cho cộng đồng, mà chất lượng cũng chả thua kém đồ off là mấy
Thực ra làm opensource nó cũng là một dạng portfofio đấy.
  • Có profile đẹp dễ ứng tuyển lương cao.
  • Hàm lượng chất xám lớn thì dễ làm consultant.
  • Xịn xò hơn nữa thì pitch được đầu tư, trở thành unicorn...

Nhìn tấm gương các opensource project xịn xò như Kafka, Redis, Elasticsearch, Vert.x... là thấy :big_smile:
 
đi pv nhiều chỗ nó hỏi mình về cái nằm bên trong black box đó thím, nên đó mới là cái nghịch lý, thằng cung cấp thì muốn giấu, thằng đi thuê thì bắt thằng làm thuê phải biết cái mà người ta giấu

Là sao nhỉ... Nếu mà vendor họ muốn giấu thì không ai biết được đâu, kể cả người thuê bạn. Người ta nên expect lập trình viên hiểu được khái niệm, chứ ai bắt được fen phải hiểu họ đã code chính xác như thế nào :eek:

Ví dụ như bạn dùng dịch vụ của AWS thì mặc nhiên bạn phải biết để start được cái Lambda dùng công nghệ container, nó có coldstart. Có ai bắt bạn phải biết đằng sau họ dùng container gì, ở phiên bản nào, có bug ra sao đâu :D

Elastic Loadbalancer hay API Gateway nó cũng na ná các Load balancer hay API gateway khác. Nó sẽ làm mất IP thông tin IP requestor gốc (đẩy vào trong X-Forwarded-For) chứ đâu cần bạn phải biết họ dùng 1 con LB vật lý firmware cisco 2017 chẳng hạn :D

Bạn thử ví dụ xem có cái gì mà người ta cố tình giấu mà khách hàng của bạn lại bắt bạn phải biết được không?
 
Để mình thử đưa ra một góc nhìn khác nhé.
Việc đôi khi phải biết cái bên dưới làm việc như thế nào không gì là nghịch lý cả. Bởi vì trựu tượng hóa, hoặc blackbox theo cách gọi của bạn, sẽ không bảo vệ bạn khỏi những vấn đề xảy ra bên trong nó. Nó chỉ giúp mình làm nhanh hơn và không phải tốn nơron suy nghĩ về chi tiết. Nếu đã xác định như vậy lúc sử dụng nó, tức là bạn sẽ không mong đợi nó bao bọc hoàn toàn những thứ nó cố gắng bao bọc, thì không có nghịch lý gì ở đây cả. :byebye:
Nếu có nghịch lý, thì nó hoàn toàn do mình tự tạo ra. Vì sao? Vì mình biết rằng AWS sẽ không cung cấp những thông tin bên dưới vì nhiều lý do, và mình biết đôi khi sẽ cần phải hiểu thông tin bên dưới để đáp ứng được nhu cầu. Mà mình vẫn sử dụng nó. Lúc này nghịch lý là do mình tự tạo ra. :D
"Black box là xu hướng" nghe rất huề vốn. Nó đơn giản là việc tất yếu và thuận theo tự nhiên. Giống như hồi xưa người ta ở trong hang, giờ người ta biết xây nhà nên làm nhà để ở. Lúc này nói "Xây nhà là xu hướng" nghe rất buồn cười.
 
đi pv nhiều chỗ nó hỏi mình về cái nằm bên trong black box đó thím, nên đó mới là cái nghịch lý, thằng cung cấp thì muốn giấu, thằng đi thuê thì bắt thằng làm thuê phải biết cái mà người ta giấu
mình chưa hiểu cái giấu là giấu sao?, nếu là opensource thì nó có source code mà, vô đó mà đọc
 
Back
Top