Go (Golang) — TechCave

Go (часто также Golang) — компилируемый многопоточный язык программирования, разработанный компанией Google.

Go (часто также Golang) — компилируемый многопоточный язык программирования, разработанный компанией Google. Первоначальная разработка Go началась в сентябре 2007 года, а его непосредственным проектированием занимались Роберт Гризмер, Роб Пайк и Кен Томпсон, занимавшиеся до этого проектом разработки операционной системы Inferno. Официально язык был представлен в ноябре 2009 года. На данный момент его поддержка осуществляется для операционных систем FreeBSD, OpenBSD, Linux, Mac OS X, Windows, начиная с версии 1.3 в язык Go включена экспериментальная поддержка DragonFly BSD, Plan 9 и Solaris, начиная с версии 1.4 — поддержка платформы Android.

Стена группы

Загрузка...
Den
3 дня назад
#

Вырываемся в top10. Бот для игры в телеграме



Вырываемся в top10. Бот для игры в Telegram

Предыстория

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





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



Поехали

Для базы решил использовать sqlite3, он мобильный и для этой задачи самое то.



Структура базы выглядит так.



CREATE TABLE IF NOT EXISTS words (
    word VARCHAR(225) UNIQUE NOT NULL,
    length INTEGER NOT NULL
);


  • word — из название понятно, что это хранимое буквенное значение слова.

  • length — символьная длина.



Структура есть, для ее заполнения воспользовался списком существительных русских слов.



Заполнение базы и поиск слов было решено реализовать в одном коде, обработку разделить флагами.



Так же само создание файла базы и создание таблицы реализовываются в init()



func init() {
    var err error
    connection, err = sql.Open("sqlite3", "./words.db")
    if err != nil {
        log.Fatalf("Failed connection: %v", err)
    }
    _, err = connection.Exec(`CREATE TABLE IF NOT EXISTS words (word VARCHAR(225) UNIQUE NOT NULL, length INTEGER NOT NULL);`)
    if err != nil {
        log.Fatalf("Failed create database table words: %v", err)
    }
}


Источник
Загрузка...
6 дней назад
#

Генератор клиента к базе данных на Golang на основе интерфейса



Генератор клиента к базе данных на Golang на основе интерфейса.





Для работы с базами данных Golang предлагает пакет database/sql, который является абстракцией над программным интерфейсом реляционной базы данных. С одной стороны пакет включает мощную функциональность по управлению пулом соединений, работе с prepared statements, транзакциями, интерфейсом запросов к базе. С другой стороны приходится написать немалое кол-во однотипного кода в веб приложении для взаимодействия с базой данных. Библиотека go-gad/sal предлагает решение в виде генерации однотипного кода на основе описанного интерфейса.



Источник
Загрузка...
6 дней назад
#

Форкни это: 8 проектов на Go, в исходном коде которых интересно покопаться



Мы в Binary District проводим интенсивы по Go. За два дня можно научиться понимать идеологию и внутренности Go, писать чистый тестируемый код. Но это первый шаг, а дальше — практика, практика, практика: читать чужой код, писать и править свой.

Для этого идеально подходит open source:

  • Open source повышает насмотренность. Можно невозбранно изучать исходники.

  • Open source дает стимул писать максимально чистый код и документировать логику.

  • Вклад в open source движение улучшает карму.





Вместе с выпускником нашего
Go-курса Сергеем
Tolsi мы составили список открытых проектов разного уровня и направленности, которые подходят, чтобы учиться писать хороший код и заодно делать мир лучше.

Источник
Загрузка...
8 дней назад
#

Событийный автомат на страже жизненного цикла



Дисклеймер: Эта статья описывает неочевидное решение неочевидной проблемы. Прежде чем бросаться яйцами применять его на практике, рекомендую дочитать статью до конца и дважды подумать.

but_why



Всем привет! При работе с кодом, нам часто приходится иметь дело с состоянием. Один из таких случаев — жизненный цикл объектов. Управление объектом с несколькими возможными состояниями может быть весьма нетривиальной задачей. Добавьте сюда асинхронное исполнение и задача усложняется на порядок. Есть эффективное и естественное решение. В этой статье я расскажу о событийном автомате и как его реализовать в Go.



Источник
Загрузка...
8 дней назад
#

External — GUI для Golang



Приветствую вас, коллеги!

Около месяца назад я опубликовал здесь статью
GUI-фреймворки — на поток, где предлагалась технология создания GUI-фреймворков для разных языков программирования, основанная на подключении (tcp/ip или каком другом) к внешнему процессу, играющему роль своеобразного GUI-сервера. Здесь я хочу представить конкретную реализацию этой идеи — новый GUI-фреймворк для
Golang
External.

Зачем вообще потребовалось писать новый GUI для
Golang, если в наличии уже имеется немало таких инструментов? В первую очередь, потому, что ни один из них не устраивал меня в полной мере. Нужно было что-то для создания десктопных приложений, кросс-платформенное, чтобы выглядело естественно для каждой платформы. По-возможности, не очень громоздкое, имеющее минимум зависимостей — я привержен минималистическому подходу.

Источник
Загрузка...

Авторизация

Пользователи

NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk
KotikBSD
Эрик Имашев

GeekBrains

Нетология

Нетология