|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/go-data-structures-algorithms-and-design-patterns-with-go/
课程评论:没有评论
课程名称:Go语言:数据结构、算法与设计模式 课程概述:该课程深入探讨Go语言,这是一种支持多范式的编程语言,具备创建并发应用程序的内置功能。本课程旨在通过实践的方式,引导学习者理解Go的基本数据类型、数据结构、链表及双向链表。学员将学习图算法,例如二叉树,并掌握用于维护数千个服务器的CSP并发设计模式。此外,课程还包括经典设计模式的深度讲解,旨在帮助学员构建简洁、可读且易于维护的软件。 课程内容: 1. **学习Go数据结构与算法**:课程开始于基本数据类型和结构的理解,逐步深入链表及双向链表的强大功能,以及栈和队列的实现。重点讲解二分查找、树以及详细的排序算法。学员还将了解图算法及处理字符串时常用的数据结构,掌握数据预处理、建模和转换的技巧。 2. **Go经典设计模式导论**:本课程介绍Go编程基础,阐述设计模式的创建背景及其在开发者间的共同语言作用。学员将学习在Go中应用23种“四人帮”(GoF)设计模式和CSP并发模式,这是Go的核心特性,帮助谷歌开发维护数千服务器的软件。 3. **Go行为模式**:该阶段将提高学生对经典设计模式的理解,展示如何用Go独特的方式解决问题,避免继承的限制,从而实现不同更优的解决方案。 4. **Go并发编程**:本部分注重并发结构及并行执行的学习。学员将使用Go的基本原语编写并发应用,开发相关的经典设计模式以最大化并行性。 作者介绍:Gustavo是一位经验丰富的软件开发者,自本世纪初以来持续编写代码,对于Go特别感兴趣,目前担任Golang团队的技术负责人,专注于构建分布式系统。Mario Castro Contreras是一位软件工程师,专注于分布式系统和大数据解决方案,现任站点可靠性工程师,致力于使用Google Cloud套件的容器化解决方案和应用。 通过本课程,学员将获得构建高效、优雅以及可维护的Go应用的全面能力。
Go is a multi-paradigm programming language that has built-in facilities to create concurrent applications. Design Patterns will provide readers with a reference point to software design patterns and CSP concurrency design patterns to help them build applications in a more idiomatic, robust, and convenient way in Go.With this hands-on, practical course, you'll first have a deep dive into understanding the basic data types, structures, linked lists and doubly linked lists in Go. Then, you will learn about graph algorithms such as binary & trees. You will then learn about CSP concurrency patterns used to maintain thousands of servers. Moving further, you will also gain advanced knowledge about classic design patterns to build concise, readable, and maintainable applications & software.Finally, you will learn concurrent structures and parallel execution which helps you improve your concepts of Go Concurrency to write concurrent apps & develop some classical design patterns with concurrent structures to maximize parallelism. Contents and OverviewThis training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.The first course, Learning Go Data Structures, and Algorithms will begin by understanding the basic Data types and Structures in Go. Moving forward, you will learn the power of linked lists and doubly linked lists in Go and then learn to implement linear data structures such as stacks and queues. Also, implement binary searches and trees and will explore sorting algorithms in detail. From here, you will learn about graph algorithms and also be introduced to some common data structures used while working with strings. You will learn common techniques and structures used in tasks such as preprocessing, modelling, and transforming data. By the end of this course, you would have mastered functional and reactive implementations of traditional data structures in an easy and efficient mannerThe second course, Introduction to Go Classical Patterns starts with a brief introduction to Go programming essentials and quickly moves on to explain the idea behind the creation of design patterns and how they appeared in the 90's as a common "language" between developers to solve common tasks in object-oriented programming languages. You will then learn how to apply the 23 Gang of Four (GoF) design patterns in Go and also learn about CSP concurrency patterns, the "killer feature" in Go that has helped Google develop software to maintain thousands of servers. With all of this, the book will enable you to understand and apply design patterns in an idiomatic way that will produce concise, readable, and maintainable software.The third course, Go Behavioural Patterns will take you to an advanced level of knowledge about classic design patterns but, as you will see, the design patterns covered here are quite different, partly because of the lack of inheritance in Go, but also because we have different and more optimal ways to solve the same problems. With all this, the course will enable you to understand and apply design patterns in an idiomatic way that will produce concise, readable, and maintainable software.The fourth course, Go Concurrency is on learning about concurrent structures and parallel execution. You will use the majority of Go primitives to write concurrent apps, and we will develop some classical design patterns with concurrent structures to maximize parallelism. Also, you will learn some typical structures with which to develop concurrent apps in Go. You will learn how a classical pattern can become more complex if you need it to work in a concurrent way; however, the idea is to understand Go concurrent primitives so that you know how to write your own concurrent design patterns by using the knowledge taken from the course.About the Authors: Gustavo is an experienced software developer and has been writing code since the beginning of the century. He has vast experience working with different languages, including Erlang, JavaScript, and C but with a major interest in Go. He is currently a Technical Leader of a Golang team that builds distributed systems. When he is not coding, you can find him cycling, rock-climbing, and playing guitar in his free time.Mario Castro Contreras is a software engineer who has specialized in distributed systems and big data solutions. He works as a site reliability engineer, and now he is focused on containerized solutions and apps using most of the Google Cloud suite, especially, Kubernetes. He has wide experience in systems and solutions integration, and he has written many scalable and reliable 12-factor apps using Go and Docker. He has designed big data architectures for financial services and the media, and he has written data processing pipelines using event-driven architectures entirely in Go. He is also very active in the open source community, and you can find him on his GitHub account with the username sayden. In the past, he has also written mobile applications and backends in Java. Mario is passionate about programming languages, and he finds the best balance between fun and productivity in Go; however, recently he enjoys writing in Rust and embedded systems in C. He is also passionate about road cycling and winter sports.