[x/go.dev] go.dev: 2020 Redesign

- Adds additional companies to case study grid
- Carousel added for landing page quotes & events (and top of /solutions page)
- Updates content for use case and company case study pages
- Various new templating (ex: quote boxes)
- Mobile responsive styles for all pages affected by this commit
- Messaging components: modal, inline message, snack bar, promotion header
- Sticky sub navigation to each section on use case pages, with mobile dropdown
- Redesigns search box and animates open/close on mobile
- Adds eslint & stylelint config files

http://staging.go.dev/

Change-Id: I03a809724c9869f075e81f841e5d65e2901c592f
X-GoDev-Commit: 4f28d5584fba7b5eb617b210084e2dfc0aa729f5
This commit is contained in:
Matt Masurka 2020-07-02 11:06:24 -07:00
Родитель 49959b5c20
Коммит 5571d04a21
120 изменённых файлов: 5349 добавлений и 1996 удалений

11
go.dev/.eslintrc.json Normal file
Просмотреть файл

@ -0,0 +1,11 @@
{
"extends": "google",
"parserOptions": {
"ecmaVersion": 6
},
"rules": {
"require-jsdoc": "off",
"indent": "off",
"arrow-parens": "off"
}
}

2
go.dev/.gitignore поставляемый
Просмотреть файл

@ -17,4 +17,4 @@
# Ignore Hugo output
public/
resources/
resources/

Просмотреть файл

@ -1,2 +1,4 @@
arrowParens: avoid
singleQuote: true
bracketSpacing: false
quoteProps: consistent

13
go.dev/.stylelintrc.json Normal file
Просмотреть файл

@ -0,0 +1,13 @@
{
"plugins": [
"stylelint-order"
],
"rules": {
"selector-list-comma-newline-after": "always",
"order/order": [
"custom-properties",
"declarations"
],
"order/properties-alphabetical-order": true
}
}

Просмотреть файл

