Evo Dev Club
642 subscribers
5 photos
1 video
324 links
Посилання, анонси, корисні відео для розробників від dev-команди EVO

Про Evo https://jobs.dou.ua/companies/evo/
Автор @brabadu
Download Telegram
Проработав без малого квартал в должности архитектора (а не инженера-архитектора, как раньше), я начал понимать своих коллег по цеху, со снисхождением и презрением относящих к этой работе.

Я продолжаю придерживаться тех же взглядов, что и всегда: архитектор, как отдельная должность - абсолютно бесполезная трата денег. Это роль, которую могут брать на себя один или более человек, совмещая ее с основной деятельностью (разработкой, управлением продуктом, you name it).

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

Однако я вижу, что неприемлемо малое количество архитекторов поступает подобным образом. Более того, если (бес-)"полезность" разработчика видна практически сразу, то архитектору удается оставаться некомпетентным лодырем очень долгое время, и последствия этого выявляются вовсе нескоро.

Если вообще выявляются.
📊 Наткнулся на Penrose - система автоматической генерации диаграм из математических нотаций.

Идея в том, чтобы рисовать не примитивы - круги, стрелки и т.д., а визуально представлять математическое выражение, что может быть полезно исследователям или студентам.

Изображение генерируется из выражений на специальном constraint-based языке, а затем оптимизируется (выравнивается, балансируется и т.д.) с помощью численных методов. Сложно объяснить, на видео гораздо понятнее.

После такого описания уже не удивляешься, что написано на Хаскеле плюс немножко Тайпскрипта.

#haskell #math
🐹 Докладывают наши лучшие специалисты на go.

Пришел апдейт по дженерикам https://blog.golang.org/generics-next-step:
- на контракты забили
- говорят новый design draft сильно понятнее и проще
- выпустили тулзу, которая позволяет пописать на go с generic’ми прямо сейчас. Она просто транслирует код в обычный код без дженериков. В релизе все будет работать по другому.
- они (go team) все еще задаются вопросом нужны ли дженерики, в т.ч. есть шансы, что они могут так и не появиться
- самый ранний релиз, в котором могут появиться — go 1.17, август 2021
stay tuned 🍿

#golang
💥В Python 3.10 может появиться паттерн-матчинг

https://www.python.org/dev/peps/pep-0622/

Мотивация: чаще всего builtin isinstance в Python используют в контексте if isinstance(a, A): ... elif isinstance(a, B): .... Решили эту конструкцию упростить и сделать более читабельной. Предлагается синтаксис для матчинга с литералами, константами и деструктуризацией объектов:

 match node:
case Node(children=[LParen(), RParen()]):
return True
case Node(children=[Leaf(value="("), Node(), Leaf(value=")")]):
return True
case _:
return False

Если этот PEP примут, это будет первая фича, которая будет использовать возможности нового парсера python. Среди авторов Гвидо и Иван Левкивский.

#python
🐚 О, новость про Перл, анонсировали 7ю версию.

Perl 7 is going to be Perl 5.32, mostly

И ради чего столько лет мучений?

https://www.perl.com/article/announcing-perl-7/

#perl #perl #perl
🏝 Автор Redis Сальваторе Санфилиппо уходит с поста главного мейнтейнера и контрибутора и передает проект своим коллегам, которые больше всего помогали ему.

http://antirez.com/news/133

Поскольку раньше процесса принятия решений о проекте, кроме мнения самого Сальваторе, не было, перед новыми мейнтейнерами и сообществом Редиса стоит задача придумать модель, как дальше все это развивать. Они об этом пишут тут

Сам Сальваторе планирует больше времени тратить на хобби, например записывать обучающие видосы на ютуб ¯\_(ツ)_/¯

#redis
📦 Вышел отчет-сравнение разных фронтендных сборщиков
https://bundlers.tooling.report/ от авторов web.dev

В обзор попали webpack, rollup, parcel и browserify. Параметров сравнения много: умение в код-сплиттинг, принимаемые форматы модулей, какие форматы модулей умеет продюсить, хеширование, как работает с не js-ресурсами.

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

#javascript
🔷 WalmartLabs (тех.отдел крупнейшего американского ритейлера) начинают серию статей о своем пути в микросервисы.

Уже есть первая статья про построение DDD-микросервисов. Еще обещают написать про построение команд, их подходам к гибким сервисам, высоконагруженным сервисам, CI/CD и тестированию.

#microservices
📚Огромный список литературы по ML от DeepMind

https://storage.googleapis.com/deepmind-media/research/New_AtHomeWithAI%20resources.pdf

На любой вкус: курсы, видео-лекции, whitepapers; для новичков и продвинутых; ML, Reinforcement Learning, этика AI, безопасность, робототехника.

