Доброго времени суток!
Отличная статья о тестировании в компании Badoo. Описаны все варианты тестов, которые используются, а также практические примеры решения различных проблем, связанные с тестами: легаси код, тестовые окружения, использование БД в тестах и т.д.
Рекомендую ознакомиться всем, кто уже пишет тесты и сталкивается с проблемами их сопровождения и поддержания аднных в актуальном состоянии.
https://habr.com/ru/company/badoo/blog/443768/
Отличная статья о тестировании в компании Badoo. Описаны все варианты тестов, которые используются, а также практические примеры решения различных проблем, связанные с тестами: легаси код, тестовые окружения, использование БД в тестах и т.д.
Рекомендую ознакомиться всем, кто уже пишет тесты и сталкивается с проблемами их сопровождения и поддержания аднных в актуальном состоянии.
https://habr.com/ru/company/badoo/blog/443768/
Хабр
Монолит для сотен версий клиентов: как мы пишем и поддерживаем тесты
Всем привет! Я бэкенд-разработчик в серверной команде Badoo. На прошлогодней конференции HighLoad я выступал с докладом, текстовым вариантом которого и хочу поделиться с вами. Этот пост будет...
Доброго времени суток!
https://habr.com/ru/company/piter/blog/428211/
В общем, купил пару недель назад "на сдачу" эту книгу (акция была - при покупке трех книг скидон хороший давали). Купил просто потому что в названии есть слово архитектура, ничего особого не ожидая.
Но она оказалась крайне впечатляющей книгой. Если вы до этого читали Мартина "Идеальная архитектура" и она показалась вам очень теоретической, то в этой книге вы найдете кучу практических советов, которые не "общие советы, которые будут фундаментальной основой", а именно практика в архитектуре ПО нового десятилетия.
Короче - от меня лайк и моя рекомендация к прочтению всем.
https://habr.com/ru/company/piter/blog/428211/
В общем, купил пару недель назад "на сдачу" эту книгу (акция была - при покупке трех книг скидон хороший давали). Купил просто потому что в названии есть слово архитектура, ничего особого не ожидая.
Но она оказалась крайне впечатляющей книгой. Если вы до этого читали Мартина "Идеальная архитектура" и она показалась вам очень теоретической, то в этой книге вы найдете кучу практических советов, которые не "общие советы, которые будут фундаментальной основой", а именно практика в архитектуре ПО нового десятилетия.
Короче - от меня лайк и моя рекомендация к прочтению всем.
Хабр
Книга «Эволюционная архитектура. Поддержка непрерывных изменений»
Пора по-новому взглянуть на постулаты, остававшиеся неизменными на протяжении многих лет. Динамично меняющийся мир диктует свои правила, в том числе и в компьютерной архитектуре. Происходящие...
Доброго времени суток!
На хабре очень много статей про TDD, однако тех, которые действителньо стоит прочитать, чтобы понять всю прелесть этого подхода - единицы.
Недавно вышла ещё одна такая, которая поможет на практическом примере осознать, насколько чище становится ваша архитектура с применением TDD, а также как мало стресса будет при дальнейшем сопровождении такого кода.
Примеры в статье на Java, но ничего сверхсложного там нет, всё отлично ложится на любой другой язык программирования.
в общем, от меня рекомендация к прочтению для тех, кто ещё сомневается "Быть или не быть TDD в вашем проекте".
https://habr.com/ru/company/leroy_merlin/blog/456662/
P.S. кстати, решение о том, чтобы "не быть" - тоже иногда бывает правильным, и статья про это не забывает упомянуть.
На хабре очень много статей про TDD, однако тех, которые действителньо стоит прочитать, чтобы понять всю прелесть этого подхода - единицы.
Недавно вышла ещё одна такая, которая поможет на практическом примере осознать, насколько чище становится ваша архитектура с применением TDD, а также как мало стресса будет при дальнейшем сопровождении такого кода.
Примеры в статье на Java, но ничего сверхсложного там нет, всё отлично ложится на любой другой язык программирования.
в общем, от меня рекомендация к прочтению для тех, кто ещё сомневается "Быть или не быть TDD в вашем проекте".
https://habr.com/ru/company/leroy_merlin/blog/456662/
P.S. кстати, решение о том, чтобы "не быть" - тоже иногда бывает правильным, и статья про это не забывает упомянуть.
Хабр
Как сэкономить на психотерапевте используя test-driven development
У вас когда-нибудь было такое состояние? Хочу показать вам, как TDD может улучшить качество кода на конкретном примере. Потому что всё то, что я встречал при изучении вопроса, было довольно-таки...
Здравствуйте!
В последнее время активно прохожу собеседования и вот на Хабре вышла статья, как раз-таки на эту тему. Статья на поразмыслить. Конечно, каждый из нас, может оказаться Дэниэлом Бухмюллером (читай статью, чтоб понять), но тем не менее - подстелить соломку никогда не помешает.
https://habr.com/ru/post/460901/
В последнее время активно прохожу собеседования и вот на Хабре вышла статья, как раз-таки на эту тему. Статья на поразмыслить. Конечно, каждый из нас, может оказаться Дэниэлом Бухмюллером (читай статью, чтоб понять), но тем не менее - подстелить соломку никогда не помешает.
https://habr.com/ru/post/460901/
Хабр
Почему Senior Developer'ы не могут устроиться на работу
Сначала о том, как 5 месяцев назад я проходил собеседование на работу. Меня посоветовал друг, и прошло уже немало времени, с момента как я ответил рекрутеру. Я был поражён, как сильно весь процесс...
Доброго дня!
Решил немного разбавить тишину в эфире этого канала.
За последние месяцы я погрузился в прокачивание скиллов: подтягиваю алгоритмы и структуры данных, пробую новые языки программирования. Хотел поделиться с вами личным опытом того, как закреплять полученные навыки. Речь пойдет про две площадки, на которых можно попробовать себя в решениях различных интересных задач, которые, к слову, очень часто предлагаются на собеседованиях.
Первая площадка - это https://www.codewars.com
Про нее я узнал несколько месяцев назад, когда приступил к погружению в Golang. Поначалу закреплял свои скиллы в PHP, а позже начал практиковаться в решении задач и на Go. Задачи различного уровня сложности, с возможностью повышения сложности по мере решения задач. Еще, из отличительных черт - это соревновательный момент - ваше решение выкладывается на всеобщее обозрение и его оцениваются другие участники площадки. А вы можете изучать и оценивать их решения. В общем, отличный способ прокачивать скиллы.
Еще одна площадка - https://leetcode.com
Про нее я узнал совсем недавно. Здесь можно попрактиковаться в классических алгоритмах структурах данных (для чего собственно я и пришел на площадку), а также, судя по блокам - узнать какие вопросы и задачи используются на собеседованиях в Apple, Uber и других компаниях. О сервисе пока много не скажу, из минусов - он платный.
Ну и еще важный момент - оба сервиса на английском языке, но зато это еще одна отличная возможность - попрактиковаться в английском. Хотя, на том же codewars, многие задачи можно понять, взглянув на набор тестов.
Дерзайте!
Решил немного разбавить тишину в эфире этого канала.
За последние месяцы я погрузился в прокачивание скиллов: подтягиваю алгоритмы и структуры данных, пробую новые языки программирования. Хотел поделиться с вами личным опытом того, как закреплять полученные навыки. Речь пойдет про две площадки, на которых можно попробовать себя в решениях различных интересных задач, которые, к слову, очень часто предлагаются на собеседованиях.
Первая площадка - это https://www.codewars.com
Про нее я узнал несколько месяцев назад, когда приступил к погружению в Golang. Поначалу закреплял свои скиллы в PHP, а позже начал практиковаться в решении задач и на Go. Задачи различного уровня сложности, с возможностью повышения сложности по мере решения задач. Еще, из отличительных черт - это соревновательный момент - ваше решение выкладывается на всеобщее обозрение и его оцениваются другие участники площадки. А вы можете изучать и оценивать их решения. В общем, отличный способ прокачивать скиллы.
Еще одна площадка - https://leetcode.com
Про нее я узнал совсем недавно. Здесь можно попрактиковаться в классических алгоритмах структурах данных (для чего собственно я и пришел на площадку), а также, судя по блокам - узнать какие вопросы и задачи используются на собеседованиях в Apple, Uber и других компаниях. О сервисе пока много не скажу, из минусов - он платный.
Ну и еще важный момент - оба сервиса на английском языке, но зато это еще одна отличная возможность - попрактиковаться в английском. Хотя, на том же codewars, многие задачи можно понять, взглянув на набор тестов.
Дерзайте!
Бэкендошная via @like
Доброго дня!
Вчера за вечер по диагонали прошёлся по "Грокаем алгоритмы" Бхаргавы Адитьи.
Если кому-то заходят книги от head first - эта примерно такая же. Вроде рекомендую, но только если вы прям совсем начинающий в алгоритмах и структурах и потом обязательно прочитаете что-то более серьезное
Вчера за вечер по диагонали прошёлся по "Грокаем алгоритмы" Бхаргавы Адитьи.
Если кому-то заходят книги от head first - эта примерно такая же. Вроде рекомендую, но только если вы прям совсем начинающий в алгоритмах и структурах и потом обязательно прочитаете что-то более серьезное
Бэкендошная via @like
Доброго времени суток!
https://wiki.php.net/rfc/constructor_promotion
Никита Попов в очередной раз радует отличными RFC
На этот раз немножко сахара в виде объявления свойств в конструкторе. Лично мне этого в последнее время очень не хватает. Надеюсь что предложение будет принято и в ближайших версиях PHP мы сможем подсластить себе разработку 😉
p.s. как кстати дела на карантине? У меня уже третья неделя удаленки завтра начнется. Выход на работу теперь выглядит как замена личного ноутбука на рабочий. Встречи с коллегами теперь только в онлайне, никаких оффлайн контактов. Поначалу было сложно и непривычно, но со временем приспособился, сейчас никакого дискомфорта - ловлю кайф от новых обстоятельств. Давно хотел попробовать себя в удаленке, а тут такой шанс.
https://wiki.php.net/rfc/constructor_promotion
Никита Попов в очередной раз радует отличными RFC
На этот раз немножко сахара в виде объявления свойств в конструкторе. Лично мне этого в последнее время очень не хватает. Надеюсь что предложение будет принято и в ближайших версиях PHP мы сможем подсластить себе разработку 😉
p.s. как кстати дела на карантине? У меня уже третья неделя удаленки завтра начнется. Выход на работу теперь выглядит как замена личного ноутбука на рабочий. Встречи с коллегами теперь только в онлайне, никаких оффлайн контактов. Поначалу было сложно и непривычно, но со временем приспособился, сейчас никакого дискомфорта - ловлю кайф от новых обстоятельств. Давно хотел попробовать себя в удаленке, а тут такой шанс.
Бэкендошная via @like
Доброго времени суток!
Началась шестая неделя самоизоляции и удаленной работы. Появившееся время решил потратить на возрождение одного из своих петпроджектов, который когда-то давно был заброшен в долгий ящик по причине того, что была жесткая привязка к .NET платформе, изучать и развиваться в которой не было моим приоритетом. Привязка была из-за того, что была необходимость работать с провайдером данных, который предоставлял свой API через Component Object Model. На момент, когда появилась идея петпроджекта (около 3-х лет назад) мне казалось что вся логика работы должна быть заложена именно в платформе .NET и других вариантов быть не может. Но теперь же я понимаю что все это можно архитектурно оформить в виде микросервиса, с которым будет происходить общение.
Об архитектуре и реалзиции я расскажу в одном из следующих постов, а пока что хочу поделиться с вами личным мнением о двух прочтенных за время карантина книгами.
Первая - "Apache Kafka. Потоковая обработка и анализ данных". Её я читал именно в рамках реализации петпроджекта, потому как в качестве варианта коммуникации между микросервисами я выбрал брокер сообщений, а именно Apache Kafka. Книга была прочитана на 2/3 и на текущем моменте отложена, потому как информации, которую я получил, мне было достаточно для начальной реализации обмена сообщениями и тонкостей взаимодействия. Дальнейшие части книги обязательно прочту при развертывании Kafka в прод-среде. Книга, на мой взгляд, является информативным источником по взаимодействию с брокером сообщений и будет полезна вам, если вы, как и я, только начинаете знакомиться с Kafka.
Вторая книга - "Go на практике" оказалась для меня менее удачной: почти половина книги была просто пролистана, потому как информация была для меня вторичной. И о данной книге сложилось странное впечатление. С одной стороны - примеры, которые там приведены, действительно показывают Go в практических, нежели теоретических вещах. Но с другой - эти же примеры не особо утруждают себя объяснениями почему принято делать именно так, а не иначе. Так что рекомендация по книге - не ждать от нее погружения в Go и приобретать только в качестве подручного справочника. И уж точно не стоит ее читать в качестве первой книги по Golang. Лучше документация или "Язык программирования Golang" Донована и Кернигана.
И личные мысли о самоизоляции и карантине. Хотя я и не отказываюсь от возможности удаленной работы, но все же хочется на пару дней в офис, потому как очень соскучился по коллегам. Продуктивность вроде не упала, но тут наверно в дело вступает тот факт, что кроме как работать, больше заниматься и нечем: домашние дела переделаны, выход на улицу для прогулок закрыт. Последнее очень удручает, потому как погода стоит превосходная и я надеялся что наконец-то, спустя 5 лет, открою личный велосезон в конце марта. Но нет, видимо снова придется открывать в июле. Хорошо, если этого года 😉
Началась шестая неделя самоизоляции и удаленной работы. Появившееся время решил потратить на возрождение одного из своих петпроджектов, который когда-то давно был заброшен в долгий ящик по причине того, что была жесткая привязка к .NET платформе, изучать и развиваться в которой не было моим приоритетом. Привязка была из-за того, что была необходимость работать с провайдером данных, который предоставлял свой API через Component Object Model. На момент, когда появилась идея петпроджекта (около 3-х лет назад) мне казалось что вся логика работы должна быть заложена именно в платформе .NET и других вариантов быть не может. Но теперь же я понимаю что все это можно архитектурно оформить в виде микросервиса, с которым будет происходить общение.
Об архитектуре и реалзиции я расскажу в одном из следующих постов, а пока что хочу поделиться с вами личным мнением о двух прочтенных за время карантина книгами.
Первая - "Apache Kafka. Потоковая обработка и анализ данных". Её я читал именно в рамках реализации петпроджекта, потому как в качестве варианта коммуникации между микросервисами я выбрал брокер сообщений, а именно Apache Kafka. Книга была прочитана на 2/3 и на текущем моменте отложена, потому как информации, которую я получил, мне было достаточно для начальной реализации обмена сообщениями и тонкостей взаимодействия. Дальнейшие части книги обязательно прочту при развертывании Kafka в прод-среде. Книга, на мой взгляд, является информативным источником по взаимодействию с брокером сообщений и будет полезна вам, если вы, как и я, только начинаете знакомиться с Kafka.
Вторая книга - "Go на практике" оказалась для меня менее удачной: почти половина книги была просто пролистана, потому как информация была для меня вторичной. И о данной книге сложилось странное впечатление. С одной стороны - примеры, которые там приведены, действительно показывают Go в практических, нежели теоретических вещах. Но с другой - эти же примеры не особо утруждают себя объяснениями почему принято делать именно так, а не иначе. Так что рекомендация по книге - не ждать от нее погружения в Go и приобретать только в качестве подручного справочника. И уж точно не стоит ее читать в качестве первой книги по Golang. Лучше документация или "Язык программирования Golang" Донована и Кернигана.
И личные мысли о самоизоляции и карантине. Хотя я и не отказываюсь от возможности удаленной работы, но все же хочется на пару дней в офис, потому как очень соскучился по коллегам. Продуктивность вроде не упала, но тут наверно в дело вступает тот факт, что кроме как работать, больше заниматься и нечем: домашние дела переделаны, выход на улицу для прогулок закрыт. Последнее очень удручает, потому как погода стоит превосходная и я надеялся что наконец-то, спустя 5 лет, открою личный велосезон в конце марта. Но нет, видимо снова придется открывать в июле. Хорошо, если этого года 😉
Бэкендошная via @like
Доброго времени суток!
С 7-ой попытки, в PHP наконец-таки приняли то, что в мире Java известно как аннотации, а в мире PHP теперь будет известно как атрибуты.
Наконец-то уйдут в прошлое описания роутов и сущностей через комментарии.
Считаю это большим прорывом в развитии языка.
Но с чем пока что сложно согласиться, это с синтаксисом. Угловые скобки вместо привычных at-символов (@). Разработчики уже негласно "проголосовали" за использование @ - взгляните на то как это было реализовано на основе Symfony, Doctrine, Psalm и т.д.
В общем, бочка со здоровенной ложкой дегтя, к которой все же придется привыкать. Надеюсь что это будет единственное неудобство реализации и удобства с легкостью его нивелируют.
Ссылка на RFC: https://wiki.php.net/rfc/attributes_v2
С 7-ой попытки, в PHP наконец-таки приняли то, что в мире Java известно как аннотации, а в мире PHP теперь будет известно как атрибуты.
Наконец-то уйдут в прошлое описания роутов и сущностей через комментарии.
Считаю это большим прорывом в развитии языка.
Но с чем пока что сложно согласиться, это с синтаксисом. Угловые скобки вместо привычных at-символов (@). Разработчики уже негласно "проголосовали" за использование @ - взгляните на то как это было реализовано на основе Symfony, Doctrine, Psalm и т.д.
В общем, бочка со здоровенной ложкой дегтя, к которой все же придется привыкать. Надеюсь что это будет единственное неудобство реализации и удобства с легкостью его нивелируют.
Ссылка на RFC: https://wiki.php.net/rfc/attributes_v2
Можно ли обогнать по производительности стандартные структуры данных из пакета atomic? Попытка дать ответ в видео
www.youtube.com/watch?v=9CFbBoMvl48
#golang
www.youtube.com/watch?v=9CFbBoMvl48
#golang
Если вам было интересно - на какие концепции опирается Docker и как под капотом устроены контейнеры, то вот отличное видео, где за двадцать минут в режиме live coding'а докладчик создает собственную реализацию контейнеров с изоляцией процессов и файловой системы от родительской ОС
https://www.youtube.com/watch?v=HPuvDm8IC-4
#golang #docker
https://www.youtube.com/watch?v=HPuvDm8IC-4
#golang #docker
YouTube
Golang UK Conf. 2016 - Liz Rice - What is a container, really? Let's write one in Go from scratch
Everyone has heard of Docker, but what is a container? Is it really "a lightweight VM"? In this talk we'll dispel the magic by writing a container in about 100 lines of Go.
👍1
Изящное решение проблемы фризов из-за работы GC в Go от сотрудников Twitch
https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap/
#golang
https://blog.twitch.tv/en/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap/
#golang
blog.twitch.tv
Go memory ballast: How I learnt to stop worrying and love the heap
I’m a big fan of small code changes that can have large impact. This may seem like an obvious thing to state, but let me explain:
👍2
Как работает pdqsort в Golang - алгоритм сортировки, позволяющий избежать худшего случая для quicksort
https://itnext.io/gos-new-sorting-algorithm-pdqsort-822053d7801b
#golang
https://itnext.io/gos-new-sorting-algorithm-pdqsort-822053d7801b
#golang
Medium
Go’s new sorting algorithm: pdqsort
Understand the new sorting algorithm Go started using and how it differs from regular the Quicksort.
Бэкендошная
Как работает pdqsort в Golang - алгоритм сортировки, позволяющий избежать худшего случая для quicksort https://itnext.io/gos-new-sorting-algorithm-pdqsort-822053d7801b #golang
Коммит по внедрению pdqsort - https://github.com/golang/go/commit/72e77a7f41bbf45d466119444307fd3ae996e257
#golang
#golang
GitHub
sort: use pdqsort · golang/go@72e77a7
- Across all benchmarks, pdqsort is never significantly slower than the previous algorithm.
- In common patterns, pdqsort is often faster (i.e. 10x faster in sorted slices).
The pdqsort is describ...
- In common patterns, pdqsort is often faster (i.e. 10x faster in sorted slices).
The pdqsort is describ...
Доклад, который меньше чем за 30 минут познакомит вас с основными концепциями языка Rust и покажет - как его можно использовать в WEB-разработке
https://www.youtube.com/watch?v=eggRLQYkauo
#rust
https://www.youtube.com/watch?v=eggRLQYkauo
#rust
👍1
На примере сортировок разбираемся - когда увеличение распараллеливания вычислений не приводит к увеличению производительности
https://convey.earth/conversation?id=44
#golang
https://convey.earth/conversation?id=44
#golang
Простенькая книга для погружения в разработку на Golang через TDD
Шаг за шагом проходится по основам языка, его концепциям, знакомит с подходами к разработке и все это на примере построения реального приложения
https://quii.gitbook.io/learn-go-with-tests/
Шаг за шагом проходится по основам языка, его концепциям, знакомит с подходами к разработке и все это на примере построения реального приложения
https://quii.gitbook.io/learn-go-with-tests/
quii.gitbook.io
Learn Go with Tests | Learn Go with tests
👎1
Привет!
Сегодня я принес вам доклад про Best Practise разработки на Golang.
Докладу уже более 4х лет, но он все еще не теряет актуальности
https://www.youtube.com/watch?v=MzTcsI6tn-0
#golang
Сегодня я принес вам доклад про Best Practise разработки на Golang.
Докладу уже более 4х лет, но он все еще не теряет актуальности
https://www.youtube.com/watch?v=MzTcsI6tn-0
#golang
YouTube
Ashley McNamara + Brian Ketelsen. Go best practices.
https://talks.bjk.fyi/bketelsen/gcru18-best#/
Если вы хотели начать контрибьютить в open source, но не могли найти подходящий проект, то данный репозиторий может стать отличным подспорьем в этом начинании.
В нем собраны различные issue по проектам на разных языках программирования, которые подходят в качестве вашего первого коммита в open source
https://github.com/MunGell/awesome-for-beginners
#opensource #golang #rust #php
В нем собраны различные issue по проектам на разных языках программирования, которые подходят в качестве вашего первого коммита в open source
https://github.com/MunGell/awesome-for-beginners
#opensource #golang #rust #php
GitHub
GitHub - MunGell/awesome-for-beginners: A list of awesome beginners-friendly projects.
A list of awesome beginners-friendly projects. Contribute to MunGell/awesome-for-beginners development by creating an account on GitHub.
👍1
Привет!
Неделю назад я делился лучшими практиками разработки на Golang.
Сегодня делюсь его антиподом - докладом про худшие практики разработки на Golang
https://www.youtube.com/watch?v=Jns0QgJtAYY
#golang
Неделю назад я делился лучшими практиками разработки на Golang.
Сегодня делюсь его антиподом - докладом про худшие практики разработки на Golang
https://www.youtube.com/watch?v=Jns0QgJtAYY
#golang
YouTube
Golang Worst Practices - Oliver Powell
This event is brought to you by Go Singapore. GoSG is a meetup for the Go programming enthusiasts in Singapore.
Name: Oliver Powell
Topic: Golang Worst Practices
Evolutionary biology teaches us that the avoidance of failure is a better strategy than the…
Name: Oliver Powell
Topic: Golang Worst Practices
Evolutionary biology teaches us that the avoidance of failure is a better strategy than the…
Привет!
Сегодня будет та самая оговорка про "почти никакого фронтенда", вынесенная в описание канала - cтатья про WebAssembly
Результаты прошлогоднего опроса относительно развития WASM
Rust занимает лидирующие позиции и в вопросе про используемые языки, и в вопросе про желаемые/планируемые языки для WebAssembly
Среди направлений использования без сюрпризов - это WEB и serverless
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
#wasm #rust
Сегодня будет та самая оговорка про "почти никакого фронтенда", вынесенная в описание канала - cтатья про WebAssembly
Результаты прошлогоднего опроса относительно развития WASM
Rust занимает лидирующие позиции и в вопросе про используемые языки, и в вопросе про желаемые/планируемые языки для WebAssembly
Среди направлений использования без сюрпризов - это WEB и serverless
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
#wasm #rust