# ПоиАИС Web-разработка: Зима-весна 2026 (Магистратура)

После курса для бакалавров, данный курс ориентируется на магистров той же славной кафедры ПОиАИС ППМ ВГУ.

В относительно коротком курсе планируется разобраться синтаксис и особенности использование Golang и некоторые алгоритмические задачи.

Cеминар по Программированию/Бесплатные курсы c нуля 2026: Паскаль, PHP, JavaScript, Golang - Сообщество. Онлайн - как начать

Внимательно ознакомься с текстом ниже (не зря же мы его писали и периодически обновляем! ;), если темы обучения подойдут - ответь на вопросы, которые встретятся ниже, в одном из пунктов.

1. О сообществе

IFF -- это сообщество, направленное на свободный обмен знаниями и улучшение условий такого обмена.

Сейчас у нас есть два направления:

golang Поиск пересечений списков отрезков времени

У есть два списка отрезков упорядоченных времени "времени" вида:

1) [1, 5] [7, 10]
2) [2, 8] [9, 12] [13, 15]

-- требуется найти список пересечений этих отрезков, напр. в данном случае ответ будет:

[2, 5] [7, 8] [9, 10]

Возможная визуализация:

--------   ---     --------- --------
  ---   ---   ---       ------    -----  -------- -----       ------

Общая идея решения (алгоритм)

Будем действовать так:

audacity Зависает при редактировании метаданных - linux

Зависает если начать редактировать метаданные файла (mp3)

Возможное решение

Прежде чем делать экспорт файла - сохраните проект (особенно если перед этим было восстановление из recover project)

В моем случае это помогло с версией 3.3.7 на ubuntu 22.04

На мысль навели эти вопросы:

You saved a Project or Audacity keeps recovering the show from its crash tools?

If you’re using the crash tools, can you save a Project?

vscode vscodium launch.json console property Переключаемся на обычный терминал вместо debug console

В разделе configurations для конкретной конфигурации используйте например:

"console": "integratedTerminal",

Пример для golang:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}",
            "console": "integratedTerminal",
        }
    ]
}

vscode vscodium - Unable to process `evaluate`: debuggee is running Ошибка

Unable to process `evaluate`: debuggee is running

У vscode есть какие-то проблемы с поддержкой tty, для решения проблемы мы можно добавить в конфигурацию использование стандартног терминала вместо debug console

Утиная типизация (duck typing) - что это в программировании

Утиная типизация (duck typing) — шуточный темин, описывающий реальную ситуацию, а именно:
- это концепция в программировании, при которой совместимость типов определяется не наследованием, а наличием необходимых методов и свойств у объекта во время выполнения.

Почему "утиная"

Название термина пошло от английского «duck test» («утиный тест»), суть которого выражается как:

Если нечто выглядит, как утка, плавает, как утка, и крякает, как утка, то это, вероятно, и есть утка.

golang Каналы

Каналы (chan) — это типизированные очереди(FIFO), которые позволяют горутинам обмениваться данными без явных блокировок.
chan обеспечивают синхронизацию по модели «producer-consumer».

Пользуемся каналом:

  • создаем: make(chan type, capacity);
  • отправка данных в канал: ch
  • получение данных из канала: data:=
  • закрытие канала: close(ch).

Каналы необходимо инициализировать перед использованием, используйте make или заполнение через горутину.

golang Горутины и работа с ними

Горутины — это легковесные потоки выполнения в Go, работающие поверх системных потоков (threads).
Они позволяют запускать функции параллельно (асинхронно).
Ты можешь запустить функцию в горутине, добавив перед её вызовом ключевое слово go:

golang go test Автоматическое тестирование - пример программы

Напишем простую программу для "уникализации" строк, которые подаются в стандартный ввод:

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewScanner(os.Stdin)
	var prev string
	// потенциально бесконечный цикл:
	for in.Scan() {
		txt := in.Text()
		if txt == prev {
			continue
		}
		if txt < prev {
			panic("Строки не отсортированы!")
		}
		prev = txt
		fmt.Println(txt)
	}
}

(при запуске в vscode возможна проблема, но есть решение)

Pages

Subscribe to fkn+antitotal RSS