rw-book-cover

Metadata

Описание

Книга Алекса Эдвардса «Let’s Go» — это практичное и структурированное руководство по созданию веб-приложений на языке Go, идеально подходящее как для новичков, так и для опытных разработчиков. Автор поэтапно разбирает процесс разработки: от настройки среды и базовых концепций до построения полноценного приложения с использованием современных подходов (роутинг, middleware, работа с БД, аутентификация). Книга насыщена примерами кода, советами по оптимизации и безопасности, а также рекомендациями по организации «чистой» архитектуры. Четкие объяснения, акцент на лучших практиках и реалистичные проекты делают её отличным ресурсом для тех, кто хочет уверенно освоить Go в контексте веб-разработки.


Узнал о книге из блога автора, который сам по себе замечательный и содержит множество полезных материалов по Go. Книга же — практичное и чётко структурированное руководство по созданию веб-приложений, идеально подходящее для новичков. Автор поэтапно разбирает процесс разработки одного законченного веб-приложения: от настройки среды и базовых концепций до построения полноценного приложения с использованием современных подходов (роутинг, middleware, работа с БД, аутентификация). Больше всего ценю такие книги, опираясь на которые можно от начала и до конца разработать что-то своё. Книга насыщена примерами кода, советами по оптимизации и безопасности, а также рекомендациями по организации «чистой» архитектуры. Четкие объяснения, акцент на лучших практиках и реалистичный проект делают её отличным ресурсом для тех, кто хочет освоить Go в контексте веб-разработки.

    author: 
    title: 
    publisher: 
    year: 
    description: ""
    url: 
    coverUrl: /images/books/image.jpg
    reviewURL:
    tags:
      - Inspiration
    status: read
    dateFinished:

Highlights

  • One of the great things about Go is that you can establish a web server and listen for incoming requests as part of your application itself. You don’t need an external third-party server like Nginx or Apache. (View Highlight)

  • Important: Before we continue, I should explain that Go’s servemux treats the URL pattern ”/” like a catch-all. So at the moment all HTTP requests to our server will be handled by the home function, regardless of their URL path. For instance, you can visit a different URL path like http://localhost:4000/foo and you’ll receive exactly the same response. (View Highlight)

  • In Go’s servemux, fixed path patterns like these are only matched (and the corresponding handler called) when the request URL path exactly matches the fixed path. (View Highlight)

  • Although this approach can make your code slightly shorter, I don’t recommend it for production applications. Because DefaultServeMux is a global variable, any package can access it and register a route — including any third-party packages that your application imports. If one of those third-party packages is compromised, they could use DefaultServeMux to expose a malicious handler to the web. So, for the sake of security, it’s generally a good idea to avoid DefaultServeMux and the corresponding helper functions. Use your own locally-scoped servemux instead, like we have been doing in this project so far. (View Highlight)

  • Important: Changing the response header map after a call to w.WriteHeader() or w.Write() will have no effect on the headers that the user receives. You need to make sure that your response header map contains all the headers you want before you call these methods. (View Highlight)

    • Note: Логично, потому что статус-код возвращается в самом начале.

📂 Articles | Последнее изменение: 06.02.2025 20:39