Post has attachment
Доступны материалы с #SpbDotNet №21
Дмитрий Нестерук «Хорошие идеи в современных языках программирования»
https://www.slideshare.net/DmitriNesteruk/good-ideas-in-programming-languages
https://www.youtube.com/watch?v=WTiRddnYD9E

Ваши отзывы всё-ещё принимаются
https://goo.gl/forms/rMcpyBj7HMX3obfm2

Post has attachment
Доступны материалы с #SpbDotNet №21
Дмитрий Нестерук «Интересные подходы в реализации паттернов проектирования в C#»
https://www.slideshare.net/DmitriNesteruk/design-pattern-observations
https://www.youtube.com/watch?v=bFZ9ytZnVmQ

Ваши отзывы всё-ещё принимаются
https://goo.gl/forms/rMcpyBj7HMX3obfm2

Post has attachment
Друзья, поделитесь впечатлениями о нашей встрече #SpbDotNet №21
https://goo.gl/forms/rMcpyBj7HMX3obfm2
Photo

Post has attachment
15 июня в гостях у компании Intermedia состоится 21-я весенняя встреча SpbDotNet
https://spbdotnet.timepad.ru/event/507774/
На первой летней встрече сообщества мы поговорим о шаблонах проектирования, полезных приёмах в коде и прочих особенностях языка. Никто не справится с этой темой лучше чем великий маэстро C, C++, C#, Rx, D, F#, Kotlin, Rust и много другого. А принимать это эпичное событие будет большой и дружелюбный офис компании Intermedia.

Photo

Друзья, поделитесь впечатлениями о нашей встрече #SpbDotNet №17
https://goo.gl/forms/yeNWCBX79Ep5jYP92

Post has attachment

Post has attachment
Р.С. Мартин, М. Мартин «Принципы, паттерны и методики гибкой разработки на языке C#» #dotnet1st #book #review

Когда задумывалась акция обзоров в наших группах, основная идея была рассказать о книгах, которые позволили по-новому взглянуть на какие-либо вопросы разработки. Для меня это была книга Р. С. Мартин, М. Мартин «Принципы, паттерны и методики гибкой разработки на языке C#».

На мой взгляд, книга могла бы взять приз в двух номинациях:
- самое увлекательное разъяснение сути принципов SOLID и паттернов объектно-ориентированного дизайна (ООД);
- самое неудачное название, да простят меня авторы. На самом деле в книге речь идет не про процессы или методологии разработки, как может показаться. Не про Scrum и Kanban, а про архитектуру приложений. И с C# книга связана только тем, что в ней даны примеры на этом языке. И учитывая, что книга издана во времена C# 2.0, примеры довольно громоздкие. Все сказанное в книге актуально для любого языка с ООП парадигмой. Я писал на C++, когда читал ее.

Около 5 лет назад я прочитал ее от корки до корки. Тогда найти крупный проект, разрабатывающийся по Agile ещё было не легко, а внятно объяснить на собеседовании что такое SOLID могли единицы. Я работал в компании, где распечатки этих принципов висели на стенах, а за несоблюдение Single Responsibility Principle били линейкой по рукам. И все же, только после прочтения книги, в моей голове до конца сложилось понимание где и как применять эти принципы, и паттерны из диаграмм стали явно возникать при чтении и написании кода.

В первую очередь, я рекомендую книгу тем, кто начинает свой путь в проектировании архитектуры. Это отличный материал, чтобы перейти от сухого описания паттернов (например, из хрестоматийного GoF) к их использованию на практике. Это способ осознать границы применения принципов ООД не через набивание шишек на реальном проекте, а на отлично подобранных примерах из книги. Понять не только, что любое архитектурное решение «it depends», но и увидеть на основе чего мы должны принимать это решение о использовании того или иного паттерна или подхода. Но не забывайте про критическое мышление при разборе примеров из книги, ваше мнение не обязательно будет совпадать с мнением авторов и это нормально.

Если вы уже матерый разработчик и вас тут нечем удивить, тогда начните читать книгу с части III «Задача о расчете заработной платы». Там на 400 страницах описана разработка реальное системы. Это описано настолько ярко и увлекательно, что книга проглатывается за пару выходных. Виден весь ход мыслей авторов, ошибки в дизайне и приемы их устранения. Прочитать книгу - это самый быстрый способ посмотреть на жизнь продукта. На своем опыте вы сможете пронаблюдать подобное только за несколько месяцев, а возможно и лет.

=====
Об авторе обзора:
Михаил Щербаков. Организатор сообщества .NET программистов в Санкт-Петербурге и Москве. Занимался управлением проектами и разработкой в области информационной безопасности, работал team lead'ом в Acronis и Luxoft. Профессиональные интересы: статический и динамический анализ кода, информационная безопасность, автоматизация отладки кода, исследование внутреннего устройства .NET CLR
Photo

Post has attachment
Майкл К. Физерс “Эффективная работа с унаследованным кодом” #dotnet1st #book #review

