Элементарный пример, в законах монады есть ограничение, что применение ID-функции не должно менять содержимое монады. Возьмем пример Array.map(Id) === Array. т.е. Id функция выглядит как-то так Id = (x) => x, если мы теперь нарушим этот закон и Array.map(Id) будет возвращать у нас пустой массив (потому что в нашей программе не разрешены "пустые" действия). Закон мы нарушили, Array перестал "быть" монадой, а наша программа не изменила ни стиль, ни надежность работы.
Таким образом, использования монад в ООП - это просто использование паттерна, который вводит некоторые ограничения. Это не делает ваш код "функциональным", просто для тех кто не очень понимает что такое метафора, что такое теория категорий, кажется, что понятие "монады" пришло из ФП, но там оно выполняет другую задачу - позволяет добавить императивное поведение в программу. А в ООП это просто интерфейс, который по какой-то причине захотелось назвать "Монадой".
Более того, нарушение законов монады, например в JS Promise, не уменьшает полезности этого инструмента. И не "убивает" надежность программы.
Но понять, что использовать метафору из теории категорий и писать функциональном стиле - это абсолютно разные вещи может далеко не каждый. Это боль нашего АйТи, которая называется "модно, молодежно".
Таким образом, использования монад в ООП - это просто использование паттерна, который вводит некоторые ограничения. Это не делает ваш код "функциональным", просто для тех кто не очень понимает что такое метафора, что такое теория категорий, кажется, что понятие "монады" пришло из ФП, но там оно выполняет другую задачу - позволяет добавить императивное поведение в программу. А в ООП это просто интерфейс, который по какой-то причине захотелось назвать "Монадой".
Более того, нарушение законов монады, например в JS Promise, не уменьшает полезности этого инструмента. И не "убивает" надежность программы.
Но понять, что использовать метафору из теории категорий и писать функциональном стиле - это абсолютно разные вещи может далеко не каждый. Это боль нашего АйТи, которая называется "модно, молодежно".
👍25🤯1
Вышло 25-ое архитектурное видео на platform.soer.pro
Тема видео - Архитектурные границы и зависимости
Публичный конспект стрима: https://soer.pro/codelabs/arch_stream_25/index.html?index=..%2F..index#0
Тема видео - Архитектурные границы и зависимости
Публичный конспект стрима: https://soer.pro/codelabs/arch_stream_25/index.html?index=..%2F..index#0
👍14🔥2
Друзья, давайте подключим коллективный разум и соберем интересных тем для будущих видосов. Напишите либо свою тему, либо поставьте лайк на чью-нибудь чужую. Хочется получить темы, которые интересны большинству.
Темы пишите в комментарии к этому посту.
Темы пишите в комментарии к этому посту.
🔥10👍4
Некоторые мысли про написание плохого кода.
https://telegra.ph/Vse-pishut-odinakovo-plohoj-kod-06-26-2
https://telegra.ph/Vse-pishut-odinakovo-plohoj-kod-06-26-2
Telegraph
Все пишут одинаково плохой код
Все пишут одинаково плохой код. Такое утверждение стало встречаться довольно часто. Мне не совсем понятна причина его происхождения. Люди с полной уверенностью заявляют, что на самом деле никакой разницы в качестве кода не существует. Что все правила по написанию…
👏19👍10🔥5😁1
Что значит ООП парадигма, как мыслить объектами, а не структурами? Почему одни ООП программы более ООП чем другие?
Если хотите понять что такое ООП то лучшая книга для этого Объектно ориентированное конструирование программных систем. Из всех взглядов (я имею в виду Кея и Страуструпа) объяснения Мейера мне кажутся наиболее интересными и полезными. У него отлично описано контрактное программирование и объектная парадигма. Книга хоть и старая но очень хорошая.
#книга #обзор
Если хотите понять что такое ООП то лучшая книга для этого Объектно ориентированное конструирование программных систем. Из всех взглядов (я имею в виду Кея и Страуструпа) объяснения Мейера мне кажутся наиболее интересными и полезными. У него отлично описано контрактное программирование и объектная парадигма. Книга хоть и старая но очень хорошая.
#книга #обзор
👍46❤3🔥2🤔1
Переделал редактор конспектов на platform.soer.pro Давно хотел его сделать чем-то похожим на Jupyter ноутбуки.
Теперь документ - это набор блоков. Блок может быть разных типов, пока только Markdown, но планирую еще сделать код, графики и схемы.
Пока много чего не сделано, но начало положено. Напоминаю, что можно присоединиться к разработке и получить "PRO" за решение issue этой платформы.
Теперь документ - это набор блоков. Блок может быть разных типов, пока только Markdown, но планирую еще сделать код, графики и схемы.
Пока много чего не сделано, но начало положено. Напоминаю, что можно присоединиться к разработке и получить "PRO" за решение issue этой платформы.
👍10🔥3
Не все читают чат, поэтому продублирую здесь сылку на критику книги "Принципы, паттерны и методики гибкой разработки на языке C#", о которой писал ранее.
https://sergeyteplyakov.blogspot.com/2013/12/about-agile-principles-patterns-and.html
Критика от Сергея Теплякова. Это автор другой книги по С#, который глубоко разбирается в теме. Критика хорошая, но мне кажется вывод о книге все же предвзят, там сильно больше пользы, чем предполагаемого вреда.
https://sergeyteplyakov.blogspot.com/2013/12/about-agile-principles-patterns-and.html
Критика от Сергея Теплякова. Это автор другой книги по С#, который глубоко разбирается в теме. Критика хорошая, но мне кажется вывод о книге все же предвзят, там сильно больше пользы, чем предполагаемого вреда.
Blogspot
Критика книги Боба Мартина "Принципы, паттерны и методики гибкой разработки на языке C#"
Поскольку камрады выразили желание увидеть в одном месте все комментарии к столь известной и уважаемой книге, как "Принципы, паттерны и ме...
👍11👏4❤1🤩1🥱1
В общем я решил обозревать новости, и не знаю где эти самые новости взять. Расскажите про какие-нибудь интересные агрегаторы новостей. Где можно свежее про айтишечку брать )
❤6
В программировании есть вещи, которые не стареют. С ASCII графикой в комментариях к коду я познакомился году эдак в 1996, когда подписался в FIDO на NICE.SOURCES. Хорошо запомнил пример с кодом для декодирования JPG, который сопровождался ASCII.
Я заговорил об этом, потому что наткнулся вот на эту статью - https://blog.regehr.org/archives/1653 которая содержит кучу примеров с инфографикой из кода.
Я заговорил об этом, потому что наткнулся вот на эту статью - https://blog.regehr.org/archives/1653 которая содержит кучу примеров с инфографикой из кода.
👍7🔥7🤮4❤1
У нас есть замечательная группа VK, в которой собираем интересные ролики по программированию. А вот сегодня я там запустил голосование по лучшему ЯП.
Кому интересно вот ссылка - https://vk.com/codeartblog
PS в группе админю не только я, так что претензии по тому что там размещено не ко мне. )
Кому интересно вот ссылка - https://vk.com/codeartblog
PS в группе админю не только я, так что претензии по тому что там размещено не ко мне. )
🥰9❤1
https://www.youtube.com/watch?v=1qtaVMIfqTQ
Выпустил видео про написание функции на TDD + TypeScript. Может кому-то поможет осмыслить разработку через тестирование.
Выпустил видео про написание функции на TDD + TypeScript. Может кому-то поможет осмыслить разработку через тестирование.
YouTube
Реализация функции deepMerge для собеса (TS+TDD)
#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…
👍27❤3
Ладно хейтеры, это предсказуемая реакция на выводящее из привычного болота состояние. Но, суко, люди, которым ты помогал, когда они ещё вообще ничего из себя не представляли, которые вдруг переворачиваются и начинают тебя кенселить - это выше моего понимания.
Вот в чем, в чем, а в таком я точно не был замечен. А то что говно льют за спиной, ещё лучше характеризует этих людей. Я не буду называть имена, но я вас услышал, господа.
Вот в чем, в чем, а в таком я точно не был замечен. А то что говно льют за спиной, ещё лучше характеризует этих людей. Я не буду называть имена, но я вас услышал, господа.
😱41🤯14🐳12👍7😢6❤4😁2🤔2🤬2💩2🕊1
Я прислушался к вашим советам и попробовал на голосовом вводе произнести фразу "please merge two arrays ". У меня получилось следующее " please merge to erase". Я вбил эту же фразу в гугл переводчик и включил произношение, у него получилось следующее " please match two arrays".
А что получается у вас?
А что получается у вас?
😁40🤬2👍1
Ребята, если кому-то, что-то не нравится, то просто выйдите из сообщества. Не надо заходить в чат и начинать хамить. Если вам сделали замечание по поведению, то либо прислушайтесь, либо сразу на выход.
Я взрослый дядька, не надо меня жизни учить, я без вас разберусь что и как мне делать.
Я взрослый дядька, не надо меня жизни учить, я без вас разберусь что и как мне делать.
👍108😁12🔥6👎5❤4💯3👏1
Хочу поделиться списком рекомендованной литературы для разработчика. За один день такой объем, конечно, не осилить, но как долгосрочная цель - ок.
https://dckms.github.io/system-architecture/emacsway/it/self-education/self-education-for-software-engineer.html
#книга #рекомендация
https://dckms.github.io/system-architecture/emacsway/it/self-education/self-education-for-software-engineer.html
#книга #рекомендация
🔥69👍16
Кухарке на заметку, разница между параметрами и аргументами:
function someF(a, b)...
someF(1, 2)
a,b - параметры
1, 2 - аргументы
function someF(a, b)...
someF(1, 2)
a,b - параметры
1, 2 - аргументы
👍132😁6😱6🤣6👏5👌4🤔2
Недавно меня спросили "А ты делаешь каты?". Этот вопрос поставил меня в тупик, все дело в том, что для программистов эта фраза имеет особый смысл.
Выполнять кату - значит практиковаться в том или ином аспекте программирования, при этом каты могут быть по алгоритмам, подходам, архитектуре, т.е. по чему угодно.
Есть списки кат, которые можно выполнять и для этого есть специальные каталоги "кат".
Интересно на эту тему почитать статью Mark Seemann - https://blog.ploeh.dk/2020/01/13/on-doing-katas/
Выполнять кату - значит практиковаться в том или ином аспекте программирования, при этом каты могут быть по алгоритмам, подходам, архитектуре, т.е. по чему угодно.
Есть списки кат, которые можно выполнять и для этого есть специальные каталоги "кат".
Интересно на эту тему почитать статью Mark Seemann - https://blog.ploeh.dk/2020/01/13/on-doing-katas/
ploeh blog
On doing katas
Approach programming katas differently than martial arts katas.
👍15
Хороший вопрос про английский. Мой опыт таков:
1. Я могу читать даже очень сложные тексты (например, на arxiv.org), но скорость чтения раза в 3-4 меньше чем русского текста.
При этом дело не в том, что мне не хвататет лексики. Не знаю с чем это связно, просто английский текст жрет "батарейку" сильнее, быстрее устаю.
2. Практики устной речи, да еще с теми для кого английский - родной язык, у меня было очень мало. Почти всегда - переписка. Причем, я отвратительно знаю грамматику.
При необходимости подтянуть все можно, но у меня так сложилось, что я находил и нахожу интересную работу внутри России. У меня просто нет жесткой необходимости учить английский лучше.
Из моего опыта - устная речь чтением не прокачивается от слова совсем. Грамматику тоже надо тюнить, но читая названия коммитов к англоязычным репозиториям, замечаю, что, скажем, с артиклями никто не парится.
Так что если нет практики, причем ее надо очень много, то крайне сложно прокачать речь.
1. Я могу читать даже очень сложные тексты (например, на arxiv.org), но скорость чтения раза в 3-4 меньше чем русского текста.
При этом дело не в том, что мне не хвататет лексики. Не знаю с чем это связно, просто английский текст жрет "батарейку" сильнее, быстрее устаю.
2. Практики устной речи, да еще с теми для кого английский - родной язык, у меня было очень мало. Почти всегда - переписка. Причем, я отвратительно знаю грамматику.
При необходимости подтянуть все можно, но у меня так сложилось, что я находил и нахожу интересную работу внутри России. У меня просто нет жесткой необходимости учить английский лучше.
Из моего опыта - устная речь чтением не прокачивается от слова совсем. Грамматику тоже надо тюнить, но читая названия коммитов к англоязычным репозиториям, замечаю, что, скажем, с артиклями никто не парится.
Так что если нет практики, причем ее надо очень много, то крайне сложно прокачать речь.
👍56🔥9🐳4
https://youtu.be/vjTO0BqZwsY
Футболки с логотипом канала продолжают уходить в массы, сейчас в нашу банду соеров входит три человека - Михаил Фленов и Денис Westwind.Galeaf
Ссылку на стрим Дениса где он в футболке прилагаю.
Футболки с логотипом канала продолжают уходить в массы, сейчас в нашу банду соеров входит три человека - Михаил Фленов и Денис Westwind.Galeaf
Ссылку на стрим Дениса где он в футболке прилагаю.
YouTube
Стрим для отдыха #3 (часть 2)
#ITubeTeam #python
https://discord.gg/bntzwv6qP8 - Дискорд.
https://news.1rj.ru/str/WGDev - телеграм-канал проекта
https://vk.com/wgdev - vk-группа проекта.
https://discord.gg/bntzwv6qP8 - Дискорд.
https://news.1rj.ru/str/WGDev - телеграм-канал проекта
https://vk.com/wgdev - vk-группа проекта.