Доброго времени суток!
На хабре очень много статей про 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
Обсуждение на тему "Настоящее и будущее микросервисной архитектуры".
Примеры разбиения доменного слоя на независмые сервисы, отвязка их друг от друга, методы общения и антипаттерны
https://www.youtube.com/watch?v=qzy2JfuOYRc
#microservices
Примеры разбиения доменного слоя на независмые сервисы, отвязка их друг от друга, методы общения и антипаттерны
https://www.youtube.com/watch?v=qzy2JfuOYRc
#microservices
YouTube
Present and Future of the Microservice Architecture
Level-up on the software skills most in-demand at QCon San Francisco Software Development Conference on Oct 24-28, 2022.
Uncover emerging software trends and practices to solve your complex engineering challenges, without the product pitches. QCon San Francisco…
Uncover emerging software trends and practices to solve your complex engineering challenges, without the product pitches. QCon San Francisco…
На прошедшей конференции Open-Source Summit 2022 в секции ответов на вопросы Линус Торвальдс упомянул о возможности скорой интеграции в ядро Linux компонентов для разработки драйверов устройств на языке Rust.
Не исключается, что патчи с поддержкой Rust будут приняты в ближайшем окне приёма изменений, формирующем состав ядра 5.20, намеченного на конец сентября.
Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру.
Подробнее про то, какие проблемы будет решать Rust в качестве языка разработки ядра самой популярной ОС для серверов во всем мире можно прочесть в статье
https://www.memorysafety.org/blog/memory-safety-in-linux-kernel/
#rust
Не исключается, что патчи с поддержкой Rust будут приняты в ближайшем окне приёма изменений, формирующем состав ядра 5.20, намеченного на конец сентября.
Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру.
Подробнее про то, какие проблемы будет решать Rust в качестве языка разработки ядра самой популярной ОС для серверов во всем мире можно прочесть в статье
https://www.memorysafety.org/blog/memory-safety-in-linux-kernel/
#rust
Prossimo
Memory Safety for the World’s Largest Software Project
Rust for Linux and Prossimo The Rust for Linux project aims to bring a new system programming language into the Linux kernel. Rust has a key property that makes it very interesting to consider as the second language in the kernel: it guarantees no undefined…