1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/go-course-go11

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект Go11

Каждый день создается тег: day01 (соответствует видео, напоминанию)

Предварительные условия: основы разработки программ

Основное испытание для программы — это всестороннее мышление (пределы твоей программы), решение определенных проблем

Основные синтаксис

  • Переменные, циклы, структуры данных (простые типы/сложные типы), программирование (процедурное/объектно-ориентированное)
  • Параллельное управление: goroutines, wait group, ctx
  • Сетевое программирование: TCP/UDP, HTTP (Gin/Beego/gorestful/...)
  • Постоянное хранение: MySQL/MongoDB/Redis

Способность к разработке скриптов (процедурное программирование)

  • Если ваша работа требует написания программ, попробуйте использовать Go
  • Передаточная станция()

Отладка программ

Если программа работает правильно, это удача, но необходимо обеспечить надежность, тестирование и проверку каждого этапа.

При увеличении сложности проекта, количество факторов, влияющих на правильную работу программы, увеличивается, поэтому требуется локальная отладка для поиска причин.

Ключевые навыки программиста: отладка

  • Разработка функциональности (встречаются странные проблемы)
  • Принятие чужого проекта (необходимо отладить ключевые шаги)

Этапы отладки:

  • Разработка (отладка юнит-тестов)
  • Общая отладка/отладка интерфейсов (необходимо запустить программу для отладки)
  • Отладка в продакшене (не рекомендуется, удаленная отладка)vscode как отладить

Подготовительные работы

  • Настройка vscode для использования git-bash (для пользователей Windows)
  • Установка команды make: см. (для пользователей Windows): make run /make build
  • Установка Docker Desktop
  • Установка программ для доступа к данным: Navicat

Для использования образа MySQL Docker см. Docker Hub MySQL руководство

$ docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
```## Процесс разработки программного обеспечения

### Проектная инициатива: Босс

### Проектный дизайн:
    + Менеджер продукта: Сбор требований, анализ конкурентов, проектирование процессов продукта
       + Общее проектирование: Основные процессы: Посетители, авторы, операторы платформы
       + Подробное проектирование: Операционная платформа, более детализированный анализ, каждый поле (обзор: обзорщики: [], результат обзора: [], замечания, категории)
       + Прототип продукта: Низкая детализация, высокая детализация (UI/UX)
    + Разработка проекта: Разработка/тестирование/операции
       + Разработка: Начальник переводит требования в архитектуру backend (архитектор)
         + Общие функции (центр пользователей)/специфические функции (соответствие)/вспомогательные функции (здоровье/оповещения/отчеты бизнеса)
         + Загрузка кода (code view), CI сборка кода/единичные тесты/покрытие/проверка безопасности/...
         + Объединенное тестирование (несколько сервисов, нескольких функций), подтверждение работоспособности всего функционала, написание документации
    + Тестирование проекта:
        + Тестирование сценариев/UI тестирование/тестирование производительности
    + Операции по запуску:
        + Подготовка ресурсов
        + Поддержка
    + Итерации версий: Требования -> Функции -> Разработка -> Тестирование -> Запуск

Программное обеспечение: Получение наложенного успеха## Проектное введение

### Веб-разработка: Микроблог

+ Название проекта: vblog, единичная система веб-сервиса с разделением фронтенда и бэкенда
+ Для кого: Для начинающих, которые хотят ознакомиться с веб-разработкой
+ Основные направления: Полноценная веб-разработка, разработка DevOps
+ Компания: Маленькая команда, внутренние системы компании
+ Сложность: Низкая

### Разработка микросервисов: Мини-версия облачной платформы для разработки микросервисов

+ Название проекта: devcloud-mini
+ Для кого: Для тех, кто имеет базовые навыки разработки единичных проектов и хочет углубиться в разработку микросервисов
+ Основные направления: Разработка крупных распределённых бизнес-систем, бизнес-платформ, низкоуровневые сервисы (высокоуровневые сервисы зависят от рыночных условий), бизнес-шлюзы
+ Сложность: Средняя-высокая
+ Необходимые базовые знания для разработки распределённых систем: синхронное взаимодействие сервисов (RPC), передача сообщений (Kafka), поддержка распределённых систем (Trace)
+ Ориентация на DevOps: CMDB

### Интерпретация сложных бизнес-проектов: Облачная платформа для разработки микросервисов: Проект построения цепочки поставок+ Название проекта: devcloud
+ Для кого: Для тех, кто знаком с моделями разработки микросервисов, понимает процессы разработки сложных бизнес-проектов и хочет заняться разработкой платформ
+ Основные направления: Разработка платформ
+ Сложность: Высокая
+ Методы обучения: Проектирование, анализ кода, демонстрация## Как следить за проектом

Ключ: Практикуйтесь (не только слушайте на занятиях, но и применяйте знания на практике), разрабатывайте: развивайте способность решать проблемы (отладка), не копируйте код, код вашего проекта пишите сами, строка за строкой

Репозиторий проекта: Один проект, один репозиторий, для подготовки к собеседованию (Gitee/Coding)

Как разрабатывать несколько проектов (Go проекты) в одном репозитории кода? Можно использовать Go workspace

// Инициализация рабочего пространства go work init // Добавление проекта vblog в это пространство go work use vblog


Для удобства просмотра проектов: Все проекты размещены в этом репозитории кода

1. На каждом занятии много материала, на занятиях времени нет для практики, практикуйтесь самостоятельно
2. Слишком быстрая смена тем, для ознакомления с архитектурой проекта в целом
3. Занятия по проектам не направлены на углубление знаний по отдельным темам, а на создание общей системы знаний.

## Задания и оценка проектов

Веб-разработка: Микроблог: Будут выбраны лучшие проекты, несколько хороших проектов

## Дополнительно1. Создание таблицы SQL? Если вы встретите что-то незнакомое (Docker MySQL), в курсе я буду использовать проекты в качестве основного материала. Если что-то неизвестно, ищите информацию самостоятельно, задавайте вопросы другим студентам в группе, обсуждайте, задавайте вопросы преподавателю, общайтесь и решайте проблемы.
2. Писать программы
    + Не должно быть так, что есть инструменты, и вы пишете программы. Встретили проблему? Первым делом проверьте, нет ли готового решения в виде библиотеки.
    + Сначала подумайте самостоятельно ---> Разработайте решение ---> Ищите подходящие инструменты (сдержанность, контроль над программой).
1. Практика разработки крупных инженерных проектов (не стандарт), которая может быть полезна многим новичкам, у которых нет опыта работы над реальными проектами.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Пример проекта для демонстрации Развернуть Свернуть
Go и 6 других языков
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/go-course-go11.git
git@api.gitlife.ru:oschina-mirror/go-course-go11.git
oschina-mirror
go-course-go11
go-course-go11
master