Обновить
149
0
Олег Тарасов @ThePretender

Пользователь

Отправить сообщение
Я пиарю не столько себя, сколько компанию, в которой работаю :) И уже из этого делаю вывод, что если нормальные компании принципиально существуют, то нежелание их искать — это проблема конкретного человека.
Очень понравилась компонентная структура. Когда автор мне про неё впервые рассказал, я так возбудился, что тут же побежал прикручивать её к своему проекту :) Подход действительно работает очень хорошо и заставляет посмотреть свежим взглядом на заезженную парадигму ООП и её место в народном хозяйстве :)
Жесть какая. Соглашусь с Ariman: дельфи живёт только за счёт легаси кода. Никто в здравом уме не будет писать на нём новую энтерпрайз систему, тем более высоконагруженную.

Let the holy war begin.
Это на анлим цены? оО
Странно. Регался там ещё месяца полтора назад. Сказали, что напишут ближе к началу курса, но я так ничего от них и не услышал. Сейчас попробовал зарегаться на ту же почту — создался новый аккаунт. Похоже, они решили забить на тех, кто рано подал заявки :)
Ну раз уж заинтриговали, то озвучьте название книги :)
А как вы узнали, что это вселенная вам помогает? ;)
Здравствуйте. Меня зовут Вася и я… Мне сложно об этом говорить… Я делал девайсы на ардуине. Но после того, как я прочитал книгу доктора Аримана «STM32: жизнь без страха», моё представление о мире полностью перевернулось. Моя жизнь наполнилась красками, я сбросил оковы 8-битных вычислений и открыл для себя путь к просветлению. Я обрёл внутреннее равновесие и уверенность в своих девайсах, о котором я не мог и мечтать, используя ардуину. Спасибо!
Отлично! Автор написал именно то, что уже давно крутилось у меня в голове :) И где там люди сеошность увидели? оО
У вас есть хоть какая-то структура. В некоторых случаях нет и этого :))
Я пытаюсь бороться не столько с размытием логики, сколько с ухудшением читаемости. Основная проблема, которую я пытался осветить в статье — неоднозначность восприятия расширений при разборе неизвестного кода. В то время, как с обычными статическими классами всё понятно (вот класс, а вот его статический метод), в случае с расширениями может возникнуть путаница (не всегда понято, что перед тобой: расширение или член класса).
Отчего же, слышал я про dynamic, и даже успешно применяю в одном специфическом сценарии. Очень удобно и безопасно, если писать аккуратно :)

Мой пример с котопсом, к сожалению, взят из реальной жизни. За исключением имён классов и методов, конечно :)

Как я уже и сказал, я только «за» использование расширений там, где это оправдано.
Зачем выдумывать свой пример, если есть существующие, например, тот же Linq. Как бы вы его перепели статическими методами и во что бы превратились цепочки вызовов list.Where(…).Where(…).Take(…).Sort(…)…?

Расширения изначально создавались для реализации LINQ, и я обеими руками за их использование в подобных сценариях. Если вы прочитаете апдейт к посту, то поймёте, что я имел в виду совершенно конкретный сценарий применения расширений.

У нас, например, расширение IsDbNull для Object находится в файле +System\Data\ObjectExtensions.cs и пространстве имен System.Data. Очень удобно и прозрачно.

Вы тоже молодцы, что изначально всё регламентировали :) К сожалению, есть проекты, развивашиеся спонтанно и не имеющие чётко определённой структуры. В подобный проектах фанатичное использование расширений, рандомным образом раскиданных по файлам, только ухудшает и без того затруднённое понимание кода.
Молодцы, что заранее договорились :) К сожалению, не всем посчастливилось работать с хорошо структурированным кодом.
Безусловно, расширения — очень полезная вещь и в некоторых случаях очень удобна. Однако когда её фанатично начинают пихать в все подходящие и неподходящие места, наступает полный мрак и ппц :)
Так и есть. Но я писал немного не про это :)
Насколько я знаю, extensions изначально и создавались для того, чтобы расширить IEnumerable (IQueryable и иже с ними). В этом случае их можно и нужно применять. ИМХО не зря в МСДН написано, что программист будет чаще вызывать расширения, чем создавать свои. Одно дело — вызывать общеизвестные Where, Select, Skip и т. д., и совсем другое — продираться через дебри доморощенных расширений, пытаясь угадать, что это за метод: член класса, или extension.
Я против их неуместного использования. Обновил пост, дабы внести окончательную ясность :).
В посте я говорил о случае, когда класс и расширения находятся в одном и том же проекте и разрабатываются одними и теми же людьми. То есть, функционал, который люди хотят упихать в классы, но не могут этого сделать по причине баттхёрта от нарушения инкапсуляции, успешно пихается в расширения. ИМХО это не клёво.

А ваш пример вполне правомерен, для того расширения и были придуманы.

З.Ы. Обновил пост.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность