Books for Building Scalable Web Applications? (DB

2019-04-10 06:46发布

问题:

After finishing school in Computer Science and entering the "real world" as a software engineer working on web applications, I've become overwhelmed by the amount of information to be learned about scaling web applications properly. Some topics/questions that have recently popped up for me:

  • RDBMS's vs. unstructured data storage.
  • Advantages and disadvantages of sharding for databases, search indexes, etc.
  • Which network file systems scale? Which don't?
  • The cost of HTTP and DB connections.
  • Static content delivery, why not to store images in a database, etc.
  • Why is it better to use one thread pool vs. creating new ones all the time?
  • More on memcached and alternatives.
  • Common CPU bound operations vs. IO-bound operations.
  • Skinny tables...
  • Better understanding of cookies...
  • WSDL's, REST, SOAP...
  • ORM, Hibernate...
  • A billion other buzz-words...

I'm looking for a book, or a small set of books, that'll cover a wide array of topics relevant to building scalable web applications, including topics that aren't specific to web applications. While I can easily look up specific information on each of the above topics, I'm looking for books that'll (a) bring up more related topics/questions that I have yet to come across, and (b) tie topics together as much as possible.

It seems that some key categories for me are:

  • DB performance and tuning
  • Scalability of networked servers/filesystems/communication
  • General performance and concurrency topics
  • General web topics (e.g. cookies)
    (Although this is not a comprehensive list, and you may be able to think of more important categories for someone in my situation.)

I'd also like to focus more on fundamentals than the nitty-gritty of the latest and greatest technologies. I think it's important that I establish my engineering fundamentals before I dive deep some random new technology.

So, back to the question: are there any books that you would recommend for someone in my situation? Any other methods for quickly building a breadth of knowledge?

Thanks!

回答1:

Some good books about scalability: The art of scalability Scalability rules

Building scalable web sites Developing large web applications http the complete reference High performance MYSQL

Oracle Performance tuning for Oracle database tuning Java performance tuning for java aplications

BigData from manning

Udacity has a course about: Builing scalable web applications

Regards



回答2:

I found this book very useful.

http://www.amazon.co.uk/Microsoft-NET-Architecting-Applications-PRO-Developer/dp/073562609X/ref=sr_1_1?s=books&ie=UTF8&qid=1280418789&sr=1-1

Microsoft .NET: Architecting Applications for the Enterprise (PRO-Developer) by Dino Esposito and Andrea Saltarello

I don't think you are going to find a holy grail though. The world of programming is moving faster and faster. As long as you stay a developer you are going to be reading tons and learning tons and just trying to keep pace with the changes