@ -11,8 +11,29 @@ git clone sso://partner-code/go.dev && (cd go.dev && f=`git rev-parse --git-dir`
- Please include relevant resources using the same `name` attribute for images.
- `themes/default` contains the site layout.
### Style Guides
- [CSS](https://golang.org/wiki/CSSStyleGuide)
- [JavaScript](https://google.github.io/styleguide/jsguide.html)
## Deploying
All commits targeting `master` will trigger a CI test defined in `cloudbuild.ci.yaml`.
All commits pushed to `master` will be automatically deployed to https://dev.go.dev.
## Code repo
https://partner-code.git.corp.google.com/go.dev
## Commands
- Running the server: `hugo server -D`
- Pushing to staging: `git push -f origin HEAD:staging`
## Where things live
- Javascript:
- Carousels: /static/js/carousels.js
- Tab navigation, filtering, listeners: /static/js/site.js
- Solutions page template: /layouts/solutions/single.html
- Home page template: /layouts/index.html
- Site wide styles: /assets/css/styles.css
- Site configuration: /config.toml
- Promotional components (modal, snackbar, etc) are in this branch: `messaging-components`

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,7 +1,10 @@
baseURL = "https://go.dev/"
baseURL = ""
languageCode = "en"
title = "go.dev"
[markup]
defaultMarkdownHandler = "blackfriday"
[blackfriday]
plainIDAnchors = true
hrefTargetBlank = true
@ -16,21 +19,21 @@ title = "go.dev"
[[menu.main]]
identifier = "solutions"
name = "Why Go"
title = "Solutions"
title = "Why Go"
url = "/solutions"
weight = -110
[[menu.main]]
identifier = "learn"
name = "Getting Started"
title = "Learn"
title = "Getting Started"
url = "/learn"
weight = -100
[[menu.main]]
identifier = "explore"
name = "Discover Packages"
title = "Explore"
title = "Discover Packages"
url = "https://pkg.go.dev"
weight = -90
@ -113,6 +116,12 @@ title = "go.dev"
url = "https://blog.golang.org"
weight = -60
[[menu.footer]]
name = "Issue Tracker"
parent = "about"
url = "https://github.com/golang/go/issues"
weight = -50
[[menu.footer]]
name = "Release Notes"
parent = "about"
@ -138,6 +147,12 @@ title = "go.dev"
url = "https://www.twitter.com/golang"
weight = -70
[[menu.footer]]
name = "r/golang"
parent = "connect"
url = "https://reddit.com/r/golang"
weight = -35
[[menu.footer]]
name = "Twitter"
parent = "connect"
@ -145,7 +160,7 @@ title = "go.dev"
weight = -70
[[menu.footer]]
name = "GitHub"
name = "Github"
parent = "connect"
url = "https://github.com/golang"
weight = -50
@ -161,3 +176,9 @@ title = "go.dev"
parent = "connect"
url = "https://www.meetup.com/pro/go"
weight = -30
[[menu.footer]]
name = "Golang Weekly"
parent = "connect"
url = "https://golangweekly.com/"
weight = -20

Просмотреть файл

@ -0,0 +1,3 @@
---
title: Why Go
---

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 71 KiB

После

Ширина:  |  Высота:  |  Размер: 71 KiB

Просмотреть файл

@ -1,75 +1,73 @@
---
title: "American Express Uses Go for Payments & Rewards"
description: ""
date: 2019-11-10T16:26:31-04:00
company: American Express
logoSrc: amex.svg
heroImgSrc: go_amex_case_study_logo.png
carouselImgSrc: go_amex_case_study.png
date: 2019-12-19
series: Case Studies
quote: Go provides American Express with the speed and scalability it needs for both its payment and rewards networks.
resources:
- name: logo
src: logo.png
params:
alt: American Express
---
## Go Improves Microservices and Speeds Productivity
Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.
American Express payment processing systems have been developed over its long history and have been updated across multiple architectural evolutions. Foremost in any update, payment processing needs to be fast, especially at very large transaction volumes, with resilience built across systems that must all be compliant with security and regulatory standards. With Go, American Express gains the speed and scalability it needs for both its payment and rewards networks.
## Modernizing American Express systems
American Express understands that the programming language landscape is changing drastically. The company's existing systems were purpose-built for high concurrency and low latency, but knowing that those systems would be re-platformed in the near future. The payments platform team decided to take the time to identify what languages were ideal for American Express' evolving needs.
The payments and rewards platform teams at American Express were among the first to start evaluating Go. These teams were focused on microservices, transaction routing, and load-balancing use cases, and they needed to modernize their architecture. Many American Express developers were familiar with the languages capabilities and wanted to pilot Go for their high concurrency and low latency applications (such as custom transactional load balancers). With this goal in mind, the teams began lobbying senior leadership to deploy Go on the American Express payment platform.
"We wanted to find the optimal language for writing fast and efficient applications for payment processing," says Benjamin Cane, vice president and principal engineer at American Express. "To do so, we started an internal programming language showdown with the goal of seeing which language best fit our design and performance needs."
## Comparing languages
For their assessment, Cane's team chose to build a microservice in four different programming languages. They then compared the four languages for speed/performance, tooling, testing, and ease of development.
For the service, they decided on an ISO8583 to JSON converter. ISO8583 is an international standard for financial transactions, and its commonly used within American Express' payment network. For the programming languages, they chose to compare C++, Go, Java and Node.js. With the exception of Go, all of these languages were already in use within American Express.
From a speed perspective, Go achieved the second-best performance at 140,000 requests per second. Go showed that it excels when used for backend microservices.
While Go may not have been the fastest language tested, its powerful tooling helped bolster its overall results. Go's built-in testing framework, profiling capabilities, and benchmarking tools impressed the team. "It is easy to write effective tests in Go," says Cane. "The benchmarking and profiling features make it simple to tune our application. Coupled with its fast build times, Go makes it easy to write well-tested and optimized code."
Ultimately, Go was selected by the team as the preferred language for building high-performance microservices. The tooling, testing frameworks, performance, and language simplicity were all key contributors.
{{% pullquote author="Glen Balliet, Engineering Director of loyalty platforms at American Express" %}}
What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.
{{% pullquote author="Glen Balliet" title="Engineering Director of loyalty platforms" company="American Express" %}}
What makes Go different from other programming languages is cognitive load. You can do more with less code, which makes it easier to reason about and understand the code that you do end up writing.
The majority of Go code ends up looking quite similar, so, even if youre working with a completely new codebase, you can get up and running pretty quickly.
{{% /pullquote %}}
## Go for infrastructure
## Go Improves Microservices and Speeds Productivity
Founded in 1850, American Express is a globally integrated payments company offering charge and credit card products, merchant acquisition and processing services, network services, and travel-related services.
American Express payment processing systems have been developed over its long history and have been updated across multiple architectural evolutions. Foremost in any update, payment processing needs to be fast, especially at very large transaction volumes, with resilience built across systems that must all be compliant with security and regulatory standards. With Go, American Express gains the speed and scalability it needs for both its payment and rewards networks.
### Modernizing American Express systems
American Express understands that the programming language landscape is changing drastically. The company's existing systems were purpose-built for high concurrency and low latency, but knowing that those systems would be re-platformed in the near future. The payments platform team decided to take the time to identify what languages were ideal for American Express' evolving needs.
The payments and rewards platform teams at American Express were among the first to start evaluating Go. These teams were focused on microservices, transaction routing, and load-balancing use cases, and they needed to modernize their architecture. Many American Express developers were familiar with the languages capabilities and wanted to pilot Go for their high concurrency and low latency applications (such as custom transactional load balancers). With this goal in mind, the teams began lobbying senior leadership to deploy Go on the American Express payment platform.
"We wanted to find the optimal language for writing fast and efficient applications for payment processing," says Benjamin Cane, vice president and principal engineer at American Express. "To do so, we started an internal programming language showdown with the goal of seeing which language best fit our design and performance needs."
### Comparing languages
For their assessment, Cane's team chose to build a microservice in four different programming languages. They then compared the four languages for speed/performance, tooling, testing, and ease of development.
For the service, they decided on an ISO8583 to JSON converter. ISO8583 is an international standard for financial transactions, and its commonly used within American Express' payment network. For the programming languages, they chose to compare C++, Go, Java and Node.js. With the exception of Go, all of these languages were already in use within American Express.
From a speed perspective, Go achieved the second-best performance at 140,000 requests per second. Go showed that it excels when used for backend microservices.
While Go may not have been the fastest language tested, its powerful tooling helped bolster its overall results. Go's built-in testing framework, profiling capabilities, and benchmarking tools impressed the team. "It is easy to write effective tests in Go," says Cane. "The benchmarking and profiling features make it simple to tune our application. Coupled with its fast build times, Go makes it easy to write well-tested and optimized code."
Ultimately, Go was selected by the team as the preferred language for building high-performance microservices. The tooling, testing frameworks, performance, and language simplicity were all key contributors.
### Go for infrastructure
"Many of our services are running in Docker containers within our Kubernetes-based internal cloud platform" says Cane. Kubernetes is an open-source container-orchestration system written in Go. It provides clusters of hosts to run container based workloads, most notably Docker containers. Docker is a software product, also written in Go, that uses operating system level virtualization to provide portable software runtimes called containers.
American Express also collects application metrics via Prometheus, an open-source monitoring and alerting toolkit written in Go. Prometheus collects and aggregates real-time events and metrics for monitoring and alerts.
This triumvirate of Go solutions—Kubernetes, Docker, and Prometheus—has helped modernize American Express infrastructure.
## Improving performance with Go
### Improving performance with Go
Today, scores of developers are programming with Go at American Express, with most working on platforms designed for high availability and performance.
"Tooling has always been a critical area of need for our legacy code base," says Cane. "We have found that Go has excellent tooling, plus built-in testing, benchmarking, and profiling frameworks. It is easy to write efficient and resilient applications."
{{% pullquote author="Benjamin Cane, Vice President and Principal Engineer at American Express" %}}
{{% backgroundQuote author="Benjamin Cane" title="Vice President and Principal Engineer" company="American Express" %}}
After working on Go, most of our developers don't want to go back to other languages.
{{% /pullquote %}}
{{% /backgroundQuote %}}
American Express is just beginning to see the benefits of Go. For example, Go was designed from the ground up with concurrency in mind – using lightweight “goroutines” rather than heavier-weight operating system threads – making it practical to create hundreds of thousands of goroutines in the same address space. Using goroutines, American Express has seen improved performance numbers in its real-time transaction processing.
Gos garbage collection is also a major improvement over other languages, both in terms of performance and ease of development. “We saw far better results of garbage collection in Go than we did in other languages, and garbage collection for real time transaction processing is a big deal.” says Cane. “Tuning garbage collection in other languages can be very complicated. With Go you dont tune anything.”
To learn more, read ["Choosing Go at American Express"](https://americanexpress.io/choosing-go/) which goes into more depth about American Express' Go adoption.
To learn more, read ["Choosing Go at American Express"](https://americanexpress.io/choosing-go/) which goes into more depth about American Express' Go adoption.
## Getting your enterprise started with Go
### Getting your enterprise started with Go
Just as American Express is using Go to modernize its payment and rewards networks, dozens of other large enterprises are adopting Go as well.
Just as American Express is using Go to modernize its payment and rewards networks, dozens of other large enterprises are adopting Go as well.
There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as [PayPal](https://go.dev/solutions/paypal), [Mercado Libre](https://go.dev/solutions/mercadolibre), Capital One, Dropbox, IBM, Mercado Libre, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Capital One - A Serverless and Go Journey"
linkTitle: "Capital One - A Serverless and Go Journey"
description: "At the time, no single team member knew Go, but within a month, everyone was writing in Go and we were building out the endpoints. It was the flexibility, how easy it was to use, and the really cool concept behind Go (how Go handles native concurrency, garbage collection, and of course safety+speed.) that helped engage us during the build. Also, who can beat that cute mascot!"
date: 2018-11-21
company: Capital One
logoSrc: capital-one.svg
series: Case Studies
link: https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f
resources:
- name: logo
src: logo.svg
params:
alt: Capital One
inLandingPageGrid: true
---

Просмотреть файл

@ -1,6 +1,6 @@
---
title: "Go for Command-line Interfaces (CLIs)"
linkTitle: "Command-line Interfaces"
title: "Command-line Interfaces (CLIs)"
linkTitle: "Command-line Interfaces (CLIs)"
description: "With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs."
date: 2019-10-04T15:26:31-04:00
series: Use Cases
@ -10,7 +10,7 @@ books:
thumbnail: /images/books/powerful-command-line-applications-in-go.jpg
- title: Go in Action
url: https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781
thumbnail: /images/books/go-in-action.jpg
thumbnail: /images/books/go-in-action.jpg
- title: The Go Programming Language
url: https://www.gopl.io/
thumbnail: /images/learn/go-programming-language-book.png
@ -26,91 +26,142 @@ resources:
src: cli-white.svg
params:
alt: CLI icon
featuredProjects:
- company: Comcast
url: https://xfinity.com/
logoSrc: comcast.svg
desc: Comcast uses Go for a CLI client used to publish and subscribe to its high-traffic sites. The company also supports an open source client library which is written in Go - designed for working with Apache Pulsar.
ctas:
- text: Client library for Apache Pulsar
url: https://github.com/Comcast/pulsar-client-go
- text: Pulsar CLI Client
url: https://github.com/Comcast/pulsar-client-go/blob/master/cli/main.go
- company: GitHub
url: https://github.com/
logoSrc: github.svg
desc: GitHub uses Go for a command-line tool that makes it easier to work with GitHub, wrapping git in order to extend it with extra features and commands.
ctas:
- text: GitHub command-line tool
url: https://github.com/github/hub
- company: Hugo
url: http://gohugo.io/
logoSrc: hugo.svg
desc: Hugo is one of the most popular Go CLI applications powering thousands of sites, including this one. One reason for its popularity is its ease of install thanks to Go. Hugo author Bjørn Erik Pedersen writes “The single binary takes most of the pain out of installation and upgrades.”
ctas:
- text: Hugo Website
url: https://gohugo.io/
- company: Kubernetes
url: https://kubernetes.com/
logoSrc: kubernetes.svg
desc: Kubernetes is one of the most popular Go CLI applications. Kubernetes Creator, Joe Beda, said that for writing Kubernetes, “Go was the only logical choice”. Calling Go “the sweet spot” between low level languages like C++ and high level languages like Python.
ctas:
- text: Kubernetes + Go
url: https://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/
- company: MongoDB
url: https://mongodb.com/
logoSrc: mongodb.svg
desc: MongoDB chose to implement their Backup CLI Tool in Go citing Gos “C-like syntax, strong standard library, the resolution of concurrency problems via goroutines, and painless multi-platform distribution” as reasons.
ctas:
- text: MongoDB Backup Service
url: https://www.mongodb.com/blog/post/go-agent-go
- company: Netflix
url: http://netflix.com/
logoSrc: netflix.svg
desc: Netflix uses Go to build the CLI application ChaosMonkey, an application responsible for randomly terminating instances in production to ensure that engineers implement their services to be resilient to instance failures.
ctas:
- text: Netflix Techblog Article
url: https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef
- company: Stripe
url: https://stripe.com/
logoSrc: stripe.svg
desc: Stripe uses Go for the Stripe CLI aimed to help build, test, and manage a Stripe integration right from the terminal.
ctas:
- text: Stripe CLI
url: https://github.com/stripe/stripe-cli
- company: Uber
url: https://uber.com/
logoSrc: uber.svg
desc: Uber uses Go for several CLI tools, including the CLI API for Jaeger, a distributed tracing system used for monitoring microservice distributed systems.
ctas:
- text: CLI API for Jaeger
url: https://www.jaegertracing.io/docs/1.14/cli/
goLibraries:
- title: CLI Libraries
viewMoreUrl: https://pkg.go.dev/search?q=command%20line%20OR%20CLI
items:
- text: spf13/cobra
url: https://pkg.go.dev/github.com/spf13/cobra?tab=overview
desc: A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go
- text: spf13/viper
url: https://pkg.go.dev/github.com/spf13/viper?tab=overview
desc: A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats
- text: urfave/cli
url: https://pkg.go.dev/github.com/urfave/cli?tab=overview
desc: A minimal framework for creating and organizing command line Go applications
- text: delve
url: https://pkg.go.dev/github.com/go-delve/delve?tab=overview
desc: A simple and powerful tool built for programmers used to using a source-level debugger in a compiled language
- text: chzyer/readline
url: https://pkg.go.dev/github.com/chzyer/readline?tab=overview
desc: A pure Golang implementation that provides most features in GNU Readline (under MIT license)
- text: dixonwille/wmenu
url: https://pkg.go.dev/github.com/dixonwille/wmenu?tab=overview
desc: An easy-to-use menu structure for CLI applications that prompts users to make choices
- text: spf13/pflag
url: https://pkg.go.dev/github.com/spf13/pflag?tab=overview
desc: A drop-in replacement for Gos flag package, implementing POSIX/GNU-style flags
- text: golang/glog
url: https://pkg.go.dev/github.com/golang/glog?tab=overview
desc: Leveled execution logs for Go
---
## CLI developers prefer Go for portability, performance, and ease of creation
## Overview {#overview .sectionHeading}
Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.
### CLI developers prefer Go for portability, performance, and ease of creation
{{% pullquote author="Elliot Forbes, Software Engineer at JP Morgan" link="https://tutorialedge.net/golang/building-a-cli-in-go/" %}}
The design of Go lends itself incredibly well to [many] styles of application, and the ability to cross-compile a binary executable for all major platforms easily is a massive win.”
{{% /pullquote %}}
Command line interfaces (CLIs), unlike graphical user interfaces (GUIs), are text-only. Cloud and infrastructure applications are primarily CLI-based due to their easy automation and remote capabilities.
{{% gopher gopher=happy align=right %}}
## Key benefits {#key-benefits .sectionHeading}
### Leverage fast compile times to build programs that start quickly and run on any system
Developers of CLIs find Go to be ideal for designing their applications. Go compiles very quickly into a single binary, works across platforms with a consistent style, and brings a strong development community. From a single Windows or Mac laptop, developers can build a Go program for every one of the dozens of architectures and operating systems Go supports in a matter of seconds, no complicated build farms are needed. No other compiled language can be built as portably or quickly. Go applications are built into a single self contained binary making installing Go applications trivial.
Specifically, **programs written in Go run on any system without requiring any existing libraries, runtimes, or dependencies**. And **programs written in Go have an immediate startup time**—similar to C or C++ but unobtainable with other programming languages.
Specifically, **programs written in Go run on any system without requiring any existing libraries, runtimes, or dependencies**. And **programs written in Go have an immediate startup time**—similar to C or C++ but unobtainable with other programming languages.
## Use Case {#use-case .sectionHeading}
{{% pullquote author="Carolyn Van Slyck, Senior Software Engineer at Microsoft." link="https://www.youtube.com/watch?v=eMz0vni6PAw&list=PL2ntRZ1ySWBdDyspRTNBIKES1Y-P__59_&index=11&t=0s" %}}
CLIs are best designed with predictable, task-oriented commands and you want to use Go.
{{% /pullquote %}}
### Use Go for building elegant CLIs
## Featured Go users and projects
{{< backgroundQuote author="Steve Domino" title="senior engineer and architect at Strala" link="https://medium.com/@skdomino/writing-better-clis-one-snake-at-a-time-d22e50e60056" >}}
I was tasked with building our CLI tool and found two really great projects, Cobra and Viper, which make building CLIs easy. Individually they are very powerful, very flexible and very good at what they do. But together they will help you show your next CLI who is boss!
{{< /backgroundQuote >}}
{{% mediaList %}}
{{% mediaListBox img-src="/images/logos/comcast.svg" img-alt="Comcast Logo" img-link="https://xfinity.com" title="" align=top %}}
Comcast [uses Go for a CLI client](https://github.com/Comcast/pulsar-client-go/blob/master/cli/main.go) used to publish and subscribe to it's high-traffic sites. The company also supports an [open source client library](https://github.com/Comcast/pulsar-client-go) which is written in Go - designed for working with Apache Pulsar.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/github.svg" img-alt="GitHub Logo" img-link="https://github.com" title="" align=top %}}
GitHub [uses Go for a command-line tool](https://github.com/github/hub) that makes it easier to work with GitHub, wrapping git in order to extend it with extra features and commands.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/uber.svg" img-alt="Uber Logo" img-link="https://uber.com" title="" align=top %}}
Uber uses Go for several CLI tools, including the [CLI API for Jaeger](https://www.jaegertracing.io/docs/1.14/cli/), a distributed tracing system used for monitoring micro-service distributed systems.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/stripe.svg" img-alt="Stripe Logo" img-link="https://stripe.com" title="" align=top %}}
Stripe [uses Go for the Stripe CLI](https://github.com/stripe/stripe-cli) aimed to help build, test, and manage a Stripe integration right from the terminal.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/netflix.svg" img-alt="Netflix Logo" title="" align=top %}}
Netflix uses Go to build the CLI application [ChaosMonkey](https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef), an application responsible for randomly terminating instances in production to ensure that engineers implement their services to be resilient to instance failures.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/mongodb.svg" img-alt="MongoDB Logo" img-link="https://mongodb.com" title="" align=top %}}
MongoDB chose to [implement their Backup CLI Tool in Go](https://www.mongodb.com/blog/post/go-agent-go) citing Go's "C-like syntax, strong standard library, the resolution of concurrency problems via goroutines, and painless multi-platform distribution" as reasons.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/kubernetes.svg" img-alt="Kubernetes Logo" img-link="https://kubernetes.com" title="" align=top %}}
Kubernetes is one of the most popular Go CLI applications. [Kubernetes Creator, Joe Beda, said that for writing Kubernetes](https://blog.gopheracademy.com/birthday-bash-2014/kubernetes-go-crazy-delicious/), "Go was the only logical choice". Calling Go "the sweet spot" between low level languages like C++ and high level languages like Python.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/hugo.svg" img-alt="Hugo Logo" img-link="https://gohugo.io" title="" align=top %}}
Hugo is one of the most popular Go CLI applications powering thousands of sites, including this one. One reason for it's popularity is it's ease of install thanks to Go. Hugo author [Bjørn Erik Pedersen writes](https://gohugo.io/news/lets-celebrate-hugos-5th-birthday/) "The single binary takes most of the pain out of installation and upgrades."
{{% /mediaListBox %}}
{{% /mediaListBox %}}
## How to use Go for CLIs
{{< backgroundQuote author="Francesc Campoy" title="VP of product at DGraph Labs and producer of Just For Func videos" link="https://www.youtube.com/watch?v=WvWPGVKLvR4" >}}
Cobra is a great product to write small tools or even large ones. Its more of a framework than a library, because when you call the binary that would create a skeleton, then you would be adding code in between.”
{{< /backgroundQuote >}}
When developing CLIs in Go, two tools are widely used: Cobra & Viper.
{{< pullquote author="Steve Domino, senior engineer and architect at Strala" link="https://medium.com/@skdomino/writing-better-clis-one-snake-at-a-time-d22e50e60056" >}}
I was tasked with building our CLI tool and found two really great projects, Cobra and Viper, which make building CLIs easy. Individually they are very powerful, very flexible and very good at what they do. But together they will help you show your next CLI who is boss!
{{< /pullquote >}}
{{< pkg "github.com/spf13/cobra" Cobra >}} is both a library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go. Cobra powers most of the popular Go applications including CoreOS, Delve, Docker, Dropbox, Git Lfs, Hugo, Kubernetes, and [many more](https://pkg.go.dev/github.com/spf13/cobra?tab=importedby). With integrated command help, autocomplete and documentation “[it] makes documenting each command really simple,” says [Alex Ellis](https://blog.alexellis.io/5-keys-to-a-killer-go-cli/), founder of OpenFaaS.
{{% pullquote author="Francesc Campoy, VP of product at DGraph Labs and producer of Just For Func videos" link="https://www.youtube.com/watch?v=WvWPGVKLvR4" %}}
Cobra is a great product to write small tools or even large ones. It's more of a framework than a library, because when you call the binary that would create a skeleton, then you would be adding code in between."
{{% /pullquote %}}
{{< gopher gopher=peach align=right >}}
{{< pkg "github.com/spf13/viper" Viper >}} is a complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats. Cobra and Viper are designed to work together.
Viper [supports nested structures](https://scene-si.org/2017/04/20/managing-configuration-with-viper/) in the configuration, allowing CLI developers to manage the configuration for multiple parts of a large application. Viper also provides all of the tooling need to easily build twelve factor apps.
Viper [supports nested structures](https://scene-si.org/2017/04/20/managing-configuration-with-viper/) in the configuration, allowing CLI developers to manage the configuration for multiple parts of a large application. Viper also provides all of the tooling need to easily build twelve factor apps.
"If you dont want to pollute your command line, or if youre working with sensitive data which you dont want to show up in the history, its a good idea to work with environment variables. To do this, you can use Viper," [suggests Geudens](https://ordina-jworks.github.io/development/2018/10/20/make-your-own-cli-with-golang-and-cobra.html).
## Key solutions
{{< rawhtml >}}<div class="FeaturedUsers">{{< /rawhtml >}}
### Go books for creating CLIs
## Featured users {#featured-users .sectionHeading}
{{< featuredProjects >}}
{{% books %}}
{{< rawhtml >}}</div>{{< /rawhtml >}}
{{< headerWithLink header="CLI libraries" search="command line OR CLI" level=3 >}}
## Get Started {#get-started .sectionHeading}
* {{< pkg "github.com/spf13/cobra" >}}, a library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go
* {{< pkg "github.com/spf13/viper" >}}, a complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats
* {{< pkg "github.com/urfave/cli" >}}, a minimal framework for creating and organizing command line Go applications
* {{< pkg "github.com/go-delve/delve" delve >}}, a simple and powerful tool built for programmers used to using a source-level debugger in a compiled language
* {{< pkg "https://github.com/chzyer/readline" >}}, a pure Golang implementation that provides most features in GNU Readline (under MIT license)
* {{< pkg "https://github.com/dixonwille/wmenu" >}}, an easy-to-use menu structure for CLI applications that prompts users to make choices
* {{< pkg "https://github.com/spf13/pflag" >}}, a drop-in replacement for Go's flag package, implementing POSIX/GNU-style flags
* {{< pkg "https://github.com/golang/glog" >}}, leveled execution logs for Go
### Go books for creating CLIs
{{< books >}}
{{< goLibraries >}}

Просмотреть файл

@ -5,7 +5,7 @@ description: "With a strong ecosystem of tools and APIs on major cloud providers
date: 2019-10-04T15:26:31-04:00
series: Use Cases
books:
- title: Building Microservices with Go
- title: Building Microservices with Go
url: https://www.amazon.com/Building-Microservices-Go-efficient-microservices/dp/1786468662/
thumbnail: /images/books/building-microservices-with-go.jpg
- title: Hands-On Software Architecture with Golang
@ -17,112 +17,231 @@ books:
- title: Mastering Go Web Services
url: https://www.amazon.com/Mastering-Web-Services-Nathan-Kozyra-ebook/dp/B00W5GUKL6
thumbnail: /images/books/mastering-go-web-services.jpg
- title:
url:
thumbnail:
resources:
- name: icon
src: cloud-green.svg
params:
alt: cloud icon
- name: icon-white
src: cloud-white.svg
params:
alt: cloud icon
- name: icon
src: cloud-green.svg
params:
alt: cloud icon
- name: icon-white
src: cloud-white.svg
params:
alt: cloud icon
featuredProjects:
- company: Google
url: http://cloud.google.com/go
logoSrc: google-cloud.svg
desc: Google Cloud uses Go across its ecosystem of products and tools, including Kubernetes, gVisor, Knative, Istio, and Anthos. Go is fully supported on Google Cloud across all APIs and runtimes.
ctas:
- text: Go on Google Cloud Platform
url: http://cloud.google.com/go
- company: Capital One
url: https://www.capitalone.com/
logoSrc: capital-one.svg
desc: Capital One uses Go to power the Credit Offers API, a critical service. The engineering team is also building their serverless architecture with Go, citing Gos speed and simplicity, and mentioning that “[they] didnt want to go serverless without Go.”
ctas:
- text: Credit Offers API
url: https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f
- company: Dropbox
url: https://www.dropbox.com/
logoSrc: dropbox.svg
desc: Dropbox was built on Python, but in 2013 decided to migrate their performance-critical packends to Go. Today, most of the companys infrastructure is written in Go.
ctas:
- text: Dropbox libraries
url: https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/
- company: Mercado Libre
url: https://www.mercadolibre.com.ar/
logoSrc: mercadoLibre.svg
desc: MercadoLibre uses Go to scale its eCommerce platform. Go produces efficient code that readily scales as MercadoLibres online commerce grows. Go improves their productivity while streamlining and expanding MercadoLibre services.
ctas:
- text: MercadoLibre & Go
url: http://go.dev/solutions/mercadolibre
- company: The New York Times
url: https://www.nytimes.com/
logoSrc: the-new-york-times-icon.svg
desc: The New York Times adopted Go “to build better back-end services”. As the usage of Go expanded with in the company they felt the need to create a toolkit to “to help developers quickly configure and build microservice APIs and pubsub daemons”, which they have open sourced.
ctas:
- text: NYTimes - Gizmo
url: https://open.nytimes.com/introducing-gizmo-aa7ea463b208
- text: Gizmo Github
url: https://github.com/nytimes/gizmo
- company: Twitch
url: https://www.twitch.tv/
logoSrc: twitch.svg
desc: Twitch uses Go to power many of its busiest systems that serve live video and chat to millions of users.
ctas:
- text: Gos march to low-latency GC
url: https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/
- company: Uber
url: https://www.uber.com/
logoSrc: uber.svg
desc: Uber uses Go to power several of its critical services that impact the experience of millions of drivers and passengers around the world. From their real-time analytics engine, AresDB, to their microservice for Geo-querying, Geofence, and their resource scheduler, Peloton.
ctas:
- text: AresDB
url: https://eng.uber.com/aresdb/
- text: Geofence
url: https://eng.uber.com/go-geofence/
- text: Peloton
url: https://eng.uber.com/open-sourcing-peloton/
serviceFrameworks:
- text: go-kit
url: https://github.com/go-kit/kit
desc: A programming toolkit for building microservices (or elegant monoliths) in Go
- text: go-micro
url: https://github.com/nytimes/gizmo
desc: A framework for microservice development
- text: nytimes/gizmo
url: https://go.uber.org/yarpc
desc: A microservice framework from The New York Times
- text: go.uber.org/yarpc
url: https://pkg.go.dev/search?q=service+framework
desc: A microservice framework from Uber
goLibraries:
- title: Web frameworks
viewMoreUrl: https://pkg.go.dev/search?q=web+framework
items:
- text: Buffalo
url: https://gobuffalo.io/en/
desc: A framework for rapid web development in Go, curating Go and JS libraries together.
- text: Echo
url: https://echo.labstack.com/
desc: A high performance, extensible, and minimalist Go web framework
- text: Flamingo
url: https://www.flamingo.me/
desc: A fast open-source framework based on Go with clean and scalable architecture
- text: Gin
url: https://gin-gonic.com/
desc: A web framework written in Go, with a martini-like API.
- text: Gorilla
url: http://www.gorillatoolkit.org/
desc: A web toolkit for the Go programming language.
- title: Routers
viewMoreUrl: https://pkg.go.dev/search?q=http%20router
items:
- text: julienschmidt/httprouter
url: https://pkg.go.dev/github.com/julienschmidt/httprouter?tab=overview
desc: A lightweight high performance HTTP request router
- text: gorilla/mux
url: https://pkg.go.dev/github.com/gorilla/mux?tab=overview
desc: A powerful HTTP router and URL matcher for building Go web servers with 🦍
- text: Chi
url: https://pkg.go.dev/github.com/go-chi/chi?tab=overview
desc: A lightweight, idiomatic and composable router for building Go HTTP services.
- text: net/http
url: https://pkg.go.dev/net/http
desc: A standard library HTTP package
- title: Template Engines
viewMoreUrl: https://pkg.go.dev/search?q=templates
items:
- text: html/template
url: https://pkg.go.dev/html/template
desc: A standard library HTML template engine
- text: flosch/pongo2
url: https://pkg.go.dev/github.com/flosch/pongo2?tab=overview
desc: A Django-syntax like templating-language
- title: Databases & Drivers
viewMoreUrl: https://pkg.go.dev/search?q=database%20OR%20sql
items:
- text: database/sql
url: https://pkg.go.dev/database/sql
desc: A standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and most SQL databases
- text: mongo-driver/mongo
url: https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo?tab=overview
desc: The MongoDB supported driver for Go
- text: olivere/elastic
url: https://pkg.go.dev/github.com/olivere/elastic?tab=overview
desc: A Elasticsearch client for Go
- text: GORM
url: https://gorm.io/
desc: An ORM library for Go
- text: Bleve
url: http://blevesearch.com/
desc: Full-text search and indexing for Go
- text: CockroachDB
url: https://www.cockroachlabs.com/
desc: An evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale
- title: Web Libraries
viewMoreUrl: https://pkg.go.dev/search?q=web
items:
- text: markbates/goth
url: https://pkg.go.dev/github.com/markbates/goth?tab=overview
desc: Authentication for web apps
- text: jinzhu/gorm
url: https://pkg.go.dev/github.com/jinzhu/gorm?tab=overview
desc: An ORM library for Go
- text: dgrijalva/jwt-go
url: https://pkg.go.dev/github.com/dgrijalva/jwt-go?tab=overview
desc: A Go implementation of json web tokens
- title: Other Projects
items:
- text: gopherjs
url: https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview
desc: A compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.
toolsBlurbs:
- title: Docker
url: https://www.docker.com/
iconSrc: /images/logos/docker.svg
paragraphs:
- Docker is a platform-as-a-service that delivers software in containers. Containers bundle software, libraries, and config files, are hosted by a Docker Engine, and are run by a single operating-system kernel (utilizing less system resources than virtual machines).
- Cloud developers use Docker to manage their Go code and support multiple platforms, as Docker supports the development workflow and deployment process.
- title: Kubernetes
url: https://kubernetes.io/
iconSrc: /images/logos/kubernetes.svg
paragraphs:
- Kubernetes is an open-source container-orchestration system, written in Go, for automating web app deployment. Web apps are often built using containers (as noted above) packaged with their dependencies and configurations. Kubernetes helps deploying and managing those containers at scale. Cloud programmers use Kubernetes to build, deliver, and scale containerized apps quickly—managing the growing complexity via APIs that controls how the containers will run.
---
## Go helps enterprises build and scale cloud computing systems
## Overview {#overview .sectionHeading}
As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “[explicitly geared to develop highly reliable concurrent applications](https://tomassetti.me/best-programming-languages/).”
Go was created to address exactly these concurrency needs for scaled applications, microservices, and cloud development. In fact, **over 75 percent of projects in the Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/projects/)) are written in Go**.
{{< rawhtml >}}
<div class="UseCase-halfColumn">
<h3>Go helps enterprises build and scale cloud computing systems</h3>
{{< pullquote author="Ruchi Malik, developer at Choozle" link="https://builtin.com/software-engineering-perspectives/golang-advantages" >}}
<p>As applications and processing move to the cloud, concurrency becomes a very big issue. Cloud computing systems, by their very nature, share and scale resources. Coordinating access to shared resources is an issue that impacts every application processing in the cloud, and requires programming languages “explicitly geared to develop highly reliable concurrent applications.”</p>
</div>
{{< /rawhtml >}}
{{< quote author="Ruchi Malik" title="developer at Choozle" link="https://builtin.com/software-engineering-perspectives/golang-advantages" >}}
Go makes it very easy to scale as a company. This is very important because, as our engineering team grows, each service can be managed by a different unit.
{{< /pullquote >}}
{{< /quote >}}
Service developers often make a tradeoff between development cycle time and server performance. Go helps reduce the need to make this tradeoff, with its fast build times that enable iterative development, lower memory and CPU utilization. Servers built with Go experience instant start up times and are cheaper to run in pay-as-you-go and serverless deployments.
## Key Benefits {#key-benefits .sectionHeading}
Go addresses many challenges developers face with the modern cloud, delivering standard idiomatic APIs, and built in concurrency to take advantage of multicore processors. Go's low-latency and "no knob" tuning make Go a great balance between performance and productivity - granting engineering teams the power to choose and the power to move.
### Address tradeoff between development cycle time and server performance
## Featured Go users & projects
Go was created to address exactly these concurrency needs for scaled applications, microservices, and cloud development. In fact, over 75 percent of projects in the Cloud Native Computing Foundation are written in Go.
{{% mediaList %}}
{{% mediaListBox img-src="/images/logos/google-cloud.svg" img-alt="Google Cloud Logo" title="" align=top %}}
Google Cloud is built on Go. Many critical cloud projects used across the industry like [Kubernetes](https://kubernetes.io/), [Istio](https://istio.io/) and [gVisor](https://gvisor.dev/) were created in Go at Google Cloud. Go is fully supported on [Google Cloud](https://cloud.google.com) across all APIs and runtimes including serverless [App Engine](https://cloud.google.com/appengine/), [Knative](https://cloud.google.com/knative/), [Cloud Run](https://cloud.google.com/run/), and [Google Cloud Functions](https://cloud.google.com/functions/).
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/capital-one.svg" img-alt="Capital One Logo" title="" align=top %}}
Capital One uses Go to power the [Credit Offers API, a critical service](https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f). The engineering team is also building their serverless architecture with Go, citing Go's speed and simplicity, and mentioning that "[they] didn't want to go serverless without Go."
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/dropbox.svg" img-alt="Dropbox Logo" title="" align=top %}}
Dropbox was built on Python, [but in 2013 decided to migrate](https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/) their performance-critical backends to Go. Today, most of the company's infrastructure is written in Go. Dropbox libraries can be found at [Dropbox's Go github](https://github.com/dropbox/godropbox).
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/mercadoLibre.svg" img-alt="MercadoLibre Logo" title="" align=top %}}
MercadoLibre uses Go to [scale its eCommerce platform](/solutions/mercadolibre). Go produces efficient code that readily scales as MercadoLibres online commerce grows. Go improves their productivity while streamlining and expanding MercadoLibre services.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/twitch.svg" img-alt="Twitch Logo" title="" align=top %}}
Twitch [uses Go to power many of its busiest systems](https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/) that serve live video and chat to millions of users.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/the-new-york-times-icon.svg" img-alt="The New York Times Logo" title="" align=top %}}
The New York Times adopted Go ["to build better back-end services"](https://open.nytimes.com/introducing-gizmo-aa7ea463b208). As the usage of Go expanded with in the company they felt the need to create a toolkit to "to help developers quickly configure and build microservice APIs and pubsub daemons", which they have [open sourced](https://github.com/nytimes/gizmo).
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/uber-app-icon.svg" img-alt="Uber Logo" title="" align=top %}}
Uber uses Go to power several of its critical services that impact the experience of millions of drivers and passengers around the world. From their [real-time analytics engine](https://eng.uber.com/aresdb/), AresDB, to their [microservice for Geo-querying](https://eng.uber.com/go-geofence/), Geofence, and [their resource scheduler](https://eng.uber.com/open-sourcing-peloton/).
{{% /mediaListBox %}}
{{% /mediaList %}}
Go helps reduce the need to make this tradeoff, with its fast build times that enable iterative development, lower memory and CPU utilization. Servers built with Go experience instant start up times and are cheaper to run in pay-as-you-go and serverless deployments.
## How to use Go for Cloud Computing
### Address challenges with the modern cloud, delivering standard idiomatic APIs
Go addresses many challenges developers face with the modern cloud, delivering standard idiomatic APIs, and built in concurrency to take advantage of multicore processors. Gos low-latency and “no knob” tuning make Go a great balance between performance and productivity - granting engineering teams the power to choose and the power to move.
## Use Case {#use-case .sectionHeading}
### Use Go for Cloud Computing
Go's strengths shine when it comes to building services. Its speed and built-in support for concurrency results in fast and efficient services, while static typing, robust tooling, and emphasis on simplicity and readability help build reliable and maintainable code.
Go has a strong ecosystem supporting service development. The [standard library](https://golang.org/pkg/) includes packages for common needs like HTTP servers and clients, JSON/XML parsing, SQL databases, and a range of security/encryption functionality, while the Go runtime includes tools for [race detection](https://golang.org/doc/articles/race_detector.html), [benchmarking](https://golang.org/pkg/testing/#hdr-Benchmarks)/profiling, code generation, and static code analysis.
The major Cloud providers ([GCP](https://cloud.google.com/go/home), [AWS](https://aws.amazon.com/sdk-for-go/), [Azure](https://docs.microsoft.com/en-us/azure/go/)) have Go APIs for their services, and popular open source libraries provide support for API tooling ([Swagger](https://github.com/go-swagger/go-swagger)), transport ([protocol buffers](https://github.com/golang/protobuf), [gRPC](https://grpc.io/docs/quickstart/go/)), monitoring ([OpenCensus](https://godoc.org/go.opencensus.io)), Object-Relational Mapping ([gORM](https://gorm.io/)), and authentication ([JWT](https://github.com/dgrijalva/jwt-go)). The open source community has also provided several service frameworks, including [Go Kit](https://gokit.io/[), [Go Micro](https://micro.mu/docs/go-micro.html), and [Gizmo](https://github.com/nytimes/gizmo), which can be a great way to get started quickly.
Two popular Go tools for cloud computing include [Docker](https://docker.com) and [Kubernetes](https://kubernetes.io):
### Go tools for Cloud Computing
**Docker is a platform-as-a-service that delivers software in containers.** Containers bundle software, libraries, and config files, are hosted by a [Docker Engine](https://www.docker.com/), and are run by a single operating-system kernel (utilizing less system resources than virtual machines).
{{< toolsBlurbs >}}
Cloud developers use Docker to manage their Go code and support multiple platforms, as Docker supports the development workflow and deployment process. “Docker can help us to compile Go code in a clean, isolated environment,” [writes Jérôme Petazzoni](https://www.docker.com/blog/docker-golang/), founder of Tiny Shell Script. “To use different versions of the Go toolchain; and to cross-compile between different operating systems and platforms.”
{{< rawhtml >}}<div class="FeaturedUsers">{{< /rawhtml >}}
**Kubernetes is an open-source container-orchestration system, written in Go, for automating web app deployment.** Web apps are often built using containers (as noted above) packaged with their dependencies and configurations. Kubernetes helps deploying and managing those containers at scale. Cloud programmers use Kubernetes to build, deliver, and scale containerized apps quickly—managing the growing complexity via APIs that controls how the containers will run.
## Featured users {#featured-users .sectionHeading}
{{< featuredProjects >}}
{{< rawhtml >}}</div>{{< /rawhtml >}}
## Key solutions
## Get Started {#get-started .sectionHeading}
### Go books for cloud computing
{{% books %}}
{{< headerWithLink header="Service frameworks" search="service framework" level=3 >}}
* {{< pkg "https://github.com/go-kit/kit" go-kit >}}, a programming toolkit for building microservices (or elegant monoliths) in Go
* {{< pkg "https://github.com/micro/go-micro" go-micro >}}, a framework for microservice development
* {{< pkg "https://github.com/nytimes/gizmo" >}}, a microservice framework from The New York Times
* {{< pkg "go.uber.org/yarpc" >}}, a microservice framework from Uber
{{< headerWithLink header="Cloud client Libraries" search="cloud client OR cloud SDK" level=3 >}}
* {{< pkg "cloud.google.com/go" "cloud.google.com/go">}}, Google Cloud Client Libraries for Go
* {{< pkg "github.com/aws/aws-sdk-go/aws/client" "aws/client">}}, AWS SDK for Go
* {{< pkg "github.com/aliyun/alibaba-cloud-sdk-go/sdk" >}}, Alibaba Cloud SDK for Go
* {{< pkg "github.com/Azure/azure-sdk-for-go" >}}, Azure SDK for Go
* {{< pkg "github.com/IBM-Cloud/bluemix-go" >}}, IBM Cloud SDK for Go
* {{< pkg "github.com/heroku/heroku-go/v5" >}}, Heroku client library
{{< headerWithLink header="Libraries" search="REST OR API OR web OR cloud" level=3 >}}
* {{< pkg "https://github.com/go-swagger/go-swagger" go-swagger >}}, a simple and powerful representation of RESTful APIs
* {{< pkg "github.com/emicklei/go-restful" >}}, create REST-style services without magic
* {{< pkg "https://github.com/golang/protobuf" >}}, Go support for Google's protocol buffer
* {{< pkg "https://github.com/grpc/grpc-go" grpc-go >}}, a high performance, open source, general RPC framework
* {{< pkg "https://github.com/census-instrumentation/opencensus-go/blob/master/opencensus.go" >}}, a set of libraries for collecting application metrics and distributed traces
* {{< pkg "https://github.com/jinzhu/gorm" >}}, an ORM library for Go
* {{< pkg "https://github.com/dgrijalva/jwt-go" >}}, a Go implementation of json web tokens
* {{< pkg "github.com/lileio/lile" >}}, quickly create RPC base services
### Other resources
* [Microservices in Golang](https://ewanvalentine.io/microservices-in-golang-part-1/), a walkthrough of microservices with Go-micro
* [Awesome Go](https://awesome-go.com/), a curated list of Go frameworks, libraries, and software
{{< books >}}
{{< goLibraries >}}

Просмотреть файл

@ -0,0 +1,12 @@
---
linkTitle: Graceful upgrades in Go
description: Cloudflare speeds up and protects millions of websites, APIs, SaaS services,
and other properties connected to the Internet. “Go is at the heart of CloudFlares
services including handling compression for high-latency HTTP connections, our
entire DNS infrastructure, SSL, load testing and more.”
company: Cloudflare
series: Case Studies
logoSrc: cloudflare.svg
link: https://blog.cloudflare.com/graceful-upgrades-in-go/
inLandingPageGrid: true
---

Двоичные данные
go.dev/content/solutions/cloudflare/logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 44 KiB

Просмотреть файл

@ -0,0 +1,9 @@
---
linkTitle: Cockroach Labs - Why We Chose to Build Our Database with Go
description: Go's performance benefits, garbage collection, and low barrier to entry
made it a great fit for CockroachDB.
company: Cockroach Labs
logoSrc: cockroach.svg
series: Case Studies
link: https://www.cockroachlabs.com/blog/why-go-was-the-right-choice-for-cockroachdb/
---

Двоичные данные
go.dev/content/solutions/cockroachlabs/logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 9.3 KiB

Просмотреть файл

@ -0,0 +1,9 @@
---
linkTitle: How Curve is getting ahead with Golang
description: Curve shares how Go's efficiency, standard library, and thriving community
help them move banking to the cloud.
company: Curve
logoSrc: curve.svg
series: Case Studies
link: https://jaxenter.com/golang-curve-163187.html
---

Двоичные данные
go.dev/content/solutions/curve/logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 175 KiB

Просмотреть файл

@ -1,6 +1,6 @@
---
title: "Go for Development Operations & Site Reliability Engineering (SRE)"
linkTitle: "DevOps & Site Reliability"
title: "Development Operations & Site reliability Engineering"
linkTitle: "Development Operations & Site reliability Engineering"
description: "With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE."
date: 2019-10-03T17:16:43-04:00
series: Use Cases
@ -13,7 +13,7 @@ books:
thumbnail: /images/learn/go-programming-blueprints.png
- title: Go in Action
url: https://www.amazon.com/Go-Action-William-Kennedy/dp/1617291781
thumbnail: /images/books/go-in-action.jpg
thumbnail: /images/books/go-in-action.jpg
- title: The Go Programming Language
url: https://www.gopl.io/
thumbnail: /images/learn/go-programming-language-book.png
@ -26,9 +26,110 @@ resources:
src: ops-white.svg
params:
alt: ops icon
featuredProjects:
- company: Docker
url: https://docker.com/
logoSrc: docker.svg
desc: Docker is a software-as-a-service (SaaS) product, written in Go, that DevOps/SRE teams leverage to “drive secure automation and deployment at massive scale,” supporting their CI/CD efforts.
ctas:
- text: Docker CI/CD
url: https://www.docker.com/solutions/cicd
- company: Drone
url: https://github.com/drone
logoSrc: drone.svg
desc: Drone is a Continuous Delivery system built on container technology, written in Go, that uses a simple YAML configuration file, a superset of docker-compose, to define and execute Pipelines inside Docker containers.
ctas:
- text: Drone
url: https://github.com/drone
- company: etcd
url: https://github.com/etcd-io/etcd
logoSrc: etcd.svg
desc: etcd is a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines, and it's written in Go.
ctas:
- text: etcd
url: https://github.com/etcd-io/etcd
- company: IBM
url: https://ibm.com/
logoSrc: ibm.svg
desc: IBMs DevOps teams use Go through Docker and Kubernetes, plus other DevOps and CI/CD tools written in Go. The company also supports connection to its messaging middleware through a Go-specific API.
ctas:
- text: IBM Applications in Golang
url: https://developer.ibm.com/messaging/2019/02/05/simplified-ibm-mq-applications-golang/
- company: Netflix
url: http://netflix.com/
logoSrc: netflix.svg
desc: Netflix uses Go to handle large scale data caching, with a service called Rend, which manages globally replicated storage for personalization data.
ctas:
- text: Application Data Caching
url: https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef
- text: Rend
url: https://github.com/netflix/rend
- company: Microsoft
url: https://microsoft.com/
logoSrc: microsoft.svg
desc: Microsoft uses Go in Azure Red Hat OpenShift services. This Microsoft solution provides DevOps teams with OpenShift clusters to maintain regulatory compliance and focus on application development.
ctas:
- text: OpenShift
url: https://azure.microsoft.com/en-us/services/openshift/
- company: Terraform
url: https://terraform.io/
logoSrc: terraform-icon.svg
desc: Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. It supports a number of cloud providers such as AWS, IBM Cloud, GCP, and Microsoft Azure - and its written in Go.
ctas:
- text: Terraform
url: https://www.terraform.io/intro/index.html
- company: Prometheus
url: https://github.com/prometheus/prometheus
logoSrc: prometheus.svg
desc: Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud. Most Prometheus components are written in Go, making them easy to build and deploy as static binaries.
ctas:
- text: Prometheus
url: https://github.com/prometheus/prometheus
- company: YouTube
url: https://youtube.com/
logoSrc: youtube.svg
desc: YouTube uses Go with Vitess (now part of PlanetScale), its database clustering system for horizontal scaling of MySQL through generalized sharding. Since 2011 its been a core component of YouTubes database infrastructure, and has grown to encompass tens of thousands of MySQL nodes.
ctas:
- text: Vitess
url: https://github.com/vitessio/vitess
goLibraries:
- title: Monitoring and tracing
viewMoreUrl: https://pkg.go.dev/search?q=tracing
items:
- text: opentracing/opentracing-go
url: https://pkg.go.dev/github.com/opentracing/opentracing-go?tab=overview
desc: Vendor-neutral APIs and instrumentation for distributed tracing
- text: jaegertracing/jaeger-client-go
url: https://pkg.go.dev/github.com/jaegertracing/jaeger-client-go?tab=overview
desc: An open source distributed tracing system developed by Uber formats
- text: grafana/grafana
url: https://pkg.go.dev/github.com/grafana/grafana?tab=overview
desc: An open-source platform for monitoring and observability
- text: istio/istio
url: https://pkg.go.dev/github.com/istio/istio?tab=overview
desc: An open-source service mesh and integratable platform
- title: CLI Libraries
viewMoreUrl: https://pkg.go.dev/search?q=command%20line%20OR%20CLI
items:
- text: spf13/cobra
url: https://pkg.go.dev/github.com/spf13/cobra?tab=overview
desc: A library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go
- text: spf13/viper
url: https://pkg.go.dev/github.com/spf13/viper?tab=overview
desc: A complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats
- text: urfave/cli
url: https://pkg.go.dev/github.com/urfave/cli?tab=overview
desc: A minimal framework for creating and organizing command line Go applications
- title: Other projects
items:
- text: golang-migrate/migrate
url: https://pkg.go.dev/github.com/golang-migrate/migrate?tab=overview
desc: A database migration tool written in Go
---
## Go helps enterprises automate and scale
## Overview {#overview .sectionHeading}
### Go helps enterprises automate and scale
Development Operations (DevOps) teams help engineering organizations automate tasks and improve their continuous
integration and continuous delivery and deployment (CI/CD) process. DevOps can topple developmental silos and implement
@ -44,78 +145,30 @@ of their applications in production.”
Go serves both siblings, DevOps and SRE, from its fast build times and lean syntax to its security and reliability support. Go's concurrency and networking features also make it ideal for tools that manage cloud deployment—readily supporting automation while
scaling for speed and code maintainability as development infrastructure grows over time.
## Featured Go users & projects
DevOps/SRE teams write software ranging from small scripts, to command-line interfaces (CLI), to complex automation and services, and Gos feature set has benefits for every situation.
{{% mediaList %}}
{{% mediaListBox img-src="/images/logos/netflix.svg" img-alt="Netflix Logo" title="" align=top %}}
Netflix uses Go to [handle large scale data caching](https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef), with a service called [Rend](https://github.com/netflix/rend), which manages globally replicated storage for personalization data.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/docker.svg" img-alt="Docker Logo" img-link="https://docker.com" title="" align=top %}}
Docker is a software-as-a-service (SaaS) product, written in Go, that DevOps/SRE teams leverage to “[drive secure
automation and deployment at massive scale](https://www.docker.com/solutions/cicd),” supporting their CI/CD efforts.
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/drone.svg" img-alt="Drone Logo" img-link="https://github.com/drone" title="" align=top %}}
Drone is a [Continuous Delivery system built on container technology](https://github.com/drone), written in Go, that uses a simple YAML configuration file, a superset of docker-compose, to define and execute Pipelines inside Docker containers.
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/etcd.svg" img-alt="etcd Logo" img-link="https://github.com/etcd-io/etcd" title="" align=top %}}
etcd is a [strongly consistent, distributed key-value store](https://github.com/etcd-io/etcd) that provides a reliable way to store data that needs to be accessed by a distributed system or cluster of machines, and its written in Go.
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/ibm.svg" img-alt="IBM Logo" img-link="https://ibm.com" title="" align=top %}}
IBMs DevOps teams use Go through Docker and Kubernetes, plus other DevOps and CI/CD tools written in Go. The company also supports connection to it's messaging middleware through a [Go-specific API](https://developer.ibm.com/messaging/2019/02/05/simplified-ibm-mq-applications-golang/).
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/microsoft.svg" img-alt="Microsoft Logo" img-link="https://microsoft.com" title="" align=top %}}
Microsoft uses Go in [Azure Red Hat
OpenShift](https://azure.microsoft.com/en-us/services/openshift/) services. This Microsoft solution provides DevOps
teams with OpenShift clusters to maintain regulatory compliance and focus on application development.
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/terraform.png" img-alt="Terraform Logo" img-link="https://terraform.io" title="" align=top %}}
Terraform is a [tool for building, changing, and versioning infrastructure](https://www.terraform.io/intro/index.html)
safely and efficiently. It supports a number of cloud providers such as AWS, IBM Cloud, GCP, and Microsoft Azure - and its written in Go.
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/prometheus.svg" img-alt="Prometheus Logo" img-link="https://github.com/prometheus/prometheus" title="" align=top %}}
Prometheus is an [open-source systems monitoring and alerting toolkit](https://github.com/prometheus/prometheus) originally built at SoundCloud. Most Prometheus components are written in Go, making them easy to build and deploy as static binaries.
{{% /mediaList %}}
{{% mediaListBox img-src="/images/logos/youtube.svg" img-alt="YouTube Logo" img-link="https://youtube.com" title="" align=top %}}
YouTube uses Go with Vitess (now part of [PlanetScale](https://planetscale.com/)), its [database clustering system](https://github.com/vitessio/vitess) for horizontal scaling of MySQL through generalized sharding. Since 2011 it's been a core component of YouTube's database infrastructure, and has grown to encompass tens of thousands of MySQL nodes.
{{% /mediaList %}}
## Key Benefits {#key-benefits .sectionHeading}
{{% /mediaList %}}
### Easily build small scripts with Gos robust standard library and static typing
Gos fast build and startup times. Gos extensive standard library—including packages for
common needs like HTTP, file I/O, time, regular expressions, exec, and JSON/CSV formats—lets DevOps/SREs get right into their business logic. Plus, Gos static type system and explicit error handling make even small scripts more robust.
### Quickly deploy CLIs with Gos fast build times
Every site reliability engineer has written “one-time use” scripts that turned into CLIs used by dozens of other engineers every day. And small deployment automation scripts turn into rollout management services. With Go, DevOps/SREs are in a great position to be successful when software scope inevitably creeps. Starting with Go puts you in a great position to be successful when that happens.
## **How to use Go for DevOps & SRE**
### Scale and maintain larger applications with Gos low memory footprint and doc generator
Gos garbage collector means DevOps/SRE teams dont have to worry about memory management. And Gos automatic documentation generator (godoc) makes code self-documenting–lowering maintenance overhead and establishing best practices from the get-go.
Go has been enthusiastically adopted by the DevOps and SRE communities. As previously noted, many underpinnings of the
modern cloud environment are themselves written in Go—including Docker, Etcd, Istio, Kubernetes, Prometheus, Terraform,
and many others.
{{< rawhtml >}}<div class="FeaturedUsers">{{< /rawhtml >}}
DevOps/SRE teams write software ranging from small scripts, to command-line interfaces (CLI), to complex
automation and services, and Go's feature set has benefits for every situation.
## Featured users {#featured-users .sectionHeading}
{{< featuredProjects >}}
**For small scripts:** Go's fast build and startup times. Gos extensive standard library—including packages for common needs like HTTP, file I/O, time, regular expressions, exec, and JSON/CSV formats—lets DevOps/SREs get right into their business logic. Plus, Go's static type system and explicit error handling make even small scripts more robust.
{{< rawhtml >}}</div>{{< /rawhtml >}}
**For CLIs:** every site reliability engineer has written “one-time use” scripts that turned into CLIs used by dozens of other engineers every day. And small deployment automation scripts turn into rollout management services. With Go, DevOps/SREs are in a great position to be successful when software scope inevitably creeps. Starting with Go puts you in a great position to be successful when that happens.
**For larger applications:** Go's garbage collector means DevOps/SRE teams don't have to worry about memory management. And Gos automatic documentation generator ([godoc](https://godoc.org/golang.org/x/tools/cmd/godoc)) makes code self-documenting.
## Key solutions
## Get Started {#get-started .sectionHeading}
### Go books on DevOps & SRE
{{% books %}}
{{< headerWithLink header="Monitoring and tracing" search="tracing" level=3 >}}
* {{< pkg "https://github.com/opentracing/opentracing-go">}}, vendor-neutral APIs and instrumentation for distributed tracing
* {{< pkg "https://github.com/jaegertracing/jaeger-client-go">}}, and open source distributed tracing system developed by Uber
* {{< pkg "https://github.com/grafana/grafana">}}, an open-source platform for monitoring and observability
* {{< pkg "https://github.com/istio/istio">}}, an open-source service mesh and integratable platform
{{< headerWithLink header="CLI libraries" search="command line OR CLI" level=3 >}}
* {{< pkg "github.com/spf13/cobra" >}}, a library for creating powerful modern CLI applications and a program to generate applications and CLI applications in Go
* {{< pkg "github.com/spf13/viper" >}}, a complete configuration solution for Go applications, designed to work within an app to handle configuration needs and formats
* {{< pkg "github.com/urfave/cli" >}}, a minimal framework for creating and organizing command line Go applications
### Other
* {{< pkg "https://github.com/golang-migrate/migrate">}}, database migration tool written in Go
{{< books >}}
{{< goLibraries >}}

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Dropbox - Open sourcing our Go libraries"
description: "About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage better concurrency support and faster execution speed. ... At this point, we have successfully moved major parts of our infrastructure to Go."
date: 2014-07-01
company: Dropbox
logoSrc: dropbox.svg
series: Case Studies
link: https://blogs.dropbox.com/tech/2014/07/open-sourcing-our-go-libraries/
resources:
- name: logo
src: logo.svg
params:
alt: Dropbox
inLandingPageGrid: true
---

Просмотреть файл

@ -1,45 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 20.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1000 196.9" style="enable-background:new 0 0 1000 196.9;" xml:space="preserve">
<style type="text/css">
.st0{fill:#0061FF;}
.st1{display:none;}
.st2{display:inline;}
.st3{fill:none;}
</style>
<path class="st0" d="M116,37l-58,37l58,37l-58,37L0,110.8l58-37L0,37L58,0L116,37z M57.7,159.9l58-37l58,37l-58,37L57.7,159.9z
M116,110.8l58-37L116,37l57.7-37l58,37l-58,37l58,37l-58,37L116,110.8z"/>
<path d="M277.2,37h46.9c29.9,0,54.6,17.3,54.6,56.8v8.3c0,39.8-23.1,57.7-53.7,57.7h-47.8V37z M303.4,59.3v78.1h20.1
c17,0,28.4-11.1,28.4-35.8v-6.5c0-24.7-12-35.8-29.3-35.8H303.4z M392.6,60.5h21l3.4,23.1c4-15.7,14.2-24.1,32.7-24.1h6.5v26.5
h-10.8c-21.3,0-26.5,7.4-26.5,28.4v45.7h-25.9V60.5H392.6z M461.4,112.3v-2.8c0-33.3,21.3-51.5,50.3-51.5
c29.6,0,50.3,18.2,50.3,51.5v2.8c0,32.7-20.1,50.3-50.3,50.3C479.6,162.3,461.4,145.1,461.4,112.3z M535.5,112v-2.5
c0-18.5-9.3-29.6-24.1-29.6c-14.5,0-24.1,10.2-24.1,29.6v2.5c0,17.9,9.3,28.1,24.1,28.1C526.2,139.8,535.5,129.9,535.5,112z
M575.6,60.5h21.6l2.5,18.8C604.9,66.7,616,58,632.4,58c25.3,0,42,18.2,42,51.9v2.8c0,32.7-18.5,50-42,50
c-15.7,0-26.5-7.1-31.8-18.5v50.3h-25.3L575.6,60.5L575.6,60.5z M648.1,112v-2.2c0-19.8-10.2-29.6-23.8-29.6
c-14.5,0-24.1,11.1-24.1,29.6v1.9c0,17.6,9.3,28.7,23.8,28.7C638.9,140.1,648.1,130.6,648.1,112z M712.7,141.7l-2.2,18.2h-22.2V27.2
h25.3v50.9c5.6-13,16.7-20.1,32.4-20.1c23.8,0.3,41.4,16.7,41.4,49.7v3.1c0,33-16.7,51.9-42,51.9
C728.7,162.3,717.9,154.6,712.7,141.7z M760.8,110.8v-2.5c0-18.2-9.9-28.4-23.8-28.4c-14.2,0-24.1,11.4-24.1,28.7v2.2
c0,18.5,9.6,29.3,23.8,29.3C751.9,140.1,760.8,130.6,760.8,110.8z M798.5,112.3v-2.8c0-33.3,21.3-51.5,50.3-51.5
c29.6,0,50.3,18.2,50.3,51.5v2.8c0,32.7-20.4,50.3-50.3,50.3C816.7,162.3,798.5,145.1,798.5,112.3z M872.8,112v-2.5
c0-18.5-9.3-29.6-24.1-29.6c-14.5,0-24.1,10.2-24.1,29.6v2.5c0,17.9,9.3,28.1,24.1,28.1C863.6,139.8,872.8,129.9,872.8,112z
M933,108.3l-34.9-47.8h29.9l20.1,29.9l20.4-29.9h29.6L962.7,108l37.3,51.9h-29.3l-22.8-33l-22.2,33h-30.6L933,108.3z"/>
<g id="Editble" class="st1">
<g class="st2">
<rect x="233" y="71.6" class="st3" width="506" height="71.8"/>
<path d="M338.2,80.2h16.3c10.4,0,19,6.1,19,19.8v2.9c0,13.8-8,20-18.7,20h-16.6V80.2z M347.4,87.9v27.2h7c5.9,0,9.9-3.9,9.9-12.5
v-2.2c0-8.6-4.1-12.5-10.2-12.5H347.4z M378.4,88.4h7.3l1.1,8c1.4-5.5,4.9-8.3,11.3-8.3h2.2v9.2h-3.7c-7.4,0-9.2,2.6-9.2,9.9V123
h-9C378.4,123,378.4,88.4,378.4,88.4z M402.3,106.4v-1c0-11.6,7.4-17.9,17.5-17.9c10.3,0,17.5,6.4,17.5,17.9v1
c0,11.4-7,17.5-17.5,17.5C408.6,123.9,402.3,117.8,402.3,106.4z M428.1,106.3v-0.8c0-6.5-3.2-10.3-8.3-10.3c-5,0-8.4,3.5-8.4,10.3
v0.8c0,6.2,3.2,9.7,8.3,9.7C424.9,116,428.1,112.6,428.1,106.3z M442,88.4h7.6l0.9,6.6c1.9-4.4,5.7-7.4,11.4-7.4
c8.8,0,14.6,6.4,14.6,18v1c0,11.4-6.4,17.3-14.6,17.3c-5.5,0-9.2-2.5-11-6.5v17.5H442V88.4z M467.3,106.4v-0.8
c0-6.9-3.5-10.3-8.3-10.3c-5,0-8.4,3.8-8.4,10.3v0.7c0,6.1,3.2,10,8.2,10C464,116.1,467.3,112.7,467.3,106.4z M489.7,116.7
L489,123h-7.8V76.8h8.8v17.8c1.9-4.5,5.8-7,11.2-7c8.2,0.1,14.3,5.8,14.3,17.3v1c0,11.5-5.8,18-14.6,18
C495.3,123.9,491.5,121.1,489.7,116.7z M506.5,105.9v-0.8c0-6.4-3.5-9.8-8.3-9.8c-5,0-8.4,4-8.4,10v0.7c0,6.5,3.3,10.2,8.3,10.2
C503.3,116.1,506.5,112.7,506.5,105.9z M519.6,106.4v-1c0-11.6,7.4-17.9,17.5-17.9c10.3,0,17.5,6.4,17.5,17.9v1
c0,11.4-7.1,17.5-17.5,17.5C525.9,123.9,519.6,117.8,519.6,106.4z M545.4,106.3v-0.8c0-6.5-3.2-10.3-8.3-10.3
c-5,0-8.4,3.5-8.4,10.3v0.8c0,6.2,3.2,9.7,8.3,9.7C542.2,116,545.4,112.6,545.4,106.3z M566.3,105l-12.1-16.7h10.4l7,10.4
l7.1-10.4H589l-12.3,16.6l13,18h-10.2l-8-11.5l-7.7,11.5h-10.6L566.3,105z"/>
</g>
</g>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 196.9">
<path
d="M116 37L58 74l58 37-58 37-58-37 58-37L0 37 58 0l58 37zM58 160l58-37 58 37-58 37-58-37zm58-49l58-37-58-37 58-37 58 37-58 37 58 37-58 37-58-37z"
fill="#0061ff"
/>
<path
d="M277 37h47c30 0 55 17 55 57v8c0 40-23 58-54 58h-48V37zm26 22v78h20c18 0 29-11 29-35v-7c0-25-12-36-29-36h-20zm90 2h21l3 23c4-16 14-25 33-25h6v27h-11c-21 0-26 7-26 28v46h-26V61zm68 51v-3c0-33 22-51 51-51s50 18 50 52v2c0 33-20 51-50 51-32-1-51-18-51-51zm75 0v-2c0-19-10-30-25-30-14 0-24 10-24 30v2c0 18 10 28 24 28 15 0 25-10 25-28zm40-51h21l3 18c5-12 16-21 32-21 26 0 42 18 42 52v3c0 32-18 50-42 50-15 0-26-7-31-19v50h-26l1-133zm72 51v-2c0-20-10-30-24-30s-24 11-24 30v2c0 17 10 28 24 28 15 0 24-9 24-28zm65 30l-2 18h-23V27h26v51c5-13 16-20 32-20 24 0 41 17 41 50v3c0 33-16 52-42 52-16-1-27-8-32-21zm48-31v-3c0-18-10-28-24-28s-24 11-24 29v2c0 18 9 29 24 29s24-9 24-29zm38 1v-3c0-33 21-51 50-51s50 18 50 52v2c0 33-20 51-50 51-32-1-50-18-50-51zm74 0v-2c0-19-10-30-24-30-15 0-24 10-24 30v2c0 18 9 28 24 28s24-10 24-28zm60-4l-35-47h30l20 29 21-29h29l-35 47 37 52h-29l-23-33-22 33h-31l38-52z"
/>
</svg>

До

Ширина:  |  Высота:  |  Размер: 3.8 KiB

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Просмотреть файл

@ -0,0 +1,12 @@
---
linkTitle: Bigslice - A cluster computing system in Go
description: At GRAIL, we use the Go programming language for most of our bioinformatics,
data processing, and machine learning tasks. Gos simplicity makes it easy for
newcomers to learn; its transparent runtime semantics makes it easy to reason
about performance; and its ability to control data layout and allocation makes
it possible to write highly performant data processing code.
company: GRAIL
logoSrc: grail.svg
series: Case Studies
link: https://medium.com/grail-eng/bigslice-a-cluster-computing-system-for-go-7e03acd2419b
---

Двоичные данные
go.dev/content/solutions/grail/logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 12 KiB

Просмотреть файл

@ -1,16 +1,18 @@
---
title: "MercadoLibre Grows with Go"
description: ""
company: MercadoLibre
logoSrc: mercadoLibre.svg
heroImgSrc: go_mercadolibre_case_study_logo.png
carouselImgSrc: go_mercadolibre_case_study.png
date: 2019-11-10T16:26:31-04:00
series: Case Studies
quote: Go provides clean, efficient code that readily scales as MercadoLibres online commerce grows, and increases developer productivity by allowing their engineers to serve their ever-increasing audience while writing less code.
resources:
- name: logo
src: logo.svg
params:
alt: MercadoLibre
---
{{% pullquote author="Eric Kohan" title="Software Engineering Manager" company="MercadoLibre" %}}
I think that **the tour of Go is by far the best introduction to a language that Ive seen**, Its really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.
{{% /pullquote %}}
## Go helps integrated ecosystem attract developers and scale eCommerce
MercadoLibre, Inc. hosts the largest online commerce ecosystem in Latin America and is present in 18 countries. Founded
@ -18,7 +20,7 @@ in 1999 and headquartered in Argentina, the company has turned to Go to help it
provides clean, efficient code that readily scales as MercadoLibres online commerce grows, and increases developer
productivity by allowing their engineers to serve their ever-increasing audience while writing less code.
## MercadoLibre taps Go for scale
### MercadoLibre taps Go for scale
Back in 2015, there was a growing sense within MercadoLibre that their existing API framework, on Groovy and Grails, was
reaching its limits and the company needed a different platform to continue scaling. MercadoLibres platform was (and
@ -29,7 +31,7 @@ to develop and tune to achieve desired performance. Test execution times were sl
slow. Thus, the need for code efficiency and scalability became as important as the need for speed in code development.
## Go improves system efficiency
### Go improves system efficiency
As one example of Gos contributions to network efficiency, the core API team builds and maintains the largest APIs at
the center of the companys microservices solutions. This team creates user APIs, which in turn are used by the
@ -37,7 +39,6 @@ MercadoLibre Marketplace, by the MercadoPago FinTech platform, by MercadoLibre
other hosted solutions. With the high service levels demanded by these solutions—the average user API has between eight
and ten million requests per minute—the team employs Go to serve them at less than ten milliseconds per request.
{{% gopher gopher=pilot align=right %}}
The API team also deploys Docker containers—a software-as-a-service (SaaS) product, also written in Go—to virtualize
their development and readily deploy their microservices via the Docker Engine. This system supports larger,
mission-critical APIs that handle **more than 20 million requests per minute in Go.**
@ -47,7 +48,7 @@ was able to accomplish this with just a few lines of Go code, and the success of
migrate more and more microservices to Go. The end result for MercadoLibre has been improved cost-efficiencies and
system response times.
## Go for scalability
### Go for scalability
Historically, much of the companys stack was based on Grails and Groovy backed by relational databases. However this
big framework with multiple layers was soon found encountering scalability issues.
@ -56,10 +57,10 @@ Converting that legacy architecture to Go as a new, very thin framework for buil
layers and yielded great performance benefits. For example, one large Go service is now able to **run 70,000 requests
per machine with just 20 MB of RAM.**
{{% pullquote author="Eric Kohan, Software Engineering Manager @ MercadoLibre" %}}
{{% backgroundQuote author="Eric Kohan" title="Software Engineering Manager" company="MercadoLibre" %}}
Go was just marvelous for us. Its very powerful
and very easy to learn, and with backend infrastructure, has been great for us in terms of scalability.
{{% /pullquote %}}
{{% /backgroundQuote %}}
Using **Go allowed MercadoLibre to cut the number of servers** they use for this service to one-eighth the original
number (from 32 servers down to four), plus each server can operate with less power (originally four CPU cores, now down
@ -76,9 +77,8 @@ up a new project—all while effectively standardizing the build and deployment
Today, **roughly half of Mercadolibre's traffic is handled by Go applications.**
## MercadoLibre uses Go for developers
### MercadoLibre uses Go for developers
{{% gopher gopher=wrench %}}
The programming _lingua francas_ for MercadoLibres infrastructure are currently Go and Java. Every app, every program,
every microservice is hosted on its own GitHub repository, plus the company uses an additional GitHub repository of
toolkits to solve new problems and allow clients to interact with its services.
@ -90,16 +90,16 @@ fosters internal working groups to provide training sessions for new MercadoLibr
for external developers to help build a broader community of Latin American Go developers.
## Go as a recruiting tool
### Go as a recruiting tool
MercadoLibres Go advocacy has also become a strong recruiting tool for the company. MercadoLibre was among the first
companies using Go in Argentina, and is perhaps the largest in Latin America using the language so widely in production.
Headquartered in Buenos Aires, with many start-ups and emerging technology companies nearby, MercadoLibre's adoption of
Go has shaped the market for developers across the Pampas.
{{% pullquote author="Eric Kohan, Software Engineering Manager @ MercadoLibre" %}}
{{% backgroundQuote author="Eric Kohan" title="Software Engineering Manager" company="MercadoLibre" %}}
We really see eye-to-eye with the larger philosophy of the language. We love Go's simplicity, and we find that having its very explicit error handling has been a gain for developers because it results in safer, more stable code in production.
{{% /pullquote %}}
{{% /backgroundQuote %}}
Buenos Aires is today a very competitive market for programmers, offering computer programmers many employment options,
and the high demand for technology in the region drives great salaries, great benefits, and the ability to be selective
@ -108,23 +108,19 @@ to provide an exciting workplace and strong career path. Go has proven to be a k
company organizes Go workshops for external developers so they can come and learn Go, and when they enjoy what they are
doing and the people they talk to, they quickly recognize MercadoLibre as an enticing place to work.
## Go enabling developers
### Go enabling developers
MercadoLibre employs Go for its simplicity with systems at scale, but that simplicity is also why the company's
developers love Go.
{{% pullquote author="Eric Kohan, Software Engineering Manager @ MercadoLibre" %}}
I think that **the tour of Go is by far the best introduction to a language that Ive seen**, Its really simple and it gives you a fair overview of probably 80 percent of the language. When we want to get developers to learn Go, and to get to production fast, we tell them to start with the tour of Go.
{{% /pullquote %}}
The company also uses web pages like[ Go by Example](https://gobyexample.com/) and[ Effective
Go](https://golang.org/doc/effective_go.html) to educate new programmers, and shares representative internal APIs
written in Go to speed understanding and proficiency. MercadoLibre developers get the resources they need to embrace the
language, then leverage their own skills and enthusiasm to start programming.
{{% pullquote author="Federico Martin Roasio, Technical Project Lead @ MercadoLibre" %}}
{{% backgroundQuote author="Federico Martin Roasio" title="Technical Project Lead" company="MercadoLibre" %}}
Go has been great for writing business logic, and we are the team that writes those APIs.
{{% /pullquote %}}
{{% /backgroundQuote %}}
MercadoLibre leverages Gos expressive and clean syntax to make it easier for developers to write programs that run
efficiently on modern cloud platforms. And while speed in development yields cost efficiency for the company, developers
@ -136,7 +132,6 @@ only knew about programming from recent courses at university. Similarly, Mercad
proficient with other programming languages (such as Java or .NET or Ruby) learn Go fast enough start writing production
services in just a few weeks.
{{% gopher gopher=plane align=right %}}
With Go, MercadoLibres **build times are three times (3x) faster** and their **test suite runs an amazing 24 times
faster**. This means the companys developers can make a change, then build and test that change much faster than they
could before.
@ -149,10 +144,10 @@ education. The company sends key engineering leaders to GopherCon and other Go e
infrastructure and security teams encourage all the development teams to keep Go versions up to date, and the company
has a team developing a _Go-meli-toolkit_: A complete Go library to interface all the services provided by Fury.
## Getting your enterprise started with Go
### Getting your enterprise started with Go
Just as MercadoLibre started with a proof-of-concept project to implement Go, dozens of other large enterprises are
adopting Go as well.
adopting Go as well.
There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as [American Express](https://go.dev/solutions/americanexpress), [PayPal](https://go.dev/solutions/paypal), Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Netflix - Application data caching using SSDs"
linkTitle: "Netflix - Application data caching using SSDs"
description: "The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well."
date: 2016-05-26
company: Netflix
logoSrc: netflix.svg
series: Case Studies
link: https://medium.com/netflix-techblog/application-data-caching-using-ssds-5bf25df851ef
resources:
- name: logo
src: logo.svg
params:
alt: Netflix
inLandingPageGrid: true
---

Просмотреть файл

@ -1,77 +1,82 @@
---
title: PayPal Taps Go to Modernize and Scale
description: “”
date: 2019-12-18
date: 2020-06-01
company: PayPal
logoSrc: paypal.svg
heroImgSrc: go_paypal_case_study_logo.png
carouselImgSrc: go_paypal_case_study.png
series: Case Studies
quote: Gos value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPals goals.
resources:
- name: logo
src: logo.svg
params:
alt: PayPal
---
{{% pullquote author="Bala Natarajan" title="<span class=\"NoWrapSpan\">Sr. Director of Engineering,</span>&nbsp;<span class=\"NoWrapSpan\">Developer Experience</span>" company="PayPal" %}}
Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.
{{% /pullquote %}}
## New code infrastructure built on Go
PayPal was created to democratize financial services and empower people and businesses to join and thrive in the global economy. Central to this effort is PayPals Payments Platform, which uses a combination of proprietary and third-party technologies to efficiently and securely facilitate transactions between millions of merchants and consumers worldwide. As the Payments Platform grew larger and more complicated, PayPal sought to modernize its systems and reduce time-to-market for new applications.
{{% gopher align=right %}}
Gos value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPals goals.
Central to the Payment Processing Platform is a proprietary NoSQL database that PayPal had developed in C++. The complexity of the code, however, was substantially decreasing its developers ability to evolve the platform. Gos simple code layouts, goroutines (lightweight threads of execution) and channels (which serve as the pipes that connect concurrent goroutines), made Go a natural choice for the NoSQL development team to simplify and modernize the platform.
As a proof of concept, a development team spent six months learning Go and reimplementing the NoSQL system from the ground up in Go, during which they also provided insights on how Go could be implemented more broadly at PayPal. As of today, thirty percent of the clusters have been migrated to use the new NoSQL database.
## Using Go to simplify for scale
As PayPals platform becomes more intricate, Go provides a way to readily simplify the complexity of creating and running software at scale. The language provides PayPal with great libraries and fast tools, plus concurrency, garbage collection, and type safety.
With Go, PayPal enables its developers to spend more time looking at code and thinking strategically, by freeing them from the noise of C++ and Java development.
{{% pullquote author="Bala Natarajan, Sr. Director of Engineering, Developer Experience @ PayPal" %}}
Since our NoSQL and DB proxy used quite a bit of system details in a multi-threaded mode, the code got complex managing the different conditions, given that Go provides channels and routines to deal with complexity, we were able to structure the code to meet our requirements.
{{% /pullquote %}}
After the success of this newly re-written NoSQL system, more platform and content teams within PayPal began adopting Go. Natarajans current team is responsible for PayPals build, test, and release pipelines—all built in Go. The company has a large build and test farm which is completely managed using Go infrastructure to support builds-as-a-service (and tests-as-a-service) for developers across the company.
{{< rawhtml >}}
<img
loading="lazy"
width="607"
height="289"
class=""
alt="Go gopher factory"
src="/images/gophers/factory.png">
{{< /rawhtml >}}
## Modernizing PayPal systems with Go
With the distributed computing capabilities required by PayPal, Go was the right language to refresh their systems. PayPal needed programming that is concurrent and parallel, compiled for high performance and highly portable, and that brings developers the benefits of a modular, composable open-source architecture—Go has delivered all that and more to help PayPal modernize its systems.
Security and supportability are key matters at PayPal, and the companys operational pipelines are increasingly dominated by Go because the languages cleanliness and modularity help them achieve these goals. PayPals deployment of Go engenders a platform of creativity for developers, allowing them to produce simple, efficient, and reliable software at scale for PayPals worldwide markets.
As PayPal continues to modernize their software-defined networking (SDN) infrastructure with Go, they are seeing performance benefits in addition to more maintainable code. For example, Go now powers routers, load balances, and an increasing number of production systems.
{{% pullquote author="Bala Natarajan, Sr. Director of Engineering, Developer Experience @ PayPal" %}}
{{% backgroundQuote author="Bala Natarajan" title="Sr. Director of Engineering" %}}
In our tightly managed environments where we run Go code, we have seen a CPU reduction of approximately ten percent with cleaner and maintainable code.
{{% /pullquote %}}
{{% /backgroundQuote %}}
## Go increases developer productivity
As a global operation, PayPal needs its development teams to be effective at managing two kinds of scale: production scale, especially concurrent systems interacting with many other servers (such as cloud services); and development scale, especially large codebases developed by many programmers in coordination (such as open-source development)
{{% gopher gopher=blue size=“Large” %}}
PayPal leverages Go to address these issues of scale. The companys developers benefit from Gos ability to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. As PayPal modernizes its system, support for networked and multicore computing is critical. Go not only delivers such support but delivers quickly—it takes at most a few seconds to compile a large executable on a single computer.
There are currently over 100 Go developers at PayPal, and future developers who choose to adopt Go will have an easier time getting the language approved thanks to the many successful implementations already in production at the company.
Most importantly, PayPal developers have increased their productivity with Go. Gos concurrency mechanisms have made it easy to write programs that get the most out of PayPals multicore and networked machines. Developers using Go also benefit from the fact that it compiles quickly to machine code and their apps gain the convenience of garbage collection and the power of run-time reflection.
## Speeding PayPals time to market
The first-class languages at PayPal today are Java and Node, with Go primarily used as an infrastructure language. While Go may never replace Node.js for certain applications, Natarajan is pushing to make Go a first-class language at PayPal.
{{% gopher align=right gopher=machine size=“XLarge” %}}
Through his efforts, PayPal is also evaluating moving to the Google Kubernetes Engine (GKE) to speed their new products time-to-market. The GKE is a managed, production-ready environment for deploying containerized applications, and brings Google's latest innovations in developer productivity, automated operations, and open source flexibility.
For PayPal, deploying to GKE would enable rapid development and iteration by making it easier for PayPal to deploy, update, and manage its applications and services. Plus PayPal will find it easier to run Machine Learning, General Purpose GPU, High-Performance Computing, and other workloads that benefit from specialized hardware accelerators supported by the GKE.
Most importantly for PayPal, the combination of Go development and the GKE allows the company to scale effortless to meet demand, as Kubernetes autoscaling will allow PayPal to handle increased user demand for services—keeping them available when it matters most, then scale back in the quiet periods to save money.
## Getting your enterprise started with Go
PayPals story is not unique; dozens of other large enterprises are discovering how Go can help them ship reliable software faster. There are over one million developers using Go worldwide—spanning banking and commerce, gaming and media, technology, and other industries, at enterprises as diverse as [American Express](https://go.dev/solutions/americanexpress), [Mercado Libre](https://go.dev/solutions/mercadolibre), Capital One, Dropbox, IBM, Monzo, New York Times, Salesforce, Square, Target, Twitch, Uber, and of course Google.
To learn more about how Go can help your enterprise build reliable, scalable software as it does at PayPal, visit [go.dev](https://go.dev) today.

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Salesforce - From Python/C to Go"
linkTitle: "Salesforce - From Python/C to Go"
description: "One of the big advantages is that Go's cross-platform features make porting code easy."
date: 2019-10-08
company: Salesforce
logoSrc: salesforce.svg
series: Case Studies
link: https://www.zdnet.com/article/salesforce-why-we-ditched-python-for-googles-go-language-in-einstein-analytics/
resources:
- name: logo
src: logo.svg
params:
alt: Salesforce
inLandingPageGrid: true
---

Просмотреть файл

@ -1,13 +0,0 @@
---
title: "Square - The Tale of a Go Resource Leak"
description: ""
date: 2017-07-11
series: Case Studies
link: https://developer.squareup.com/blog/always-be-closing/
draft: true
resources:
- name: logo
src: logo.svg
params:
alt: Square
---

Просмотреть файл

@ -1,179 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
width="220"
height="55"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="Square, Inc. logo.svg">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="945"
id="namedview18"
showgrid="false"
inkscape:zoom="5.3422072"
inkscape:cx="110.13092"
inkscape:cy="27.5"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="layer3" />
<title
id="title3166">Square, Inc. logo</title>
<defs
id="defs4">
<clipPath
id="clipPath3045">
<path
d="m 0,76.21 288,0 L 288,0 0,0 0,76.21 z"
id="path3047" />
</clipPath>
</defs>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Square, Inc. logo</dc:title>
<dc:source>http://www.brandsoftheworld.com</dc:source>
<dc:description>Original version converted from Adobe Illustrator file obtained at Brands of the World to SVG using Inkscape. Revised 2016 version used proprietary SQMarket TrueType font, obtained from GitHub repository at https://github.com/square/square.github.io/tree/master/fonts, with kerning and weight tweaks applied to match the appearance of sample logo posted by Square, Inc. at their Web site.</dc:description>
<dc:creator>
<cc:Agent>
<dc:title>Square, Inc.</dc:title>
</cc:Agent>
</dc:creator>
<dc:publisher>
<cc:Agent>
<dc:title>Square, Inc.</dc:title>
</cc:Agent>
</dc:publisher>
<dc:date>2017-06-15</dc:date>
<dc:contributor>
<cc:Agent>
<dc:title>Hydrargyrum for Wikimedia Foundation</dc:title>
</cc:Agent>
</dc:contributor>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="original"
style="display:none"
sodipodi:insensitive="true">
<g
transform="translate(-623.84206,-727.74211)"
id="layer1">
<g
transform="matrix(0.62481102,0,0,0.62481102,275.95426,282.79555)"
id="g3156">
<path
d="m 629.34431,713.57188 -56.7625,0 c -7.80375,0 -14.1925,6.38625 -14.1925,14.1925 l 0,56.7625 c 0,7.8025 6.38875,14.1875 14.1925,14.1875 l 56.7625,0 c 7.80375,0 14.1925,-6.385 14.1925,-14.1875 l 0,-56.7625 c 0,-7.80625 -6.38875,-14.1925 -14.1925,-14.1925 m -1.29,65.15375 c 0,2.48 -2.03125,4.505 -4.51375,4.505 l -45.15875,0 c -2.48125,0 -4.5125,-2.025 -4.5125,-4.505 l 0,-45.1575 c 0,-2.48125 2.03125,-4.5125 4.5125,-4.5125 l 45.15875,0 c 2.4825,0 4.51375,2.03125 4.51375,4.5125 l 0,45.1575 z m -15.4775,-13.5525 c 0,1.42375 -1.16125,2.58125 -2.5775,2.58125 l -18.06,0 c -1.42,0 -2.5775,-1.1575 -2.5775,-2.58125 l 0,-18.05875 c 0,-1.41875 1.1575,-2.57875 2.5775,-2.57875 l 18.06,0 c 1.41625,0 2.5775,1.16 2.5775,2.57875 l 0,18.05875 z"
id="path3051"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<g
id="g3148">
<path
d="m 682.94419,784.101 c -5.04875,0 -9.90125,-1.945 -13.32,-5.36 -3.05125,-3.04375 -4.7425,-7 -4.7425,-11.1375 l 5.11375,0 c 0,2.77125 1.1475,5.44375 3.24,7.52625 2.46375,2.4525 6.00625,3.865 9.7125,3.865 l 0.0425,0 c 7.135,0 12.93125,-4.99 12.93125,-11.1225 -0.004,-4.60125 -2.54875,-8.2525 -14.92875,-11.11875 -5.03875,-1.16625 -8.435,-2.72625 -10.69875,-4.9075 -2.40625,-2.33375 -3.585,-5.44 -3.585,-9.49375 0,-8.00625 7.1775,-14.52375 16.00125,-14.52375 4.23,0 8.215,1.455 11.22875,4.09875 3.1075,2.72875 4.825,6.41125 4.825,10.36625 l -5.11375,0 c 0,-5.16125 -4.90375,-9.355 -10.94,-9.355 -5.90625,0 -10.8925,4.3125 -10.8925,9.41375 0,4.66375 1.60125,7.40375 10.33125,9.425 9.3225,2.15375 18.86375,5.75625 18.8875,16.09125 0,4.39875 -1.9075,8.51 -5.37,11.5775 -3.3925,3.005 -7.89375,4.655 -12.6725,4.655 l -0.05,0 z"
id="path3055"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 743.14856,798.639 0,-22.38125 -0.14375,0 c -3.31625,5.08 -9.03125,7.6925 -15.03875,7.6925 -11.575,0 -20.76,-8.6925 -20.76,-20.3375 0,-11.58125 9.40125,-20.195 20.76,-20.195 6.0075,0 11.7225,2.61375 15.03875,7.76875 l 0.14375,0 0,-6.78125 4.945,0 0,54.23375 -4.945,0 z m -15.1825,-50.77125 c -9.18125,0 -15.80875,6.84625 -15.80875,15.95625 0,9.04125 6.7725,15.6775 15.80875,15.6775 8.76125,0 15.4675,-7.13625 15.4675,-15.7525 0,-8.6125 -6.70625,-15.88125 -15.4675,-15.88125"
id="path3059"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 834.20569,783.02988 0,-6.77625 -0.14375,0 c -3.3925,5.0775 -9.0375,7.69 -15.04125,7.69 -11.5725,0 -20.7575,-8.6825 -20.7575,-20.33125 0,-11.58 9.38875,-20.19875 20.7575,-20.19875 6.07625,0 11.72375,2.5475 15.04125,7.77 l 0.14375,0 0,-6.77625 4.93625,0 0,38.6225 -4.93625,0 z m -15.185,-35.1625 c -9.1725,0 -15.81,6.84625 -15.81,15.9575 0,9.03625 6.7775,15.6775 15.81,15.6775 8.75625,0 15.46125,-7.1375 15.46125,-15.7525 0,-8.6125 -6.705,-15.8825 -15.46125,-15.8825"
id="path3063"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 853.95669,760.43463 0,22.59875 -4.94875,0 0,-38.63 4.94875,0 0,5.57875 0.13125,0 c 2.125,-4.9425 5.865,-6.215 10.87875,-6.5675 l 0,5.23125 c -6.7775,0.5625 -11.01,4.8675 -11.01,11.78875"
id="path3067"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 907.21106,765.52063 -35.1625,0 c 0.355,7.625 7.42125,13.98125 14.9775,13.98125 5.92875,0 11.72125,-3.3925 13.84,-9.11125 l 5.2175,0 c -2.81625,8.04625 -10.44125,13.5525 -18.99,13.5525 -11.15375,0 -20.12125,-9.105 -20.12125,-20.19375 0,-11.01125 8.9675,-20.33625 20.05375,-20.33625 11.30125,0 20.26875,9.53625 20.26875,20.69625 0,0.4875 -0.0838,0.9125 -0.0838,1.41125 m -20.1175,-17.65625 c -7.70125,0 -13.84125,5.64875 -15.045,13.205 l 30.15375,0 c -1.27125,-7.55625 -7.34,-13.205 -15.10875,-13.205"
id="path3071"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
<path
d="m 786.44819,783.07988 0,-6.035 -0.14,0 c -2.2725,4.75875 -7.30875,6.95875 -12.41875,6.95875 -5.03875,0 -10.145,-1.7725 -13.34125,-5.815 -2.7625,-3.47875 -3.4,-8.1625 -3.4,-12.48625 l 0,-21.42875 4.96375,0 0,21.35375 c 0,8.0175 2.90625,13.91 11.7775,13.91 3.26,0 5.815,-0.8575 8.23,-3.1275 3.40875,-3.25625 4.04125,-7.09625 4.04125,-11.63125 l 0,-20.505 4.97,0 0,38.80625 -4.6825,0 z"
id="path3075"
style="fill:#242627;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="2016-rev"
style="display:inline">
<g
id="g3486">
<g
id="g3478">
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:110.00000237999999797%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:SQ Market;-inkscape-font-specification:SQ Market"
d="m 110.09599,19.0625 c -2.15849,0.06202 -4.2168,0.936493 -5.90625,2.25 -0.60419,0.431488 -1.3399,1.144543 -1.73776,1.79042 -0.86536,1.186472 -1.59946,2.454052 -2.01373,3.870303 -1.198386,3.956806 -0.98548,8.436984 0.93158,12.131 0.74648,1.313848 1.54604,2.453577 2.72616,3.427027 0.95717,0.596111 2.06939,1.381015 3.25559,1.689364 3.24364,1.029562 7.00209,0.500483 9.71316,-1.595614 0.67831,-0.421332 1.29657,-1.232078 1.84375,-1.90625 -0.0396,-0.177078 0.51922,-0.903134 0.5625,-0.3375 -0.002,4.022378 0.002,8.081355 0,12.11875 1.21875,0 2.4375,0 3.65625,0 0,-10.958333 0,-21.916667 0,-32.875 -1.21875,0 -2.4375,0 -3.65625,0 0,1.458333 0,2.916667 0,4.375 -0.65477,-0.959262 -1.23326,-2.010929 -2.15625,-2.625 -2.01811,-1.619075 -4.62218,-2.515883 -7.21875,-2.3125 z m 1.28125,3.3125 c 1.67857,-0.0043 3.58299,0.46943 4.78125,1.53125 0.95531,0.774052 1.67021,1.591807 2.1863,2.728967 1.36709,2.938761 1.48858,6.433306 0.42104,9.485514 -0.47922,1.47611 -1.40042,2.7232 -2.60734,3.691769 -1.77666,1.519691 -4.34998,1.77378 -6.59701,1.381996 -1.48758,-0.25529 -2.75007,-1.10639 -3.70555,-2.238417 -1.77914,-1.953522 -2.28665,-4.780058 -2.25407,-7.368406 0.0896,-2.2465 0.52114,-4.603244 1.90038,-6.431423 0.92865,-1.148264 2.14317,-2.140818 3.6311,-2.492454 0.72272,-0.233519 1.48693,-0.310231 2.2439,-0.288796 z"
id="path3299"
inkscape:connector-curvature="0" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:110.00000237999999797%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:SQ Market;-inkscape-font-specification:SQ Market"
d="m 83.237735,9.65625 c -2.78174,0.1113705 -5.614077,0.840776 -7.84375,2.5625 -0.457618,0.303837 -0.963531,0.852275 -1.280144,1.328935 -1.360275,1.718414 -2.056025,3.951802 -1.838984,6.145892 0.07786,1.596262 0.666997,3.148117 1.744128,4.337673 0.315373,0.475145 0.924123,1.014713 1.419243,1.326245 2.878957,2.237478 6.622826,2.653061 10.020507,3.670505 2.121658,0.645968 4.577872,1.0844 5.9665,2.972 1.176055,1.436089 1.14301,3.5945 0.5,5.28125 -0.550121,1.381693 -1.750693,2.369375 -3.03125,3.0625 -2.681676,1.160125 -5.787808,1.084742 -8.562085,0.307852 -2.090019,-0.639688 -3.943929,-1.881549 -5.300734,-3.603828 -0.34711,-0.565804 -0.655804,-0.930295 -1.198817,-0.276504 -0.823204,0.576243 -1.646409,1.152487 -2.469614,1.72873 0.661152,1.038354 1.441905,2.035083 2.375,2.75 1.596164,1.220742 3.327212,2.300413 5.290505,2.806922 3.673489,1.094496 7.751131,0.980525 11.303245,-0.494422 1.433752,-0.748809 2.80311,-1.505353 3.817267,-2.761494 1.31181,-1.550497 2.15467,-3.725186 2.195209,-5.844367 C 96.451356,32.92211 95.794933,30.858547 94.456485,29.3125 94.201255,28.910381 93.740591,28.499216 93.298473,28.242241 92.629669,27.648383 91.873183,27.275963 91.053503,26.83242 87.398021,25.003828 83.229648,24.609166 79.495736,23.01105 78.352079,22.442741 77.207129,21.655432 76.612735,20.5 c -0.889025,-1.972852 -0.196348,-4.469865 1.544687,-5.721221 1.520799,-1.218698 3.60866,-1.577227 5.536563,-1.591279 3.347658,-0.03421 6.741958,1.425656 8.7625,4.125 1,-0.75 2,-1.5 3,-2.25 C 94.579348,13.841173 93.482753,12.895154 92.282577,12.086206 89.633196,10.343693 86.406746,9.4930109 83.237735,9.65625 z"
id="path3297"
inkscape:connector-curvature="0" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:110.00000237999999797%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:SQ Market;-inkscape-font-specification:SQ Market"
d="m 129.298,35.5625 c 0.004,2.147386 0.43984,4.378484 1.75,6.125 0.57292,0.931335 1.70304,1.671587 2.70734,2.21982 2.62423,1.214354 5.7747,1.028749 8.37323,-0.161622 1.18358,-0.640644 2.32029,-1.437615 3.07568,-2.464448 0.3463,-0.319486 0.73663,-1.226589 0.9375,-1.275 0,1.383333 0,2.766667 0,4.15 1.21875,0 2.4375,0 3.65625,0 0,-8.177083 0,-16.354167 0,-24.53125 -1.21875,0 -2.4375,0 -3.65625,0 -0.0254,5.010103 0.0591,10.023066 -0.0625,15.03125 -0.29542,2.01655 -1.21176,3.963938 -2.875,5.1875 -2.01592,1.536071 -4.9373,1.909346 -7.3125,0.96875 -1.66356,-0.747642 -2.61141,-2.573252 -2.73011,-4.366474 -0.28622,-3.136868 -0.0841,-6.294089 -0.14489,-9.439776 0,-2.460417 0,-4.920833 0,-7.38125 -1.23958,0 -2.47917,0 -3.71875,0 0,5.3125 0,10.625 0,15.9375 z"
id="path3301"
inkscape:connector-curvature="0" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:110.00000237999999797%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:SQ Market;-inkscape-font-specification:SQ Market"
d="m 164.8125,19.0625 c -3.17355,0.103044 -6.3179,1.134927 -8.90625,2.96875 0.53125,0.895833 1.0625,1.791667 1.59375,2.6875 2.15468,-1.653606 4.92699,-2.329831 7.60625,-2.4375 1.95147,-0.02675 4.2495,0.346479 5.37165,2.077749 0.64077,1.17474 0.49454,2.860808 -0.6029,3.703501 -0.91925,0.882664 -2.48036,1.245665 -3.8125,1.5 -2.52772,0.464433 -5.17772,0.564166 -7.54958,1.634164 -1.06658,0.499211 -2.056,1.233324 -2.66917,2.178336 -1.31074,1.624927 -1.40264,3.880726 -1.01399,5.850279 0.22239,1.111507 0.79201,2.081155 1.48274,2.962221 0.36259,0.539196 1.08171,0.899899 1.6875,1.34375 2.28574,1.305478 5.09101,1.411611 7.63153,0.920243 1.49716,-0.341031 2.87874,-1.109047 3.95545,-2.084366 0.56458,-0.365294 0.67406,-0.97698 1.16302,-1.335877 0.46867,0.127384 0.10397,0.879876 0.21875,1.25 0,0.625 0,1.25 0,1.875 1.17708,0 2.35417,0 3.53125,0 -0.0262,-6.364261 0.0605,-12.73137 -0.0625,-19.09375 -0.28569,-1.745751 -1.21399,-3.550508 -2.73865,-4.400403 -1.99605,-1.308033 -4.52731,-1.733216 -6.88635,-1.599597 z m 6.03125,11.5625 c -0.10168,2.560717 0.41481,5.326811 -0.86491,7.678916 -1.05307,1.909709 -3.14328,3.03737 -5.29724,3.204389 -1.90951,0.15892 -4.13658,-0.08093 -5.4316,-1.633305 -0.92097,-1.125848 -1.09764,-2.835749 -0.65036,-4.217848 0.34333,-1.198994 1.41655,-1.940749 2.55684,-2.316326 2.69232,-0.924548 5.62489,-0.930756 8.28102,-1.965826 0.52625,-0.292107 1.00999,-0.568143 1.40625,-0.96875 0,0.07292 0,0.145833 0,0.21875 z"
id="path3303"
inkscape:connector-curvature="0" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:110.00000237999999797%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:SQ Market;-inkscape-font-specification:SQ Market"
d="m 191.35826,19.15625 c -1.95125,0.152154 -3.85988,1.04279 -5.21302,2.319201 -0.59289,0.6535 -1.14755,1.472376 -1.66198,2.274549 0,-1.375 0,-2.75 0,-4.125 -1.21875,0 -2.4375,0 -3.65625,0 0,8.177083 0,16.354167 0,24.53125 1.21875,0 2.4375,0 3.65625,0 0.0338,-4.782359 -0.0765,-9.570236 0.0766,-14.348995 0.2836,-2.314126 1.25109,-4.669868 3.22012,-6.025914 1.75618,-1.321605 4.2721,-1.422889 6.29699,-0.625091 0.43428,-0.2216 0.25944,-0.971576 0.49023,-1.395812 0.15951,-0.607646 0.31901,-1.215292 0.47852,-1.822938 -1.10515,-0.638928 -2.42553,-0.856506 -3.6875,-0.78125 z"
id="path3305"
inkscape:connector-curvature="0" />
<path
style="font-size:48px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:110.00000237999999797%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:SQ Market;-inkscape-font-specification:SQ Market"
d="m 207.34151,19.0625 c -2.13829,0.03665 -4.19886,0.798237 -5.96875,1.96875 -0.35579,0.27072 -0.77995,0.582572 -1.16446,0.914461 -0.91491,0.88582 -1.60571,1.976144 -2.27304,3.116789 -1.80811,3.567489 -2.01259,7.8505 -0.87425,11.658487 0.49677,1.745241 1.55119,3.364559 2.67916,4.662806 0.46069,0.472688 0.96512,0.864025 1.41384,1.178707 1.86354,1.344907 4.12796,2.069795 6.42463,2.139981 3.05584,0.170154 6.25511,-0.551318 8.64005,-2.543018 0.74955,-0.507245 1.36652,-1.1098 1.96657,-1.846963 -0.82292,-0.75 -1.64583,-1.5 -2.46875,-2.25 -1.26864,1.628734 -3.11631,2.757321 -5.16028,3.114703 -2.83059,0.54826 -6.11624,-0.05355 -8.07489,-2.287374 -1.64594,-1.582786 -2.18163,-4.005813 -2.23358,-6.233579 0.34687,-0.564064 1.21658,-0.09075 1.7875,-0.25 5.70625,0 11.4125,0 17.11875,0 0.41251,-3.32279 -0.34852,-6.849649 -2.45625,-9.49375 -0.50588,-0.78276 -1.3236,-1.349798 -2.10625,-1.9125 -2.06552,-1.470233 -4.73394,-2.09184 -7.25,-1.9375 z m 1.3125,3.125 c 2.44018,0.146241 4.80066,1.514769 5.93263,3.685788 0.53724,1.157077 0.85338,2.43898 0.87987,3.720462 -5.0625,0 -10.125,0 -15.1875,0 0.23744,-1.79709 0.66584,-3.730686 2,-5.03125 0.23884,-0.411238 0.90344,-0.814517 1.29141,-1.20469 1.48744,-0.969271 3.32773,-1.293911 5.08359,-1.17031 z"
id="path3307"
inkscape:connector-curvature="0" />
</g>
<path
d="m 45.33346,0.90101419 -35.4658353,0 c -4.875869,0 -8.86763036,3.99019941 -8.86763036,8.86763041 l 0,35.4658354 c 0,4.875088 3.99176136,8.864506 8.86763036,8.864506 l 35.4658353,0 c 4.875869,0 8.867631,-3.989418 8.867631,-8.864506 l 0,-35.4658354 c 0,-4.877431 -3.991762,-8.86763041 -8.867631,-8.86763041 M 44.527454,41.609795 c 0,1.549532 -1.269147,2.814774 -2.820241,2.814774 l -28.215684,0 c -1.550313,0 -2.81946,-1.265242 -2.81946,-2.814774 l 0,-28.214903 c 0,-1.550313 1.269147,-2.81946 2.81946,-2.81946 l 28.215684,0 c 1.551094,0 2.820241,1.269147 2.820241,2.81946 l 0,28.214903 z m -9.670513,-8.467751 c 0,0.889575 -0.725561,1.612793 -1.61045,1.612793 l -11.284087,0 c -0.887232,0 -1.61045,-0.723218 -1.61045,-1.612793 l 0,-11.283306 c 0,-0.886451 0.723218,-1.611232 1.61045,-1.611232 l 11.284087,0 c 0.884889,0 1.61045,0.724781 1.61045,1.611232 l 0,11.283306 z"
id="path3010"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>

До

Ширина:  |  Высота:  |  Размер: 18 KiB

Просмотреть файл

@ -1,13 +1,10 @@
---
title: "Target - Recommending Go"
linkTitle: "Target - Recommending Go"
description: ""
date: 2018-06-18
company: Target
logoSrc: target.svg
series: Case Studies
link: https://tech.target.com/infrastructure/2018/06/18/Recommending-GoLang-at-Target.html
description: "We loved the simplified syntax, strong standard library, great external community, and well-built and maintained libraries. We loved the fast compile times and incredibly small images we could build when deploying containers. As we continue to grow and scale our technical solutions to our guests, we find the concurrency primitives in Go particularly useful."
resources:
- name: logo
src: logo.svg
params:
alt: Target
inLandingPageGrid: true
---

Просмотреть файл

@ -1,33 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="432px" height="574px" viewBox="0 0 432 574" enable-background="new 0 0 432 574" xml:space="preserve">
<g>
<g>
<path fill="#CC0000" d="M217.074,360.93c-71.239,0-129.052-57.721-129.052-128.972c0-71.38,57.813-129.059,129.052-129.059
c71.301,0,129.042,57.679,129.042,129.059C346.116,303.209,288.375,360.93,217.074,360.93 M217.074,38.459
c-106.796,0-193.399,86.625-193.399,193.499c0,106.792,86.603,193.39,193.399,193.39c106.842,0,193.581-86.598,193.581-193.39
C410.655,125.084,323.916,38.459,217.074,38.459z"/>
<path fill="#CC0000" d="M217.074,165.651c-36.607,0-66.268,29.589-66.268,66.307c0,36.597,29.66,66.274,66.268,66.274
c36.642,0,66.367-29.678,66.367-66.274C283.441,195.241,253.716,165.651,217.074,165.651"/>
<polyline fill="#CC0000" points="42.153,475.816 20.822,475.816 20.822,462.652 79.136,462.652 79.136,475.816 57.805,475.816
57.805,533.832 42.153,533.832 42.153,475.816 "/>
<path fill="#CC0000" d="M72.358,533.832h15.843l5.587-15.855h26.617l5.385,15.855h16.246l-26.617-71.18H99.373L72.358,533.832
M107.147,480.191h0.196l8.968,26.123H97.882L107.147,480.191z"/>
<path fill="#CC0000" d="M148.209,533.832h15.659V506.02h15.641c7.883,0,10.768,3.287,11.862,10.76
c0.807,5.684,0.604,12.564,2.5,17.053h15.642c-2.788-3.986-2.685-12.371-2.988-16.855c-0.501-7.188-2.685-14.656-10.367-16.648
v-0.197c7.885-3.188,11.271-9.461,11.271-17.846c0-10.758-8.081-19.631-20.837-19.631H148.21L148.209,533.832 M163.868,474.814
h17.149c6.967,0,10.758,2.992,10.758,9.863c0,7.174-3.791,10.17-10.758,10.17h-17.149V474.814z"/>
<path fill="#CC0000" d="M269.624,525.752c-5.488,7.088-12.653,9.789-19.535,9.789c-22.026,0-34.989-16.475-34.989-37.012
c0-21.123,12.962-37.564,34.989-37.564c14.55,0,28.312,8.971,30.011,25.107h-14.961c-1.798-7.883-7.678-11.955-15.05-11.955
c-14.057,0-19.348,11.955-19.348,24.412c0,11.869,5.291,23.826,19.348,23.826c10.171,0,16.04-5.479,16.942-15.354h-15.743v-11.65
h29.899v38.48h-9.976L269.624,525.752"/>
<polyline fill="#CC0000" points="291.857,462.652 345.071,462.652 345.071,475.816 307.506,475.816 307.506,491.061
341.99,491.061 341.99,503.234 307.506,503.234 307.506,520.668 345.878,520.668 345.878,533.832 291.857,533.832
291.857,462.652 "/>
<polyline fill="#CC0000" points="374.188,475.816 352.856,475.816 352.856,462.652 411.178,462.652 411.178,475.816
389.835,475.816 389.835,533.832 374.188,533.832 374.188,475.816 "/>
</g>
</g>
<svg xmlns="http://www.w3.org/2000/svg" width="432" height="574">
<g fill="#C00">
<path
d="M217 361a129 129 0 110-258 129 129 0 010 258m0-323a193 193 0 100 387 193 193 0 000-387z"
/>
<path
d="M217 166a66 66 0 100 132 66 66 0 000-132M42 476H21v-13h58v13H58v58H42v-58M72 534h16l6-16h26l6 16h16l-27-71H99l-27 71m35-54l9 26H98l9-26zM148 534h16v-28h16c7 0 10 3 11 11 1 5 1 12 3 17h16c-3-4-3-13-3-17-1-7-3-15-11-17 8-3 11-9 11-18 0-10-8-19-20-19h-39v71m16-59h17c7 0 11 3 11 10s-4 10-11 10h-17v-20zM270 526c-6 7-13 10-20 10-22 0-35-17-35-37 0-22 13-38 35-38 15 0 28 9 30 25h-15c-2-8-8-12-15-12-14 0-19 12-19 25 0 11 5 23 19 23 10 0 16-5 17-15h-16v-12h30v39h-10l-1-8M292 463h53v13h-37v15h34v12h-34v18h38v13h-54v-71M374 476h-21v-13h58v13h-21v58h-16v-58"
/>
</g>
</svg>

До

Ширина:  |  Высота:  |  Размер: 2.8 KiB

После

Ширина:  |  Высота:  |  Размер: 802 B

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Twitch - Gos march to low latency GC"
description: "We use Go at Twitch for many of our busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems we encounter with serving live video and chat to our millions of users."
date: 2016-07-05
linkTitle: "Twitch - Gos march to low latency GC"
description: "We use Go at Twitch for many of our busiest systems. Its simplicity, safety, performance, and readability make it a good tool for the problems we encounter with serving live video and chat to our millions of users."
company: Twitch
logoSrc: twitch.svg
series: Case Studies
link: https://blog.twitch.tv/en/2016/07/05/gos-march-to-low-latency-gc-a6fa96f06eb7/
resources:
- name: logo
src: logo.svg
params:
alt: Twitch
inLandingPageGrid: true
---

Просмотреть файл

@ -1,82 +1,19 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1000"
height="332.60202"
viewBox="0 0 264.58333 88.000954"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
sodipodi:docname="A.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.12374369"
inkscape:cx="3981.6645"
inkscape:cy="-851.80289"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="-8"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(136.26131,140.70228)">
<g
style="fill:#9147fe;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:bevel"
id="g256"
transform="matrix(0.23219248,0,0,0.23219248,-136.26131,-140.70228)">
<path
style="vector-effect:none;fill-rule:nonzero;fill:#9147fe;fill-opacity:1"
inkscape:connector-curvature="0"
id="path254"
d="m 1119.44,269.32 h -80 v -99.75 h -20 v 99.75 h -80 V 20 h 80 v 69.78 h 60 l 40,39.9 v 139.64 m -199.9,-99.75 h -80 v 20 h 80 v 79.8 H 799.6 l -40,-39.9 v -99.79 l 40,-39.9 h 119.94 v 79.79 m -179.91,0 h -70 v 20 h 70 v 79.8 H 629.69 l -40,-39.9 V 20 h 80 v 69.78 h 70 l -0.06,79.79 M 569.72,69.83 h -80 V 20 h 80 v 49.83 m 0,199.49 h -80 V 89.78 h 80 v 179.54 m -100,0 H 229.89 l -40,-39.9 V 89.78 h 80 v 99.74 h 20 V 89.78 h 80 v 99.74 h 20 V 89.78 h 80 l -0.17,179.54 M 169.92,169.57 H 100 v 20 h 70 v 79.8 H 60 L 20,229.47 V 20 h 80 v 69.78 h 70 l -0.08,79.79 m 919.54,-99.74 h -50 V 0 H 929.75 l -50.47,69.83 h -89.67 l -30,29.92 V 69.83 h -70 V 0 H 469.77 V 69.83 H 160.42 L 110,0 H 0 V 239.4 L 139.93,379 h 139.93 v -39.9 l 40,39.9 h 269.85 v -39.9 l 40,39.9 h 129.91 v -39.9 l 40,39.9 h 249.88 l 90,-89.78 V 119.7 l -50.04,-49.87" />
</g>
<g
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:bevel"
id="g262"
transform="matrix(0.23219248,0,0,0.23219248,-136.26131,-140.70228)">
<path
style="vector-effect:none;fill-rule:nonzero"
inkscape:connector-curvature="0"
id="path260"
d="m 939.53,269.32 h 79.96 v -99.75 h 19.99 v 99.75 h 79.96 V 129.68 l -39.98,-39.9 h -59.97 V 19.96 h -79.96 v 249.36 0 m -349.82,-39.9 39.97,39.9 h 109.95 v -79.8 h -69.96 v -19.95 h 69.96 V 89.78 H 669.67 V 19.96 h -79.96 v 209.46 0 m 169.91,0 39.98,39.9 h 119.94 v -79.8 h -79.96 v -19.95 h 79.96 V 89.78 H 799.6 l -39.98,39.9 v 99.74 0 M 489.76,19.96 h 79.96 V 69.83 H 489.76 V 19.96 M 169.92,89.78 H 99.95 V 19.96 H 19.99 v 209.46 l 39.98,39.9 h 109.95 v -79.8 H 99.95 v -19.95 h 69.97 V 89.78 m 19.99,139.64 39.97,39.9 H 469.77 V 89.78 h -79.96 v 99.74 h -20 V 89.78 h -79.95 v 99.74 H 269.87 V 89.78 h -79.96 v 139.64 0 M 489.76,89.78 h 79.96 V 269.32 H 489.76 V 89.78" />
</g>
xmlns="http://www.w3.org/2000/svg"
width="1000"
height="332.6"
viewBox="0 0 264.6 88"
>
<g fill-rule="evenodd" stroke-linecap="square" stroke-linejoin="bevel">
<path
d="M260 63h-19V39h-4v24h-19V5h19v16h14l9 9v33m-46-24h-19v5h19v19h-28l-10-10V30l10-9h28v18m-42 0h-17v5h17v19h-26l-9-10V5h18v16h17v18m-40-23h-18V5h18v11m0 47h-18V21h18v42m-23 0H53l-9-10V21h19v23h4V21h19v23h5V21h18v42M39 39H23v5h16v19H14L5 53V5h18v16h16v18m214-23h-12V0h-25l-12 16h-21l-7 7v-7h-16V0h-51v16H37L26 0H0v56l32 32h33v-9l9 9h63v-9l9 9h30v-9l10 9h58l21-21V28l-12-12"
fill-rule="nonzero"
fill="#9147fe"
/>
<path
d="M218 63h19V39h4v24h19V30l-9-9h-14V5h-19v58m-81-10l9 10h26V44h-17v-5h17V21h-17V5h-18v48m39 0l10 10h28V44h-19v-5h19V21h-28l-10 9v23M114 5h18v11h-18V5M39 21H23V5H5v48l9 10h25V44H23v-5h16V21m5 32l9 10h56V21H91v23h-5V21H67v23h-4V21H44v32m70-32h18v42h-18V21"
fill-rule="nonzero"
fill="#fff"
/>
</g>
</svg>

До

Ширина:  |  Высота:  |  Размер: 4.0 KiB

После

Ширина:  |  Высота:  |  Размер: 955 B

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Twitter - 5 billion sessions a day in realtime"
description: "We now see about five billion sessions per day, and growing. Hundreds of millions of devices send millions of events every second to the Answers endpoint. During the time that it took you to read to here, the Answers back-end will have received and processed about 10,000,000 analytics events."
date: 2015-02-17
company: Twitter
logoSrc: twitter.svg
series: Case Studies
link: https://blog.twitter.com/engineering/en_us/a/2015/handling-five-billion-sessions-a-day-in-real-time.html
resources:
- name: logo
src: logo.svg
params:
alt: Twitter
inLandingPageGrid: true
---

Просмотреть файл

@ -1,12 +1,9 @@
---
title: "Uber - GPU-power analytics engine in Go"
description: "AresDB [,written in Go,] is widely used at Uber to power our real-time data analytics dashboards, enabling us to make data-driven decisions at scale about myriad aspects of our business."
date: 2015-02-17
company: Uber
logoSrc: uber.svg
series: Case Studies
link: https://eng.uber.com/aresdb/
resources:
- name: logo
src: logo.svg
params:
alt: Uber
inLandingPageGrid: true
---

Просмотреть файл

@ -1,39 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="926.906px" height="321.777px" viewBox="0 0 926.906 321.777" enable-background="new 0 0 926.906 321.777"
xml:space="preserve">
<g>
<path fill="#010202" d="M53.328,229.809c3.917,10.395,9.34,19.283,16.27,26.664c6.93,7.382,15.14,13.031,24.63,16.948
c9.491,3.917,19.81,5.875,30.958,5.875c10.847,0,21.015-2.034,30.506-6.102s17.776-9.792,24.856-17.173
c7.08-7.382,12.579-16.194,16.496-26.438c3.917-10.244,5.875-21.692,5.875-34.347V0h47.453v316.354h-47.001v-29.376
c-10.545,11.147-22.974,19.734-37.285,25.761c-14.312,6.025-29.752,9.038-46.323,9.038c-16.873,0-32.615-2.938-47.228-8.813
c-14.612-5.875-27.267-14.235-37.962-25.082S15.441,264.006,9.265,248.79C3.088,233.575,0,216.628,0,197.947V0h47.453v195.236
C47.453,207.891,49.411,219.414,53.328,229.809z"/>
<path fill="#010202" d="M332.168,0v115.243c10.545-10.545,22.748-18.905,36.607-25.082s28.924-9.265,45.193-9.265
c16.873,0,32.689,3.163,47.453,9.49c14.763,6.327,27.567,14.914,38.414,25.761s19.434,23.651,25.761,38.414
c6.327,14.764,9.49,30.431,9.49,47.002c0,16.57-3.163,32.162-9.49,46.774c-6.327,14.613-14.914,27.343-25.761,38.188
c-10.847,10.847-23.651,19.434-38.414,25.761c-14.764,6.327-30.581,9.49-47.453,9.49c-16.27,0-31.409-3.088-45.419-9.265
c-14.01-6.176-26.288-14.537-36.833-25.082v28.924h-45.193V0H332.168z M337.365,232.746c4.067,9.642,9.717,18.078,16.948,25.309
c7.231,7.231,15.667,12.956,25.308,17.174c9.642,4.218,20.036,6.327,31.184,6.327c10.847,0,21.09-2.109,30.731-6.327
s18.001-9.942,25.083-17.174c7.08-7.23,12.729-15.667,16.947-25.309c4.218-9.641,6.327-20.035,6.327-31.183
c0-11.148-2.109-21.618-6.327-31.41s-9.867-18.303-16.947-25.534c-7.081-7.23-15.441-12.88-25.083-16.947
s-19.885-6.102-30.731-6.102c-10.846,0-21.09,2.034-30.731,6.102s-18.077,9.717-25.309,16.947
c-7.23,7.231-12.955,15.742-17.173,25.534c-4.218,9.792-6.327,20.262-6.327,31.41C331.264,212.711,333.298,223.105,337.365,232.746
z"/>
<path fill="#010202" d="M560.842,155.014c6.025-14.462,14.312-27.191,24.856-38.188s23.049-19.659,37.511-25.986
s30.129-9.49,47.001-9.49c16.571,0,31.937,3.013,46.098,9.038c14.16,6.026,26.362,14.387,36.606,25.083
c10.244,10.695,18.229,23.35,23.952,37.962c5.725,14.613,8.587,30.506,8.587,47.68v14.914H597.901
c1.507,9.34,4.52,18.002,9.039,25.985c4.52,7.984,10.168,14.914,16.947,20.789c6.779,5.876,14.462,10.471,23.049,13.784
c8.587,3.314,17.7,4.972,27.342,4.972c27.418,0,49.563-11.299,66.435-33.896l32.991,24.404
c-11.449,15.366-25.609,27.418-42.481,36.155c-16.873,8.737-35.854,13.106-56.944,13.106c-17.174,0-33.217-3.014-48.131-9.039
s-27.869-14.462-38.866-25.309s-19.659-23.576-25.986-38.188s-9.491-30.506-9.491-47.679
C551.803,184.842,554.817,169.476,560.842,155.014z M624.339,137.162c-12.805,10.696-21.316,24.932-25.534,42.708h140.552
c-3.917-17.776-12.278-32.012-25.083-42.708c-12.805-10.695-27.794-16.043-44.967-16.043
C652.133,121.119,637.144,126.467,624.339,137.162z"/>
<path fill="#010202" d="M870.866,142.359c-9.641,10.545-14.462,24.856-14.462,42.934v131.062h-45.646V85.868h45.193v28.472
c5.725-9.34,13.182-16.722,22.371-22.145c9.189-5.424,20.111-8.136,32.766-8.136h15.817v42.482h-18.981
C892.86,126.542,880.507,131.814,870.866,142.359z"/>
</g>
<svg xmlns="http://www.w3.org/2000/svg" width="926.9" height="321.8">
<g fill="#010202">
<path
d="M53 230c4 10 10 19 17 26 7 8 15 14 24 17a80 80 0 0087-17c7-7 12-16 16-26 4-11 6-22 6-35V0h47v316h-47v-29c-10 11-23 20-37 26s-30 9-46 9c-17 0-33-3-47-9a111 111 0 01-64-64c-6-15-9-32-9-51V0h47v195c0 13 2 24 6 35zM332 0v115a113 113 0 0182-34 119 119 0 01112 74 118 118 0 010 93 122 122 0 01-65 64 119 119 0 01-129-25v29h-45V0h45zm5 233a79 79 0 0043 42 77 77 0 0062 0 79 79 0 0042-42c4-10 6-20 6-31a77 77 0 00-48-74 78 78 0 00-62 0 79 79 0 00-42 42 79 79 0 000 63zM561 155a121 121 0 0162-64 117 117 0 01130 25c10 10 18 23 24 37 6 15 8 31 8 48v15H598a77 77 0 0076 66c28 0 50-12 67-34l33 24a123 123 0 01-148 40 117 117 0 01-74-111c0-16 3-32 9-46zm63-18a77 77 0 00-25 43h140c-4-18-12-32-25-43a68 68 0 00-45-16c-17 0-32 5-45 16zM871 142a61 61 0 00-15 43v131h-45V86h45v28c6-9 13-16 22-22 10-5 20-8 33-8h16v43h-19c-15 0-27 5-37 15z"
/>
</g>
</svg>

До

Ширина:  |  Высота:  |  Размер: 3.5 KiB

После

Ширина:  |  Высота:  |  Размер: 961 B

Просмотреть файл

@ -29,99 +29,180 @@ resources:
src: webdev-white.svg
params:
alt: web dev icon
featuredProjects:
- company: Caddy
url: https://caddyserver.com/
logoSrc: caddy.svg
desc: Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go. Caddy offers greater memory safety than servers written in C. A hardened TLS stack powered by the Go standard library serves a significant portion of all Internet traffic.
ctas:
- text: Caddy 2
url: https://caddyserver.com/
- company: Cloudflare
url: https://www.cloudflare.com/en-gb/
logoSrc: cloudflare-icon.svg
desc: Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. “Go is at the heart of CloudFlares services including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more.”
ctas:
- text: Cloudflare and Go
url: https://blog.cloudflare.com/what-weve-been-doing-with-go/
- company: gov.uk
url: https://gov.uk/
logoSrc: govuk.svg
desc: The simplicity and safety of the Go language were a good fit for the United Kingdoms governments HTTP infrastructure, and some brief experiments with the excellent net/http package convinced web developers they were on the right track. “In particular, Gos concurrency model makes it absurdly easy to build performant I/O-bound applications.”
ctas:
- text: Building a new router for gov.uk
url: https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/
- text: Using Go in government
url: https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/
- company: Hugo
url: http://gohugo.io/
logoSrc: hugo.svg
desc: Hugo is a fast and modern website engine written in Go, and designed to make website creation fun again. Websites built with Hugo are extremely fast and secure and can be hosted anywhere without any dependencies.
ctas:
- text: Hugo
url: http://gohugo.io/
- company: Mattermost
url: https://mattermost.com/
logoSrc: mattermost.png
desc: Mattermost is a flexible, open source messaging platform that enables secure team collaboration. Its written in Go and React.
ctas:
- text: Mattermost
url: https://mattermost.com/
- company: Medium
url: https://medium.org/
logoSrc: medium.svg
desc: Medium uses Go to power their social graph, their image server and several auxiliary services. “Weve found Go very easy to build, package, and deploy. We like the type-safety without the verbosity and JVM tuning of Java.”
ctas:
- text: Medium's Go Services
url: https://medium.engineering/how-medium-goes-social-b7dbefa6d413
- company: The Economist
url: https://economist.com/
logoSrc: economist.svg
desc: The Economist needed more flexibility to deliver content to increasingly diverse digital channels. Services written in Go were a key component of the new system that would enable The Economist to deliver scalable, high performing services and quickly iterate new products. “Overall, it was determined that Go was the language best designed for usability and efficiency in a distributed, cloud-based system.”
ctas:
- text: The Economist's Go microservices
url: https://www.infoq.com/articles/golang-the-economist/
goLibraries:
- title: Web frameworks
viewMoreUrl: https://pkg.go.dev/search?q=web+framework
items:
- text: Buffalo
url: https://gobuffalo.io/en/
desc: A framework for rapid web development in Go, curating Go and JS libraries together.
- text: Echo
url: https://echo.labstack.com/
desc: A high performance, extensible, and minimalist Go web framework
- text: Flamingo
url: https://www.flamingo.me/
desc: A fast open-source framework based on Go with clean and scalable architecture
- text: Gin
url: https://gin-gonic.com/
desc: A web framework written in Go, with a martini-like API.
- text: Gorilla
url: http://www.gorillatoolkit.org/
desc: A web toolkit for the Go programming language.
- title: Routers
viewMoreUrl: https://pkg.go.dev/search?q=http%20router
items:
- text: julienschmidt/httprouter
url: https://pkg.go.dev/github.com/julienschmidt/httprouter?tab=overview
desc: A lightweight high performance HTTP request router
- text: gorilla/mux
url: https://pkg.go.dev/github.com/gorilla/mux?tab=overview
desc: A powerful HTTP router and URL matcher for building Go web servers with 🦍
- text: Chi
url: https://pkg.go.dev/github.com/go-chi/chi?tab=overview
desc: A lightweight, idiomatic and composable router for building Go HTTP services.
- text: net/http
url: https://pkg.go.dev/net/http
desc: A standard library HTTP package
- title: Template Engines
viewMoreUrl: https://pkg.go.dev/search?q=templates
items:
- text: html/template
url: https://pkg.go.dev/html/template
desc: A standard library HTML template engine
- text: flosch/pongo2
url: https://pkg.go.dev/github.com/flosch/pongo2?tab=overview
desc: A Django-syntax like templating-language
- title: Databases & Drivers
viewMoreUrl: https://pkg.go.dev/search?q=database%20OR%20sql
items:
- text: database/sql
url: https://pkg.go.dev/database/sql
desc: A standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and most SQL databases
- text: mongo-driver/mongo
url: https://pkg.go.dev/go.mongodb.org/mongo-driver/mongo?tab=overview
desc: The MongoDB supported driver for Go
- text: olivere/elastic
url: https://pkg.go.dev/github.com/olivere/elastic?tab=overview
desc: A Elasticsearch client for Go
- text: GORM
url: https://gorm.io/
desc: An ORM library for Go
- text: Bleve
url: http://blevesearch.com/
desc: Full-text search and indexing for Go
- text: CockroachDB
url: https://www.cockroachlabs.com/
desc: An evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale
- title: Web Libraries
viewMoreUrl: https://pkg.go.dev/search?q=web
items:
- text: markbates/goth
url: https://pkg.go.dev/github.com/markbates/goth?tab=overview
desc: Authentication for web apps
- text: jinzhu/gorm
url: https://pkg.go.dev/github.com/jinzhu/gorm?tab=overview
desc: An ORM library for Go
- text: dgrijalva/jwt-go
url: https://pkg.go.dev/github.com/dgrijalva/jwt-go?tab=overview
desc: A Go implementation of json web tokens
- title: Other Projects
items:
- text: gopherjs
url: https://pkg.go.dev/github.com/gopherjs/gopherjs?tab=overview
desc: A compiler from Go to JavaScript allowing developers to write front-end code in Go which will run in all browsers.
---
## Go delivers speed, security, and developer-friendly tools for Web Applications
## Overview {#overview .sectionHeading}
Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from [HTTP/2](https://pkg.go.dev/net/http), to databases like [MySQL](https://pkg.go.dev/mod/github.com/go-sql-driver/mysql), [MongoDB](https://pkg.go.dev/mod/go.mongodb.org/mongo-driver) and [ElasticSearch](https://pkg.go.dev/mod/github.com/elastic/go-elasticsearch/v7), to the latest encryption standards including [TLS 1.3](https://pkg.go.dev/crypto/tls). Go web applications run natively on [Google App Engine](https://cloud.google.com/appengine/) and [Google Cloud Run](https://cloud.google.com/run/) (for easy scaling) or on any environment, cloud, or operating system thanks to Gos extreme portability.
### Go delivers speed, security, and developer-friendly tools for Web Applications
Go is designed to enable developers to rapidly develop scalable and secure web applications. Go ships with an easy to use, secure and performant web server and includes it own web templating library. Go has excellent support for all of the latest technologies from [HTTP/2](https://pkg.go.dev/net/http), to databases like [MySQL](https://pkg.go.dev/mod/github.com/go-sql-driver/mysql), [MongoDB](https://pkg.go.dev/mod/go.mongodb.org/mongo-driver) and [ElasticSearch](https://pkg.go.dev/mod/github.com/elastic/go-elasticsearch/v7), to the latest encryption standards including [TLS 1.3](https://pkg.go.dev/crypto/tls). Go web applications run natively on [Google App Engine](https://cloud.google.com/appengine/) and [Google Cloud Run](https://cloud.google.com/run/) (for easy scaling) or on any environment, cloud, or operating system thanks to Gos extreme portability.
## Key Benefits {#key-benefits .sectionHeading}
### Deploy across platforms in record speed
{{% gopher gopher=front align=right %}}
For enterprises, Go is preferred for providing rapid cross-platform deployment. With its goroutines, native compilation, and the URI-based package namespacing, Go code compiles to a single, small binary—with zero dependencies—making it very fast.
“If you are looking for powerful tools for web programming, mobile development, microservices, and ERP systems,” [writes Andrew Smith](https://dzone.com/articles/golang-web-development-better-than-python), marketing manager at QArea. “Go web development has proved to be faster than using Python for the same kind of tasks in many use cases.”
### Leverage Gos out-of-the-box performance to scale with ease
{{% pullquote author="Tigran Bayburtsyan, Co-Founder and CTO at Hexact Inc." link="https://hackernoon.com/5-reasons-why-we-switched-from-python-to-go-4414d5f42690" %}}
Go Language is the easiest language that Ive ever seen and used... For me, Go is easier to learn than even JavaScript.
{{% /pullquote %}}
Tigran Bayburtsyan, Co-Founder and CTO at Hexact Inc., summarizes five key reasons his company switched to Go:
Bayburtsyan summarizes the five key reasons his company switched to Go:
- **Compiles into a single binary** — “Using static linking, Go actually combining all dependency libraries and modules into one single binary file based on OS type and architecture.”
1. **Compiles into a single binary** — “Using static linking, Go actually combining all dependency libraries and modules into one single binary file based on OS type and architecture.”
- **Static type system** — “Type system is really important for large scale applications.”
2. **Static type system** — “Type system is really important for large scale applications.”
- **Performance** — “Go performed better because of its concurrency model and CPU scalability. Whenever we need to process some internal request, we are doing it with separate Goroutines which are 10x cheaper in resources than Python Threads.”
3. **Performance** — “Go performed better because of its concurrency model and CPU scalability. Whenever we need to process some internal request, we are doing it with separate Goroutines which are 10x cheaper in resources than Python Threads.”
- **No need for a web framework** — “In most of the cases you really dont need any third-party library.”
4. **No need for a web framework** — “In most of the cases you really dont need any third-party library.”
5. **Great IDE support and debugging** — “After rewriting all projects to Go, we got 64 percent less code than we had earlier.”
- **Great IDE support and debugging** — “After rewriting all projects to Go, we got 64 percent less code than we had earlier.”
## Featured Go users & projects
{{< rawhtml >}}<div class="FeaturedUsers">{{< /rawhtml >}}
{{% mediaList %}}
{{% mediaListBox img-src="/images/logos/hugo.svg" img-alt="Hugo Logo" img-link="https://gohugo.io" align=top %}}
[Hugo](https://gohugo.io) is a fast and modern website engine written in Go, and designed to make website creation fun again. Websites built with Hugo are extremely fast and secure and can be hosted anywhere without any dependencies.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/caddy.svg" img-alt="Caddy Logo" img-link="https://caddyserver.com" align=top %}}
[Caddy 2](https://caddyserver.com) is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go. Caddy offers greater memory safety than servers written in C. A hardened TLS stack powered by the Go standard library serves a significant portion of all Internet traffic.
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/medium.svg" img-alt="Medium Logo" img-link="https://medium.org" align=top %}}
Medium uses Go to power [their social graph](https://medium.engineering/how-medium-goes-social-b7dbefa6d413), their [image server and several auxiliary services](https://medium.engineering/how-medium-goes-social-b7dbefa6d413). "Weve found Go very easy to build, package, and deploy. We like the type-safety without the verbosity and JVM tuning of Java."
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/cloudflare-icon.svg" img-alt="Cloudflare Logo" align="top" %}}
Cloudflare speeds up and protects millions of websites, APIs, SaaS services, and other properties connected to the Internet. "[Go is at the heart of CloudFlare's services](https://blog.cloudflare.com/what-weve-been-doing-with-go/) including handling compression for high-latency HTTP connections, our entire DNS infrastructure, SSL, load testing and more."
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/economist.svg" img-alt="Economist Logo" img-link="https://economist.com" align=top %}}
The Economist needed more flexibility to deliver content to increasingly diverse digital channels. Services written in Go were a key component of the new system that would enable The Economist to deliver scalable, high performing services and quickly iterate new products.
[“Overall, it was determined that Go was the language best designed for usability and efficiency in a distributed, cloud-based system.”](https://www.infoq.com/articles/golang-the-economist/)
{{% /mediaListBox %}}
{{% mediaListBox img-src="/images/logos/govuk.svg" img-alt="Gov.UK Logo" img-link="https://gov.uk" align=top %}}
The simplicity and safety of the Go language were a good fit for the United Kingdom's government's HTTP infrastructure, and some brief experiments with the excellent net/http package convinced web developers they were on the right track. [“In particular, Gos concurrency model makes it absurdly easy to build performant I/O-bound applications,”](https://technology.blog.gov.uk/2013/12/05/building-a-new-router-for-gov-uk/).
{{% /mediaListBox %}}
{{% /mediaList %}}
## Featured users {#featured-users .sectionHeading}
{{< featuredProjects >}}
## Key solutions
{{< rawhtml >}}</div>{{< /rawhtml >}}
### Go books on web development
{{% books %}}
{{< headerWithLink header="Web Frameworks" link="https://pkg.go.dev/search?q=web+framework" level=3 >}}
* [Buffalo](https://gobuffalo.io/en/), for rapid web development in Go. While Buffalo can be considered as a framework, it's mostly an ecosystem of Go and Javascript libraries curated to fit together.
* [Echo](https://echo.labstack.com), a high performance, extensible, and minimalist Go web framework providing optimized HTTP router, group APIs, data binding for JSON and XML, HTTP/2 support, and much more.
* [Flamingo](https://www.flamingo.me), a fast open-source framework based on Go with clean and scalable architecture designed to build custom, fast and flexible frontend interfaces. Includes Flamingo Core and Flamingo Commerce.
* [Gin](https://gin-gonic.com/), a web framework written in Go. It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity, you will love Gin.
* [Gorilla](http://www.gorillatoolkit.org/), a web toolkit for the Go programming language. Packages include a powerful URL router and dispatcher, context, RPC, schema, sessions, websocket, and more.
{{< headerWithLink header="Routers" search="http router" level=3 >}}
* {{< pkg "github.com/julienschmidt/httprouter" >}}, a lightweight high performance HTTP request router
* {{< pkg "github.com/gorilla/mux" >}}, a powerful HTTP router and URL matcher for building Go web servers with 🦍
* {{< pkg "github.com/go-chi/chi" chi >}}, a lightweight, idiomatic and composable router for building Go HTTP services.
* [net/http](https://pkg.go.dev/net/http), standard library HTTP package
{{< headerWithLink header="Template Engines" search="templates" level=3 >}}
* [html/template](https://pkg.go.dev/html/template), standard library HTML template engine
* {{< pkg "github.com/flosch/pongo2" >}}, a Django-syntax like templating-language
{{< headerWithLink header="Databases & Drivers" search="database OR sql" level=3 >}}
* [database/sql](https://pkg.go.dev/database/sql), standard library interface with driver support for MySQL, Postgres, Oracle, MS SQL, BigQuery and [most SQL databases](https://github.com/golang/go/wiki/SQLDrivers)
* {{< pkg "go.mongodb.org/mongo-driver/mongo" >}}, The MongoDB supported driver for Go
* {{< pkg "github.com/olivere/elastic" >}}, an Elasticsearch client for Go
* [GORM](https://gorm.io/), an ORM library for Go
* [Bleve](http://blevesearch.com/), full-text search and indexing for Go
* [CockroachDB](https://www.cockroachlabs.com/), an evolution of the database—architected for the cloud to deliver resilient, consistent, distributed SQL at scale
{{< headerWithLink header="Web Libraries" search="web" level=3 >}}
* {{< pkg "github.com/markbates/goth" >}}, authentication for web apps
* {{< pkg "https://github.com/jinzhu/gorm" >}}, an ORM library for Go
* {{< pkg "https://github.com/dgrijalva/jwt-go" >}}, a Go implementation of json web tokens
## Get Started {#get-started .sectionHeading}
### Go books on web development
{{< books >}}
{{< goLibraries >}}
### Courses
* [Learn to Create Web Applications using Go](https://www.usegolang.com), a paid online course

Просмотреть файл

@ -0,0 +1,11 @@
---
linkTitle: How Wildlife Studios builds backend systems in Go
description: Wildlife is a Brazilian native global company focused on mobile gaming.
We aim to develop games that will make billions of people happy. We have almost
40 million daily active users, and we rely on Go as the main language for our
core platform, given its features to scale game our backend services.
logoSrc: wildlife.svg
company: Wildlife Studios
series: Case Studies
link: https://medium.com/tech-at-wildlife-studios/pitaya-wildlifes-golang-go-af57865f7a11
---

Двоичные данные
go.dev/content/solutions/wildlifestudios/logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 60 KiB

Просмотреть файл

@ -2,252 +2,299 @@
# To update, run:
# go run github.com/godevsite/go.dev/cmd/events > data/events.yaml
all:
- city: Sheffield
country: United Kingdom
description: |-
We meet the first Thursday of every month to discuss interesting topics about the Go programming language.<br/>
GoSheffield is supported by <a href="http://stickermule.com/supports/gosheffield19-sponsorship" rel="nofollow">Sticker Mule</a> and <a href="https://www.jetbrains.com/" rel="nofollow">Jet Brains</a>.
id: "265470771"
local_date: Nov 7, 2019
local_time: "2019-11-07T18:00:00Z"
localizedcountry: United Kingdom
localizedlocation: Sheffield, United Kingdom
name: GoSheffield - November & 10th anniversary
- city: São Paulo
country: Brazil
description: A WWG é uma iniciativa mundial focada em todas as minorias de gênero
que tenham interesse em conhecer ou aprimorar seus conhecimentos em Golang, a
linguagem do Google.
id: "270597346"
local_date: May 20, 2020
local_time: "2020-05-20T19:30:00-03:00"
localizedcountry: Brazil
localizedlocation: São Paulo, Brazil
name: '[ONLINE] #003 Women Who Go Sampa - Oficina Exercism ft. WWG CWB'
state: ""
thumbnailurl: ""
url: https://www.meetup.com/GoSheffield/events/265470771
- city: Hannover
country: Germany
url: https://www.meetup.com/Women-Who-Go-Sampa/events/270597346
- city: Curitiba
country: Brazil
description: |-
The place to meet Go(lang) enthusiasts from the Hannover region. Drop by if you are interested in Golang or back end stuff in general :-)<br/>
Esse é o chapter de Curitiba do Women Who Go, um grupo que reúne mulheres e outras minorias de gênero pra estudar a linguagem de programação chamada Go.<br/>
Queremos construir uma comunidade de Golang mais diversa. Vem, gente!<br/>
tl;dr: Women Who Go - Curitiba Chapter   <br><br/>
<br><br/>
Find recently announced talks at <a href="http://www.golang.wtf/" rel="nofollow">golang.wtf</a>!
id: nhvmtqyzpbkb
local_date: Nov 7, 2019
local_time: "2019-11-07T19:00:00+01:00"
localizedcountry: Germany
localizedlocation: Hannover, Germany
name: Hannover Gophers - GoTurns10
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/a/2/9/2/thumb_475541618.jpeg
url: https://www.meetup.com/Hannover-Gophers/events/nhvmtqyzpbkb
- city: Barcelona
country: Spain
description: |
Quan els Gophers van a la platja, ho fan a Barcelona ;) Aquest és un grup per aprendre i compartir sobre <a href="http://golang.org/" rel="nofollow">Golang</a> i els seus usos.<br/>
Cuando los Gophers van a la playa, lo hacen en Barcelona ;) Éste es un grupo para aprender y compartir sobre <a href="http://golang.org/" rel="nofollow">Golang</a> y sus usos.<br/>
When Gophers go to beach, they go to Barcelona ;) This is a group to learn and share about <a href="http://golang.org/" rel="nofollow">Golang</a> and its usages.<br/>
<br><br/>
<br/>
id: "265953173"
local_date: Nov 7, 2019
local_time: "2019-11-07T19:00:00+01:00"
localizedcountry: Spain
localizedlocation: Barcelona, Spain
name: GolangBCN November meetup
state: ""
thumbnailurl: ""
url: https://www.meetup.com/Golang-Barcelona/events/265953173
- city: Santa Clara
country: USA
description: |-
Go Silicon Valley + Go Bridge. <br/>
Go Programming Language in the South Bay Area. <br/>
Go Bridge <a href="https://golangbridge.org/" rel="nofollow">https://golangbridge.org/</a>  <br><br/>
GoBridge is dedicated to building bridges that educate and empower underrepresented communities to teach and learn technical skills and foster diversity in Go. If you are new to GoBridge, please visit our website to learn of ways to get involved: <a href="http://golangbridge.org/" rel="nofollow">http://golangbridge.org</a> <br/>
<br>Youtube: <br/>
<a href="https://www.youtube.com/channel/UCGHBevYPDmz5Rzz06LuVVBw" rel="nofollow">https://www.youtube.com/channel/UCGHBevYPDm...</a><br/>
<br><br/>
The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It&#39;s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language. - Source: golang.org<br/>
Twitter: <a href="https://twitter.com/GoSV11" rel="nofollow">https://twitter.com/GoSV11</a><br><br/>
Please take note of the code of conduct  <br><br/>
<a href="http://coc.golangbridge.org/" rel="nofollow">http://coc.golangbridge.org/</a> <br><br/>
<br><br/>
<br><br/>
♥ <a href="https://twitter.com/womenwhogocwb" rel="nofollow">Twitter</a> <br><br/>
♥ <a href="https://www.instagram.com/womenwhogocwb/" rel="nofollow">Instagram</a> <br><br/>
♥ <a href="https://www.linkedin.com/company/40847620/" rel="nofollow">LinkedIn</a>  <br><br/>
♥ <a href="http://bit.ly/wwgtelegram" rel="nofollow">Telegram</a> <br><br/>
♥ <a href="https://womenwhogocwb.github.io/" rel="nofollow">hub de links</a><br/>
<br><br/>
<br>
id: "264910884"
local_date: Nov 7, 2019
local_time: "2019-11-07T18:00:00-08:00"
id: "270352999"
local_date: May 20, 2020
local_time: "2020-05-20T19:30:00-03:00"
localizedcountry: Brazil
localizedlocation: Curitiba, Brazil
name: '[ONLINE] Oficina Exercism ft. WWG Sampa'
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/c/4/6/7/thumb_484190279.jpeg
url: https://www.meetup.com/Women-Who-Go-CWB/events/270352999
- city: Orlando
country: USA
description: Orlando&#39;s first meetup group dedicated to the Go Programming Language.
All skill levels are welcome - whether you&#39;re a beginner or a full-fledged
gopher.
id: thpvrrybchbbc
local_date: May 20, 2020
local_time: "2020-05-20T19:00:00-04:00"
localizedcountry: USA
localizedlocation: Santa Clara, CA
name: 'Go''s 10th Anniversary Celebration + Lightning talks '
state: CA
thumbnailurl: https://secure.meetupstatic.com/photos/event/b/a/1/7/thumb_476747639.jpeg
url: https://www.meetup.com/Go-Silicon-Valley/events/264910884
localizedlocation: Orlando, FL
name: Orlando Go Virtual Meetup
state: FL
thumbnailurl: https://secure.meetupstatic.com/photos/event/9/7/c/4/thumb_441638852.jpeg
url: https://www.meetup.com/OrlanGo/events/thpvrrybchbbc
- city: Minneapolis
country: USA
description: |-
A meetup group to discuss the Go Programming Language.<br><br/>
<br/>
<br/>
<br><br/>
<br/>
<br/>
What is Go?<br><br/>
<br/>
<br/>
(from golang.org) The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It&#39;s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
id: "270499581"
local_date: May 20, 2020
local_time: "2020-05-20T18:00:00-05:00"
localizedcountry: USA
localizedlocation: Minneapolis, MN
name: Readability in Go - Reducing Load on the Memory Stack
state: MN
thumbnailurl: https://secure.meetupstatic.com/photos/event/8/a/0/4/thumb_380555332.jpeg
url: https://www.meetup.com/golangmn/events/270499581
- city: Eugene
country: USA
description: "All Gophers and curious software professionals are welcome to come
discuss Go and related topics. <br/>\nGo is a Google-funded language for massively-scalable
discuss Go and related topics.<br/>\nGo is a Google-funded language for massively-scalable
distributed systems that is statically typed and compiled. It has quickly stabilized
and is running head-to-head with C++, Java, C#, etc. (<a href=\"https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go.html\"
rel=\"nofollow\">The Computer Language Benchmarks Game - Go</a>). However, a larger-than-expected
portion of new Gophers is made up of dynamic/interpreted language users who tend
to be seeking relief from the cruft in their current languages and/or a more clear
future within the horizontally-growing landscape of modern computing. <br/>\nIf
future within the horizontally-growing landscape of modern computing.<br/>\nIf
you&#39;re building web apps, designing APIs, thrive on scalability, or you&#39;re
simply curious about this fun new(ish) language, let&#39;s meetup. <br/>\n• Meetup
simply curious about this fun new(ish) language, let&#39;s meetup.<br/>\n• More
resources are available at <a href=\"http://www.euggo.org\" rel=\"nofollow\">www.euggo.org</a> "
id: "265865881"
local_date: Nov 7, 2019
local_time: "2019-11-07T18:30:00-08:00"
id: skdnrrybchbbc
local_date: May 20, 2020
local_time: "2020-05-20T17:30:00-07:00"
localizedcountry: USA
localizedlocation: Eugene, OR
name: "Party \U0001F389 > Go Turns 10"
name: Contribution > OpenBoard Wrap and Plan
state: OR
thumbnailurl: https://secure.meetupstatic.com/photos/event/2/8/1/thumb_453660641.jpeg
url: https://www.meetup.com/EUG-Go/events/265865881
- city: San Francisco
country: USA
url: https://www.meetup.com/EUG-Go/events/skdnrrybchbbc
- city: Taipei
country: Taiwan
description: |-
A meetup group to discuss the Go Programming Language.<br/>
(from golang.org)<br/>
The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It&#39;s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
id: "266063653"
local_date: Nov 8, 2019
local_time: "2019-11-08T09:00:00-08:00"
localizedcountry: USA
localizedlocation: San Francisco, CA
name: '[Outside Event] Gopherpalooza, November 8th'
state: CA
thumbnailurl: https://secure.meetupstatic.com/photos/event/5/a/d/3/thumb_442823251.jpeg
url: https://www.meetup.com/golangsf/events/266063653
- city: Melbourne
country: Australia
description: |-
We run fun and interesting events.<br/>
If you want to organise events, let us know and we&#39;ll make you an event organizer.<br/>
NOTE: We were formally called &#34;Melbourne Young Professionals&#34;, but since it doesn&#39;t represent who we are, the name has changed to &#34;Let&#39;s Go&#34;<br/>
At Golang Taipei, we promote Golang development and sharing the latest information about Golang.  <br/>
Join our <a href="https://www.facebook.com/groups/269001993248363/" rel="nofollow">Facebook group</a> to connect with other 6,138 members. <br/>
Chat with us on <a href="https://t.me/golangtw" rel="nofollow">Telegram channel</a> with other 880 chatty members. <br/>
Find all past meetup <a href="https://github.com/golangtw/GolangTaiwanGathering" rel="nofollow">presentation files</a> on Github<br/>
Follow us on <a href="https://twitter.com/golangtw" rel="nofollow">Tweeeeeeter</a> for latest Golang news. <br/>
Subscribe our <a href="https://www.youtube.com/channel/UCjnIy_GQAuszZurUIO3zg9Q" rel="nofollow">Youtube channel</a> for past video records and future live streaming. <br/>
Looking for new opportunities, check the latest <a href="https://github.com/golangtw/jobs" rel="nofollow">Github job list</a><a href="https://github.com/golangtw/jobs" rel="nofollow"></a> and information <br/>
<br>
id: plftjryzpbmb
local_date: Nov 9, 2019
local_time: "2019-11-09T09:30:00+11:00"
localizedcountry: Australia
localizedlocation: Melbourne, Australia
name: Try Dragon Boating with us at Docklands. The Ultimate Team Sport! Free Event
id: "270708366"
local_date: May 26, 2020
local_time: "2020-05-26T19:30:00+08:00"
localizedcountry: Taiwan
localizedlocation: Taipei, Taiwan
name: 'Golang Taipei Gathering #49 Webinar'
state: ""
thumbnailurl: ""
url: https://www.meetup.com/letsgo-melbourne/events/plftjryzpbmb
- city: Berlin
country: Germany
url: https://www.meetup.com/golang-taipei-meetup/events/270708366
- city: Zagreb
country: Croatia
description: |-
We are a group of Golang users. Our aim is to meet like minded people, share our experience with others and to promote the use of Go.<br/>
As Gophers and as Berliners, even if just visiting, we follow the Code of Conduct to make this a pleasant and inclusive environment for everyone: <br><br/>
<a href="https://golang.org/conduct" rel="nofollow">https://golang.org/conduct</a> <br><a href="http://berlincodeofconduct.org/" rel="nofollow">http://berlincodeofconduct.org</a><br/>
Follow us on twitter: <a href="https://twitter.com/gdgberlingolang" rel="nofollow">@GDGBerlinGolang</a><br/>
You can get our special group swag here: <a href="https://shop.spreadshirt.de/gdg-golang-berlin" rel="nofollow">https://shop.spreadshirt.de/gdg-golang-berlin</a><br>
id: "265088420"
local_date: Nov 9, 2019
local_time: "2019-11-09T09:00:00+01:00"
localizedcountry: Germany
localizedlocation: Berlin, Germany
name: DevFest Berlin 2019
Ovo je grupa za sve zainteresirane za Go programski jezik.<br/>
Prošli talkovi se mogu naći na:<br/>
• <a href="https://github.com/golanghr/golangzg/blob/master/talks.md" rel="nofollow">github repou</a><br/>
• snimke na <a href="https://www.youtube.com/channel/UCBe6NfYfKoQxRv7kswV6wpQ" rel="nofollow">YouTube kanalu</a> <br><br/>
Prati na nas <a href="https://twitter.com/GolangZg" rel="nofollow">twitteru</a> i na <a href="https://www.facebook.com/groups/golanghr/" rel="nofollow">facebooku</a>.<br/>
Družimo se i na <a href="https://invite.slack.golangbridge.org/?fbclid=IwAR35p7rEaNkowXDxX8RvmWDvyhoAslx2QskpBBnHlVdKCXvRpCoxePMmHnA" rel="nofollow">gophers.slack.com</a> - tamo smo u kanalu <a href="https://gophers.slack.com/messages/C08DCDAKC/" rel="nofollow">#croatia</a>.
id: "270725353"
local_date: May 26, 2020
local_time: "2020-05-26T18:00:00+02:00"
localizedcountry: Croatia
localizedlocation: Zagreb, Croatia
name: GoTalks 26.05.2020.
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/9/8/b/1/thumb_465459089.jpeg
url: https://www.meetup.com/golang-users-berlin/events/265088420
- city: Pune
country: India
thumbnailurl: https://secure.meetupstatic.com/photos/event/7/2/5/2/thumb_462749266.jpeg
url: https://www.meetup.com/Golang-ZG/events/270725353
- city: Warsaw
country: Poland
description: |-
WWG Pune is a chapter of Women Who Go.<br/>
We built this meetup to provide a better entry point to women who are interested in Go. We also want to provide a safe space for networking, learning and finding mentors. This group shall bring us together so we can continue to grow in Go. <br><br/>
Our goal is to share our software-development experience on any level from junior to senior. It is your stage. You can always start with 10 min talk. Let us know, whether we can support you.<br/>
<br><br/>
Our homepage with a list of previous talks and workshops:<a href="https://github.com/golangpoland/meetup_golang_warsaw" rel="nofollow"> https://github.com/golangpoland/meetup_golang_warsaw</a><br><br/>
<br><br/>
You will find us also on (linked on our github):<br/>
▪ Twitter: <a href="https://twitter.com/golangwaw" rel="nofollow">https://twitter.com/golangwaw</a><br/>
▪ Slack: #poland-warsaw gophers.slack.com<br/>
▪ FB:<a href="https://www.facebook.com/groups/1278049882223829/" rel="nofollow"> https://www.facebook.com/groups/1278049882223829/</a><br/>
▪ LI:<a href="https://www.linkedin.com/company/golang-warsaw-meetup" rel="nofollow"> https://www.linkedin.com/company/golang-warsaw-meetup</a><br/>
<br><br/>
ps. The more source code the better in your talk :) It might be just few source files or --- the best --- a simple runnable project. We seek to encourage the community to go through your talk again, work with the code, and learn more on their own. We do not mind live demos :).<br/>
<br><br/>
Even though any person can attend this meetup regardless of gender, we wish to empower the less-represented developers of the programming community.<br/>
<br><br/>
We would love for you to speak at Women Who Go! DM us at <a href="https://twitter.com/wwg_pune" rel="nofollow">@wwg_pune</a> about a short talk, demo, or whatever you have in mind!
id: "265972325"
local_date: Nov 10, 2019
local_time: "2019-11-10T08:00:00+05:30"
localizedcountry: India
localizedlocation: Pune, India
name: Golang Workshop
pps. Share your slides and code. What is there for you? Fame, github stars, FB/LI likes, and feedback.<br/>
<br><br/>
[PL]<br/>
Naszym celem jest dzielenie się wiedzą oraz doświadczeniem w zakresie programowania na każdym poziomie, od juniora do seniora. Scena należy do Ciebie! Zawsze możesz zacząć z 10 minutowym talkiem. Daj nam znać jeśli możemy Cię w jakikolwiek sposób pomóc.<br/>
<br><br/>
Chcemy, aby ten meetup należał do społeczności, cenimy sobie niezależność i zależy nam na utrzymaniu społecznego charakteru naszych spotkań.<br/>
<br><br/>
Nasza “strona główna” z listą poprzednich prelekcji i warsztatów jest github:<br/>
<a href="https://github.com/golangpoland/meetup_golang_warsaw" rel="nofollow">https://github.com/golangpoland/meetup_golang_warsaw</a><br/>
<br><br/>
Znajdziesz nas także na:<br/>
▪ Twitter: https://twitter.com/golangwaw<br/>
▪ Slack: #poland-warsaw gophers.slack.com<br/>
▪ FB:<a href="https://www.facebook.com/groups/1278049882223829/" rel="nofollow"> https://www.facebook.com/groups/1278049882223829/</a><br/>
▪ LI:<a href="https://www.linkedin.com/company/golang-warsaw-meetup" rel="nofollow"> https://www.linkedin.com/company/golang-warsaw-meetup</a><br/>
<br><br/>
ps. Im więcej kodu tym lepiej :) Może to być kilka plików źródłowych albo prosty projekt. Chcemy zachęcić społeczność do ponownego przejrzenia prelekcji oraz pracy z twoim kodem. Live Dema są mile widziane :)<br/>
<br><br/>
pps. Nie zapomnij podzielić się z nami swoją prezentacją i kodem źródłowym. Zyskasz na tym sławę, gwiazdki na githubie, lajki na FB/LI oraz feedback.<br/>
<br><br/>
CONTACT<br/>
  Slack (primary): gophers.slack.com #poland-warsaw: @Kamil Pyrkosz , @Arek Noster , or @Wojciech<br/>
* Email: Wojciech Barczyński - wb@hypatos.ai
id: "270319842"
local_date: May 26, 2020
local_time: "2020-05-26T18:05:00+02:00"
localizedcountry: Poland
localizedlocation: Warsaw, Poland
name: 'Golang Warsaw #36 - Golang Poland - Online'
state: ""
thumbnailurl: ""
url: https://www.meetup.com/wwg_pune/events/265972325
- city: Pune
country: India
description: We shall organise 1 day GoLang Workshop from this group
id: "265710139"
local_date: Nov 10, 2019
local_time: "2019-11-10T08:00:00+05:30"
localizedcountry: India
localizedlocation: Pune, India
name: GoLang Girls 2019
url: https://www.meetup.com/Golang-Warsaw/events/270319842
- city: Newcastle Upon Tyne
country: United Kingdom
description: This is a group for anyone in the North East of England who&#39;s interested
in the Go programming language. We usually meet up in Newcastle on the fourth
Tuesday of every month at Campus North, Carliol Square.
id: qtpnmqybchbjc
local_date: May 26, 2020
local_time: "2020-05-26T18:30:00+01:00"
localizedcountry: United Kingdom
localizedlocation: Newcastle Upon Tyne, United Kingdom
name: Go meetup
state: ""
thumbnailurl: ""
url: https://www.meetup.com/GoLang-Girls/events/265710139
- city: Targoviste
country: Romania
description: Invatam Golang in limba romana impreuna cu copiii interesati, pe platforma
<a href="https://www.unpi.ro/" rel="nofollow">unPi</a>
id: "264978236"
local_date: Nov 10, 2019
local_time: "2019-11-10T13:00:00+02:00"
localizedcountry: Romania
localizedlocation: Targoviste, Romania
name: Golang aniversare de 10 ani, la distanta
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/7/c/d/d/thumb_481951965.jpeg
url: https://www.meetup.com/unPi-Golang-Meetup/events/264978236
- city: Accra
country: Ghana
description: |-
This is a group for Go programming enthusiasts. The group meets on the third Thursday of the month. <br/>
Discussions will include supporting opensource projects written in Golang, Monthly challenges, improving Software Engineering craftmanship, Computer Science topics of interest, possible volunteering efforts. <br/>
Challenges range from small self-contained coding exercises to system integration challenges involving micro-services, queuing, pub/sub, containerization and more. Members drive the topics. An optional post-meet beer is held at a downtown watering hole.
id: "266187336"
local_date: Nov 10, 2019
local_time: "2019-11-10T19:00:00Z"
localizedcountry: Ghana
localizedlocation: Accra, Ghana
name: Meetup - Go 10th Anniversary Edition
state: ""
thumbnailurl: ""
url: https://www.meetup.com/Accra-Golang-Meetup/events/266187336
- city: Victoria
country: Canada
description: This is a group for Go programming enthusiasts or wanna-be enthusiasts.
The group meets on the third Thursday of the month to share and discuss solutions
to a problem posed in the previous month and to receive a new challenge to work
on in the coming month. Members take turns presenting the monthly challenge. Challenges
range from small self-contained coding exercises to system integration challenges
involving micro-services, queuing, pub/sub, containerization and more. Members
drive the topics. An optional post-meet beer is held at a downtown watering hole.
id: "265486039"
local_date: Nov 10, 2019
local_time: "2019-11-10T11:00:00-08:00"
localizedcountry: Canada
localizedlocation: Victoria, BC
name: Victoria Go Meetup - 5 - Happy 10th Anniversary Go!
state: BC
thumbnailurl: ""
url: https://www.meetup.com/Victoria-Go-Programming-Language-Meetup/events/265486039
- city: Graz
country: Austria
description: |-
Die <a href="https://golang.org" rel="nofollow">Programmiersprache Go</a> hat einen Grazer &#34;Stammtisch&#34;. <br/>
Wir treffen uns jeden 2. Montag im Monat bei TAO Digital am Lendplatz.<br/>
Schau einfach vorbei oder besuche uns online unter <a href="https://gograz.org" rel="nofollow">GoGraz</a>! <br>
id: lbbhjlyzpbzb
local_date: Nov 11, 2019
local_time: "2019-11-11T19:00:00+01:00"
localizedcountry: Austria
localizedlocation: Graz, Austria
name: Go Language Usergroup Graz
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/3/3/e/0/thumb_459373280.jpeg
url: https://www.meetup.com/Graz-Open-Source-Meetup/events/lbbhjlyzpbzb
- city: Omaha
url: https://www.meetup.com/Golang-North-East/events/qtpnmqybchbjc
- city: Boston
country: USA
description: |-
Get together and talk about the Go programming language!<br/>
We meet every other month for pizza and Go talks.  Speakers are always welcome, just send a message.<br/>
All attendees are expected to abide by the <a href="https://golang.org/conduct" rel="nofollow">Go code of conduct</a>.
id: "264727903"
local_date: Nov 11, 2019
local_time: "2019-11-11T18:00:00-06:00"
A forum for people working with Go to discuss ideas, issues and share solutions. We will start to put together meetings as the group grows and topics are suggested.<br/>
<a href="https://www.papercall.io/bostongolang" rel="nofollow">Submit a talk proposal</a>, or come join us in #boston on Slack at <a href="https://invite.slack.golangbridge.org" rel="nofollow">https://invite.slack.golangbridge.org</a><br/>
Boston Golang officially adopts the <a href="https://golang.org/conduct" rel="nofollow">Go Code of Conduct</a>. Harassment, bullying, and discrimination are unacceptable here and if you witness or experience those or other harmful behaviors, please let the organizers know or email us at bostongolang@gmail.com <br>
id: "270529854"
local_date: May 26, 2020
local_time: "2020-05-26T18:30:00-04:00"
localizedcountry: USA
localizedlocation: Omaha, NE
name: Go's 10th Anniversary Party
state: NE
localizedlocation: Boston, MA
name: Virtual May meetup
state: MA
thumbnailurl: ""
url: https://www.meetup.com/Omaha-Gophers/events/264727903
url: https://www.meetup.com/bostongo/events/270529854
- city: Tel Aviv-Yafo
country: Israel
description: |-
This is the group for programmers who are interested in the High Performance, Scalable, lightweight, cross platform development tool that also promises ease of programming, agility and the fun you don&#39;t usually get using a low-level language. Welcome to the Israeli Go language Group.<br/>
If you&#39;d like to give a talk, please add yourself to <a href="https://trello.com/b/xbSxWRpG/go-israel-talks" rel="nofollow">the trello board</a>
id: kjvczlybckbcb
local_date: May 27, 2020
local_time: "2020-05-27T18:30:00+03:00"
localizedcountry: Israel
localizedlocation: Tel Aviv-Yafo, Israel
name: May Meetup - Online
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/a/9/6/9/thumb_477523369.jpeg
url: https://www.meetup.com/Go-Israel/events/kjvczlybckbcb
- city: Raleigh
country: USA
description: |-
You do not need to know Go, be a professional developer or enjoy talking to strangers in order to come hang out with us! <br/>
This group is for you if you are interested in Go, and are looking for a safe space to learn. Membership is restricted to women and gender minorities. <br/>
We would love for you to speak at Women Who Go! Contact raleigh@womenwhogo.org about a short talk, demo, or whatever you have in mind!
id: "270413433"
local_date: May 27, 2020
local_time: "2020-05-27T12:00:00-04:00"
localizedcountry: USA
localizedlocation: Raleigh, NC
name: 'Women Who Go Lightning Talks: Go Developers Share Their Lessons Learned'
state: NC
thumbnailurl: ""
url: https://www.meetup.com/Women-Who-Go-Raleigh/events/270413433
- city: Florianópolis
country: Brazil
description: |-
Telegram oficial da comunidade Go de SC: <a href="https://t.me/joinchat/Mz2OaFghHkcTl6u9s1JQ8Q" rel="nofollow">https://t.me/joinchat/Mz2OaFghHkcTl6u9s1JQ8Q</a><br>Slack oficial (canal #floripa): <a href="https://invite.slack.golangbridge.org/" rel="nofollow">https://invite.slack.golangbridge.org/</a><br/>
<br>
id: "268323326"
local_date: May 27, 2020
local_time: "2020-05-27T19:00:00-03:00"
localizedcountry: Brazil
localizedlocation: Florianópolis, Brazil
name: 2º encontro de 2020
state: ""
thumbnailurl: https://secure.meetupstatic.com/photos/event/7/2/1/f/thumb_447209215.jpeg
url: https://www.meetup.com/Floripa-Gophers/events/268323326
- city: Saint Louis
country: USA
description: |-
We meet the fourth Wednesday of the month for development-oriented presentations and discussion centered on the Go Programming Language.<br/>
The basic agenda is:<br/>
6:00 - 6:20 Food and networking (Go excels at networking).<br/>
6:20 - 6:30 Announcements, intros, and so forth.<br/>
6:30 - 6:45 Short presentation of the month<br/>
6:45 - 8:00 Main presentation of the month.<br/>
Join us for the fun of sharing and learning about this programming language which is powering Cloud Native revolution.  All are welcome!  Any skill level!  We are here to help each other grow.<br/>
We also invite you to follow us on Twitter as <a href="https://twitter.com/stlgomeetup" rel="nofollow">@StLGoMeetup</a> .
id: "270424382"
local_date: May 27, 2020
local_time: "2020-05-27T18:05:00-05:00"
localizedcountry: USA
localizedlocation: Saint Louis, MO
name: '[GMT/-5] Writing General Purpose Kubernetes Controllers in Go'
state: MO
thumbnailurl: ""
url: https://www.meetup.com/StL-Go/events/270424382
- city: Chicago
country: USA
description: |-
Welcome Gophers! Go Remote Meetup is a remote-first group for Go developers worldwide. We&#39;re part of the Go Developer Network, and we&#39;re excited to connect with you all, no matter where you&#39;re located.<br/>
<br><br/>
About Go:<br/>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.<br/>
<a href="https://golang.org/" rel="nofollow">https://golang.org/</a><br/>
<br><br/>
About Go Developer Network:<br/>
GDN is a collection of Go user groups working together with a shared mission to empower developer communities with the knowledge, experience, and wisdom to build the next generation of software in Go.<br/>
<a href="https://github.com/gobridge/about-us/blob/master/gdn.md" rel="nofollow">https://github.com/gobridge/about-us/blob/master/gdn.md</a> <br/>
<br><br/>
JetBrains User Group Support Program<br/>
JetBrains allows us to raffle a free 1-year license to attendees. This is an especially great opportunity for new developers to boost their learning and productivity with excellent tooling -- so join up and attend!<br>
id: "270632499"
local_date: May 28, 2020
local_time: "2020-05-28T09:00:00-05:00"
localizedcountry: USA
localizedlocation: Chicago, IL
name: 'GMT/-5: Integrating the Envoy gRPC API into a Dynamic Service Discovery Platform'
state: IL
thumbnailurl: https://secure.meetupstatic.com/photos/event/8/8/7/f/thumb_490354943.jpeg
url: https://www.meetup.com/Go-Remote-Meetup/events/270632499

Просмотреть файл

@ -3,14 +3,14 @@ links:
url: https://www.ardanlabs.com/
thumbnail:
blurb: Offering customized on-site live training classes.
- title: Boss Sauce Creative
url: https://bosssauce.it/services/training
thumbnail:
blurb: Personalized or track-based Go training for teams.
- title: Gopher Guides
url: https://www.gopherguides.com/
thumbnail:
blurb: Customized In-person, remote, and online training classes. Training for Developers by Developers.
- title: Boss Sauce Creative
url: https://bosssauce.it/services/training
thumbnail:
blurb: Personalized or track-based Go training for teams.
- title: Shiju Varghese
url: https://github.com/shijuvar/gokit/tree/master/training
thumbnail:

Просмотреть файл

@ -0,0 +1,57 @@
resources:
- title: Cloud & Network Services
description: "With a strong ecosystem of tools and APIs on major cloud providers, it is easier than ever to build services with Go."
link: /solutions/cloud/
icon: /images/icons/sphere.svg
iconName: Sphere
packages:
- title: cloud.google.com/go
url: https://cloud.google.com/go/home
- title: aws/client
url: https://aws.amazon.com/sdk-for-go/
- title: Azure/azure-sdk-for-go
url: https://github.com/Azure/azure-sdk-for-go
- title: Command-line Interfaces
description: "With popular open source packages and a robust standard library, use Go to create fast and elegant CLIs."
link: /solutions/clis/
icon: /images/icons/command-folder.svg
iconName: Command Line
packages:
- title: spf13/cobra
url: https://github.com/spf13/cobra
- title: spf13/viper
url: https://github.com/spf13/viper
- title: urfave/cli
url: https://github.com/urfave/cli
- title: delve
url: https://github.com/go-delve/delve
- title: chzyer/readline
url: https://github.com/chzyer/readline
- title: Web Development
description: "With enhanced memory performance and support for several IDEs, Go powers fast and scalable web applications."
link: /solutions/webdev/
icon: /images/icons/code.svg
iconName: Code
packages:
- title: net/http
url: https://golang.org/pkg/net/http/
- title: html/template
url: https://golang.org/pkg/html/template/
- title: flosch/pongo2
url: https://github.com/flosch/pongo2
- title: database/sql
url: https://golang.org/pkg/database/sql/
- title: olivere/elastic
url: https://github.com/olivere/elastic
- title: DevOps & Site Reliability
description: "With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE."
link: /solutions/devops/
icon: /images/icons/gear.svg
iconName: Sphere
packages:
- title: opentracing/opentracing-go
url: https://github.com/opentracing/opentracing-go
- title: istio/istio
url: https://github.com/istio/istio
- title: urfave/cli
url: https://github.com/urfave/cli

Просмотреть файл

@ -0,0 +1,32 @@
all:
- name: Jaime Enrique Garcia Lopez
title: Senior Software Development Manager
company: Capital One
quote: |-
“At the time, no single team member knew Go, but
<strong>within a month,everyone was writing in Go</strong> and we were
building out the endpoints. It was the flexibility, how easy it was to use,
and the really cool concept behind Go (how Go handles native concurrency,
garbage collection, and of course safety+speed.) that helped engage us
during the build. Also, who can beat that cute mascot!”
- name: Clayton Coleman
title: Lead Engineer, Open Shift
company: RedHat
quote: |-
"<strong>A small language that compiles fast makes for a happy developer.</strong>
The Go language is small, compiles really fast, and as a result it lets your
mind focus on the actual problem and less on the tool you are using to solve
it. Code, test, debug cycles are so quick that you forget you are not
working with an interpreted language. Looking at our code, you see
<strong>less boilerplate and more business logic.</strong>"
- name: Matt Boyle
title: Lead Software Engineer
company: Curve
quote: |-
“<strong>Go has excellent characteristics for scalability and services
written using it typically have very small memory footprints.</strong>
Because code is compiled into a single static binary, services can also be
containerised with ease, making it much simpler to build and deploy. These
attributes make <strong>Go an ideal choice for companies building
microservices</strong>, as you can easily deploy into a highly available and
scalable environment such as Kubernetes.”

Просмотреть файл

@ -1,11 +1,19 @@
<!DOCTYPE html>
<html lang="{{$.Site.LanguageCode | default "en"}}">
<head>
<!-- Google Tag Manager -->
<link rel="preconnect" href="https://www.googletagmanager.com">
<script >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-W8MVQXG');</script>
<!-- End Google Tag Manager -->
<meta charset="utf-8">
<meta name="description" content="Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#00add8">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Roboto:400,700|Source+Code+Pro|Material+Icons">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:400,500,600|Work+Sans:400,500,600|Roboto:400,500,700|Open+Sans:Source+Code+Pro|Material+Icons">
{{$styles := resources.Get "css/styles.css" -}}
{{if .Site.IsServer -}}
<link rel="stylesheet" href="{{$styles.RelPermalink}}">
@ -27,12 +35,10 @@
{{end -}}
</head>
<body class="Site">
{{if not .Site.IsServer -}}
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W8MVQXG"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{{end -}}
<header class="Site-header">
<div class="Banner">
<div class="Banner-inner">
@ -40,44 +46,54 @@
<a class="Banner-action"
href="https://support.eji.org/give/153413/#!/donation/checkout"
target="_blank"
rel="noopener">Support the Equal Justice Initiative</a>
rel="noopener">
Support the Equal Justice Initiative
</a>
</div>
</div>
<div class="Header Header--dark">
<nav class="Header-nav">
<a href="{{.Site.BaseURL}}">
<img class="Header-logo" src="/images/go-logo-white.svg" alt="Go">
<a href="/">
<img
class="js-headerLogo Header-logo"
src="/images/go-logo-white.svg"
alt="Go">
</a>
<form class="SearchForm SearchForm--white" action="https://pkg.go.dev/search" role="search">
<input class="SearchForm-input SearchForm-input--white" aria-label="Search for a package" type="text" name="q" size="1"
placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
spellcheck="false" title="Search for a package">
<button class="SearchForm-submit" aria-label="Search for a package">
<svg class="SearchForm-submitIcon SearchForm-submitIcon--white" focusable="false" viewBox="0 0 24 24" aria-hidden="true"
role="presentation">
<path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
<path fill="none" d="M0 0h24v24H0z"></path>
</svg>
<div class="Header-rightContent">
{{ partial "searchForm.html" . }}
<ul class="Header-menu">
{{- $currentPage := .}}
{{- range .Site.Menus.main}}
{{- $url := .URL}}
{{- if and (not $currentPage.Site.IsServer) (eq .Identifier "learn")}}
{{- $url = "https://learn.go.dev"}}
{{- end}}
{{- if not $currentPage.Site.IsServer}}
{{- $url = $url | absURL}}
{{- end}}
<li class="Header-menuItem {{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) (eq $currentPage.CurrentSection.Title .Title)}} Header-menuItem--active{{end}}">
<a href="{{$url}}" title="{{.Title}}">{{.Name}}</a>
</li>
{{- end}}
</ul>
<button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
</button>
</form>
<ul class="Header-menu">
{{- $currentPage := .}}
{{- range .Site.Menus.main}}
{{- $url := .URL}}
{{- if and (not $currentPage.Site.IsServer) (eq .Identifier "learn")}}
{{- $url = "https://learn.go.dev"}}
{{- end}}
{{- if not $currentPage.Site.IsServer}}
{{- $url = $url | absURL}}
{{- end}}
<li class="Header-menuItem {{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) (eq $currentPage.CurrentSection.Title .Title)}} Header-menuItem--active{{end}}">
<a href="{{$url}}" title="{{.Title}}">{{.Name}}</a>
</li>
{{- end}}
</ul>
<button class="Header-navOpen js-headerMenuButton Header-navOpen--white" aria-label="Open navigation.">
</button>
</div>
</nav>
{{ if (eq .Params.Series "Use Cases") }}
<div class="UseCaseSubNav js-useCaseSubnav">
<button class="UseCaseSubNav-menuHeader js-useCaseSubnavHeader">
Jump to
<img
class="UseCaseSubNav-menuIcon js-useCaseSubnavMenuIcon"
alt="Open menu icon" src="/images/icons/chevron-down.svg">
</button>
<div class="UseCaseSubNav-menu js-useCaseSubnavMenu">
<div class="UseCaseSubNav-anchorLinks js-useCaseSubnavLinks">
</div>
</div>
</div>
{{end}}
</div>
</header>
<aside class="NavigationDrawer js-header">
@ -86,8 +102,6 @@
<a href="{{.Site.BaseURL}}">
<img class="NavigationDrawer-logo" src="/images/go-logo-blue.svg" alt="Go.">
</a>
<button class="NavigationDrawer-close js-headerMenuButton" aria-label="Close navigation.">
</button>
</div>
<ul class="NavigationDrawer-list">
{{- range .Site.Menus.main}}
@ -105,9 +119,8 @@
</ul>
</nav>
</aside>
<div class="NavigationDrawer-scrim js-scrim" role="presentation">
</div>
<main class="Site-content">
<div class="NavigationDrawer-scrim js-scrim" role="presentation"></div>
<main class="SiteContent{{if $.Site.Data.messaging.messaging.HeaderMessagingBar }} SiteContent--lower{{else}} SiteContent--default{{end}}">
{{- block "main" . -}}{{- end -}}
</main>
<footer class="Site-footer">
@ -130,22 +143,46 @@
<div class="Footer-bottom">
<img class="Footer-gopher" src="/images/gophers/pilot-bust.svg" alt="The Go Gopher">
<ul class="Footer-listRow">
<li class="Footer-listItem"><a href="/copyright">Copyright</a></li>
<li class="Footer-listItem"><a href="/tos">Terms of Service</a></li>
<li class="Footer-listItem"><a href="http://www.google.com/intl/en/policies/privacy/" target="_blank">Privacy Policy</a></li>
<li class="Footer-listItem">
<a href="https://golang.org/s/discovery-feedback" target="_blank">
<a href="/copyright">Copyright</a>
</li>
<li class="Footer-listItem">
<a href="/tos">Terms of Service</a>
</li>
<li class="Footer-listItem">
<a href="http://www.google.com/intl/en/policies/privacy/"
target="_blank"
rel="noopener">
Privacy Policy
</a>
</li>
<li class="Footer-listItem">
<a
href="https://golang.org/s/discovery-feedback"
target="_blank"
rel="noopener"
>
Report an Issue
</a>
</li>
<li class="Footer-listItem"><a href="https://golang.org" target="_blank">golang.org</a></li>
<li class="Footer-listItem">
<a
href="https://golang.org"
target="_blank"
rel="noopener"
>golang.org
</a>
</li>
</ul>
<a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener noreferrer">
<a class="Footer-googleLogo" target="_blank" href="https://google.com" rel="noopener">
<img class="Footer-googleLogoImg" src="/images/google-white.png" alt="Google logo">
</a>
</div>
</div>
</div>
<script src="/js/carousels.js"></script>
<script src="/js/searchBox.js"></script>
<script src="/js/misc.js"></script>
</footer>
</body>
</html>
</html>

Просмотреть файл

@ -3,13 +3,53 @@
<div class="Hero-gridContainer">
<div class="Hero-blurb">
<h1>Build fast, reliable, and efficient software at scale</h1>
<h2>
Go is an open source programming language supported by Google.
</h2>
<ul class="Hero-blurbList">
<li>
<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
</svg>
Go is an open source programming language supported by Google
</li>
<li>
<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
</svg>
Easy to learn and get started with
</li>
<li>
<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
</svg>
Built-in concurrency and a robust standard library
</li>
<li>
<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.8519 0.52594L3.89189 7.10404L1.14811 4.51081L0 5.59592L3.89189 9.27426L12 1.61105L10.8519 0.52594Z" fill="white" fill-opacity="0.87">
</svg>
Growing ecosystem of partners, communities, and tools
</li>
</ul>
</div>
<div class="Hero-actions">
<a class="Primary" href="/learn">Get Started</a>
<a href="https://golang.org/dl">Download Go</a>
<div
data-version="{{.Site.Data.global.latestVersion}}"
class="js-latestGoVersion">
<a class="Primary" href="https://learn.go.dev/">Get Started</a>
<a class="Secondary js-downloadBtn"
href="https://golang.org/dl"
target="_blank" rel="noopener"
>Download
<span
class="js-goVersion DownloadBtn-versionNum">
</span>
</a>
</div>
<p class="Hero-footnote">Download packages for
<a class="js-downloadWin">Windows 64-bit</a>,
<a class="js-downloadMac">macOS</a>,
<a class="js-downloadLinux">Linux</a>, and
<a href="https://golang.org/dl/">more</a>
</p>
</div>
<div class="Hero-gopher">
<img class="Hero-gopherLadder" src="/images/gophers/ladder.svg" alt="Go Gopher climbing a ladder.">
@ -20,200 +60,258 @@
{{$solutions := index (where .Pages "Section" "solutions") 0}}
<div class="WhoUses-gridContainer">
<div class="WhoUses-header">
<h2>Companies using Go</h2>
<h2 class="WhoUses-headerH2">Companies using Go</h2>
<p class="WhoUses-subheader">Organizations in every industry use Go to power their software and services
<a href="/solutions" class="WhoUsesCaseStudyList-seeAll">
View all stories
</a>
</p>
</div>
<ul class="WhoUses-caseStudyList">
{{range where $solutions.Pages "Params.series" "Case Studies"}}
<li class="WhoUses-caseStudy">
{{if isset .Params "link" }}
<a href="{{.Params.link}}" target="_blank">
<div class="WhoUsesCaseStudyList">
<ul class="WhoUsesCaseStudyList-gridContainer">
{{range where $solutions.Pages "Params.series" "Case Studies"}}
{{if .Params.link }}
{{if .Params.inLandingPageGrid }}
<li class="WhoUsesCaseStudyList-caseStudy">
{{$logo := .Resources.GetMatch "logo"}}
<img src="{{$logo.RelPermalink}}" class="WhoUses-logo" alt="{{$logo.Params.alt}}">
<p>View article <i class="material-icons" style="font-size:1rem;">open_in_new</i></p>
</a>
{{else}}
<a href="{{.RelPermalink}}">
{{$logo := .Resources.GetMatch "logo"}}
<img src="{{$logo.RelPermalink}}" class="WhoUses-logo" alt="{{$logo.Params.alt}}">
<a href="{{.Params.link}}" target="_blank" rel="noopener"
class="WhoUsesCaseStudyList-caseStudyLink">
<img
loading="lazy"
height="48"
width="30%"
src="/images/logos/{{.Params.logoSrc}}"
class="WhoUsesCaseStudyList-logo"
alt="">
</a>
</li>
{{end}}
{{else}}
<li class="WhoUsesCaseStudyList-caseStudy">
<a href="{{.RelPermalink}}" class="WhoUsesCaseStudyList-caseStudyLink">
<img
loading="lazy"
height="48"
width="30%"
src="/images/logos/{{.Params.logoSrc}}"
class="WhoUsesCaseStudyList-logo"
alt="">
<p>View case study</p>
</a>
{{end}}
</li>
{{end}}
{{end}}
</ul>
</div>
</section>
<section class="TestimonialsGo">
<div class="GoCarousel">
<div class="GoCarousel-controlsContainer">
<div class="GoCarousel-wrapper">
<ul class="js-testimonialsGoQuotes TestimonialsGo-quotes">
{{ range $index, $element := $.Site.Data.testimonials.all }}
<li class="TestimonialsGo-quoteGroup GoCarousel-slide" id="quote_slide{{$index}}">
<div class="TestimonialsGo-quoteSingleItem">
<div class="TestimonialsGo-quoteSection">
<p class="TestimonialsGo-quote">{{.quote | safeHTML}}</p>
<div class="TestimonialsGo-author">— {{.name}},
<span class="NoWrapSpan">{{.title}}</span>
<span class="NoWrapSpan"> at {{.company}}</span>
</div>
</div>
</div>
</li>
{{end}}
</ul>
</div>
<button class="js-testimonialsPrev GoCarousel-controlPrev" hidden>
<i class="GoCarousel-icon material-icons">navigate_before</i>
</button>
<button class="js-testimonialsNext GoCarousel-controlNext">
<i class="GoCarousel-icon material-icons">navigate_next</i>
</button>
</div>
</div>
</section>
<section class="WhyGo">
<div class="WhyGo-gridContainer">
<div class="WhyGo-header">
<h2>Why choose Go</h2>
<h2 class="WhyGo-headerH2">Whats possible with Go</h2>
<h4 class="WhyGo-headerH4">
Use Go for a variety of software development purposes
</h4>
</div>
<ul class="WhyGo-reasons">
<li class="WhyGo-reason">
<div class="WhyGo-reasonIcon" role="presentation">
<img src="/images/star-24px.svg" alt="Star."/>
</div>
<div class="WhyGo-reasonText">
<h3 class="WhyGo-reasonTitle">Easy to learn</h3>
<p>
“At the time, no single team member knew Go, but <b>within a month, everyone was writing in Go</b> and we were building out the
endpoints. It was the flexibility, how easy it was to use, and the really cool concept behind Go (how Go handles native
concurrency, garbage collection, and of course safety+speed.) that helped engage us during the build. Also, who can beat
that cute mascot!”
</p>
<p style="text-align: right;">
- <a
href="https://medium.com/capital-one-tech/a-serverless-and-go-journey-credit-offers-api-74ef1f9fde7f"
target="_blank">Jaime Enrique Garcia Lopez, Senior Software Development Manager at CapitalOne</a>
</p>
</div>
</li>
<li class="WhyGo-reason">
<div class="WhyGo-reasonIcon" role="presentation">
<img src="/images/star-24px.svg" alt="Star."/>
</div>
<div class="WhyGo-reasonText">
<h3 class="WhyGo-reasonTitle">Efficient</h3>
<p>
<b>"A small language that compiles fast makes for a happy developer.</b> The Go language is small, compiles really fast, and as
a result it lets your mind focus on the actual problem and less on the tool you are using to solve it. Code, test, debug
cycles are so quick that you forget you are not working with an interpreted language. Looking at our code, you see <b>less
boilerplate and more business logic</b>."
</p>
<p style="text-align: right;">
- <a
href="https://blog.gopheracademy.com/birthday-bash-2014/openshift-3-old-dogs-new-tricks/"
target="_blank">Clayton Coleman, lead engineer, Open Shift at RedHat</a>
</p>
</div>
</li>
<li class="WhyGo-reason">
<div class="WhyGo-reasonIcon" role="presentation">
<img src="/images/star-24px.svg" alt="Star."/>
</div>
<div class="WhyGo-reasonText">
<h3 class="WhyGo-reasonTitle">Powerful</h3>
<p>
<b>Go has excellent characteristics for scalability and services written using it typically have very
small memory footprints</b>. Because code is compiled into a single static binary, services can also be
containerised with ease, making it much simpler to build and deploy. These attributes make <b>Go an ideal
choice for companies building microservices</b>, as you can easily deploy into a highly available and scalable
environment such as Kubernetes.”
</p>
<p style="text-align: right;">
- <a
href="https://www.computerweekly.com/blog/Open-Source-Insider/Golang-or-go-home-how-Curve-is-taking-Golang-to-new-heights"
target="_blank">Matt Boyle, lead software engineer at Curve</a>
</p>
</div>
</li>
</ul>
<div class="WhyGo-gopher">
<img src="images/gophers/biplane.svg" alt="Go Gopher piloting a biplane.">
</div>
</div>
</section>
<section class="UseCases">
{{$solutions := index (where .Pages "Section" "solutions") 0}}
<div class="Container">
<div class="UseCases-gridContainer">
<div class="UseCases-header">
<h2>Designed for today's needs</h2>
</div>
{{range where $solutions.Pages "Params.series" "Use Cases"}}
<div class="UseCase">
<div class="UseCase-logo">
{{$icon := .Resources.GetMatch "icon-white"}}
{{if $icon}}
<img alt="{{$icon.Params.alt}}" src="{{$icon.RelPermalink}}">
{{end}}
</div>
<h3 class="UseCase-title">{{.LinkTitle}}</h3>
<p class="UseCase-description">
{{.Description}}
</p>
<p class="UseCase-action">
<a href="{{.RelPermalink}}">Learn More &gt;</a>
</p>
</div>
{{end}}
</div>
</div>
</section>
<section class="LearnGo">
<div class="LearnGo-gridContainer">
<div class="LearnGo-header">
<h2>Learn Go</h2>
<p>
“I started writing in Go when I was just out of college and couldnt believe how quickly I picked it up,
especially compared to other languages. I had spent months learning about how to build APIs in other languages
(and mostly failing), but <b>after a week of writing Go, I had completed my first API</b>.”
</p>
<p style="text-align: right;">
-
<a href="https://medium.com/capital-one-tech/good-to-go-a-language-that-makes-it-easy-for-engineers-to-talk-to-each-other-17ad0f47f76c"
target="_blank">
Kaylyn Gibilterra, Senior Software Engineer, Capital One
</a>
</p>
</div>
<div class="LearnGo-subHeader">
<h3>Get started learning Go today</h3>
<p class="LearnGo-viewMore">
{{if gt (len $.Site.Data.learn.courses.links) 4}}
<a href="#">View More &gt;</a>
{{end}}
</p>
</div>
<ul class="LearnGo-courses">
{{range first 4 $.Site.Data.learn.courses.links}}
<li class="LearnGo-courseItem">
<div class="LearnGo-course">
<a href="{{.url}}">
<div class="LearnGo-courseImage">
{{if .thumbnail}}
<img alt="{{.title}} thumbnail." src="{{.thumbnail}}">
{{end}}
{{ range first 4 $.Site.Data.resources.resources }}
<li class="WhyGo-reason">
<div class="WhyGo-reasonDetails">
<div class="WhyGo-reasonIcon" role="presentation">
<img src="{{.icon}}" alt="{{.iconName}}">
</div>
<p class="LearnGo-courseTitle">{{.title}}</p>
</a>
</div>
</li>
{{end}}
</ul>
<div class="LearnGo-subHeader">
<h3>Events</h3>
<p class="LearnGo-viewMore"><a href="https://www.meetup.com/pro/go">View more events &gt;</a></p>
</div>
<ul class="LearnGo-events">
{{range first 3 $.Site.Data.events.all}}
<li class="LearnGo-eventItem">
<div class="LearnGo-eventThumbnail {{if not .thumbnailurl}}LearnGo-eventThumbnail--noimage{{end}}">
{{if .thumbnailurl}}
<img src="{{.thumbnailurl}}" alt="{{.name}} group photo"/>
{{else}}
<img src="/images/meetup.svg" alt="meetup logo"/>
{{end}}
</div>
<div class="LearnGo-eventBody">
<div class="LearnGo-eventDate">
<p>{{.local_date}}</p>
<p>{{.city}}, {{.state}} {{.country}}</p>
</div>
<div class="LearnGo-eventText">
<h4 class="LearnGo-eventName">
<a href="{{.url}}">{{.name}}</a>
</h4>
<p class="LearnGo-eventDescription">
{{.description | safeHTML}}
<div class="WhyGo-reasonText">
<h3 class="WhyGo-reasonTitle">{{.title}}</h3>
<p>
{{.description}}
</p>
</div>
<p class="LearnGo-viewMore"><a href="{{.url}}">Learn more &gt;</a></p>
</div>
<div class="WhyGo-reasonFooter">
<div class="WhyGo-reasonPackages">
<div class="WhyGo-reasonPackagesHeader">
<img src="/images/icons/package.svg" alt="Packages.">
Popular Packages:
</div>
<ul class="WhyGo-reasonPackagesList">
{{range .packages }}
<li class="WhyGo-reasonPackage">
<a href="{{.url}}" target="_blank" rel="noopener">
{{.title}}
</a>
</li>
{{end}}
</ul>
</div>
<div class="WhyGo-reasonLearnMoreLink">
<a href="{{.link}}">Learn More <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
</div>
</div>
</li>
{{end}}
{{ if (gt ($.Site.Data.resources.resources | len) 3) }}
<li class="WhyGo-reason">
<div class="WhyGo-reasonShowMore">
<div class="WhyGo-reasonShowMoreImgWrapper">
<img
class="WhyGo-reasonShowMoreImg"
loading="lazy"
height="148"
width="229"
src="/images/gophers/biplane.svg"
alt="Go Gopher is skateboarding.">
</div>
<div class="WhyGo-reasonShowMoreLink">
<a href="/solutions">More use cases <i class="material-icons WhyGo-forwardArrowIcon">arrow_forward</i></a>
</div>
</div>
</li>
{{end}}
</ul>
</div>
</section>
<section class="LearnGo">
<div class="GoCarousel" id="LearnGo-carousel">
<div class="GoCarousel-controlsContainer">
<div class="GoCarousel-eventsWrapper">
<ul class="js-goCarouselEventsSlides GoCarousel-eventsSlides">
{{ range $index, $element := $.Site.Data.events.all }}
<li
class="GoCarousel-eventGroup"
id="event_slide{{$index}}">
<div class="GoCarousel-eventThumbnail">
{{if .thumbnailurl}}
<img
loading="lazy"
src="{{.thumbnailurl}}"
alt="{{.name}} group photo">
{{else}}
<img
loading="lazy"
src="/images/meetup.svg"
alt="meetup logo">
{{end}}
</div>
<div class="GoCarousel-eventBody">
<div class="GoCarousel-eventText">
<div class="GoCarousel-eventHeader">Upcoming Events</div>
<h4 class="GoCarousel-eventName">
<a href="{{.url}}">{{.name}}</a>
</h4>
<div class="GoCarousel-eventDate">
<p>{{.local_date}} | {{.city}}, {{.state}} {{.country}}</p>
</div>
<p class="GoCarousel-viewMore"><a href="{{.url}}">Learn more</a></p>
</div>
</div>
</li>
{{end}}
</ul>
</div>
<button class="js-eventsCarouselPrev GoCarousel-controlPrev" hidden>
<i class="GoCarousel-icon material-icons">navigate_before</i>
</button>
<button class="js-eventsCarouselNext GoCarousel-controlNext">
<i class="GoCarousel-icon material-icons">navigate_next</i>
</button>
</div>
</div>
</section>
<section class="GettingStartedGo">
<div class="GettingStartedGo-gridContainer">
<div class="GettingStartedGo-header">
<h2 class="GettingStartedGo-headerH2">Get started with Go</h2>
<p class="GettingStartedGo-headerDesc">
Explore a wealth of learning resources, including guided journeys, courses, books, and more.
</p>
<div class="GettingStartedGo-ctas">
<a class="GettingStartedGo-primaryCta" href="http://learn.go.dev">Get Started</a>
<a href="https://golang.org/dl" target="_blank" rel="noopener">Download Go</a>
</div>
</div>
<div class="GettingStartedGo-resourcesSection">
<ul class="GettingStartedGo-resourcesList">
<li class="GettingStartedGo-resourcesHeader">
Resources to start on your own
</li>
<li class="GettingStartedGo-resourceItem">
<a href="/learn#guided-learning-journeys" class="GettingStartedGo-resourceItemTitle">
Guided learning journeys
</a>
<div class="GettingStartedGo-resourceItemDescription">
Step-by-step tutorials to get your feet wet
</div>
</li>
<li class="GettingStartedGo-resourceItem">
<a href="/learn#online-learning" class="GettingStartedGo-resourceItemTitle">
Online learning
</a>
<div class="GettingStartedGo-resourceItemDescription">
Browse resources and learn at your own pace
</div>
</li>
<li class="GettingStartedGo-resourceItem">
<a href="/learn#featured-books" class="GettingStartedGo-resourceItemTitle">
Featured books
</a>
<div class="GettingStartedGo-resourceItemDescription">
Read through structured chapters and theories
</div>
</li>
<li class="GettingStartedGo-resourceItem">
<a href="/learn#self-paced-labs" class="GettingStartedGo-resourceItemTitle">
Cloud Self-paced labs
</a>
<div class="GettingStartedGo-resourceItemDescription">
Jump in to deploying Go apps on GCP
</div>
</li>
</ul>
<ul class="GettingStartedGo-resourcesList">
<li class="GettingStartedGo-resourcesHeader">
In-Person Trainings
</li>
{{range first 4 $.Site.Data.learn.inPerson.links }}
<li class="GettingStartedGo-resourceItem">
<a href="{{.url}}" class="GettingStartedGo-resourceItemTitle">
{{.title}}
</a>
<div class="GettingStartedGo-resourceItemDescription">
{{.blurb}}
</div>
</li>
{{end}}
</ul>
</div>
</div>
</section>
{{end}}

Просмотреть файл

@ -27,7 +27,7 @@
</p>
</div>
</section>
<section class="Learn-guided">
<section id="guided-learning-journeys" class="Learn-guided">
<div class="Container">
<div class="Learn-subHeader">
<h2>Guided learning journeys</h2>
@ -52,7 +52,7 @@
</ul>
</div>
</section>
<section class="Learn-online">
<section id="online-learning" class="Learn-online">
<div class="Container">
<div class="Learn-subHeader">
<h2>Online learning</h2>
@ -75,7 +75,7 @@
</ul>
</div>
</section>
<section class="Learn-online">
<section id="self-paced-labs" class="Learn-online">
<div class="Container">
<div class="Learn-subHeader">
<h2>Google Cloud Self-Paced Labs</h2>
@ -98,7 +98,7 @@
</ul>
</div>
</section>
<section class="Learn-books">
<section id="featured-books" class="Learn-books">
<div class="Container">
<div class="Learn-subHeader">
<h2>Featured books</h2>
@ -159,9 +159,9 @@
<li class="Learn-eventItem">
<div class="Learn-eventThumbnail {{if not .thumbnailurl}}Learn-eventThumbnail--noimage{{end}}">
{{if .thumbnailurl}}
<img alt="{{.name}} group photo" src="{{.thumbnailurl}}"/>
<img alt="{{.name}} group photo" src="{{.thumbnailurl}}">
{{else}}
<img src="/images/meetup.svg" alt="meetup logo"/>
<img src="/images/meetup.svg" alt="meetup logo">
{{end}}
</div>
<div class="Learn-eventBody">

Просмотреть файл

@ -0,0 +1,25 @@
<div class="BreadcrumbNav">
<ol class="BreadcrumbNav-inner">
{{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
</ol>
{{ define "breadcrumbnav" }}
{{ if .p1.Parent }}
{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
{{ else if not .p1.IsHome }}
{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
{{ end }}
{{ if not (eq .p1.Title "go.dev") }}
<li class="BreadcrumbNav-li {{ if eq .p1 .p2 }}active{{ end }}">
<a class="BreadcrumbNav-link" href="{{ .p1.Permalink }}">
{{ if isset .p1.Params "company" }}
{{ .p1.Params.company }}
{{ else }}
{{ .p1.Title }}
{{ end }}
</a>
</li>
{{end}}
{{ end }}
</div>

Просмотреть файл

@ -0,0 +1,15 @@
<form
class="js-searchForm SearchForm" action="https://pkg.go.dev/search" role="search">
<button
class="js-searchFormSubmit SearchForm-submit"
aria-label="Search for a package">
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.76 10.27L17.49 16L16 17.49L10.27 11.76C9.2 12.53 7.91 13 6.5 13C2.91 13 0 10.09 0 6.5C0 2.91 2.91 0 6.5 0C10.09 0 13 2.91 13 6.5C13 7.91 12.53 9.2 11.76 10.27ZM6.5 2C4.01 2 2 4.01 2 6.5C2 8.99 4.01 11 6.5 11C8.99 11 11 8.99 11 6.5C11 4.01 8.99 2 6.5 2Z">
</svg>
</button>
<input class="SearchForm-input" aria-label="Search for a package" type="text" name="q" size="1"
placeholder="Search for a package" autocapitalize="off" autocomplete="off" autocorrect="off"
spellcheck="false" title="Search for a package">
</input>
</form>

Просмотреть файл

@ -0,0 +1,5 @@
<a href="#overview" class="UseCase-anchorLink anchor-link selected">Overview</a>
<a href="#key-benefits" class="UseCase-anchorLink anchor-link">Key Benefits</a>
<a href="#use-case" class="UseCase-anchorLink anchor-link">Use Case</a>
<a href="#featured-users" class="UseCase-anchorLink anchor-link">Featured Users</a>
<a href="#get-started" class="UseCase-anchorLink anchor-link">Get Started</a>

Просмотреть файл

@ -0,0 +1,29 @@
{{with .Get "link"}}
<a href="{{.}}" target="_blank" rel="noopener">{{end -}}
<div class="BackgroundQuote">
<p class="BackgroundQuote-body">
" {{.Inner | markdownify}}"
</p>
{{$author := .Get 0 -}}
{{$title := .Get 1 -}}
{{$company := .Get 2 -}}
{{if .IsNamedParams -}}
{{$author = .Get "author" -}}
{{$title = .Get "title" -}}
{{$company = .Get "company" -}}
{{end -}}
{{if $author -}}
<div class="BackgroundQuote-author">
<span>&mdash; {{$author -}}</span>
{{if $title -}},&nbsp;
<span class="BackgroundQuote-title">{{$title | safeHTML}}</span>
{{end -}}
{{if $company -}}
<span class="BackgroundQuote-title">&nbsp;at {{$company -}}</span>
{{end -}}
</div>
{{end -}}
</div>
{{with .Get "link"}}
</a>
{{end -}}

Просмотреть файл

@ -4,14 +4,14 @@
{{range $books}}
<li class="Learn-tile">
<a href="{{.url}}">
<div class="Learn-tileThumbnail Learn-tileThumbnail--book">
{{if .thumbnail}}
<img alt="{{.title}} thumbnail." src="{{.thumbnail}}">
{{end}}
</div>
<p class="Learn-tileTitle">
{{if .thumbnail}}
<img
class="Learn-tileThumbnail Learn-tileThumbnail--book"
alt="{{.title}} thumbnail." src="{{.thumbnail}}">
{{end}}
<span class="Learn-tileTitle">
{{.title}}
</p>
</span>
</a>
</li>
{{end}}

Просмотреть файл

@ -0,0 +1,40 @@
{{$featuredProjects := .Page.Param "featuredProjects"}}
<table>
<thead>
<tr>
<th class="FeaturedUsers--hiddenMobile">Customer</th>
<th>Brief introduction</th>
<th>Projects using go</th>
</tr>
</thead>
<tbody>
{{range $index, $project := $featuredProjects}}
<tr class="FeaturedUsers-row {{ if (gt $index 2) }} hidden {{end}}">
<td class="FeaturedUsers--hiddenMobile">
<img src="/images/logos/{{.logoSrc}}" alt="{{.company}}" />
</td>
<td>
<img
class="FeaturedUsers--hiddenDesktop"
src="/images/logos/{{.logoSrc}}" alt="{{.company}}" />
{{.desc}}
</td>
<td>
<ul>
{{range .ctas}}
<li><a href="{{.url}}">{{.text}}</a></li>
{{end}}
</ul>
</td>
</tr>
{{end}}
</tbody>
</table>
<button
class="js-more-projects-btn FeaturedUsers-moreProjectsBtn"
type="button">
More projects
</button>

Просмотреть файл

@ -0,0 +1,18 @@
{{$goLibraries := .Page.Param "goLibraries"}}
{{range $goLibraries}}
<div class="WhoUsesCaseStudy-librariesWrapper">
<div class="headerWithLink">
<h3>{{.title}}</h3>
</div>
<ul class="WhoUsesCaseStudy-librariesList">
{{range .items}}
<li class="WhoUsesCaseStudy-library">
<a class="WhoUsesCaseStudy-libraryTitle" href="{{.url}}">{{.text}}</a>
<p>{{.desc}}</p>
</li>
{{end}}
</ul>
<a class="WhoUsesCaseStudy-librariesViewMoreLink" href="{{.viewMoreUrl}}">View More</a>
</div>
{{end}}

Просмотреть файл

@ -101,5 +101,14 @@
{{$src = "/images/gophers/violet.svg"}}
{{$alt = "Go gopher"}}
{{end}}
{{if eq $gopher "factory"}}
{{$src = "/images/gophers/factory.png"}}
{{$alt = "Go gopher factory"}}
{{end}}
<img class="{{$size}}Media-image {{$align}}" alt="{{$alt}}" src="{{$src}}">
<img
loading="lazy"
class="{{$size}}Media-image {{$align}}"
alt="{{$alt}}"
src="{{$src}}">

Просмотреть файл

@ -0,0 +1,3 @@
<ul>
{{.Inner}}
</ul>

Просмотреть файл

@ -1,6 +1,6 @@
<li class="MediaList-itemBox">
<div class="MediaList-itemBoxHeader{{if eq (.Get "align") "top"}}-top{{end}}">
{{with .Get "img-link"}}<a href="{{.}}" target="_blank">{{end -}}
{{with .Get "img-link"}}<a href="{{.}}" target="_blank" rel="noopener">{{end -}}
<img class="MediaList-itemBoxImage" src="{{.Get "img-src"}}" alt="{{.Get "img-alt"}}">
{{- with .Get "img-link"}}</a>{{end}}
<p class="MediaList-itemBoxTitle">{{.Get "title"}}</p>

Просмотреть файл

@ -0,0 +1,16 @@
<!-- <ul class="MediaList">
{{.Inner}}
</ul> -->
<table>
<thead>
<tr>
<th colspan="2">Customer</th>
<th colspan="2">Breif introduction</th>
<th colspan="2">Projects using go</th>
</tr>
</thead>
<tbody>
{{.Inner}}
</tbody>
</table>

Просмотреть файл

@ -0,0 +1,11 @@
<tr>
<td>
{{with .Get "img-link"}}
<a href="{{.}}" target="_blank" rel="noopener">
{{end -}}
<img class="MediaList-itemBoxImage" src="{{.Get "img-src"}}" alt="{{.Get "img-alt"}}">
{{- with .Get "img-link"}}</a>{{end}}
</td>
<td><p class="MediaList-itemBoxTitle">{{.Get "title"}}</p></td>
<td><p class="MediaList-itemBoxBody{{if eq (.Get "align") "top"}}-top{{end}}">{{.Inner | markdownify -}}</p></td>
</tr>

Просмотреть файл

@ -6,13 +6,31 @@
{{.Inner | markdownify}}
</p>
{{$author := .Get 0 -}}
{{$title := .Get 1 -}}
{{$company := .Get 2 -}}
{{if .IsNamedParams -}}
{{$author = .Get "author" -}}
{{$title = .Get "title" -}}
{{$company = .Get "company" -}}
{{end -}}
{{if $author -}}
<div class="PullQuote-author">
{{with .Get "link"}}<a href="{{.}}" target="_blank">{{end -}}
&mdash; {{$author -}}
{{with .Get "link"}}
<a
class="PullQuote-link"
href="{{.}}"
target="_blank"
rel="noopener">
{{end -}}
<span>
&mdash; {{$author -}}
</span>
{{if $title -}},&nbsp;
<span class="PullQuote-title">{{$title | safeHTML}}</span>
{{end -}}
{{if $company -}}
<span class="PullQuote-title">&nbsp;at {{$company -}}</span>
{{end -}}
{{with .Get "link"}}</a>{{end -}}
</div>
{{end -}}

Просмотреть файл

@ -0,0 +1,23 @@
<div class="QuoteBlock">
<p class="QuoteBlock-body">
{{.Inner | markdownify}}
</p>
{{$author := .Get 0 -}}
{{$title := .Get 1 -}}
{{if .IsNamedParams -}}
{{$author = .Get "author" -}}
{{$title = .Get "title" -}}
{{end -}}
{{if $author -}}
<div class="QuoteBlock-author">
{{with .Get "link"}}
<a class="QuoteBlock-link" href="{{.}}" target="_blank" rel="noopener">
{{end -}}
&mdash; {{$author -}}
{{if $title -}}
,&nbsp;<span>{{$title -}}</span>
{{end -}}
{{with .Get "link"}}</a>{{end -}}
</div>
{{end -}}
</div>

Просмотреть файл

@ -0,0 +1,2 @@
<!-- raw html -->
{{.Inner}}

Просмотреть файл

@ -0,0 +1,17 @@
{{$toolsBlurbs := .Page.Param "toolsBlurbs"}}
<div class="ToolsBlurbs">
{{range $toolsBlurbs}}
<div class="ToolsBlurbs-blurb">
<a class="ToolsBlurbs-blurbHeader" href="{{.url}}">
<img class="ToolsBlurbs-blurbIcon" src="{{.iconSrc}}" alt="{{.title}}">
<span>{{.title}}</span>
</a>
{{range .paragraphs}}
<p class="ToolsBlurbs-blurbBody">
{{ . }}
</p>
{{end}}
</div>
{{end}}
</div>

Просмотреть файл

@ -1,29 +1,150 @@
{{define "main"}}
<section class="Solutions-title">
<div class="Container">
<h1>Solutions</h1>
</div>
</section>
<section class="Solutions-headline">
<div class="Container">
<p class="Solutions-headlineText">
Use Go to improve your development process
</p>
<div class="GoCarousel" id="SolutionsHeroCarousel-carousel">
<div class="GoCarousel-controlsContainer">
<div class="GoCarousel-wrapper SolutionsHeroCarousel-wrapper">
<ul class="js-solutionsHeroCarouselSlides SolutionsHeroCarousel-slides">
{{range where .Pages "Params.series" "Case Studies" | first 3}}
<li class="SolutionsHeroCarousel-slide">
<div class="Solutions-headlineImg">
<img
src="/images/{{.Params.carouselImgSrc}}"
alt="{{.LinkTitle}}"
/>
</div>
<div class="Solutions-headlineText">
<p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
<h2>
{{.LinkTitle}}
</h2>
<p class="Solutions-headlineBody">
{{with .Params.quote}}{{.}}{{end}}
<a href="{{.RelPermalink}}"
>Learn more
<i class="material-icons Solutions-forwardArrowIcon"
>arrow_forward</i
>
</a>
</p>
</div>
</li>
{{end}}
</ul>
</div>
<button
class="js-solutionsHeroCarouselPrev GoCarousel-controlPrev GoCarousel-controlPrev-solutionsHero"
hidden
>
<i class="GoCarousel-icon material-icons">navigate_before</i>
</button>
<button
class="js-solutionsHeroCarouselNext GoCarousel-controlNext GoCarousel-controlNext-solutionsHero"
>
<i class="GoCarousel-icon material-icons">navigate_next</i>
</button>
</div>
</div>
</section>
<section class="Solutions-useCases" id="use-cases">
<section class="Solutions-useCases">
<div class="Container">
<div class="Solutions-useCasesHeader">
<h2>Designed for today's needs</h2>
<div class="SolutionsTabs-tabList js-solutionsTabs" role="tablist">
<button
role="tab"
aria-selected="true"
class="SolutionsTabs-tab"
id="btn-companies"
aria-controls="tab-companies"
>
All companies
</button>
<button
role="tab"
aria-selected="false"
class="SolutionsTabs-tab"
id="btn-tech"
aria-controls="tab-tech"
>
By Technology
</button>
<hr />
</div>
<ul class="Solutions-useCaseList">
{{range where .Pages "Params.series" "Use Cases"}}
<li class="Solutions-useCase">
<a href="{{.RelPermalink}}">
<ul
class="js-solutionsList Solutions-cardList"
aria-expanded="true"
aria-labelledby="btn-companies"
id="tab-companies"
role="tabpanel"
tabindex="0"
>
{{range where .Pages "Params.series" "Case Studies"}}
<li class="Solutions-card">
{{if isset .Params "link" }}
<a
href="{{.Params.link}}"
target="_blank"
rel="noopener"
class="Solutions-useCaseLink"
>
<div
class="Solutions-useCaseLogo Solutions-useCaseLogo--{{.Params.company}}"
>
<img
loading="lazy"
alt="{{.Params.company}}"
src="/images/logos/{{.Params.logoSrc}}"
/>
</div>
<div class="Solutions-useCaseBody">
<h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
<p class="Solutions-useCaseDescription">
{{.Description}}
</p>
</div>
<p class="Solutions-useCaseAction">
View blog post
<i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
</p>
</a>
{{else}}
<a href="{{.RelPermalink}}" class="Solutions-useCaseLink">
<div class="Solutions-useCaseLogo">
{{$icon := .Resources.GetMatch "icon"}}
{{if $icon}}
<img alt="{{$icon.Params.alt}}" src="{{$icon.RelPermalink}}">
<img
loading="lazy"
alt="{{.Params.company}}"
src="/images/logos/{{.Params.logoSrc}}"
/>
</div>
<div class="Solutions-useCaseBody">
<h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
<p class="Solutions-useCaseDescription">
{{with .Params.quote}}{{.}}{{end}}
</p>
</div>
<p class="Solutions-useCaseAction">View case study</p>
</a>
{{end}}
</li>
{{ end }}
</ul>
<ul
class="js-solutionsList Solutions-cardList"
aria-expanded="false"
aria-labelledby="btn-tech"
id="tab-tech"
role="tabpanel"
tabindex="0"
hidden
>
{{range where .Pages "Params.series" "Use Cases"}}
<li class="Solutions-card">
<a href="{{.RelPermalink}}" class="Solutions-useCaseLink">
<div class="Solutions-useCaseLogo">
{{$icon := .Resources.GetMatch "icon"}} {{if $icon}}
<img
loading="lazy"
alt="{{$icon.Params.alt}}"
src="{{$icon.RelPermalink}}"
/>
{{end}}
</div>
<div class="Solutions-useCaseBody">
@ -31,56 +152,27 @@
<p class="Solutions-useCaseDescription">
{{.Description}}
</p>
<p class="Solutions-useCaseAction">
Learn More &gt;
</p>
</div>
<p class="Solutions-useCaseAction">
Learn More
</p>
</a>
</li>
{{end}}
</ul>
</div>
</section>
<section class="Solutions-caseStudies" id="case-studies">
<div class="Container">
<div class="Solutions-caseStudiesHeader">
<h2>Companies using Go</h2>
<div class="Solutions-footer">
<p>
Interested in sharing your stories?
<a
target="_blank"
rel="noopener"
href="https://forms.gle/3kkYjH2y81SR1guAA"
>
Start here.
</a>
</p>
</div>
<ul class="Solutions-caseStudyList">
{{range where .Pages "Params.series" "Case Studies"}}
<li class="Solutions-caseStudy">
{{if isset .Params "link" }}
<a href="{{.Params.link}}" target="_blank">
<div class="Solutions-caseStudyLogo">
{{$logo := .Resources.GetMatch "logo"}}
<img alt="{{$logo.Params.alt}}" src="{{$logo.RelPermalink}}">
</div>
<div class="Solutions-caseStudyBody">
<h3 class="Solutions-caseStudyTitle">{{.LinkTitle}}</h3>
<p class="Solutions-caseStudyDescription">
{{.Description}}
</p>
<p class="Solutions-caseStudyAction">View article <i class="material-icons" style="font-size:1rem;">open_in_new</i></p>
</div>
</a>
{{else}}
<a href="{{.RelPermalink}}">
<div class="Solutions-caseStudyLogo">
{{$logo := .Resources.GetMatch "logo"}}
<img alt="{{$logo.Params.alt}}" src="{{$logo.RelPermalink}}">
</div>
<div class="Solutions-caseStudyBody">
<h3 class="Solutions-caseStudyTitle">{{.LinkTitle}}</h3>
<p class="Solutions-caseStudyDescription">
{{with .Params.quote}}{{.}}{{end}}
</p>
<p class="Solutions-caseStudyAction">View case study</p>
</div>
</a>
{{end}}
</li>
{{end}}
</ul>
</div>
</section>
{{end}}

Просмотреть файл

@ -1,12 +1,79 @@
{{define "main"}}
<div>
<div class="WhoUsesSubPage-hero{{if (eq .Params.Series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
<div class="WhoUsesSubPage-heroInner{{if (eq .Params.Series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
<div class="WhoUsesSubPage-heroContent{{if (eq .Params.Series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
<div class="WhoUsesSubPage-heroText{{if (eq .Params.Series "Case Studies")}}--caseStudy{{else}}--useCase{{end}}">
{{ partial "breadcrumbs.html" . }}
<h1>{{.Title}}</h1>
{{range .Params.authors}}
<div class="Article-author">{{.}}</div>
{{end}}
<div class="Article-date">{{.Date.Format "2 January 2006"}}</div>
</div>
{{if isset .Params "company"}}
<div class="WhoUsesSubPage-heroImg">
<img src="/images/{{ .Params.heroImgSrc }}" alt="{{ .Params.company }}">
</div>
{{end}}
</div>
</div>
</div>
<article class="Article {{if .Section -}}Article--{{.Section}}{{end -}}">
<h1>{{.Title}}</h1>
{{if eq .Params.Series "Case Studies"}}
{{range .Params.authors}}
<div class="Article-author">{{.}}</div>
{{end}}
<div class="Article-date">{{.Date.Format "2 January 2006"}}</div>
{{if (eq .Params.Series "Case Studies") }}
<div class="CaseStudy-content">
<div class="CaseStudy-contentBody">
{{.Content}}
</div>
<div class="CaseStudy-contentAside">
<div class="CaseStudy-aboutBlock">
{{$logo := .Resources.GetMatch "logo"}}
<img src="/images/logos/{{.Params.logoSrc}}" class="CaseStudy-aboutBlockImg" alt="{{.Params.company}}">
{{if not (eq .Params.company "Google")}}
<h3 class="CaseStudy-aboutBlockTitle">
About {{.Params.company}}
</h3>
{{end}}
<p class="CaseStudy-aboutBlockBody">{{.Params.quote}}</p>
</div>
</div>
</div>
{{else if (eq .Params.Series "Use Cases") }}
<div class="UseCase-content">
<div class="UseCase-contentAside">
<div
class="js-useCaseStickyNav UseCaseSubNav-anchorLinks">
</div>
</div>
<div class="UseCase-contentBody js-useCaseContentBody">
<!-- Messaging -->
{{ if .Params.inlineMessage }}
<div class="InlineMessage">
<span class="InlineMessage-imageWrap">
<img
loading="lazy"
class="InlineMessage-img"
src="/images/gophers/megaphone-gopher.svg"
alt="Gopher with megaphone">
</span>
<span class="InlineMessage-description">
<p class="InlineMessage-descParagraph">{{ .Params.inlineMessage.description }}</p>
</span>
<span class="InlineMessage-ctas">
<a href="{{ .Params.inlineMessage.ctas.primary.url }}" class="InlineMessage-cta">
{{ .Params.inlineMessage.ctas.primary.title }}
</a>
<a href="{{ .Params.inlineMessage.ctas.secondary.url }}" class="InlineMessage-cta">
{{ .Params.inlineMessage.ctas.secondary.title }}
</a>
</span>
</div>
{{ end }}
{{.Content | replaceRE " .sectionHeading" "\" class=\"sectionHeading" | safeHTML}}
</div>
</div>
{{end}}
{{.Content}}
</article>
</div>
{{end}}

Просмотреть файл

@ -12,7 +12,11 @@
{{$logo := .Resources.GetMatch "logo" -}}
{{if $logo -}}
<span class="Series-listItemIcon">
<img src="{{$logo.RelPermalink}}" class="WhoUses-logo" alt="{{$logo.Params.alt}}">
<img
loading="lazy"
src="{{$logo.RelPermalink}}"
class="WhoUses-logo"
alt="{{$logo.Params.alt}}">
</span>
{{end -}}
<div class="Series-listItemText">

Двоичные данные
go.dev/static/images/SCN_magnifying_glass_cloud_site.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 27 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 62 KiB

Двоичные данные
go.dev/static/images/device-information.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 43 KiB

Двоичные данные
go.dev/static/images/go_amex_case_study.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 90 KiB

Двоичные данные
go.dev/static/images/go_amex_case_study_logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 93 KiB

Двоичные данные
go.dev/static/images/go_at&t_case_study.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 79 KiB

Двоичные данные
go.dev/static/images/go_at_t_case_study_logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 76 KiB

Двоичные данные
go.dev/static/images/go_mercadolibre_case_study.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 79 KiB

Двоичные данные
go.dev/static/images/go_mercadolibre_case_study_logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 63 KiB

Двоичные данные
go.dev/static/images/go_paypal_case_study.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 88 KiB

Двоичные данные
go.dev/static/images/go_paypal_case_study_logo.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 82 KiB

Просмотреть файл

@ -0,0 +1,38 @@
<svg width="92" height="30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M80.5 20.7a7.3 7.3 0 005.3 2.2c2.7 0 4.8-1.1 6.4-3.4l-2.6-1.7c-1 1.4-2.2 2.1-3.8 2.1-1.6 0-2.9-.7-3.7-2.3l10.2-4.1-.3-.9a8.2 8.2 0 00-2.6-3.4 6.4 6.4 0 00-4-1.3c-2 0-3.7.7-5 2a7.5 7.5 0 00-2.1 5.5c0 2 .7 3.9 2.2 5.3zm2-8.7a4.3 4.3 0 014.7-.7c.5.2.9.6 1.1 1l-7 2.6c0-1.2.4-2.1 1.2-2.9z"
fill="#EA4335"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M73 1h4v22h-4V1z"
fill="#34A853"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M62.2 29.5c.7.3 1.4.4 2.2.4 2.1 0 3.8-.7 5-2a8.5 8.5 0 001.9-6V8.4h-3v1.3H68a4.7 4.7 0 00-3.8-1.7c-1.9 0-3.5.7-5 2.2a7.6 7.6 0 00-2 5.4c0 2 .7 3.8 2 5.3 1.5 1.5 3.1 2.2 5 2.2 1.6 0 3-.5 3.8-1.7h.2v.8c0 3.2-1.3 4.8-4 4.8-.8 0-1.5-.3-2.2-.8a4.7 4.7 0 01-1.4-2l-2.8 1.3c.3.6.6 1.3 1 1.8a6.8 6.8 0 003.3 2.3zm-.7-11c-.8-.8-1.2-1.9-1.2-3.1 0-1.3.4-2.4 1.2-3.2.8-.9 1.8-1.3 2.9-1.3 1 0 2 .4 2.8 1.3.7.8 1.1 2 1.1 3.2 0 1.2-.4 2.3-1.1 3.2-.8.8-1.7 1.3-2.8 1.3-1.2 0-2.1-.5-3-1.3z"
fill="#4285F4"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M53.1 20.7a7.3 7.3 0 002.2-5.3c0-2.2-.7-4-2.2-5.4A7.2 7.2 0 0047.8 8c-2.1 0-4 .7-5.4 2.1a7.2 7.2 0 00-2.1 5.4c0 2 .7 3.8 2.2 5.3a7.2 7.2 0 005.3 2.2c2.1 0 3.9-.8 5.3-2.2zm-8.6-2.1c-.8-.9-1.2-2-1.2-3.2 0-1.3.4-2.4 1.2-3.2.7-.9 1.7-1.3 2.8-1.3 1.1 0 2 .4 2.8 1.3.8.8 1.2 1.9 1.2 3.2 0 1.2-.4 2.3-1.2 3.2-.8.8-1.7 1.3-2.8 1.3-1.1 0-2-.5-2.8-1.3z"
fill="#FBBC04"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M37.1 20.7a7.3 7.3 0 002.2-5.3c0-2.2-.7-4-2.2-5.4A7.2 7.2 0 0031.8 8c-2.1 0-4 .7-5.4 2.1a7.2 7.2 0 00-2.1 5.4c0 2 .7 3.8 2.2 5.3a7.2 7.2 0 005.3 2.2c2.1 0 3.9-.8 5.3-2.2zm-8.6-2.1c-.8-.9-1.2-2-1.2-3.2 0-1.3.4-2.4 1.2-3.2.7-.9 1.7-1.3 2.8-1.3 1.1 0 2 .4 2.8 1.3.8.8 1.2 1.9 1.2 3.2 0 1.2-.4 2.3-1.2 3.2-.8.8-1.7 1.3-2.8 1.3-1.1 0-2-.5-2.8-1.3z"
fill="#EA4335"
/>
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M12 23a12.1 12.1 0 01-10.4-5.8 11 11 0 010-11.4C2.6 4 4 2.6 6 1.6a12.1 12.1 0 0114 1.6l-2.2 2.2A8.4 8.4 0 0012 3c-2.4 0-4.4.9-6 2.5a8 8 0 00-2.5 5.9 8 8 0 002.5 6 8.2 8.2 0 006 2.4c2 0 3.8-.6 5.2-1.7a6.6 6.6 0 002.5-4.6H12v-3.1h10.8l.2 2c0 3.1-1 5.7-3.1 7.6-2.1 2-4.7 2.9-8 2.9z"
fill="#4285F4"
/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 2.3 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

До

Ширина:  |  Высота:  |  Размер: 21 KiB

После

Ширина:  |  Высота:  |  Размер: 12 KiB

Двоичные данные
go.dev/static/images/gophers/factory.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 47 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

До

Ширина:  |  Высота:  |  Размер: 16 KiB

После

Ширина:  |  Высота:  |  Размер: 9.6 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 97 KiB

Двоичные данные
go.dev/static/images/gophers/newscasters.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 11 KiB

Двоичные данные
go.dev/static/images/gophers/shopping-cart.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 148 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 23 KiB

Просмотреть файл

@ -0,0 +1,8 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="2" width="7" height="12">
<path d="M5.06 12.3934L6 13.3334L11.3333 8.00002L6 2.66669L5.06 3.60669L9.44666 8.00002" fill="white"/>
</mask>
<g mask="url(#mask0)">
<rect width="16" height="16" fill="#5F6368"/>
</g>
</svg>

После

Ширина:  |  Высота:  |  Размер: 386 B

Просмотреть файл

@ -0,0 +1,3 @@
<svg width="12" height="8" viewBox="0 0 12 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1.0575 0.692505L0 1.75L6 7.75L12 1.75L10.9425 0.692505L6 5.6275" fill="#5F6368"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 193 B

Просмотреть файл

@ -0,0 +1,9 @@
<svg width="36" height="24" viewBox="0 0 36 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M7.76465 11.8273L14.8235 8.47058V9.78368L9.22436 12.3377V12.3669L14.8235 14.9359V16.2353L7.76465 12.8786V11.8273Z" fill="#007D9C"/>
<path d="M16.2354 15.5294L19.3674 5.64709H20.4706L17.3391 15.5294H16.2354Z" fill="#007D9C"/>
<path d="M28.2353 12.9078L21.1765 16.2353V14.9359L26.8657 12.3669V12.3383L21.1765 9.76937V8.47058L28.2353 11.7981V12.9078Z" fill="#007D9C"/>
<path d="M34.2003 24H1.80031L0 22.5883H36L34.2003 24Z" fill="#007D9C"/>
<path d="M33.8818 21.8824H32.755V1.44423C32.755 1.2637 32.6007 1.11095 32.417 1.11095H3.5825C3.3994 1.11095 3.24446 1.26315 3.24446 1.44423V21.8824H2.11768V1.44423C2.11768 0.647683 2.77459 0 3.5825 0H32.4176C33.2255 0 33.8824 0.647683 33.8824 1.44423V21.8824H33.8818Z" fill="#007D9C"/>
<path d="M14.5089 21.8823H0V22.5882H15.5294C15.0095 22.5882 14.5935 22.2786 14.5089 21.8823Z" fill="#007D9C"/>
<path d="M21.4905 21.8823C21.4059 22.2786 20.9905 22.5882 20.4706 22.5882H36V21.8823H21.4905Z" fill="#007D9C"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Просмотреть файл

@ -0,0 +1,7 @@
<svg width="36" height="35" viewBox="0 0 36 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M36 6.44739H0V35H36V6.44739ZM1.63636 8.12695H34.3636V33.3205H1.63636V8.12695Z" fill="#007D9C"/>
<rect x="5.40002" y="3.6842" width="26.1" height="1.84211" fill="#007D9C"/>
<rect x="8.09998" width="19.8" height="1.84211" fill="#007D9C"/>
<path d="M12.5021 24.8684C12.2648 24.8684 12.067 24.7841 11.9088 24.5732C11.6319 24.2359 11.6715 23.6878 12.0274 23.3926L16.0223 19.8085L11.9879 16.2244C11.6715 15.9292 11.5923 15.3811 11.8692 15.0438C12.1461 14.7064 12.6603 14.6221 12.9767 14.9173L17.7231 19.1338C17.9208 19.3025 18 19.5133 18 19.7663C18 20.0193 17.8813 20.2723 17.7231 20.3988L12.9767 24.6154C12.858 24.7841 12.6998 24.8684 12.5021 24.8684Z" fill="#007D9C"/>
<path d="M23.5125 26.7105H18.7875C18.3544 26.7105 18 26.296 18 25.7895C18 25.2829 18.3544 24.8684 18.7875 24.8684H23.5125C23.9456 24.8684 24.3 25.2829 24.3 25.7895C24.3 26.296 23.9456 26.7105 23.5125 26.7105Z" fill="#007D9C"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 1.0 KiB

Просмотреть файл

@ -0,0 +1,14 @@
<svg width="36" height="36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M18 13a5 5 0 100 10 5 5 0 000-10zm0 9c-2 0-4-2-4-4s2-4 4-4 4 2 4 4-2 4-4 4z"
fill="#007D9C"
/>
<path
d="M31 22l-1-1-2-1a11 11 0 000-4l1-1c2-1 2-2 1-3l-1-2-2-1h-1l-1 1-4-2V6l-2-2h-2c-2 0-3 1-3 2v2l-4 2-1-1H8l-2 1-1 2v2l1 1 1 1a11 11 0 000 4l-1 1c-1 1-2 2-1 3l1 2 2 1h1l1-1 5 2v2c0 1 0 2 2 2h2l2-2v-2l4-2 1 1h2l1-1 1-2 1-2zm-2 1l-1 2v1h-1l-2-2v1l-5 2v3l-1 1h-2l-1-1v-2l-1-1-4-2-2 1H8l-1-1-1-2 1-1 1-1a9 9 0 010-5l1-1-3-1v-1l1-2 1-1h1l2 2v-1l4-2V6l2-1h2l1 1v3l4 2 1 1 2-2 1 1 1 2v1l-2 1v6l2 1 1 1h-1z"
fill="#007D9C"
/>
<path
d="M8 4c5-4 12-4 18-1l-2 1 6 1-3-5v2C21-1 13-1 7 3v1h1zM3 9l1 2 1-6-5 3 2 1c-3 6-3 13 1 19h1v-1C0 22 0 15 3 9zM27 32c-5 4-12 4-18 1l2-1-6-1 3 5 1-2 9 2c3 0 7-1 10-3v-1h-1zM33 7h-1v1c4 5 4 12 1 18l-1-2-1 6 5-3h-2c3-6 3-14-1-20z"
fill="#007D9C"
/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 897 B

Просмотреть файл

@ -0,0 +1,10 @@
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="12" height="12">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6816 1.49605L10.7568 0.37836C10.5772 0.152162 10.3044 0.0124512 9.99173 0.0124512H2.00826C1.69557 0.0124512 1.4228 0.152162 1.23652 0.37836L0.318423 1.49605C0.125489 1.72224 0.0123901 2.02162 0.0123901 2.34096V10.6571C0.0123901 11.3889 0.611151 11.9877 1.34297 11.9877H10.657C11.3888 11.9877 11.9876 11.3889 11.9876 10.6571V2.34096C11.9876 2.02162 11.8745 1.72224 11.6816 1.49605ZM2.16793 1.34303H9.83206L10.3842 2.00832H1.62239L2.16793 1.34303ZM1.34297 3.3389V10.6571H10.657V3.3389H1.34297Z" fill="white"/>
</mask>
<g mask="url(#mask0)">
<rect x="-1.98346" y="-1.98352" width="15.9669" height="15.9669" fill="#80868B"/>
</g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.14288 2.0083H6.85717V7.71432H5.14288V2.0083Z" fill="#007D9C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.6539 0.828125H6.30011L6.85717 2.00821H5.14288L5.6539 0.828125Z" fill="#007D9C"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 1.1 KiB

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

После

Ширина:  |  Высота:  |  Размер: 5.4 KiB

Просмотреть файл

До

Ширина:  |  Высота:  |  Размер: 71 KiB

После

Ширина:  |  Высота:  |  Размер: 71 KiB

Просмотреть файл

@ -0,0 +1,34 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="48px" height="48px" viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#006FCF;}
</style>
<title>Amercian_express</title>
<path id="logo-blue-box-small-45-9x45-a" class="st0" d="M48,48H0V0h48V48z"/>
<path class="st1" d="M48,26V0H0v48h48V34C47.9,34,48,26,48,26"/>
<path class="st0" d="M42.1,23.3h3.6v-8.4h-4V16L41,14.9h-3.4v1.5L37,14.9h-6.3c-0.2,0-0.4,0.1-0.6,0.1s-0.3,0.1-0.5,0.2
s-0.3,0.1-0.5,0.2v-0.5H10.9l-0.5,1.4l-0.5-1.4H5.6v1.5L5,14.9H1.5L0,18.5v4.8h2.5l0.4-1.2h0.8l0.4,1.2H23v-1.1l0.8,1.1H29v-0.6
c0.1,0.1,0.3,0.1,0.4,0.2s0.3,0.1,0.4,0.2c0.2,0.1,0.4,0.1,0.6,0.1h3.8l0.4-1.2h0.8l0.4,1.2H41v-1.1L42.1,23.3z M48,34v-7.9H18.6
l-0.7,1.1l-0.8-1.1H8.6v8.5h8.5l0.8-1.1l0.7,1.1H24v-1.8h-0.2c0.7,0,1.3-0.1,1.9-0.3v2.2h3.8v-1.1l0.8,1.1h15.9
C46.8,34.5,47.4,34.3,48,34z"/>
<path class="st1" d="M46.2,32h-2.9v1.2h2.8c1,0.1,1.8-0.6,1.9-1.6c0-0.1,0-0.2,0-0.2c0.1-0.8-0.5-1.5-1.4-1.6c-0.1,0-0.2,0-0.4,0H45
c-0.3,0-0.5-0.2-0.5-0.5c0,0,0,0,0-0.1c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0.1,0h2.5l0.5-1.2h-2.9c-1-0.1-1.8,0.6-1.9,1.6v0.1
c-0.1,0.8,0.5,1.6,1.4,1.6c0.1,0,0.2,0,0.3,0h1.3c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0.1C46.8,31.8,46.6,32,46.2,32z M40.9,32H38v1.2
h2.8c1,0.1,1.8-0.6,1.9-1.6c0-0.1,0-0.1,0-0.2c0.1-0.8-0.5-1.6-1.3-1.6c-0.1,0-0.3,0-0.4,0h-1.2c-0.3,0-0.5-0.2-0.5-0.5
c0,0,0,0,0-0.1c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0.1,0h2.5l0.5-1.2H40c-1-0.1-1.8,0.6-1.9,1.6v0.1c-0.1,0.8,0.5,1.6,1.4,1.6
c0.1,0,0.2,0,0.3,0h1.3c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0.1c0.1,0.3,0,0.5-0.3,0.6C41.1,32,41,32,40.9,32z M37.2,28.5v-1.2h-4.5V33
h4.5v-1.1H34v-1.2h3.1v-1.2H34v-1.1L37.2,28.5L37.2,28.5z M29.9,28.5c0.5,0,0.8,0.3,0.8,0.6s-0.2,0.6-0.8,0.6h-1.6v-1.4L29.9,28.5z
M28.3,31H29l1.7,2h1.6l-1.9-2.1c0.9-0.1,1.5-0.8,1.5-1.7c0-1-0.7-1.8-1.7-1.8c-0.1,0-0.1,0-0.2,0h-3V33h1.3L28.3,31z M24.9,29.3
c0,0.4-0.2,0.7-0.6,0.8h-0.1h-1.7v-1.5H24C24.5,28.5,24.8,28.8,24.9,29.3C24.9,29.2,24.9,29.3,24.9,29.3z M21.2,27.4V33h1.3v-1.9
h1.7c1,0.1,1.9-0.7,2-1.8c0-0.1,0-0.1,0-0.2c0-1-0.8-1.9-1.8-1.9h-0.1L21.2,27.4z M19.2,33h1.6l-2.3-2.9l2.2-2.8h-1.6l-1.4,1.8
l-1.4-1.8h-1.6l2.2,2.8l-2.2,2.8h1.6l1.4-1.8L19.2,33z M14.4,28.5v-1.1H10V33h4.5v-1.1h-3.3v-1.2h3.1v-1.2h-3.1v-1.1L14.4,28.5
L14.4,28.5z M40.4,18.5l2.2,3.4h1.6v-5.7H43V20l-0.3-0.5l-2-3.2h-1.8V22h1.3v-3.8L40.4,18.5z M34.9,18.4l0.4-1.2l0.4,1.2l0.5,1.3h-2
L34.9,18.4z M37.1,21.9h1.4L36,16.3h-1.7L31.8,22h1.4l0.5-1.2h2.8L37.1,21.9z M31.1,21.9l0.5-1.2h-0.3c-0.8,0-1.5-0.6-1.5-1.4
c0-0.1,0-0.2,0-0.2V19c-0.1-0.8,0.5-1.5,1.3-1.6c0.1,0,0.2,0,0.2,0h1.4v-1.1h-1.5c-1.4-0.1-2.6,1-2.7,2.4c0,0.1,0,0.2,0,0.3v0.1
c-0.2,1.4,0.8,2.6,2.1,2.8C30.8,21.9,31,21.9,31.1,21.9L31.1,21.9z M26.3,21.9h1.3v-5.6h-1.3V21.9z M23.5,17.4
c0.5,0,0.8,0.3,0.8,0.6s-0.2,0.6-0.8,0.6h-1.6v-1.4L23.5,17.4z M21.9,19.9h0.6l1.7,2h1.6L24,19.8c0.9-0.1,1.5-0.8,1.5-1.7
c0-1-0.7-1.8-1.7-1.8c-0.1,0-0.1,0-0.2,0h-3V22h1.3L21.9,19.9z M19.6,17.4v-1.2h-4.5v5.7h4.5v-1.2h-3.2v-1.2h3.1v-1.2h-3.1v-1.1h3.2
V17.4z M9.9,21.9H11l1.6-4.6v4.6h1.3v-5.7h-2.1l-1.3,3.9l-1.3-3.9H7.1v5.7h1.3v-4.6L9.9,21.9z M2.9,18.4l0.4-1.2l0.4,1.2l0.5,1.3
H2.4L2.9,18.4z M5.1,21.9h1.4L4,16.2H2.5L0,21.9h1.4l0.5-1.2h2.8L5.1,21.9z"/>
</svg>

После

Ширина:  |  Высота:  |  Размер: 3.2 KiB

Просмотреть файл

@ -1 +1,41 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 110 40" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M73.446 28.094c-4.623 3.275-10.08 6.702-15.953 10.3l-.232.134c-.08.054-.097.164-.043.243s.165.097.243.043l.195-.104 16.46-8.843a.66.66 0 0 1 .091-.049 7.14 7.14 0 0 1-.757-1.72zM103.693 3.6c-7.263-8.012-54.005-.805-73.878 3.532l-.464.097c-.094.017-.157.107-.14.2s.107.157.2.14l.457-.092C46.334 4.557 80.58.495 87.947 7.8c2.25 2.232 1.714 5.098-.897 8.49 1.403.903 2.402 2.323 2.854 4.098 10.183-6.757 17.02-13.214 13.787-16.782z" fill="#d03027"></path><g fill="#004977"><path d="M76.385 26c.092 2.818 1.878 5.13 4.202 5.13 4.507 0 6.428-5.537 6.293-9.233-.097-2.823-1.926-5.128-4.25-5.128-3.872-.005-6.378 5.507-6.244 9.232zm-2.378-.152c-.165-4.81 3.604-9.733 9.08-9.733 3.66 0 6.06 2.44 6.2 6.178.177 5.074-3.348 9.732-9.074 9.732-3.67 0-6.068-2.433-6.195-6.177zM22.145 24.57c-.195.073-.445.146-.758.213-.31.073-.884.17-1.714.305-.574.092-.97.207-1.2.372-.213.16-.34.347-.38.585-.043.25.037.445.25.604.22.153.586.232 1.104.232a3.57 3.57 0 0 0 1.134-.183c.372-.122.69-.287.927-.494.177-.153.305-.347.403-.585.06-.16.14-.506.232-1.05zm4.76-2.958c-.018.433-.097.83-.213 1.506l-.805 4.518c-.067.403.08.714.45.933l-.024.177-4.6-.005-.043-1.147c-.695.41-1.44.728-2.218.945-.732.19-1.324.268-2.208.268-1.488 0-2.342-.153-2.933-.67-.597-.53-.9-.884-.866-1.616.024-.42.244-.963.555-1.342.317-.38.756-.634 1.226-.866.476-.226 1.037-.39 1.848-.518.812-.134 1.95-.263 3.47-.4.8-.067 1.287-.25 1.512-.34.317-.122.445-.262.488-.518.085-.464-.06-.732-.683-.854-1.658-.325-4.775.213-6.378.6l.872-2.354c2.1-.31 4.098-.506 6.2-.506 3.336 0 4.397.945 4.36 2.164zm13.362 7.13l1.598-9.036h4.415l-1.598 9.036zM42.1 17.618c.134-.744 1.305-1.342 2.6-1.342 1.31 0 2.268.604 2.14 1.342-.14.744-1.305 1.353-2.622 1.353-1.305 0-2.256-.604-2.128-1.353zm19.847 6.97c-.253.083-.51.154-.768.213-.31.072-.884.164-1.714.3-.567.092-.97.207-1.19.372-.213.153-.335.347-.38.58-.054.25.043.45.25.604.226.153.59.226 1.11.226a3.8 3.8 0 0 0 1.134-.171c.38-.128.69-.287.933-.494.17-.152.3-.354.4-.585.06-.153.14-.5.238-1.043zm4.762-2.963c-.02.445-.097.835-.22 1.506l-.8 4.525c-.067.397.08.714.45.933l-.024.16-4.6.005-.037-1.153a8.91 8.91 0 0 1-2.214.945c-.73.195-1.324.274-2.22.274-1.488 0-2.335-.146-2.922-.67-.604-.537-.9-.884-.866-1.616.018-.433.238-.97.555-1.342.317-.4.756-.634 1.232-.866s1.037-.4 1.842-.525l3.476-.39c.793-.067 1.28-.244 1.506-.335.323-.122.445-.262.494-.525.08-.457-.06-.725-.676-.854-1.67-.325-4.775.213-6.378.6l.866-2.354c2.122-.31 4.098-.506 6.2-.506 3.323.005 4.384.958 4.354 2.17zm-53.874 3.872c-1.44.287-2.244.397-3.665.397-2.1 0-3.788-1.05-3.696-2.97.067-1.28 1.58-3.976 5.427-3.976 1.214 0 2.164.213 3.433.94l.56-3.134c-1.732-.653-2.88-.75-4.367-.738C5.5 16.068.65 18.362.045 23.026c-.61 4.738 5.178 5.922 7.745 5.922 1.483-.005 3.03-.067 4.464-.213zM48.72 19.66l.317-1.842 4.615-1.006-.494 2.842h2.262l-.433 1.817-2.195-.005-1.333 7.262s-4.446-.03-4.464 0l1.33-7.25h-1.67l.34-1.83h1.72zm24.62-3.397l-2.146 12.47-4.494.005 2.262-12.6zm-38.912 5.56c-.566-.004-1.117.18-1.567.524-.464.354-.756.866-.872 1.542-.14.787-.054 1.354.256 1.7.317.347.768.525 1.366.525.403 0 .812-.073 1.122-.226.38-.2.64-.41.866-.744.243-.347.403-.738.488-1.19.128-.714.018-1.244-.31-1.598-.323-.354-.768-.537-1.353-.537zM26.4 31.857l2.152-12.1h3.88l-.3 1.542c.335-.464.872-.84 1.616-1.147.75-.305 1.59-.53 2.506-.53 1.012 0 1.634.054 2.4.445.75.397 1.28.97 1.56 1.714.292.732.354 1.56.195 2.458a5.32 5.32 0 0 1-2.183 3.531c-1.183.866-2.25 1.09-3.77 1.098-.537 0-.988-.054-1.36-.146-.366-.097-.66-.213-.878-.354-.213-.14-.433-.34-.725-.66l-.72 4.147zm80.138-8.92c-.024-.725-.39-1.22-1.14-1.22-1.81 0-3.734 3.55-4.067 4.976 2.97.005 5.28-1.762 5.208-3.756zm.4 5.56l.347.238c-.884 1.8-2.684 3.244-4.793 3.244-1.732 0-3.146-1.152-3.22-3.31-.14-3.872 3.488-7.464 6.458-7.464 1.274 0 2.458.555 2.506 1.926.1 3.084-4.214 4.02-7.06 4.085-.092.323-.128.647-.1 1.134.054 1.274.812 2.348 2.415 2.348 1.378 0 2.756-1.11 3.463-2.2z"></path><path d="M89.21 22.838l1.012-.097c.323 0 .628.06.647.38.005.19-.335 1.56-.41 1.878l-.69 3.036-.848 3.573H90.7l.994-4.81c3.03-3.16 4.202-4.19 4.915-4.19.323 0 .543.17.56.555.018.555-.325 1.817-.445 2.183l-1.012 3.506c-.232.787-.403 1.5-.38 2.006.03.768.494 1.11 1.19 1.11 1.3 0 2.232-1.353 3.05-2.67l-.238-.433c-.325.53-1.098 1.695-1.7 1.695-.19 0-.372-.128-.38-.445-.018-.408.153-1.024.274-1.433l1.128-4.1c.305-1.134.445-1.86.433-2.25-.03-.768-.476-1.128-1.165-1.128-1.165 0-2.708.854-5.982 4.615h-.054l.415-1.835.653-2.78c-1.134.41-2.756.866-3.756 1.06z"></path></g></g></symbol></svg>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 100.4 48" style="enable-background:new 0 0 100.4 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D03027;}
.st1{fill:#004977;}
</style>
<title>captial-one</title>
<path class="st0" d="M68.1,32c-4.3,3-9.3,6.2-14.8,9.5l-0.2,0.1c-0.1,0.1-0.1,0.2,0,0.2c0.1,0.1,0.2,0.1,0.2,0c0,0,0,0,0,0l0,0
l0.2-0.1l15.2-8.2h0.1C68.6,33.2,68.3,32.6,68.1,32L68.1,32z M96.1,9.4c-6.7-7.4-50-0.8-68.4,3.3l-0.4,0.1c-0.1,0-0.1,0.1-0.1,0.2
c0,0.1,0.1,0.1,0.2,0.1l0,0l0.4-0.1c15.3-2.7,47-6.5,53.8,0.3c2.1,2.1,1.6,4.7-0.8,7.9c1.4,0.9,2.3,2.2,2.7,3.8
C92.9,18.7,99.2,12.7,96.1,9.4L96.1,9.4z"/>
<path class="st1" d="M70.8,30.1c0.1,2.6,1.7,4.8,3.9,4.8c4.2,0,6-5.1,5.8-8.6c-0.1-2.6-1.8-4.8-3.9-4.8C73,21.6,70.7,26.7,70.8,30.1
z M68.6,30c-0.2-4.5,3.3-9,8.4-9c3.4,0,5.6,2.3,5.8,5.7c0.2,4.7-3.1,9-8.4,9C71,35.7,68.8,33.5,68.6,30L68.6,30z M20.6,28.8
c-0.2,0.1-0.5,0.1-0.7,0.2c-0.3,0.1-0.8,0.2-1.6,0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.2,0.1-0.3,0.3-0.4,0.5c0,0.2,0,0.4,0.2,0.6
c0.3,0.2,0.7,0.2,1,0.2c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.5c0.2-0.1,0.3-0.3,0.4-0.5C20.4,29.5,20.5,29.1,20.6,28.8
L20.6,28.8z M25.1,26.1c0,0.5-0.1,0.9-0.2,1.4l-0.7,4.2c-0.1,0.3,0.1,0.7,0.4,0.9v0.2h-4.3v-1.1c-0.6,0.4-1.3,0.7-2.1,0.9
c-0.7,0.2-1.3,0.3-2,0.2c-1,0.1-1.9-0.1-2.7-0.6c-0.5-0.3-0.8-0.9-0.8-1.5c0-0.5,0.2-0.9,0.5-1.2c0.3-0.3,0.7-0.6,1.1-0.8
c0.5-0.2,1.1-0.4,1.7-0.5c0.8-0.1,1.8-0.2,3.2-0.4c0.5,0,1-0.1,1.4-0.3c0.3-0.1,0.4-0.2,0.5-0.5c0.1-0.4-0.1-0.7-0.6-0.8
c-2-0.1-4,0-5.9,0.6l0.8-2.2c1.9-0.3,3.8-0.5,5.7-0.5C24.1,24,25.1,24.9,25.1,26.1L25.1,26.1z M37.4,32.7l1.5-8.4H43l-1.5,8.4H37.4z
M39.1,22.4c0.1-0.7,1.2-1.2,2.4-1.2s2.1,0.6,2,1.2s-1.2,1.2-2.4,1.2S39,23,39.1,22.4L39.1,22.4z M57.5,28.8
c-0.2,0.1-0.5,0.1-0.7,0.2c-0.3,0.1-0.8,0.1-1.6,0.3c-0.4,0-0.8,0.1-1.1,0.3c-0.2,0.1-0.3,0.3-0.3,0.5c-0.1,0.2,0,0.4,0.2,0.6
c0.3,0.2,0.7,0.2,1,0.2c0.3,0,0.7-0.1,1-0.2c0.3-0.1,0.6-0.2,0.9-0.5c0.2-0.2,0.3-0.3,0.4-0.5C57.3,29.4,57.4,29.1,57.5,28.8
L57.5,28.8z M61.9,26.1c0,0.5-0.1,0.9-0.2,1.4L61,31.6c-0.1,0.3,0.1,0.7,0.4,0.9v0.2h-4.3v-1.1c-0.6,0.4-1.3,0.7-2,0.9
c-0.7,0.2-1.4,0.3-2.1,0.3c-1.4,0-2.2-0.1-2.7-0.6s-0.9-0.8-0.9-1.5c0-0.5,0.2-0.9,0.5-1.2c0.3-0.4,0.7-0.6,1.1-0.8
c0.5-0.2,1.1-0.4,1.7-0.5l3.2-0.4c0.5,0,1-0.1,1.4-0.3c0.2-0.1,0.4-0.2,0.5-0.5c0.1-0.4-0.1-0.7-0.6-0.8c-2-0.1-4,0-5.9,0.5l0.8-2.2
C54,24.2,56,24,57.9,24C61,24,62,24.9,61.9,26.1L61.9,26.1z M11.9,29.6C10.8,29.9,9.7,30,8.5,30c-2,0-3.5-1-3.4-2.8
c0.1-1.2,1.5-3.7,5-3.7c1.1,0,2.2,0.3,3.2,0.9l0.5-2.9c-1.3-0.5-2.7-0.7-4-0.7c-4.7,0-9.1,2.2-9.7,6.5s4.8,5.5,7.2,5.5
c1.4,0,2.8-0.1,4.1-0.2L11.9,29.6z M45.2,24.2l0.3-1.7l4.3-0.9l-0.5,2.6h2.1L51,25.9h-2l-1.2,6.7h-4.1l1.2-6.7h-1.5l0.3-1.7
L45.2,24.2L45.2,24.2z M68,21.1l-2,11.5h-4.2L64,21L68,21.1z M32,26.2c-0.5,0-1,0.2-1.5,0.5c-0.4,0.4-0.7,0.9-0.8,1.4
c-0.2,0.5-0.1,1.1,0.2,1.6c0.3,0.3,0.8,0.5,1.3,0.5c0.3,0,0.7-0.1,1-0.2c0.3-0.2,0.6-0.4,0.8-0.7c0.2-0.3,0.4-0.7,0.5-1.1
c0.1-0.5,0-1-0.3-1.5C32.9,26.4,32.4,26.2,32,26.2L32,26.2z M24.6,35.5l2-11.2h3.6l-0.3,1.4c0.4-0.5,0.9-0.9,1.5-1.1
c0.7-0.3,1.5-0.5,2.3-0.5c0.8-0.1,1.5,0.1,2.2,0.4c0.7,0.3,1.2,0.9,1.5,1.6c0.3,0.7,0.3,1.5,0.2,2.3c-0.2,1.3-0.9,2.5-2,3.3
c-1,0.7-2.3,1.1-3.5,1c-0.4,0-0.8,0-1.3-0.1c-0.3-0.1-0.6-0.2-0.8-0.3c-0.3-0.2-0.5-0.4-0.7-0.6l-0.7,3.9L24.6,35.5z M98.8,27.3
c0.1-0.5-0.3-1-0.9-1.1h-0.2c-1.7,0-3.5,3.3-3.8,4.6C96.8,30.8,98.9,29.1,98.8,27.3z M99.2,32.4l0.3,0.2c-0.8,1.8-2.5,2.9-4.4,3
c-1.6,0.1-2.9-1.2-3-2.8c0-0.1,0-0.2,0-0.2c-0.1-3.6,3.2-6.9,6-6.9c1.2,0,2.3,0.5,2.3,1.8c0.1,2.9-3.9,3.7-6.5,3.8
c-0.1,0.3-0.1,0.7-0.1,1c-0.1,1.2,0.8,2.1,2,2.2H96C97.3,34.3,98.5,33.6,99.2,32.4z"/>
<path class="st1" d="M82.7,27.2l0.9-0.1c0.3,0,0.6,0.1,0.6,0.4c-0.1,0.6-0.2,1.2-0.4,1.7L83.2,32l-0.8,3.3h1.7l0.9-4.5
c2.8-2.9,3.9-3.9,4.6-3.9c0.3,0,0.5,0.2,0.5,0.4v0.1c-0.1,0.7-0.2,1.4-0.4,2l-0.9,3.2c-0.2,0.6-0.3,1.2-0.3,1.9c0,0.6,0.4,1,1,1h0.1
c1.2,0,2.1-1.2,2.8-2.5l-0.2-0.4c-0.3,0.5-1,1.6-1.6,1.6c-0.2,0-0.3-0.1-0.3-0.4c0-0.4,0.1-0.9,0.2-1.3l1-3.8
c0.2-0.7,0.3-1.4,0.4-2.1c0-0.6-0.4-1-1-1h-0.1c-1.1,0-2.5,0.8-5.5,4.3l0,0l0.4-1.7l0.6-2.6c-1.1,0.4-2.3,0.7-3.5,1L82.7,27.2z"/>
</svg>

До

Ширина:  |  Высота:  |  Размер: 4.8 KiB

После

Ширина:  |  Высота:  |  Размер: 4.1 KiB

Двоичные данные
go.dev/static/images/logos/cloudflare.png Normal file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 44 KiB

Просмотреть файл

@ -0,0 +1,33 @@
<svg version="1.1" id="Layer_2_1_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 134 48" style="enable-background:new 0 0 134 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#F48120;}
.st2{fill:#FAAD3F;}
.st3{fill:#404041;}
</style>
<g>
<path class="st0" d="M125.2,15.8l-7.4-1.7l-1.3-0.5l-33.9,0.3v16.3l42.6,0.1L125.2,15.8z"/>
<path class="st1" d="M111.3,28.7c0.4-1.3,0.3-2.6-0.4-3.4s-1.6-1.3-2.8-1.4l-22.9-0.3c-0.1,0-0.3-0.1-0.4-0.1
c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.3,0.3-0.4,0.5-0.4l23.1-0.3c2.8-0.1,5.7-2.4,6.7-5l1.3-3.4c0-0.1,0.1-0.3,0-0.4
C115,6.9,109,1.9,101.9,1.9c-6.6,0-12.3,4.2-14.2,10.1c-1.3-0.9-2.9-1.4-4.7-1.3c-3.2,0.3-5.7,2.9-6.1,6.1c-0.1,0.8,0,1.6,0.1,2.4
c-5.1,0.1-9.4,4.3-9.4,9.6c0,0.5,0,0.9,0.1,1.4c0,0.3,0.3,0.4,0.4,0.4h42.3c0.3,0,0.5-0.1,0.5-0.4L111.3,28.7z"/>
<path class="st2" d="M118.6,14h-0.7c-0.1,0-0.3,0.1-0.4,0.3l-0.9,3.2c-0.4,1.3-0.3,2.6,0.4,3.4s1.6,1.3,2.8,1.4l4.9,0.3
c0.1,0,0.3,0.1,0.4,0.1c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.3-0.3,0.4-0.5,0.4l-5,0.3c-2.8,0.1-5.7,2.4-6.7,5l-0.3,1.2
c-0.1,0.1,0,0.4,0.3,0.4h17.4c0.3,0,0.4-0.1,0.4-0.4c0.3-1.1,0.5-2.2,0.5-3.4C131.1,19.6,125.4,14,118.6,14"/>
<path class="st3" d="M132.8,37.7c-0.7,0-1.2-0.5-1.2-1.2s0.5-1.2,1.2-1.2c0.7,0,1.2,0.5,1.2,1.2S133.5,37.7,132.8,37.7 M132.8,35.6
c-0.5,0-0.9,0.4-0.9,0.9c0,0.5,0.4,0.9,0.9,0.9s0.9-0.4,0.9-0.9S133.3,35.6,132.8,35.6 M133.3,37.2h-0.3l-0.3-0.4h-0.3v0.4h-0.3V36
h0.7c0.3,0,0.4,0.1,0.4,0.4c0,0.1-0.1,0.3-0.3,0.4L133.3,37.2L133.3,37.2z M132.9,36.5c0.1,0,0.1,0,0.1-0.1c0-0.1-0.1-0.1-0.1-0.1
h-0.4v0.4h0.4V36.5z M14.8,35.3h2.9v7.9h5v2.5h-7.9L14.8,35.3z M25.7,40.5c0-3,2.4-5.4,5.7-5.4s5.5,2.4,5.5,5.4s-2.4,5.4-5.7,5.4
C28.1,45.9,25.7,43.5,25.7,40.5 M34,40.5c0-1.6-1.1-2.9-2.6-2.9c-1.6,0-2.6,1.3-2.6,2.8c0,1.4,1.1,2.8,2.6,2.8
C32.9,43.4,34,42,34,40.5 M40.4,41.1v-5.8h2.9v5.8c0,1.4,0.8,2.2,2,2.2s2-0.7,2-2.1v-5.9h2.9v5.8c0,3.4-2,4.9-4.9,4.9
C42.3,45.9,40.4,44.4,40.4,41.1 M54.5,35.3h4.1c3.7,0,5.9,2.1,5.9,5.1s-2.2,5.3-5.9,5.3h-4V35.3H54.5z M58.6,43.1
c1.7,0,2.9-0.9,2.9-2.6s-1.2-2.6-2.9-2.6h-1.2v5.3H58.6z M68.6,35.3h8.3v2.5h-5.4v1.7h4.9v2.4h-4.9v3.8h-2.9L68.6,35.3z M81,35.3
h2.9v7.9h5v2.5H81V35.3z M96.4,35.2h2.9l4.5,10.5h-3.2l-0.8-1.8h-4.1L95,45.7h-3C92,45.7,96.4,35.2,96.4,35.2z M99.1,41.7l-1.2-2.9
l-1.2,2.9H99.1z M107.5,35.3h4.9c1.6,0,2.6,0.4,3.4,1.2c0.7,0.7,0.9,1.4,0.9,2.4c0,1.6-0.8,2.6-2.1,3.2l2.5,3.7h-3.3l-2.1-3.2h-1.3
v3.2h-2.9C107.5,45.7,107.5,35.3,107.5,35.3z M112.3,40.3c0.9,0,1.6-0.5,1.6-1.2c0-0.8-0.7-1.2-1.6-1.2h-1.8v2.5h1.8V40.3z
M120.8,35.3h8.4v2.4h-5.5v1.6h5v2.4h-5v1.6h5.7v2.5h-8.6L120.8,35.3z M8.4,41.8c-0.4,0.9-1.3,1.6-2.4,1.6c-1.6,0-2.6-1.3-2.6-2.8
s1.1-2.8,2.6-2.8c1.2,0,2.1,0.8,2.5,1.7h3C11.1,37,9,35.2,6.1,35.2c-3.2,0-5.7,2.4-5.7,5.4S2.8,46,5.9,46c2.8,0,4.9-1.8,5.5-4.2
H8.4z"/>
</g>
</svg>

После

Ширина:  |  Высота:  |  Размер: 2.8 KiB

Просмотреть файл

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="48.1" height="48">
<path
d="M48 2h-1l-2-1a26 26 0 00-21 3A26 26 0 003 1L1 2H0v1l1 3h4l5-1 10 2-5 6-1 1v1l-1 2-1 9c0 7 3 14 8 19l1 1 1 1 1 1h2l1-1 1-1 1-1a26 26 0 006-29l-1-1v-2l-5-6a22 22 0 0115-1h4l1-2V2zM22 41c-4-4-6-9-6-15v-2l1-5 3 5c2 3 3 7 3 11l-1 6zm11-15l-2 7-4 8-1-2-1-4 2-9 5-7 1 7zm-4-12a21 21 0 01-10 0l5-5 5 5z"
fill="#152849"
/>
<path d="M17 19c3 2 8 10 5 23-3-3-9-12-5-23z" fill="#76de49" />
<path d="M26 42c4-3 9-11 6-24-4 4-9 13-6 24z" fill="#37a806" />
</svg>

После

Ширина:  |  Высота:  |  Размер: 540 B

Просмотреть файл

@ -0,0 +1,34 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 134 48" style="enable-background:new 0 0 134 48;" xml:space="preserve">
<g>
<path d="M21.3,34.4c-1-1.4-0.8-1.1-2.1-0.7c-8.2,3-15.4-3.9-14.3-11.1c0.4-2.7,1.3-5.1,3.5-6.8c2.8-2.3,6.1-3,9.6-1.9
c0.7,0.2,1.3,0.1,1.9-0.3c1-0.7,2.1-1.5,3.1-2.2c0.2-0.1,0.4-0.3,0.7-0.5c-1.2-0.5-2.2-1-3.2-1.4c-1.1-0.4-2.3-0.6-3.4-0.8
c-0.9,0-1.8,0-2.7,0c-1.3,0.3-2.8,0.4-4.1,1C4.4,11.8,1,16.1,0.1,22.3c0,0.1-0.1,0.3-0.1,0.4c0,0.9,0,1.8,0,2.7
c0.4,1.4,0.5,2.9,1.1,4.2c2.3,5.5,6.4,8.8,12.4,9.6c0.1,0,0.3,0.1,0.4,0.1c1,0,1.9,0,2.8,0c0.3,0.1,0.3,0.1,0.5,0
c1.9-0.2,3.7-0.8,5.4-1.7c0.5-0.2,0.5-0.5,0.2-1C22.2,35.9,21.8,35.2,21.3,34.4z"/>
<path d="M134,18.2c0-1.5,0-3,0-4.4c-0.1,0-0.3-0.1-0.4-0.1c-3.9,0-7.7,0-11.5,0c-0.1,0-0.2,0-0.4,0.1c0,6.7,0,13.3,0,19.9
c4.1,0,8.2,0,12.3,0c0-1.5,0-3,0-4.4c-2.6,0-5.1,0-7.8,0c0-1.2,0-2.2,0-3.4c2,0,4,0,6.1,0c0-1.5,0-2.9,0-4.3c-2,0-4,0-6.1,0
c0-1.1,0-2.2,0-3.3C128.8,18.2,131.4,18.2,134,18.2z"/>
<path d="M93.5,25.1c2.7-1.3,4-4,3.3-6.8s-3-4.6-6-4.6c-2.2,0-4.4,0-6.5,0c-0.2,0-0.4,0-0.7,0c0,6.7,0,13.2,0,19.9c1.5,0,3,0,4.5,0
c0-2.7,0-5.3,0-8.1c1.9,2.5,3.6,4.8,5.4,7.1c0.6,0.8,1.1,1.1,2.2,1c1.3-0.1,2.6,0,4,0c-2.2-2.9-4.3-5.7-6.5-8.5
C93.3,25.1,93.4,25.1,93.5,25.1z M92.6,20.1c-0.1,0.9-0.8,1.6-1.9,1.7c-0.1,0-0.3,0-0.4,0c-0.7,0-1.5,0-2.3,0c0-1.3,0-2.6,0-4
c1.1,0.1,2.2,0,3.2,0.2C92.2,18.2,92.7,19.1,92.6,20.1z"/>
<path d="M78,14.4c0-0.2,0-0.4,0-0.6c-1.6,0-3,0-4.5,0c0,0.3,0,0.5,0,0.8c0,3.6,0,7.1,0,10.6c0,0.4,0,0.9-0.1,1.3
c-0.4,2.5-2.9,3.8-5.2,2.8c-1.5-0.7-2.1-1.9-2.1-3.5c0-3.7,0-7.5,0-11.2c0-0.2,0-0.5,0-0.8c-1.6,0-3,0-4.5,0c0,1.3,0,2.5,0,3.7
c0,3.1-0.1,6.2,0.1,9.2c0.2,3.1,1.8,5.5,4.8,6.6c3.1,1.2,6.1,0.8,8.7-1.3c2-1.7,2.7-4,2.7-6.5C78,21.7,78,18.1,78,14.4z"/>
<path d="M54.3,26.9c-2.5,3.5-6.4,3.3-8.6,1.4c-2.5-2.1-2.8-6.1-0.5-8.6c1-1.2,2.4-1.9,3.9-1.9c2.2-0.1,3.9,1,5.2,2.8
c1.1-1,2.2-1.9,3.3-2.8c-2.3-3.6-7-5.2-11.2-3.9c-4.2,1.3-7.2,5.3-7.2,9.7s3,8.5,7.2,9.8s8.9-0.3,11.2-3.9
c-0.5-0.4-1.1-0.9-1.6-1.3C55.4,27.8,54.9,27.3,54.3,26.9z"/>
<path d="M113.8,13.7c-0.5,0-0.7,0.1-1,0.6c-1.3,2.9-2.5,5.7-3.8,8.6c-0.1,0.2-0.2,0.4-0.4,0.7c-0.1-0.3-0.2-0.4-0.3-0.7
c-1.3-2.9-2.5-5.8-3.8-8.7c-0.2-0.4-0.4-0.6-0.9-0.6c-1.2,0-2.5,0-3.6,0c-0.2,0-0.4,0-0.7,0.1c3.1,6.8,6.2,13.4,9.4,20.2
c3.1-6.8,6.2-13.5,9.4-20.2C116.6,13.8,115.2,13.8,113.8,13.7z"/>
<path d="M14.2,20.8c0.7,1,1.4,2,2.1,3.1c0.5,0.7,0.5,0.7,1.3,0.2c3.6-2.5,7.1-5,10.7-7.4c0.4-0.3,0.5-0.6,0.1-1
c-0.9-1-1.8-2.1-2.7-3.1c-0.1-0.1-0.3-0.2-0.4-0.4c-0.2,0.1-0.4,0.2-0.7,0.4c-3.3,2.4-6.8,4.7-10.1,7.1
C13.9,19.9,13.8,20.3,14.2,20.8z"/>
<path d="M30.4,20.8c-0.2-1-0.5-1.9-0.8-2.9c-0.4,0.2-0.6,0.4-0.8,0.5c-3.3,2.3-6.5,4.6-9.9,6.9c-1,0.7-1,0.9-0.3,1.9
s1.3,1.9,1.9,2.8c0.3,0.4,0.6,0.4,1,0.2c2.9-2,5.8-4,8.6-6c0.4-0.3,0.5-0.6,0.5-1.1C30.7,22.3,30.6,21.6,30.4,20.8z"/>
<path d="M22.5,31.7c-0.4,0.3-0.4,0.6-0.1,1c0.7,1,1.3,1.9,1.9,2.9c0.3,0.4,0.5,0.4,0.9,0.1c1.8-1.5,3.1-3.3,4-5.4
c0.5-1.3,1-2.5,1.1-3.9c-0.1,0-0.1,0-0.2,0C27.8,28,25.1,29.9,22.5,31.7z"/>
</g>
</svg>

После

Ширина:  |  Высота:  |  Размер: 3.0 KiB

Просмотреть файл

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 257 52" fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" width="300" height="300" font-family="Roboto" font-size="14px" text-anchor="middle"><defs><style type="text/css"></style></defs><use xlink:href="#A" x=".5" y=".5"></use><symbol id="A" overflow="visible"><g stroke="none" fill-rule="nonzero"><path d="M29.7 9.48l-14.854 9.48L29.7 28.44l-14.854 9.48L0 28.365l14.854-9.48L0 9.48 14.854 0 29.7 9.48zM14.775 40.928l14.854-9.48 14.854 9.48L29.63 50.4l-14.854-9.48zM29.7 28.365l14.854-9.48L29.7 9.48 44.484 0l14.854 9.48-14.854 9.48 14.854 9.48-14.854 9.48-14.775-9.56z" fill="#0061ff"></path><path d="M70.953 9.48h12c7.664 0 13.985 4.425 13.985 14.538v2.133c0 10.193-5.926 14.775-13.748 14.775H70.953V9.48zm6.716 5.7v20h5.136c4.346 0 7.27-2.844 7.27-9.165v-1.66c0-6.32-3.08-9.165-7.506-9.165h-4.9zm22.835.316h5.373l.87 5.926c1.027-4.03 3.635-6.163 8.375-6.163h1.66v6.795h-2.765c-5.452 0-6.795 1.896-6.795 7.27v11.694h-6.637v-25.52h-.08zm17.62 13.274v-.7c0-8.533 5.452-13.195 12.88-13.195 7.585 0 12.88 4.662 12.88 13.195v.7c0 8.375-5.136 12.88-12.88 12.88-8.217-.08-12.88-4.504-12.88-12.88zm18.963-.08v-.632c0-4.74-2.37-7.585-6.163-7.585-3.714 0-6.163 2.607-6.163 7.585v.632c0 4.583 2.37 7.2 6.163 7.2 3.793-.08 6.163-2.607 6.163-7.2zm10.272-13.195h5.53l.632 4.82c1.343-3.24 4.188-5.452 8.375-5.452 6.48 0 10.746 4.662 10.746 13.274v.7c0 8.375-4.74 12.8-10.746 12.8-4.03 0-6.795-1.817-8.138-4.74v12.88h-6.48l.08-34.3zM165.927 28.7v-.553c0-5.057-2.607-7.585-6.084-7.585-3.714 0-6.163 2.844-6.163 7.585v.474c0 4.504 2.37 7.348 6.084 7.348 3.793-.08 6.163-2.528 6.163-7.27zm16.514 7.585l-.553 4.662h-5.7V6.953h6.48V20c1.422-3.32 4.267-5.136 8.296-5.136 6.084.08 10.588 4.267 10.588 12.72v.8c0 8.454-4.267 13.274-10.746 13.274-4.267-.08-7.032-2.054-8.375-5.373zm12.326-7.9v-.632c0-4.662-2.528-7.27-6.084-7.27-3.635 0-6.163 2.923-6.163 7.348v.553c0 4.74 2.45 7.506 6.084 7.506 3.872 0 6.163-2.45 6.163-7.506zm9.64.395v-.7c0-8.533 5.452-13.195 12.88-13.195 7.585 0 12.88 4.662 12.88 13.195v.7c0 8.375-5.215 12.88-12.88 12.88-8.217-.08-12.88-4.504-12.88-12.88zm19.042-.08v-.632c0-4.74-2.37-7.585-6.163-7.585-3.714 0-6.163 2.607-6.163 7.585v.632c0 4.583 2.37 7.2 6.163 7.2 3.793-.08 6.163-2.607 6.163-7.2zm15.407-.948l-8.928-12.247h7.664l5.136 7.664 5.215-7.664h7.585l-9.086 12.168L256 40.928h-7.506l-5.847-8.454-5.7 8.454h-7.822l9.72-13.195z" fill="#000"></path></g></symbol></svg>
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 134 48"><defs><style>.cls-1{fill:none;}.cls-2{fill:#0061ff;}</style></defs><title>Dropbox</title><rect class="cls-1" width="134" height="48"/><path class="cls-2" d="M15.55,14.53l-7.78,5,7.78,5-7.78,5L0,24.42l7.78-5L0,14.53l7.78-5ZM7.73,31l7.78-5,7.77,5-7.77,5Zm7.82-6.57,7.77-5L15.55,14.5l7.73-5,7.78,5-7.78,5,7.78,5-7.78,5-7.73-5Z" transform="translate(0 -0.22)"/><path d="M37.14,14.26h6.28c4,0,7.32,2.32,7.32,7.61V23c0,5.33-3.1,7.73-7.2,7.73h-6.4Zm3.51,3V27.71h2.69c2.28,0,3.81-1.48,3.81-4.79v-.87c0-3.31-1.61-4.8-3.93-4.8Zm12,.16h2.81l.46,3.1c.53-2.11,1.9-3.22,4.38-3.22h.87v3.55H59.68c-2.85,0-3.56,1-3.56,3.81v6.12H52.65V17.41Zm9.22,7V24c0-4.46,2.85-6.9,6.74-6.9s6.74,2.44,6.74,6.9v.37c0,4.38-2.68,6.74-6.74,6.74-4.34,0-6.78-2.36-6.78-6.74Zm9.93,0V24c0-2.49-1.24-4-3.23-4s-3.23,1.36-3.23,4v.33c0,2.4,1.25,3.77,3.23,3.77s3.19-1.37,3.19-3.77Zm5.37-6.91H80L80.33,20a4.5,4.5,0,0,1,4.38-2.85c3.39,0,5.63,2.44,5.63,7v.36c0,4.39-2.48,6.7-5.63,6.7a4.35,4.35,0,0,1-4.26-2.48V35.5H77.09V17.55Zm9.72,6.91v-.29c0-2.64-1.36-4-3.18-4s-3.23,1.49-3.23,4v.25c0,2.36,1.24,3.85,3.19,3.85S86.89,26.9,86.89,24.42Zm8.65,4-.29,2.44h-3V12.94h3.4v6.83A4.36,4.36,0,0,1,100,17.08c3.18,0,5.54,2.23,5.54,6.66v.42c0,4.42-2.23,6.94-5.62,6.94a4.42,4.42,0,0,1-4.39-2.81ZM102,24.16v-.33c0-2.44-1.32-3.81-3.19-3.81s-3.22,1.53-3.22,3.85v.29c0,2.48,1.28,3.93,3.18,3.93S102,26.8,102,24.16Zm5,.2V24c0-4.47,2.86-6.91,6.75-6.91s6.74,2.44,6.74,6.91v.36c0,4.39-2.73,6.75-6.74,6.75C109.44,31.06,107,28.75,107,24.36Zm10,0V24c0-2.48-1.24-4-3.22-4s-3.23,1.37-3.23,4v.33c0,2.4,1.24,3.77,3.23,3.77S117,26.73,117,24.32Zm8.07-.49-4.68-6.41h4l2.69,4,2.73-4h4L129,23.78l5,6.94h-3.93L127,26.3l-3,4.42h-4.1l5.09-6.9Z" transform="translate(0 -0.22)"/></svg>

До

Ширина:  |  Высота:  |  Размер: 2.5 KiB

После

Ширина:  |  Высота:  |  Размер: 1.7 KiB

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше