Вот эта команда создаст текстовый файл размером в 1GB, а повторный запуск увеличит размер файла до 2GB ну и так далее..
Работает под macOS.
Для линукса надо использовать обычный
gtr -dc "A-Za-z 0-9" < /dev/urandom | fold -w100|head -n 10000000 >> bigfile.txtРаботает под macOS.
Для линукса надо использовать обычный
tr, но у кого линукс те и сами об этом знают :)👍4
Так как я все еще ищу авторов для платформы https://testhub.cloud, запилил видео инструкцию как работать с платформой.
Рассказываю как и где создать список вопросов для подготовки к собеседованию. Платформа TestHUB
https://youtu.be/IqNeWxxkuJg
Рассказываю как и где создать список вопросов для подготовки к собеседованию. Платформа TestHUB
https://youtu.be/IqNeWxxkuJg
testhub.cloud
TestHUB - подготовься к собеседованию
This is so great to pass tests and get the offer
👍2
У нас слоеная архитектура приложения:
1. транспорт
2. бизнес логика (policy, usecase etc)
3. сервисы, которые управляют сущностью (CRUD)
При запросе конкретной сущности, например Note, нам нужно проверить, а имеет ли права пользователь с этой ролью, чтобы получить эту сущность.
Вопрос: на каком слое это надо делать?
Ответ: в бизнес логике
Вы можете сразу сказать: а почему не в сервисном слое? Он же оперирует сущностью (CRUD).
А вот вам реальный кейс.
Вы обновляете сущность, чтобы ее обновить, ее надо получить из БД и перед тем как получить, надо проверить можно ли пользователю с этой ролью получить эту сущность, допустим можно и дальше вы обновляете ее. Обновили и все хорошо. Но теперь вы запускаете фоновый процесс, который что-то считает, например цену или рейтинг. Что-то фоновое и не очень важное. И вот этот фоновый процесс пытается запросить сущность из БД и получаете ответ: низзя, у тебя нужной роли нет! Поэтому переносим проверки роли в БЛ (бизнес логику), а сервисный слой оставляем сервисным и универсальным. Потому что если эта проверка будет в сервисном вы без костылей не сможете заставить работать подобные фоновые процессы, у них же нет роли.
1. транспорт
2. бизнес логика (policy, usecase etc)
3. сервисы, которые управляют сущностью (CRUD)
При запросе конкретной сущности, например Note, нам нужно проверить, а имеет ли права пользователь с этой ролью, чтобы получить эту сущность.
Вопрос: на каком слое это надо делать?
Ответ: в бизнес логике
Вы можете сразу сказать: а почему не в сервисном слое? Он же оперирует сущностью (CRUD).
А вот вам реальный кейс.
Вы обновляете сущность, чтобы ее обновить, ее надо получить из БД и перед тем как получить, надо проверить можно ли пользователю с этой ролью получить эту сущность, допустим можно и дальше вы обновляете ее. Обновили и все хорошо. Но теперь вы запускаете фоновый процесс, который что-то считает, например цену или рейтинг. Что-то фоновое и не очень важное. И вот этот фоновый процесс пытается запросить сущность из БД и получаете ответ: низзя, у тебя нужной роли нет! Поэтому переносим проверки роли в БЛ (бизнес логику), а сервисный слой оставляем сервисным и универсальным. Потому что если эта проверка будет в сервисном вы без костылей не сможете заставить работать подобные фоновые процессы, у них же нет роли.
👍10🔥2
Время пол 3 утра, самое время подвести мозг спать.
Итоги 3 часов страданий:
1. Раскурил почему у меня не работал SetCaller в logrus в production сервисе.
2. Переехал с logrus на zap в 6 проектах
3. Написал обертку над zap с Sugar логгером и без.
4. Хвала
5. Я не нашел документацию на zap :DDDDDDD то что они называют документация, ну это, у меня у пет проектов лучше документация так-то...
6. Почему в zap нет Plain Text формата логов? Или я не нашел?
И чуть не забыл. В серьезных проектах делайте жесткую типизацию дополнительных полей логгера - эластик вам потом спасибо скажет.
Итоги 3 часов страданий:
1. Раскурил почему у меня не работал SetCaller в logrus в production сервисе.
2. Переехал с logrus на zap в 6 проектах
3. Написал обертку над zap с Sugar логгером и без.
4. Хвала
zap.AddCallerSkip(1) но с оберткой все еще есть косяк, надо исправить5. Я не нашел документацию на zap :DDDDDDD то что они называют документация, ну это, у меня у пет проектов лучше документация так-то...
6. Почему в zap нет Plain Text формата логов? Или я не нашел?
И чуть не забыл. В серьезных проектах делайте жесткую типизацию дополнительных полей логгера - эластик вам потом спасибо скажет.
Время 3:17 и самое время сделать чутка миграцию данных TestHUB. Короче сейчас у 1 пользователя может быть 1 роль. И мне супер лень внедрять привелегии для ролей и разруливать ими все. Поэтому я решил разруливать все ролями и сделать так чтобы у пользователя может быть больше 1 роли.
Вот так я забекапил юзеров и их роли, потому что из поля role_id я делаю массив role_ids :DDDDD и соотвественно теряю информацию о ролях, а чтобы не потерять ее, я делаю бекап.
Поехали!
CREATE TABLE users_backup AS
SELECT * FROM public."user" u;Вот так я забекапил юзеров и их роли, потому что из поля role_id я делаю массив role_ids :DDDDD и соотвественно теряю информацию о ролях, а чтобы не потерять ее, я делаю бекап.
Поехали!
Давайте поговорим про пет проекты.
Зачем они нужны и в целом про старт обучения.
А также, про онлайн курсы, менторство, опыт и насмотренность ситуаций.
https://youtu.be/T1isK-vPxtg
Зачем они нужны и в целом про старт обучения.
А также, про онлайн курсы, менторство, опыт и насмотренность ситуаций.
https://youtu.be/T1isK-vPxtg
🔥10👍1
production сервис, 8 часть
https://youtu.be/whRguR1co4E
https://youtu.be/whRguR1co4E
YouTube
Разработка Golang production платформа e-commerce. Часть 8
#golang #production #go #grpc #services #архитектура #программирование #programming
Не забываем про Телеграмм группу:
Telegram Group: https://t.me/theartofdevel
И канал:
Telegram Channel: https://t.me/theartofdev
Приятного просмотра!
GitHub репозиторий:…
Не забываем про Телеграмм группу:
Telegram Group: https://t.me/theartofdevel
И канал:
Telegram Channel: https://t.me/theartofdev
Приятного просмотра!
GitHub репозиторий:…
🔥7❤1👍1
Уникальное, только для тех кто сидит в Телеграм группе. Как вы знаете, я собираюсь запустить авторские курсы с менторской поддержкой в чате и так далее.
Первый курс будет по языку Go и сейчас я хочу "обкатать" его, то есть провести лекции и получить полноценную обратную связь по всем аспектам, прежде чем выпускать "в свет" за деньги.
Тема курса: Начальная подGOтовка
О чем будет курс: Немного про потоки, процессы, ОС и прочее. Далее основы программирования и уже по языку Go.
Что мне нужно от вас:
- полноценный фидбек по всем аспектам курса голосом или текстом
Что получите вы:
- прослушаете курс для новичков за фидбек
Сайт тут: https://artofedu.org
Про курс тут: https://artofedu.org/courses/golang/nachalnaya-podgotovka.html
Если ты хочешь поучаствовать в обкатке и прослушать мой курс - велкам в ЛС.
Количество слотов: 10 человек
Минимальное количество человек, с которым стартуем: 5 человек
Каждая лекция начинается в 19:00, по разным дням.
Осталось 8 слотов.
Первый курс будет по языку Go и сейчас я хочу "обкатать" его, то есть провести лекции и получить полноценную обратную связь по всем аспектам, прежде чем выпускать "в свет" за деньги.
Тема курса: Начальная подGOтовка
О чем будет курс: Немного про потоки, процессы, ОС и прочее. Далее основы программирования и уже по языку Go.
Что мне нужно от вас:
- полноценный фидбек по всем аспектам курса голосом или текстом
Что получите вы:
- прослушаете курс для новичков за фидбек
Сайт тут: https://artofedu.org
Про курс тут: https://artofedu.org/courses/golang/nachalnaya-podgotovka.html
Если ты хочешь поучаствовать в обкатке и прослушать мой курс - велкам в ЛС.
Количество слотов: 10 человек
Минимальное количество человек, с которым стартуем: 5 человек
Каждая лекция начинается в 19:00, по разным дням.
Осталось 8 слотов.
А вы знали, что если обновлять страницу, то там могут быть разные списки.
https://testhub.cloud/try
Доступно даже не зарегистрированным пользователям.
https://testhub.cloud/try
Доступно даже не зарегистрированным пользователям.
testhub.cloud
TestHUB - подготовься к собеседованию
This is so great to pass tests and get the offer
Рассказываю:
В тестхабе, в визарде, я получаю задачи чтобы показать (ну как бе очевидно). Получаю я и порционно через limit и offset.
И лимит в дефолте = 10. Предположим что мы открыли список, где 14 задач. Проходим 11 задач и рефершим страницу или закрываем браузера (промежуточный результат сохранен, так как я реализовал возможность допройти список позже (ну типа потом)). Теперь открываем еще раз список (через личный кабинет) и жмем "Продолжить". Опять запрашиваем задачи, limit=10, а offset = current_index - 1, типа получить 10 задач с 12 индекса и получаем в итоге 4 задачи (и это правильно). А понимание, что список закончился у меня было вот таким:
if (current_index == tasks.length) {}
А теперь напишите в комментарии почему все ломалось, а я потом напишу правильный ответ 🙂
В тестхабе, в визарде, я получаю задачи чтобы показать (ну как бе очевидно). Получаю я и порционно через limit и offset.
И лимит в дефолте = 10. Предположим что мы открыли список, где 14 задач. Проходим 11 задач и рефершим страницу или закрываем браузера (промежуточный результат сохранен, так как я реализовал возможность допройти список позже (ну типа потом)). Теперь открываем еще раз список (через личный кабинет) и жмем "Продолжить". Опять запрашиваем задачи, limit=10, а offset = current_index - 1, типа получить 10 задач с 12 индекса и получаем в итоге 4 задачи (и это правильно). А понимание, что список закончился у меня было вот таким:
if (current_index == tasks.length) {}
А теперь напишите в комментарии почему все ломалось, а я потом напишу правильный ответ 🙂
👍3
Это. Просто. Нечто.
Куча классного софта с нереальными скидками.
https://github.com/trungdq88/Awesome-Black-Friday-Cyber-Monday
Срочно!
За ссылку спасибо @imsystem
Куча классного софта с нереальными скидками.
https://github.com/trungdq88/Awesome-Black-Friday-Cyber-Monday
Срочно!
За ссылку спасибо @imsystem
GitHub
GitHub - trungdq88/Awesome-Black-Friday-Cyber-Monday: Awesome apps, software, and SaaS deals on Black Friday.
Awesome apps, software, and SaaS deals on Black Friday. - trungdq88/Awesome-Black-Friday-Cyber-Monday
👍3
Новое видео на этот раз про Стартапы. Расскажу про свои поделия и расскажу, что узнал пока их делал.
https://youtu.be/Cu_6B5usbQk
https://youtu.be/Cu_6B5usbQk
YouTube
КАК СОЗДАТЬ СТАРТАП?
#startup #mvp #поговорим #investing
Курс по Go тут:
https://artofedu.org/
Телеграм группа: https://t.me/theartofdevel
Телеграм канал: https://t.me/theartofdev
VK: https://vk.com/theartofdevel
https://web.archive.org/web/20180816165549/https://giftshaker.com/…
Курс по Go тут:
https://artofedu.org/
Телеграм группа: https://t.me/theartofdevel
Телеграм канал: https://t.me/theartofdev
VK: https://vk.com/theartofdevel
https://web.archive.org/web/20180816165549/https://giftshaker.com/…
🔥6👍2
Встречаем и долго-долго аплодируем. Я внедрил markdown редактор для описания задач.
А еще, если зайти на https://testhub.cloud и вы залогинены - будет редирект в приложение, а если вы из приложения перейдете на лендинг - ну значит вы хотите посмотреть лендинг.
#testhub #markdown #landing #задачи
А еще, если зайти на https://testhub.cloud и вы залогинены - будет редирект в приложение, а если вы из приложения перейдете на лендинг - ну значит вы хотите посмотреть лендинг.
#testhub #markdown #landing #задачи
👍6🔥2
Новая рубрика: Ночной Тред
Сегодня это разговор про SRP и попытка переосмыслить паттерны Repository и DAO в Go.
https://youtu.be/8OLOJWaYMP4
Сегодня это разговор про SRP и попытка переосмыслить паттерны Repository и DAO в Go.
https://youtu.be/8OLOJWaYMP4
👍4
Итак, представляю вам бета тест авторизации через GitHub на платформе TestHUB.
Почему бета-тест? Когда что-то делаешь за 1-2 часа, астрологи объявляют на эту неделю +10 к нелепым багам.
Идем сюда https://testhub.cloud/login и жмем кнопку с логотипом GitHub.
Если у вас уже есть учетка на TestHUB с почтой
Почему бета-тест? Когда что-то делаешь за 1-2 часа, астрологи объявляют на эту неделю +10 к нелепым багам.
Идем сюда https://testhub.cloud/login и жмем кнопку с логотипом GitHub.
Если у вас уже есть учетка на TestHUB с почтой
me@example.com, и если на GitHub у вас такая же почта (me@example.com) основная и подтвержденная - то вас залогинит под существующей учетной записью. Если же почта на GitHub отличается — будет создан новый аккаунт.🔥5❤3👍1
пишем сервис, 9 часть, переделываю DTO, недоделал… будет 2 часть 9 части)))
https://youtu.be/aFyTPiFE_4c
https://youtu.be/aFyTPiFE_4c
YouTube
Разработка Golang production платформа e-commerce. Часть 9
Переделываем работу с DTO в разных слоях. Опять. :-)
Курс по Go тут:
https://artofedu.org/
GitHub репозиторий: https://github.com/theartofdevel/production-service
Задачи для пулл реквестов: https://github.com/theartofdevel/production-service/issues
Телеграм…
Курс по Go тут:
https://artofedu.org/
GitHub репозиторий: https://github.com/theartofdevel/production-service
Задачи для пулл реквестов: https://github.com/theartofdevel/production-service/issues
Телеграм…
❤8
10 минут и погнали стрим в телеграмме?
Публичные списки в TestHUB
Публичные списки в TestHUB