web mess – Telegram
web mess
130 subscribers
85 photos
1 video
2 files
163 links
go, vim and some other random stuff
appreciate your feedback :)
Download Telegram
Я тут за пару часов написал маппер из map[string]interface{} в объекты.
Написал пару тестов, вроде всё работает, но нужно еще тестить и оптимизировать.
Там куча рефлекта и скорее всего, читать это неудобно. Потом отрефакторю, но это не точно.
Критика важна и приветствуется!

https://github.com/Koshqua/structmap
Очень уж нравится, как Goland работает в сплит скрине.
Понял, что еще больше нравится, как работает телеграм.
Нашел прикольную штуковину, которая умеет из toml файлов с заданными примерами того, какие значения может иметь структура собирать тип в Go. Это круто, по-моему.

https://xuri.me/toml-to-go/
У нас на работе есть небольшая библиотека, там много разных книг и некоторые из них о Go. Давно хотел что-то оттуда взять и наконец дошли руки. Взял почитать "The way to Go" Ivo Balbaert.
В книге есть хорошее введение в язык с объяснением истории и идеи создания. Для меня читать это - уже немного поздно, было бы круто найти эту книгу, когда я только начинал учить Go.

Но, что меня действительно заинтересовало, так это раздел о concurrency.
Только начал читать и наткнулся на прикольную штуку, которая лежала прямо в stdlib. А именно, функцию runtime.Gosched().

Если вкратце, эта функция "освобождает" процессор, на котором выполняется текущая горутина и "передаёт" ресурсы другой горутине, чтобы та тоже могла выполниться. Нашел хороший тред на StackOverflow с детальным объяснением того, как это работает. Не уверен, что это можно применить в production приложениях, но штуковина точно интересная. И, самое забавное, она уже давно была у меня на виду, но как-то не обращал на неё внимания.

https://stackoverflow.com/questions/13107958/what-exactly-does-runtime-gosched-do/13108469
На днях получил задачу написать сервис для подсчета некоторой статы из стороннего апи.
И так исторически сложилось, что всё, что считает статистику у нас на NodeJS.
В итоге, пишу сервис на ноде и, сказать честно, мне понравился js.

Особенно понравилось то, как работает асинхронность, всё очень просто и понятно.
Некоторый опыт с нодой был до этого, т.к я с неё начинал, но это было давно, поэтому есть ощущение, будто учу язык с нуля и это правда захватывающе.

Могу сделать вывод, что иногда интересно переключаться на другие технологии.
Особенно круто, что нельзя, например, написать код на js'е так же, как я написал бы его на go, поэтому приходится больше думать о структуре и периодически подглядывать в доки. Сервис пока не дописал, но уже на полпути, чувствую, что буду очень доволен, когда закончу эту таску.
Do you have any experions ?
Сегодня написал свою первую аггрегацию в Mongo.

Может показаться, что в этом нет ничего особенного.
Но дело в том, что у меня на собеседовании спросили о них и я не смог ответить, потом заморачивался, разбирался с ними.
И вот, спустя восемь месяцев как я тут работаю у меня появилась таска, в которой я применил эти знания.
Переполняет гордость и чувство, будто всё было не зря 😂
Молодой одинокий разраб.
Тензорный петух на этой картинке не просто так, вам просто необходимо послушать подкаст!
Статья - красивый трибьют Mozilla с рассказом об истории, основных достижениях компании на этапах раннего интернета и в наши дни.
Тут так же есть рассказ о том, почему компания сейчас ушла(уходит) на дно.

Достаточно грустно, на самом деле. Я сам пользуюсь Firefox Developer Edition и первые попытки в вебе у меня начинались именно с MDN.

https://link.medium.com/92k1NdsNwbb
Кстати, касаемо предыдущего поста и англоязычного контента в целом.

Я часто нахожу контент на английском и иногда у меня появляется желание перевести что-то действительно крутое для того, чтоб больше людей могли это прочитать.

Что думаете, если я буду находить хороший контент на англоязычных ресурсах и выкладывать его здесь для вас на русском? Было бы такое интересно ?
д - дебагинг
Так как я теперь пишу еще и на js'е (немного), наткнулся на забавную штуковину.

Я и раньше замечал, что у объекта console есть куча методов.
Но тут есть подборочка очень прикольных, например, в консоли есть нативные таблицы.
А еще, для сообщения в консоль можно задавать стили.
https://medium.com/javanoscript-in-plain-english/stop-using-console-log-in-javanoscript-d29d6c24dc26
темная тема на github 😍
Очень давно с вами не общались. На то есть две причины: сейчас нет такого огромного желания вести канал, как раньше и много работы.
Но скоро настанут лучшие времена и я снова возьмусь за это с новыми силами и идеями.

А пока, хочу вам предложить помочь друг другу.
Уверен, что меня читают люди, которые шарят React и Node.
Дело в том, что в компании, в которой я работаю, сейчас открыта вакансия на Junior Fullstack в офис в Киеве(м.Олимпийская).
Если интересно узнать больше - пишите в личку, скину описание вакансии.

Писать @mlvni.
web mess
темная тема на github 😍
Кстати, только что заметил, что на этой иллюстрации в правом нижнем углу нарисовано одной из зданий Emirates Towers (ну или что-то очень похожее)

Вот пруф: https://mediastream.jumeirah.com/webimage/image1152x648//globalassets/global/hotels-and-resorts/dubai/jumeirah-emirates-towers/new-images--september-2018/jet-j.com-banners-2018-lp4-desktop.jpg.
Решили с коллегой сделать пет-проект и использовать в нем Prisma.
Для js'a она работает отлично, но вот с гошкой - мне не очень понравилось, генерит папку node_modules и прочий мусор в репозитории сервиса, который нужен только для Prisma.
Поэтому, я начал искать другую orm, которую можно использовать в сервисах на Go и остановился на gorm.

Мне нравилось, что в Prisma можно легко делать миграции и поддерживать актуальную схему базы в одном файле (prisma.schema).
Плюс, можно делать prisma introspect, который создаст схему из уже существующего инстанса базы, удобно, в общем.
И вот, я нашел похожую штуковину для Go. Умеет создавать модели для gorm из существующей базы.

https://github.com/smallnest/gen
Я давно говорил, что чувствую себя неуверенно в плане знаний по базам данных.
И я решил это исправить. Начал проходить курс от Otus по этой теме.
Честно скажу, курс хорошо структурирован и даёт все базовые знания и понятия.
Но есть большой нюанс в плане глубины знаний. Не смотря на то, что там около 90 часов материала - есть нераскрытые нюансы.
Но, я этот курс купил очень дешево, поэтому грех жаловаться )

Например, одна из тем, которые мне показались нераскрытыми - это нормализация данных.
И вот, статья, которую я нашел по теме.

https://github.com/codedokode/pasta/blob/master/db/normalization.md
Сворую картинку, а всем скажу, что это моя.