Я не согласен с утверждением, что программисты большую часть времени сосредоточены на коде бизнес-логики. Программисты большую часть времени сосредоточены на стыке бизнес-логики и инфраструктуры, потому что постоянно приходится делать "кодирование" понятий естественных для человека, в понятие естественные для компьютера. Цвет - 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
К вопросу "а я сейчас фронт и пилю бабосы не парясь". Тут ключевое "сейчас". На мой взгляд, нужно всегда рассматривать свою текущую деятельность как инвестицию в будущее. Потому что есть такая штука как "усталость" и "износ".
Условно говоря, если новая машина заводится "сейчас" с полоборота и выдает мощность на раз, то это не значит, что так будет всегда. Очевидно что "сейчас" работать можно и больше, и эффективнее. Поэтому нужно это использовать с прицелом на будущее.
Из моих успешных друзей (т.е. кто к 40 обеспечил себя на всю оставшуюся жизнь) есть два успешных кейса:
1. сделать что-то свое (стартап или бизнес) и продать за хорошие деньги.
Крипта - был один из таких вариантов, почему был? Потому что сейчас уже, имхо, поздно, заработать можно, но не на всю жизнь.
Всегда есть варианты с "мини-продуктами", которые нужны крупным брендам. Вы наверняка слышали миллионы истории как гиганты скупают стартапы, которые оптимизируют или дополняют их продукты.
2. купить что-то дорогое и потом сдавать в аренду (или положить в банк под проценты и т.д.) - т.е. найти способ заставить работать ваши деньги. И многие хотят в инвестиции, но обычно это либо не те проценты (мало), либо не те риски (сильно большие).
И опять крипта - это был самый простой и эффективный способ сделать окупаемость х1000 , но опять "поздно".
Всегда есть вокруг перспективы, но они становятся очевидными, только спустя время, а в момент когда вы можете этим воспользоваться - нифига неясно как это сделать.
Поэтому всегда проще заняться "карьерой", чем искать крутые темы. И большая часть вкладывается именно в карьеру, а не ищет крутые инвестиции (самые крученые делают и то, и то).
Поэтому сказать мол "сейчас" мне и так хорошо - это хорошо, но вот что будет через 10 лет - вопрос. Еси у вас есть крутая и работающая на 100% стратегия успеха, то поделитесь. Но мой опыт говорит, что вложение в свои знания - это один из основных элементов успеха.
Условно говоря, если новая машина заводится "сейчас" с полоборота и выдает мощность на раз, то это не значит, что так будет всегда. Очевидно что "сейчас" работать можно и больше, и эффективнее. Поэтому нужно это использовать с прицелом на будущее.
Из моих успешных друзей (т.е. кто к 40 обеспечил себя на всю оставшуюся жизнь) есть два успешных кейса:
1. сделать что-то свое (стартап или бизнес) и продать за хорошие деньги.
Крипта - был один из таких вариантов, почему был? Потому что сейчас уже, имхо, поздно, заработать можно, но не на всю жизнь.
Всегда есть варианты с "мини-продуктами", которые нужны крупным брендам. Вы наверняка слышали миллионы истории как гиганты скупают стартапы, которые оптимизируют или дополняют их продукты.
2. купить что-то дорогое и потом сдавать в аренду (или положить в банк под проценты и т.д.) - т.е. найти способ заставить работать ваши деньги. И многие хотят в инвестиции, но обычно это либо не те проценты (мало), либо не те риски (сильно большие).
И опять крипта - это был самый простой и эффективный способ сделать окупаемость х1000 , но опять "поздно".
Всегда есть вокруг перспективы, но они становятся очевидными, только спустя время, а в момент когда вы можете этим воспользоваться - нифига неясно как это сделать.
Поэтому всегда проще заняться "карьерой", чем искать крутые темы. И большая часть вкладывается именно в карьеру, а не ищет крутые инвестиции (самые крученые делают и то, и то).
Поэтому сказать мол "сейчас" мне и так хорошо - это хорошо, но вот что будет через 10 лет - вопрос. Еси у вас есть крутая и работающая на 100% стратегия успеха, то поделитесь. Но мой опыт говорит, что вложение в свои знания - это один из основных элементов успеха.
👍86🔥10💩5👏2