#ml
🌉 Кажется, такие статьи пишут специально, чтобы их потом по полтора часа обсуждали в техно-подкастах. Очень флеймообразующий наброс: софт должен быть построен на века, поэтому не используйте библиотеки. Вот строители мостов не используют же библиотеки!

Автор даже аргументировать пытается и часть даже логична. Но вот это вот "там мосты, а у нас костыли"? В медицине, транспорте, других критичных местах действительно сильно меньше внешних зависимостей. Хорошо, что большинство разработчиков заняты вопросами попроще. Зачем себя мучать?

https://adlrocha.substack.com/p/adlrocha-software-should-be-designed

#programming
🦄 Хотите небольшой привкус golang или даже deno в Python? Держите githubimport.

Добавляет хук к импорту, который позволяет прямо из интерпретатора импортировать код с гитхаба

>>> import githubimport
>>> from MineRobber9000.test_modules import blah
>>> blah.foo()
"bar"

https://gist.github.com/MineRobber9000/998fe8c5a183fa2649f937c9d2e0b8b0

Упоминают еще модуль httpimport, который умеет это же, но без каноничного синтаксиса импортов, зато с поддержкой Gitlab/BitBucket

#python
🎪 Куча забавных, а иногда и опасных, нюансов SQLite. Тут и приведение типа по-тихому, да и сами типы могут называться как угодно, и баг, который очевидно баг, но на него уже столько завязано, что исправлять уже поздно.

Не зря автор называет SQLIte джаваскриптом от баз данных

https://threadreaderapp.com/thread/1279522137754255360.html

#databases
🔠 Релиз GPT-3 от OpenAI вызвал бурю восторгов. В Твиттере постили скринкасты реакт-приложений, которые генерились с помощью GPT-3 по текстовому описанию вроде "покажи приложение с двумя кнопками: добавить 3 доллара, убрать 5 долларов и покажи мой счет". И оно работает!

Но, разумеется, не все так просто. Тут хороший вдумчивый анализ потенциальных возможностей и рисков использования GPT-3. Реакт-разработчики могут выдыхать, они пока еще нужны.

https://minimaxir.com/2020/07/gpt3-expectations/
🏝 JetBrains признали что текущая реализация автоматического управления памятью в Kotlin/Native не идеальна и взялись за разработку новой. Обещают решить проблему с object sharing между потоками и связанными с этим утечками. При этом мехенизм "заморозки" объектов останется “as a safety mechanism for race-free data sharing”

https://blog.jetbrains.com/kotlin/2020/07/kotlin-native-memory-management-roadmap/

#kotlin
Forwarded from Вебня (Sergey Rubanov)
В блоге WebKit появилась огроменная и наикрутейшая статья о спекулятивных оптимизациях вообще и о таковых в движке JavaScriptCore. Если Вам интересны компиляторы, внутреннее устройство JavaScript движков, то Вы обязаны осилить это прекраснейшее чтиво, но учтите, это будет непросто!

https://webkit.org/blog/10308/speculation-in-javascriptcore/
⚱️ За август Quay.io пару раз заметно полежала.

Разработчики написали постмортем, в котором описали как выявлять проблему, про приоритеты при падении сервиса и про (спойлер) "некритичный функционал, который мало кто использует".

https://www.openshift.com/blog/about-the-quay.io-outage-post-mortem (перевод)

#postmortem
🎰 Через 10 минут на нашем ютуб канале будет доклад про Kotlin Multiplatform в одном из наших мобильных приложений

https://youtu.be/qn-OgYbRJFk

#kotlin #video
👨‍💻 Что-то затянулась пауза на нашем канале. Давайте возвращаться в строй.

JetBrains выкатили роадмап развития котлина. Собраны главные направления, по которым работает команда создателей.

Из интересного:
- Поддержка свежих JVM записей (records) и sealed classes
- Бутстрап компилятора
- Развитие Kotlin Mulitplatform Mobile

https://kotlinlang.org/roadmap.html

#kotlin
💎 Неожиданно глубокая статься про жизнь с монолитом от Shopify. Огромное количество мыслей о развитии легаси кодовых баз, внедрении системных изменений, о подходах, тулзах.

А это, наверное, мой главный вывод в разработке за 10 лет:
In my experience, all large architecture changes end up in an incomplete state. Maybe that’s a pessimistic view, but my experience tells me that the temporary incomplete state will at least last longer than you expect. So choose an approach based on which intermediary state is most useful for your specific situation.

Другими словами у самурая нет цели, только путь

Крайне рекомендую почитать
https://engineering.shopify.com/blogs/engineering/shopify-monolith

#architechture
​​🐍 Пару дней назад вышел релиз Python 3.9. Уже даже инфографика с нововведениями есть

https://docs.python.org/release/3.9.0/whatsnew/3.9.html

UPD: Все, кто нашли ошибку на картинке получают ачивку "Орлиный глаз 🦅". Вариант без ошибки можно найти в наших комментариях. Спасибо дорогим читателям!

#python