Các kỹ sư phần mềm ở Google, Amazon, v.v. . có sử dụng các cấu dữ liệu và các giải thuật trong phát triển các ứng dụng trong thực tế?
Yes, software engineers at the top tier software companies use data structures and algorithms in their application development. It’s rare that you need to implement something standard and complex from scratch. However, you need to know of the algorithm and data structure existence, so you can factor it into your design.
For example, suppose I’m writing a web service which handles transactions from a front-end web service. I need to have local queues - possibly priority queues - to prioritize the transaction requests I get. I’ll need locks and locking for any local data structures. I’ll need reliable consensus algorithms (or libraries which implement these) to make persisted data reliable in the face of storage failures. I’ll need to understand the scalability and computational complexity of my service and algorithms (in terms of big-O) to know when I need to start throttling my input.
Constructs like hash sets, maps, multi-maps, arrays, lists are used constantly. For specialized services you wind up digging deep into other domains, such asdistributed hash tables for peer-to-peer services, zero-knowledge proofs for security, encryption choices for authentication and authorization. connected components analysis for touch tracking, machine learning for gesture recognition, and so on.
It’s good, clean, fun.
Theo quora.com
» Tin mới nhất:
» Các tin khác: