[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
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"extends": "google",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6
|
||||
},
|
||||
"rules": {
|
||||
"require-jsdoc": "off",
|
||||
"indent": "off",
|
||||
"arrow-parens": "off"
|
||||
}
|
||||
}
|
|
@ -17,4 +17,4 @@
|
|||
|
||||
# Ignore Hugo output
|
||||
public/
|
||||
resources/
|
||||
resources/
|
|
@ -1,2 +1,4 @@
|
|||
arrowParens: avoid
|
||||
singleQuote: true
|
||||
bracketSpacing: false
|
||||
quoteProps: consistent
|
||||
|
|
|
@ -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 language’s 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 it’s 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 you’re 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 language’s 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 it’s 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.
|
||||
|
||||
|
||||
Go’s 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 don’t 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 it’s 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 it’s popularity is it’s 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 Go’s “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 Go’s 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 CLI’s 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. 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.”
|
||||
{{< /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 CLI’s 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 don’t want to pollute your command line, or if you’re working with sensitive data which you don’t want to show up in the history, it’s 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 Go’s speed and simplicity, and mentioning that “[they] didn’t 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 company’s 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 MercadoLibre’s 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: Go’s 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 MercadoLibre’s 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. 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.
|
||||
|
||||
## 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 CloudFlare’s
|
||||
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
|
||||
---
|
После Ширина: | Высота: | Размер: 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/
|
||||
---
|
После Ширина: | Высота: | Размер: 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
|
||||
---
|
После Ширина: | Высота: | Размер: 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: IBM’s 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.
|
||||
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 it’s 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 it’s been a core component of YouTube’s 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 Go’s 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 %}}
|
||||
IBM’s 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 Go’s robust standard library and static typing
|
||||
Go’s fast build and startup times. Go’s 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.
|
||||
|
||||
### Quickly deploy CLIs with Go’s 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 Go’s low memory footprint and doc generator
|
||||
Go’s garbage collector means DevOps/SRE teams don’t have to worry about memory management. And Go’s 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. Go’s 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 Go’s 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. Go’s 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
|
||||
---
|
После Ширина: | Высота: | Размер: 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 MercadoLibre’s 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 I’ve seen**, It’s 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 MercadoLibre’s 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. MercadoLibre’s 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 Go’s contributions to network efficiency, the core API team builds and maintains the largest APIs at
|
||||
the center of the company’s 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 company’s 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. It’s 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 MercadoLibre’s 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
|
||||
|
||||
MercadoLibre’s 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 I’ve seen**, It’s 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 Go’s 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, MercadoLibre’s **build times are three times (3x) faster** and their **test suite runs an amazing 24 times
|
||||
faster**. This means the company’s 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: Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s goals.
|
||||
resources:
|
||||
- name: logo
|
||||
src: logo.svg
|
||||
params:
|
||||
alt: PayPal
|
||||
---
|
||||
|
||||
{{% pullquote author="Bala Natarajan" title="<span class=\"NoWrapSpan\">Sr. Director of Engineering,</span> <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 PayPal’s 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 %}}
|
||||
Go’s value in producing clean, efficient code that readily scales as software deployment scales made the language a strong fit to support PayPal’s 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. Go’s 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 PayPal’s 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. Natarajan’s current team is responsible for PayPal’s 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 company’s operational pipelines are increasingly dominated by Go because the language’s cleanliness and modularity help them achieve these goals. PayPal’s deployment of Go engenders a platform of creativity for developers, allowing them to produce simple, efficient, and reliable software at scale for PayPal’s 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 company’s developers benefit from Go’s 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. Go’s concurrency mechanisms have made it easy to write programs that get the most out of PayPal’s 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 PayPal’s 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
|
||||
|
||||
PayPal’s 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 - Go’s 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 - Go’s 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 CloudFlare’s 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 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, Go’s 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. It’s 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. “We’ve 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 Go’s 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 Go’s 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 Go’s 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 I’ve 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 don’t need any third-party library.”
|
||||
|
||||
4. **No need for a web framework** — “In most of the cases you really don’t 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). "We’ve 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, Go’s 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
|
||||
---
|
После Ширина: | Высота: | Размер: 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'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's first meetup group dedicated to the Go Programming Language.
|
||||
All skill levels are welcome - whether you'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'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're building web apps, designing APIs, thrive on scalability, or you're
|
||||
simply curious about this fun new(ish) language, let's meetup. <br/>\n• Meetup
|
||||
simply curious about this fun new(ish) language, let'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'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'll make you an event organizer.<br/>
|
||||
NOTE: We were formally called "Melbourne Young Professionals", but since it doesn't represent who we are, the name has changed to "Let's Go"<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'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 "Stammtisch". <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't usually get using a low-level language. Welcome to the Israeli Go language Group.<br/>
|
||||
If you'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're part of the Go Developer Network, and we're excited to connect with you all, no matter where you'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">What’s 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 ></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 couldn’t 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 ></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 ></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 ></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>— {{$author -}}</span>
|
||||
{{if $title -}},
|
||||
<span class="BackgroundQuote-title">{{$title | safeHTML}}</span>
|
||||
{{end -}}
|
||||
{{if $company -}}
|
||||
<span class="BackgroundQuote-title"> 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 -}}
|
||||
— {{$author -}}
|
||||
{{with .Get "link"}}
|
||||
<a
|
||||
class="PullQuote-link"
|
||||
href="{{.}}"
|
||||
target="_blank"
|
||||
rel="noopener">
|
||||
{{end -}}
|
||||
<span>
|
||||
— {{$author -}}
|
||||
</span>
|
||||
{{if $title -}},
|
||||
<span class="PullQuote-title">{{$title | safeHTML}}</span>
|
||||
{{end -}}
|
||||
{{if $company -}}
|
||||
<span class="PullQuote-title"> 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 -}}
|
||||
— {{$author -}}
|
||||
{{if $title -}}
|
||||
, <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 >
|
||||
</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">
|
||||
|
|
После Ширина: | Высота: | Размер: 27 KiB |
После Ширина: | Высота: | Размер: 62 KiB |
После Ширина: | Высота: | Размер: 43 KiB |
После Ширина: | Высота: | Размер: 90 KiB |
После Ширина: | Высота: | Размер: 93 KiB |
После Ширина: | Высота: | Размер: 79 KiB |
После Ширина: | Высота: | Размер: 76 KiB |
После Ширина: | Высота: | Размер: 79 KiB |
После Ширина: | Высота: | Размер: 63 KiB |
После Ширина: | Высота: | Размер: 88 KiB |
После Ширина: | Высота: | Размер: 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 |
После Ширина: | Высота: | Размер: 47 KiB |
До Ширина: | Высота: | Размер: 16 KiB После Ширина: | Высота: | Размер: 9.6 KiB |
После Ширина: | Высота: | Размер: 97 KiB |
После Ширина: | Высота: | Размер: 11 KiB |
После Ширина: | Высота: | Размер: 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 |
После Ширина: | Высота: | Размер: 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 |