Golang – Software Development with Go

  • مدت: ۶۰ ساعت

پیش‌نیاز

آشنایی با کامپیوتر

سرفصل‌ها

Getting Started & Environment Setup
  • Installing Go & Configuring GOPATH/GOROOT
  • VSCode Installing & Go Extension
  • Running Go Program via Terminal
  • First Program - Hello World
  • Terminal & Bash Commands
  • Git & SSH Authentication
  • Reading Official Go Documentation
Go Language Fundamentals
  • Variable Declaration
  1. var
  2. :=
  3. zero values
  • Built-in Types
  1. int
  2. float
  3. string
  4. bool
  • Numeral Systems
  1. Decimal
  2. Binary
  3. Hexadecimal
  • Constants & iota Enumerator
  • Functions & Return Types
  • Packages, Import Statements & Visibility Rules
  • Go Modules
  1. go mod init
  2. go mod tidy
  3. go get
  • fmt Package
  1. Printf
  2. Sprintf
  3. Println Verbs
  • Hash Algorithms & Checksums
Control Flow
  • If Statements & Comparison Operators
  • Logical Operators
  1. !
  2. ll
  3. &&
  • Switch Statements
  • For Loop
  • For Range
  1. Slices
  2. Maps
  3. Channels
  • Modulus / Remainder Operator
  • Defer Statement
Data Collections
  • Arrays, Slices
  1. Arrays
  2. Slice Composite Literal & make ()
  3. Array Operators: Append, Slice, Delete
  4. Bytes Slice & String Conversion
  • Maps
  1. Basic Operations: Create, Read, Update, Delete
  2. Iterating Over Maps
  3. Maps vs Structs - When to Use Each
  4. String Operations & Strings Package
Structs & Data Organization
  • Defining & Declaring Structs
  • Embedded Structs & Composition
  • Receiver Functions (Methods)
  • Pass by Value Semantics
  • Structs with Pointers
  • Custom Type Declarations
  • Reference Types vs Value Types
  • Pointer & Value Semantics Heuristics
Advanced Functions
  • Variadic Parameters & Unfurling Slices
  • Anonymous Functions & Function Expression
  • Closures
  • Callbacks & Higher Order Functions
  • Returning Functions from Functions
  • Recursive Functions
  • Wrapper & Middleware Functions
  • Sorting with Sort Package (Including Custom Sort)
Interface & Polymorphism
  • Purpose of Interfaces & Implementation
  • Defining Interfaces & Rules of Interfaces
  • Reader Interface
  • Writer Interface
  • Stringer Interface
  • Net/HTTP Package & HTTP Interfaces
  • Empty Interface (any) & Type Assertions
  • Interface for Mock Testing & Dependency Injection
Error Handling
  • error Type
  • Printing, Logging & Log Package
  • Custom Error Types with Context
  • Panic, Recover & Defer for Cleanup
  • Error Wrapping with %w, errors.ls, errors.As
  • Four Common Error Handling Strategies
File System & I/O Operations
  • os. WriteFile & ioutil - Saving Data
  • os. ReadFile & Error Handling
  • Encoding / JSON
  1. Marshal
  2. Unmarshal
  3. Struct Tags
  • Bcrypt Password Hashing & Asymmetric Encryption Concepts
  • Writing to File vs bytes.Buffer
Pointers & Memory
  • What are Pointers (& Operator)
  • Dereferencing Pointers
  • Method Sets: Pointer vs Value Receiver
  • Stack vs Heap & Escape Analysis
Goroutines & Channels
  • Goroutines
  1. Goroutines - Lightweight Threads
  2. Concurrency vs Parallelism
  3. WaitGroup: sync.WaitGroup, Wating for goroutines
  4. Race Conditions, sync.Mutex & Atomic Operations
  • Channels
  1. Introduction Channels: Make, Send, Receive
  2. Buffered Channels & Directional Channel Types
  3. Select for Multi-Channel Coordination
  4. Fan-In, Fan-Out Concurrency Patterns
  5. Pipeline Pattern with Channels
  6. context.Context for Cancellation & Timeout
Testing & Benchmarking
  • Testing Package: TestXxx Functions & GO Test
  • Table Tests - Idiomatic Go Testing
  • Example Functions for Documentation Testing
  • Testing File IO Operations
  • Benchmark Functions & Profiling
  • Test Coverage: Go Test - Cover
  • golint, go vet & staticcheck
Generics
  • Type Constraint & Type Parameteres
  • Type Set Interfaces for Constraints
  • golang.org/x/exp/constraints Package
  • Type Aliases vs Underlying Type Constraints
  • Concrete Type vs Interface Type in Generics
Documentation & Best Practices
  • GO Doc Comments - godoc Conventions
  • GO Doc Command & godoc Server
  • gofmt & goimports
  • Effective Go Idioms & Conventions
  • Project Structure & Standard Layout

درباره دوره

دوره Golang – Software Development with Go برای یادگیری زبان Go از پایه تا سطح پیشرفته طراحی شده؛ به‌طوری که حتی اگر آشنایی زیادی با Go نداشته باشی، می‌تونی قدم‌به‌قدم با ساختار و منطق این زبان آشنا بشی و شروع به کدنویسی کنی.

در این دوره با مفاهیم اصلی برنامه‌نویسی در Go، کار با داده‌ها، توابع، ساختارهای مختلف برنامه، مدیریت خطا و کار با فایل‌ها آشنا می‌شی و در ادامه سراغ مباحثی مثل برنامه‌نویسی همزمان، تست کد، مدیریت حافظه و Generics می‌ری. در کنار یادگیری زبان، روش نوشتن کد تمیز و استاندارد و ساخت پروژه‌های قابل‌اعتماد با Go هم آموزش داده می‌شه.

انتخاب دوره و ثبت‌نام

کلاس و شیوه برگزاری را انتخاب کنید. نوع پرداخت در ادامه ثبت‌نام مشخص می‌شود.

از ۲۹ آبان ۱۴۰۵ تا ۱۶ بهمن ۱۴۰۵

جمعه‌ها · ۱۴:۳۰ تا ۱۹:۳۰

شیوه برگزاری