https://dev.to/nx/nx-the-fastest-growing-monorepo-solution-in-the-js-ecosystem-5en9
К монорепозиториям у меня двоякое отношение, с одной стороны есть очевидные преимущества:
- все лежит вместе и обновляется "сразу"
- можно использовать генерацию кода сразу под структуру монорепозитория
- меньше гемора с управлением зависимостей
- удобное тестирование только измененного кода
- удобна совместная разработка
Но на практике дополнительная автоматизация (в данном случае nx) - это дополнительные затраты на изучение и сопровождения. Мало того, что в работе постоянно появляются новые библиотеки, так еще надо колупаться и разбираться "а что там добавили в nx?".
Меня это бесит больше всего - инструменты не остаются маленькими и простыми, они постоянно растут, добавляют новые фичи, которые вроде надо использовать (а иначе зачем этот монстр, если мы не все фичи задействовали?). Это как обычная лопата, которая каждые пару месяцев получает новые фичи, которые в глобальном смысле бесполезны. Но тебе все равно надо чекнуть, вдруг там что-то полезное. А хочется, чтобы лопата оставалась лопатой - всегда.
К монорепозиториям у меня двоякое отношение, с одной стороны есть очевидные преимущества:
- все лежит вместе и обновляется "сразу"
- можно использовать генерацию кода сразу под структуру монорепозитория
- меньше гемора с управлением зависимостей
- удобное тестирование только измененного кода
- удобна совместная разработка
Но на практике дополнительная автоматизация (в данном случае nx) - это дополнительные затраты на изучение и сопровождения. Мало того, что в работе постоянно появляются новые библиотеки, так еще надо колупаться и разбираться "а что там добавили в nx?".
Меня это бесит больше всего - инструменты не остаются маленькими и простыми, они постоянно растут, добавляют новые фичи, которые вроде надо использовать (а иначе зачем этот монстр, если мы не все фичи задействовали?). Это как обычная лопата, которая каждые пару месяцев получает новые фичи, которые в глобальном смысле бесполезны. Но тебе все равно надо чекнуть, вдруг там что-то полезное. А хочется, чтобы лопата оставалась лопатой - всегда.
DEV Community
Nx - The fastest growing monorepo solution in the JS ecosystem
EDIT(Sep 9th, 2022): approaching 2.5 million Nx just crossed 2 million NPM downloads / week (see...
👍15😁1
Я не согласен с утверждением, что программисты большую часть времени сосредоточены на коде бизнес-логики. Программисты большую часть времени сосредоточены на стыке бизнес-логики и инфраструктуры, потому что постоянно приходится делать "кодирование" понятий естественных для человека, в понятие естественные для компьютера. Цвет - r, g, b, фотография - набор <x, y, r, g, b>[] и т.д.
Большую часть времени мы думаем как "хочу найти самые дешевые билеты" превратилось в "сделать краулинг, сделать парсинг, продумать структуру для быстрого поиска" и т.д.
Получается что, инфраструктура - стандартна (БД, MQ, HTTP), бизнес-логика "скудна" (хочу быстро найти, хочу оптимизировать затраты, хочу построить план), а вот "клей" (как бизнес соеденить с инфраструктурой) он самый сложный, причем именно с ним чаще всего возникают вопросы - а куда его отнести?
Так что деление на инфраструктуру, сервисы и бизнес-логику хоть и универсально, но не так уж и точно отражает суть проектирования.
Большую часть времени мы думаем как "хочу найти самые дешевые билеты" превратилось в "сделать краулинг, сделать парсинг, продумать структуру для быстрого поиска" и т.д.
Получается что, инфраструктура - стандартна (БД, MQ, HTTP), бизнес-логика "скудна" (хочу быстро найти, хочу оптимизировать затраты, хочу построить план), а вот "клей" (как бизнес соеденить с инфраструктурой) он самый сложный, причем именно с ним чаще всего возникают вопросы - а куда его отнести?
Так что деление на инфраструктуру, сервисы и бизнес-логику хоть и универсально, но не так уж и точно отражает суть проектирования.
👍46🐳9👎2
Ещё одна книга на вечер. Читается легко. Содержит много обобщений и правил. Рассказывает о зависимостях, двух школах тестирования, видах тестов и их соотношении в проекте.
Особо понравилось классификация кода в ширину и глубину, а так же поиск оптимального соотношения характеристик тестов.
Из того что не понравилось - поверхностное изложение функционального программирования, водянистость примеров. И малое количество эвристик для оценки качества теста. Было бы лучше больше примеров в стиле хорошо/плохо.
В целом книга лёгкая и годная.
#книга #отзыв
Особо понравилось классификация кода в ширину и глубину, а так же поиск оптимального соотношения характеристик тестов.
Из того что не понравилось - поверхностное изложение функционального программирования, водянистость примеров. И малое количество эвристик для оценки качества теста. Было бы лучше больше примеров в стиле хорошо/плохо.
В целом книга лёгкая и годная.
#книга #отзыв
👍55🐳8🔥1
Ребята, запомните - тесты не средства отладки программы, это индикатор показывающий "работает/не работает", тесты могут помогать искать место где произошла проблема, но не обязаны.
Юнит тесты должны:
- быстро запускаться
- интегрироваться в разработку
- показывать что возникла проблема
Тест запускается параллельно с разработкой, поэтому если вы написали кусочек кода и начали ловить регрессии, то понятно что проблема в том коде, который вы написали. А если вы запускаете тесты раз в год по обещанию и думаете, что они вам не только просигнализируют, но и точно покажут место где произошла проблема, то вы неверно их используете.
Юнит тесты должны:
- быстро запускаться
- интегрироваться в разработку
- показывать что возникла проблема
Тест запускается параллельно с разработкой, поэтому если вы написали кусочек кода и начали ловить регрессии, то понятно что проблема в том коде, который вы написали. А если вы запускаете тесты раз в год по обещанию и думаете, что они вам не только просигнализируют, но и точно покажут место где произошла проблема, то вы неверно их используете.
👍54🐳6😁1🤮1
Очень круто пообщались. Поговорили про учёбу, кубер, современные архитектурные стили и решения. Ребята приехали из Казани и Питера. Получилось неожиданно не душно)))
🔥53😁6
https://youtu.be/vIbyROcXOsA
Вероятно меня смотрят не только опытные ребята, но и те кто только планирует поступать в ВУЗ .
Сегодня на встрече был молодой автор подкастов, мой коллега по ютуб цеху - Вадим. Его канал называется "Вышка". Это не реклама, просто в знак поддержки прошу чекнуть, вдруг зайдёт.
Темы подкастов не про айти! Но про образование.
Вероятно меня смотрят не только опытные ребята, но и те кто только планирует поступать в ВУЗ .
Сегодня на встрече был молодой автор подкастов, мой коллега по ютуб цеху - Вадим. Его канал называется "Вышка". Это не реклама, просто в знак поддержки прошу чекнуть, вдруг зайдёт.
Темы подкастов не про айти! Но про образование.
YouTube
Учеба в главном ВУЗе татарстана, значимость диплома, отчисления, зачеты и т.д. КФУ ЮРИСТ - Подкаст.
Тут я разговариваю с юристом первого курса.
Система зачетов, кто идет на юрфак, значимость диплома КФУ в татарстане - все это мы обсудили в подкасте.
https://kpfu.ru/law/abiturientam-/bakalavriat
Группа в ВК: https://vk.com/podkast_vyshka
Почта: vyshka…
Система зачетов, кто идет на юрфак, значимость диплома КФУ в татарстане - все это мы обсудили в подкасте.
https://kpfu.ru/law/abiturientam-/bakalavriat
Группа в ВК: https://vk.com/podkast_vyshka
Почта: vyshka…
❤8👍5😁2
Ребята, я пытаюсь найти на ютубе русскоязычный канал, который похож на мой. Я устал от каналов по типу "Курс Python за 30 уроков", мне хочется найти такой канал, где будет про разработку, архитектуру, размышления, т.е. про вайб программирования.
Я не верю, что таких каналов нет, но найти чего-то не получается. Может у вас на примете есть что-то достойное?
Я не верю, что таких каналов нет, но найти чего-то не получается. Может у вас на примете есть что-то достойное?
🤔27😢4👍1
https://www.youtube.com/watch?v=Da-avtMWIf8
Пытался сделать объяснения моноида максимальо понятно, чтобы вывод, что моноид - это паттерн был максимально прозрачен. И относиться к нему нужно как паттерну, что Фабрика, что Моноид, что Билдер - это все способ построения удачной архитектуры приложения. И по сложности организации моноид куда проще большинства известных паттернов.
Пытался сделать объяснения моноида максимальо понятно, чтобы вывод, что моноид - это паттерн был максимально прозрачен. И относиться к нему нужно как паттерну, что Фабрика, что Моноид, что Билдер - это все способ построения удачной архитектуры приложения. И по сложности организации моноид куда проще большинства известных паттернов.
YouTube
Что значит моноид в программировании?
#soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - https://news.1rj.ru/str/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Зеркало для видео Дзен Видео - https://zen.yandex.ru/i…
Основной канал для общения и публикации новых видео - Телегарм - https://news.1rj.ru/str/softwareengineervlog
Спонсорство - https://donate.s0er.ru
Сайт платным контентом - https://soer.pro
Зеркало для видео Дзен Видео - https://zen.yandex.ru/i…
👍30🤮1
В этом интерфейсе есть одна большая ошибка - он не ООПый )
Суть в том, что один параметр операции должен быть собственным стейтом объекта, а второй параметр должен быть получен извне. Тогда это будет ООП.
Но при таком подходе я побоялся получить вопросы в стиле "а где тут бинарная операция?".
Думал "напихают" за это, а "напихали" за градусник )
Суть в том, что один параметр операции должен быть собственным стейтом объекта, а второй параметр должен быть получен извне. Тогда это будет ООП.
Но при таком подходе я побоялся получить вопросы в стиле "а где тут бинарная операция?".
Думал "напихают" за это, а "напихали" за градусник )
👍18😁1🤔1
В дополнение к видео по моноидам выйдет еще один ролик с реализацией примера.
Пример уже сейчас можно посмотреть - https://github.com/soerdev/soer_examples/blob/latest/monoid/monoid.ts
А ролик выйдет либо в конце этой недели, либо в начале следующей.
Пример уже сейчас можно посмотреть - https://github.com/soerdev/soer_examples/blob/latest/monoid/monoid.ts
А ролик выйдет либо в конце этой недели, либо в начале следующей.
GitHub
soer_examples/monoid/monoid.ts at latest · soerdev/soer_examples
Examples from video. Contribute to soerdev/soer_examples development by creating an account on GitHub.
🔥12👍1
Очень много ссылок прислали, на годные каналы. Вот такой список подписок у меня получился:
- Архитектура и теория программирования
Алексей Радзишевский https://www.youtube.com/c/АлексейРадзишевский
Максим Смирнов https://www.youtube.com/watch?v=4P5DLoaGPks
System Education https://www.youtube.com/c/SystemEducation
Эксперт по IT и организационному развитию https://www.youtube.com/user/rosssoxa
Андрей Созыкин https://www.youtube.com/c/AndreySozykinCS
- C#
Степан Береговой https://www.youtube.com/c/SBeregovoyRU
- Python
abglazov https://www.youtube.com/c/abglazov
Диджитализируй https://www.youtube.com/c/%D0%94%D0%B8%D0%B4%D0%B6%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B7%D0%B8%D1%80%D1%83%D0%B9
- Java
https://www.youtube.com/c/DecembristITTV
- Архитектура и теория программирования
Алексей Радзишевский https://www.youtube.com/c/АлексейРадзишевский
Максим Смирнов https://www.youtube.com/watch?v=4P5DLoaGPks
System Education https://www.youtube.com/c/SystemEducation
Эксперт по IT и организационному развитию https://www.youtube.com/user/rosssoxa
Андрей Созыкин https://www.youtube.com/c/AndreySozykinCS
- C#
Степан Береговой https://www.youtube.com/c/SBeregovoyRU
- Python
abglazov https://www.youtube.com/c/abglazov
Диджитализируй https://www.youtube.com/c/%D0%94%D0%B8%D0%B4%D0%B6%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B7%D0%B8%D1%80%D1%83%D0%B9
- Java
https://www.youtube.com/c/DecembristITTV
YouTube
Компромисс проектирования
Как нарушилось проектирование информационных систем и что пришло на смену этой деятельности. Кто сегодня отвечает за достижение компромисса между желаниями заказчика и возможностями разработки, которые ограничены сроками, бюджетами и технологиями. Как устроена…
👍36🔥5❤1
Мне понравилось вот это видео - https://www.youtube.com/watch?v=oTz_OmgJFm8
Я сам не понимаю зачем нужны блок-схемы, но их постоянно везде пихают в обучение. Брать растровые изображения для отрисовки схемы - очевидная ошибка, векторные форматы и с позиции формирования и с позиции памяти - сильно оптимальнее.
Я сам не понимаю зачем нужны блок-схемы, но их постоянно везде пихают в обучение. Брать растровые изображения для отрисовки схемы - очевидная ошибка, векторные форматы и с позиции формирования и с позиции памяти - сильно оптимальнее.
YouTube
Препод заставлял рисовать блок-схемы. Чем закончилось? Парсер C++ | Не сработавшая оптимизация
#DevJungles #dotnet #ityoutubersru #stories #php #development #performance #http #js #web #freelance
Доброго времени суток тебе странник! Добро пожаловать в Dev Jungles Stories!
Сегодня тебя ждет увлекательная история одной интересной оптимизации, которая…
Доброго времени суток тебе странник! Добро пожаловать в Dev Jungles Stories!
Сегодня тебя ждет увлекательная история одной интересной оптимизации, которая…
👍18
Я знаю, что стоит мне сказать хоть слово в телеге, твитторе или канале, как это тут же начинает обсасываться в кулуарах. Так что давайте накину на вентилятор для того чтобы не нарушать традиции.
Дима Рожков aka Senior Software Vlogger
Я знаю, что многих он выбешивает своей безапелляционной манерой вести обсуждение, по крайней мере меня точно в свое время выбесил до белого каления. Но спустя много лет сетевого знакомства могу сказать, что это один из немногих людей, которые действительно говорят что думают, и не занимаются всякой подковерной возней.
И тут есть нюанс, можно развиваться ориентируясь на кого-то, а можно вступая в конкуренцию. И если у вас есть оппонент, который не согласен с вашей точкой зрения, но при этом имеет твердые моральные принципы, чтобы не использовать всякие "грязные" трюки, то это может помочь ничуть не хуже, чем "поддерживающая мотивация" когда тебе говорят "пробуй у тебя все получится, ты молодец".
Я уже много раз говорил, что изначально завел свой ютуб канал в противовес Диминому каналу, потому что меня бесило, что в его роликах софтскилы играли большее значение, чем хардкорное программирование.
Мало кто знает, что я так же был забанен во всех ресурсах SSV, может до сих пор забанен, не проверял давно.
Собственно, я пишу это к тому, что хорошие соперники могут быть гораздо лучше чем "хорошие друзья" (да, да именно в кавычках "друзья").
Вспомнилось потому что наткнулся на историю Димы на канале "Разрабы", ссылку прилагаю. А смысла в этом посте особо не надо искать, просто забавно как меняются люди и отношение к ним.
https://youtu.be/6C5joIH_amU
Дима Рожков aka Senior Software Vlogger
Я знаю, что многих он выбешивает своей безапелляционной манерой вести обсуждение, по крайней мере меня точно в свое время выбесил до белого каления. Но спустя много лет сетевого знакомства могу сказать, что это один из немногих людей, которые действительно говорят что думают, и не занимаются всякой подковерной возней.
И тут есть нюанс, можно развиваться ориентируясь на кого-то, а можно вступая в конкуренцию. И если у вас есть оппонент, который не согласен с вашей точкой зрения, но при этом имеет твердые моральные принципы, чтобы не использовать всякие "грязные" трюки, то это может помочь ничуть не хуже, чем "поддерживающая мотивация" когда тебе говорят "пробуй у тебя все получится, ты молодец".
Я уже много раз говорил, что изначально завел свой ютуб канал в противовес Диминому каналу, потому что меня бесило, что в его роликах софтскилы играли большее значение, чем хардкорное программирование.
Мало кто знает, что я так же был забанен во всех ресурсах SSV, может до сих пор забанен, не проверял давно.
Собственно, я пишу это к тому, что хорошие соперники могут быть гораздо лучше чем "хорошие друзья" (да, да именно в кавычках "друзья").
Вспомнилось потому что наткнулся на историю Димы на канале "Разрабы", ссылку прилагаю. А смысла в этом посте особо не надо искать, просто забавно как меняются люди и отношение к ним.
https://youtu.be/6C5joIH_amU
YouTube
Как перейти из программистов в менеджеры – Как мы попали в IT – Senior Software Vlogger
Подписывайся на ТГ-канал Elbrus Bootcamp https://news.1rj.ru/str/+IT2srQnYjnZiODFi
Приходи на день открытых дверей, чтобы почувствовать атмосферу буткемпа и узнать подробнее об обучении: https://bit.ly/razraby_dod
Супер-курс Влада Тена по Алгоритмам!
https://t.me…
Приходи на день открытых дверей, чтобы почувствовать атмосферу буткемпа и узнать подробнее об обучении: https://bit.ly/razraby_dod
Супер-курс Влада Тена по Алгоритмам!
https://t.me…
👍30😁5💩5🔥3🤯3❤1🤔1
Иногда у меня складывается впечатление, что только я Маркса и не читал. Вокруг столько экспертов, которые в деталях цитируют Маркса, добивая цитатами Энгельса.
А вы тоже не читали Маркса? Если да - палец вверх ☝️ 👆 👍
А вы тоже не читали Маркса? Если да - палец вверх ☝️ 👆 👍
👍375👎56😁8🔥2
Каждый разработчик, даже, прости госпади, фронтендер, должен хотя бы прочитать статью о том как строятся компиляторы и как можно написать свой.
Чтобы сэкономить вам время, вот ссылочка на статью, которая без воды и полезна с позиции практики.
https://borretti.me/article/lessons-writing-compiler
Чтобы сэкономить вам время, вот ссылочка на статью, которая без воды и полезна с позиции практики.
https://borretti.me/article/lessons-writing-compiler
Fernando Borretti
Lessons from Writing a Compiler
Collected tips from building the Austral compiler.
👍36💩5❤3
Почему каждый хоть раз должен написать свой компилятор? Вопрос очень хороший. Написание компилятора это как "подтягивание" в спорте - базовое упражнение, которое затрагивает огромную часть практически значимой теории.
Например, парсинг - лично мне это пригождалось 100500 раз, начиная от парсинга логов, заканчивая написанием фитнес-функций, которые отображают качество кода. В рамках этой задачи очень хорошо заходят регулярные выражения, которые раскрывают понятие "регулярности" и приводят к "регулярным грамматикам".
И это только один из примеров. А есть еще - деревья (AST), лексический и синтаксический анализ, проблемы вычислимости и много других вещей, которые встают буквально "на место" когда пытаешься все реализовать на практике. А далее архитектура ПК и много всего интересного с позиции понимания железа...
Поэтому я абсолютно серьезно рекомендую написать свой простенький компилятор, это большая инвестиция в свои профессиональные знания.
Например, парсинг - лично мне это пригождалось 100500 раз, начиная от парсинга логов, заканчивая написанием фитнес-функций, которые отображают качество кода. В рамках этой задачи очень хорошо заходят регулярные выражения, которые раскрывают понятие "регулярности" и приводят к "регулярным грамматикам".
И это только один из примеров. А есть еще - деревья (AST), лексический и синтаксический анализ, проблемы вычислимости и много других вещей, которые встают буквально "на место" когда пытаешься все реализовать на практике. А далее архитектура ПК и много всего интересного с позиции понимания железа...
Поэтому я абсолютно серьезно рекомендую написать свой простенький компилятор, это большая инвестиция в свои профессиональные знания.
👍57🔥6💩2