en
Feedback
Настоящий блог

Настоящий блог

Open in Telegram
541
Subscribers
No data24 hours
No data7 days
-330 days
Posts Archive
Перешёл на новую раскладку. Хватит подглядывать на буквы.
Перешёл на новую раскладку. Хватит подглядывать на буквы.

Как готовить чистую архитектуру и не отравиться Основная суть такая: 1. Выделите сущности приложения, разбейте по предметной области. Это должны быть максимально тупые DTOшки или интерфейсы. Поместите все это в пакет entity * Сущности независимы. Абсолютно. Точно * Сущности, в сущности, ничего не умеют 2. Поймите, что ваше приложение делает. Выделите эти действия в пакет usecase. Делить по предметным областям необязательно, так как могут существовать межпредметные юзкейсы. * Юзкейсы зависят только от интерфейсов и других юзкейсов * Реализуют эти интерфейсы только репозитории — абстракции над некими хранилищами * * 4. Выделите все, что не относится к вашему приложению напрямую (то есть то, что не entity и не usecase)

Я почти все время использовал ORM для запросов к базам данных. И совсем-совсем редко приходилось запросы этой ORM смотреть. Писать сырые запросы было очень больно и писал я с кучей ошибок. Оказалось в Го так не принято, они пишут сырые запросы. Часто тупо строчкой... Благо есть DSL в виде jet и кодогенераторы в виде sqlc, чтобы не совсем по-ушлепски было. Так вот, крутая статья по SQL, советую. https://habr.com/ru/articles/305926/ Go Jet https://github.com/go-jet/jet

Самохвальство да и только. А вообще куда-то туда я и двигаюсь. По крайней мере само получается. https://habr.com/ru/companies/productivity_inside/articles/810047/

Работаем
Работаем

Время постить "новости". 1. Недавно наслаждался решением диффуров 18 часов подряд. Пока не сдал. 2. Делаю курс по Go в Ядре. Каждый PR заканчивается сообщениями вида: "Все супер, молодец", "Как всегда хорошо и ничего лишнего". Не знаю, правда ли все хорошо, но я эти домашки клепаю на пару часов. Никакого вызова, местами даже слишком просто. Язык приятный, всю жизнь бы писал. 3. Делаю Desbordante. За эту ночь запилил им отдельный репозиторий и пакет с консольной версией. Все хорошо, только прав в их репозитории недостаточно, чтобы красоту наводить. А еще они с релизом 2 версии получили +300 звезд. Теперь популярные в узких кругах. Пользователей так и нет. 4. Делаю вычи. В этот раз нужно консольное приложение сделать, которое приближением матриц будет сжимать изображение. Тут решил красоты навести: прикрутил Typer, написал нормальную спецификацию к формату, даже (почти) выложил в виде пакета. Да и просто хорошо оформил репозиторий. В целом работает, осталось самое утомляющее — алгоритмы сжатия написать и эксперимент поставить... 5. Сходил на клоунаду по "Смерти Ивана Ильича" Толстого. Мне понравилось, формат очень живой и интерактивный. Многое выглядит как импровизация, хотя на самом деле — долгие-долгие репетиции. 6. Погулял по кладбищу, где Цой и Горшок похоронены. Нашел криминального авторитета из 90ых, который первый ввез синтетические наркотики, рядом с могилой заслуженного врача, иронично. Вот так пишет, ну как будто серьезный человек (лол), только и делает, что работает. А на самом деле... Я уже вторую неделю сплю по 12 часов и редко встаю с кровати. Но это все, потому что в жизни полоса черная. Но, надеюсь, все станет хорошо! Чего и вам желаю.

Наркошоп свой развивают
Наркошоп свой развивают

А ваш Раст немного С++ https://github.com/Speykious/cve-rs/tree/main

Ваш C++ немного Раст, но только если повезет https://gcc.godbolt.org/z/6Y4T66

Крутой мужик. Объясняет понятно и достаточно глубоко. https://youtu.be/cEjAH5ghWbY?si=3h9Me5WvGqwovi8L А челюга у него вообще отпад.

Я пожалуй оставлю тут только технический или почти технический контент. Все личное переедет в более мелкое комьюнити знакомых и друзей. Мне так будет спокойнее и комфортнее. Надеюсь на понимание. https://t.me/+TDqd-o7OunY3NDJi

Наклепал на коленке модуль, который бесполезные слова из текста убирает для кучи языков. Прикольный опыт. Так еще полезно, так как не было небольших решений решаюх эту задачу с нужным датасетом. https://github.com/toadharvard/stopwords-iso/tree/main

Скатался в Ядро пофлексить на первом занятии по микросервисам на Go. Флекс успешно выполнен. Теперь надо делать ультрапростые (на первый взгляд) домашки и можно будет на стажку пойти. Не знаю насколько оно мне все надо, но лишним точно не будет. Тем более я уже больше года хочу язык изучить, а тут вроде задачи. Даже какие-то прикольные.

big data 22.03.pdf2.96 KB

Презентация по Big Data. Видеозапись ещё эпичнее (я там разбиваю мышь в дребезги)

Последнюю неделю почти все свободное время тратил на написание бекенда и изучение Celery. Последний очень большой и неповоротливый, но это не всегда минус. Довольно много можно сделать из коробки. Но из-за специфики приложения не хватало возможности аккуратно задать ограничение по памяти на выполнение задач. В итоге пришел к чему-то такому:
class ResourceIntensiveTask(Task):
    # There are default Celery time limits, see: https://docs.celeryq.dev/en/stable/userguide/workers.html#time-limits
    time_limit = settings.worker_hard_time_limit_in_seconds
    soft_time_limit = settings.worker_soft_time_limit_in_seconds

    # There are custom memory limits using `resource` module
    hard_memory_limit = settings.worker_hard_memory_limit
    soft_memory_limit = settings.worker_soft_memory_limit

    def before_start(self, task_id, args, kwargs) -> None:
        resource.setrlimit(
            resource.RLIMIT_AS, (self.soft_memory_limit, self.hard_memory_limit)
        )
        super().before_start(task_id, args, kwargs)
А еще много разных приседаний было с базой данных из-за специфики работы пулинга в sqlalchemy и реализацией многопоточности в Celery. Кстати, о sqlalchemy, нашел вот такую библиотеку (https://github.com/absent1706/sqlalchemy-mixins/tree/master), которая ActiveRecord реализует над ORM. Выглядит очень удобной, особенно, если приложение на 99% CRUD, а так же фильтрация. Очень сильно напоминает DjangoORM. На самом деле много чего еще происходит, часто приходится писать на 2-3 разных языках — С, Go и Python. А еще делаем вместе с другом доклад про MapReduce и Big Data. По-своему прикольно, хотя и, если честно, нужно совсем небольшому числу компаний.

Это самый искренний обзорщик всяких штук из тех, что я видел. https://youtu.be/DtwUc3_NR_o Кстати, именно такую клавиатуру мн
Это самый искренний обзорщик всяких штук из тех, что я видел. https://youtu.be/DtwUc3_NR_o Кстати, именно такую клавиатуру мне подарили милашки с ПИ. А ещё огромную мягкую кнопку ENTER. Она превосходна. Так же превосходна как сборник армянских анекдотов и докимакура с Фрирен. Но на самом деле самое лучшее, что мне подарили — это ощущения праздника на день рождения. Я с уверенностью могу сказать, что это лучший день рождения за мою жизнь. Всех люблю <3

21

Психологическое и физическое насилие для вас:
Anonymous voting