Книга “Эффективная работа с унаследованным кодом” Майкла К. Физерса попала ко мне не так давно, но произвела на меня очень большое впечатление. Если вы работаете с кодом, который разрабатывается уже не первой командой, обратите внимание на нее. Ведь большая часть книг описывает, как правильно построить архитектуру с нуля, какие паттерны для этого нужно применять. А на практике большинство разработчиков работает с готовыми системами и их задача вносить изменения которые хочет заказчик.

Что делать если у вас вдруг появился GOD-класс?
Возможно при проектировании системы этот класс был хорошим решением и стал GOD-классом после многих итераций изменения кода. В данной книге описано как разделить этот класс на составляющие, как выбрать точки разграничения ответственности между классами. И что делать если у вас нет времени нормально покрыть тестами ваши изменения. Тогда вам следует покрыть тестами только то что было изменено.

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

=====
Об авторе обзора:
Игорь Серков. Активист московского сообщества .NET программистов @mskdotnet. MCP, .NET разработчик с десятилетним опытом в областях от систем удаленного управления компьютерами до GameDev и кроссплатформенной разработки.


Photo

Post has attachment
Первая рецензия от +Dmitri Nesteruk:

В свое время, когда на CodeProject победителям конкурсов статей дарили бумажные книги, я получил три разные книги от Apress. Об одной из них, а именно Pro .NET 4 Parallel Programming (автор Adam Freeman) я бы и хотел рассказать.

Суть в том, что именно во времена .NET 4 вышли библиотеки TPL (Task Parallel Library) и PLINQ (Parallel LINQ) которые предоставили новую модель параллельного программирования а книжка, которая оказалось очень годной, весьма неплохо помогла осветить эту тему - она, несмотря на версию 4 в названии, все еще остается актуальной как никогда.

Первое нововведение - это конечно же класс Task, представляющий Unit of Work который планировщик может запускать в отдельном потоке. Соответственно, книга начинает с того что рассказывает про этот класс, про то как запускать задачи, а также как производить отмену - причем дизайнеры решили отменять задачи через исключения и токены отмены.

Следующая часть главы рассказывает про синхронизацию доступа к данным - про Interlocked, спин-локи, wait handle-ы и мьютексы, а также про параллельные коллекции которые ввели вместе с TPL.

Далее, рассказ идет про координацию задач - так называемые continuations, иерархические отношения Task’ов и то, какие примитивы синхронизации можно использовать для координирования исполнения задач. Также приведен пример написания кастомного планировщика задач, если дефолтный вас чем-то не устраивает.

Следующая глава - про параллельные циклы. Для этого в .NET введен класс Parallel, который дает возможность автопараллелизовать обход цикла (численно или по итератору), и рассмотрены возможности кастомизации запуска циклов, обработка исключений, отмена циклов, получение результатов из циклов, и так далее. Также автор рассказывает про стандартные стратегии партиционирования и создание своих собственных.

Потом речь идет про Parallel LINQ - тут все очень коротко и просто, т.к. в .NET параллелизацию в LINQ добавили одним оператором AsParallel() и все что нужно знать - это то, как можно управлять этой параллельностью - ведь можно форсировать параллелизм, ограничивать его или отключать полностью. Ну и, как всегда, все те же проблемы: как отменять PLINQ запросы, как обрабатывать исключения и, опять же, кастомизация процессов партиционирования и агрегации.

Следующая глава - про то как тестировать параллельные алгоритмы, замерять производительность и искать баги (например дедлоки) в параллельных алгоритмах.

Ну и последняя глава - хороший набор примеров тех алгоритмов, которые вы скорее всего будете писать в работе с TPL. Тут есть примеры map-reduce, producer-consumer, параллельной сортировки и обхода деревьев. Да и в целом вся книга тоже полна интересных примеров - как применения полученных знаний, так и примеров того, что может пойти не так, и почему.

Резюмируя, если вы хотите с помощью одной единственной книги понять текущее положение дел в параллелизме в .NET, то книга Pro .NET Parallel Programming вам подойдет. Удачи!

=====
Об авторе обзора:
Дмитрий Нестерук. Квант, разработчик и просто увлеченный человек. Занимается финансовой математикой, пишет видеокурсы по технологиям и математике, делает доклады про инструментарий и методики разработки. Работает исследователем в университете Саутхэмптона (Великобритания). Ведет блог https://nesteruk.wordpress.com/

Напоминаю, что 15 сентября Дмитрий будет делать доклад на нашей встрече в Санкт-Петербурге, регистрируйтесь и приходите https://spbdotnet.timepad.ru/event/369075/
Photo

Post has attachment
Поздравляем всех с Днем знаний! Мы решили провести интересную акцию в эту честь.

Каждый день мы будем публиковать новый обзор на книгу или статью от .NET экспертов. Авторами рецензий будут спикеры конференций и наших митапов, архитекторы и разработчики с годами опыта за спиной.

Мы предложили каждому эксперту выбрать только одну книгу (или статью) для обзора, поэтому вас ждет подборка действительно высококлассного материала, на который однозначно стоит обратить внимание. Присоединяйтесь к обсуждению книг в комментариях. Поехали!
Photo
Wait while more posts are being loaded