Pull to refresh
100
0
Марк Шевченко @markshevchenko

программист

Send message

В статье рекомендуется другая книга — Clean Archicteture.

У меня просто есть история про разное понимание паттерна Unit of Work. Один участник дискуссии думал, что UoW это то же самое, что и транзакция и может быть вложенной. А другой опирался на описание паттерна в книге Фаулера. Там про вложенность ничего нет.

Вместо того, чтобы сократить время разговора, паттерн стал причиной спора. Поэтому не соглашусь с вами. Паттерны нужны для передачи информации о проектных решениях в коде. Если программисты будут понимать их по разному, неизбежны проблемы.

С таким утверждением сложно спорить. :)

Ты думал, он только занудствует на тему тестов и чистоты кода? :)

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

Не соглашусь. Паттерны придумывают люди для каких-то целей. И паттерны это всегда результат осмысления существующего кода, результат поиска закономерностей.

Описание паттерна очень важно для передачи смысла. Если вы дадите классу название OrderRepository, читатель вас поймёт. А вот если назовёте его OrderManager — то, скорее всего, нет. Manager может быть чем угодно.

Может быть, вы и правы. Но я Гради Буча очень давно не перечитывал, поэтому в фундаментальные книги и не записал. Мне кажется, его подход оказался слишком громоздким — предтечей современного кровавого энтерпрайза.

Вы правы, что хороших книг гораздо больше, чем здесь написано. Но объять необъятное нельзя, Козьма Прутков это точно установил.

Я сначала в заголовке написал, что речь про ООП и даже про .NET, но потом решил, что длинный заголовок зло, и перенёс ООП и .NET в хабы. Мне казалось, они бросаются в глаза и задают какой-то контекст.

Что касается SICP, то у меня несколько материалов, навеянных этой книгой. В частности, предыдущая статья на хабре.

Я ещё раз перечитал, прикинул и, думаю, вы правы.

Да, в C# 3.5 завезли именно такой мощный вывод типов. Завозили, чтобы там работал LINQ и им было удобно пользоваться. Работает эта штука и для лямбд, и для других выражений, где используются деревья. Скажем, если LINQ запрос приводить к IQueryable<T>, он тоже не будет выполняться сразу, его нужно будет во что-то скомпилировать. В Entity Framework такие запросы компилируют в SQL, но можно обращаться и к обычным коллекциям дотнета.

В SICP это предлагают делать именно так, но здесь я предпочёл писать (относительно) простые методы, каждый из которых делают свою работу. Своеобразное переложение принципа единственной ответственности для методов.

В таком подходе есть свои плюсы. Рядом можно написать независимую функцию интегрирования и упрощать её результаты с помощью готового метода. Или написать функцию сложения или умножения выражений, и тоже упрощать результат, просто вызывая Symplify.

Кент Бек советовал следовать трём правилам при написании кода: сначала надо сделать так, чтобы код работал правильно; потом переписать его так, чтобы он был понятен; и лишь в конце его следует оптимизировать, если это, конечно, надо.

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

Спасибо. Думаю, вы правы, надо бы этот момент смягчить, но тогда авторы комментариев окажутся в странном положении — комментарии будут про то, чего в статье нет. Я учту этот момент на будущее, а тут пусть останется, как есть. Новым читателям по крайней мере будет понятно, за что автору "прилетает".

Учить C# мне надо было, чтобы написать пару-вебчастей для SharePoint. Его первая версия как раз вышла в 2003-м. За 20 минут я написал первую полезную веб-часть, которая попала на портал, и там работала. Дело было действительно в том, что C++, Java и C# были в то время очень похожи.

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

  2. Я везде поставил ссылки на исследования, чтобы читатели могли уточнить детали и сами проверить выводы. Посмотрите в статье, как проводился эксперимент. Она, правда, на английском, но это в наше время, наверное, неизбежно.

Если верить исследованию, сосед будет чуть больше зарабатывать, а вы будете чуть комфортнее работать. В целом ваш уровень будет более-менее одинаковым.

Там далее в тексте:

И это можно проверить. Соответствующие исследование провели Хекман и Кауц в 2012 году. Посмотрите на результаты в таблице 2, где отражено влияние интеллекта и характера на достижения к 35-ти годам.

Если вы умный, вы больше зарабатываете. Но, если вы общительный, вы меньше работаете и меньше выгораете. Мы видим, что влияние интеллекта и характера невелико и соизмеримо.

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

Влияние соизмеримо и не очень велико.

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

Это обычный профессионализм. Знаете, как говорить о субъективности сравнения Донцовой и Кристи, хотя там есть объективные критерии.

> Меня формат заметки вполне устраивает. Т.е. вы чисто субьективно меряете
> все под свою линейку. И жутко возмущаетесь, когда у линейки рамер не тот
> или длинна маловата. Да и еще утверждаете, что ваша линейка —
> правильная, и правильнее, чем у всех остальных. Нехорошо так.

Попробовал бы я вот так своему редактору ответить лет 10 назад. Интересно, что бы он мне сказал?

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

> Собственно, блоги компаний с платной подпиской могут служить еще для
> чего-то? О_о.

Например, для создания положительного образа компании. А не отрицательного, как в данном случае получается. Пришли сотрудники, тусанули, девушек пофоткали, пива выпили. За такой отчёт о командировке сотрудников премии лишают.

> Да, вы зануда, но в этом слове нет ничего обидного и хамского.

Лично мне не кажется, что «зануда» в ответ на вежливую критику — это верх дружелюбия. Лично мне кажется наоборот.

> В остальном — я уже описал, вы слишком серьезно относитесь к MS. И ее
> конференциям.

Это вообще к делу отношения не имеет. Я бы ждал нормального отчёта с посещения любой конференции. А в данном конкретном случае просто нужно помнить, что Балмер это top-5 мировой ИТ-индустрии. Потому, если он говорит о тенденциях, это как минимум интересно.

> Господи, о чем вы? Какой уровень материалов? Я вас не понимаю…

Вот видите, у Вас даже нет представления о критериях, какой материал считать хорошим, какой плохим. А ведь здесь всё просто: вот человека отправили на выставку от компании. Если ему рабочий день оплатили, он должен подготовить отчёт. Теперь представьте, что вы руководитель и вам приносят такой отчёт, как вверху. Что там было на выставке, о чём она, зачем сотрудника посылали, какая польза? Нет ответа.

Так вот, это плохой отчёт, негодный. Не смотря на наличие фото.

> Не в обиду вам будет сказано, но у меня почему-то в голове сложился образ
> махрового виндузятника с ороговевшим горбом, который 22 часа в сутки из 24
> сидит в Visual Studio и пытается уследить за всем, что делает MS. И только MS.
> и Никто кроме MS.

Вы мои претензии почему-то пытаетесь свести к каким-то религиозным. Здесь этим не пахнет. Был бы репортаж о приезде Торвальдса, мне бы тоже было интересно почитать, что он говорил, а не как он выглядел.

> Это, есессно, мои личные заметки. Но к материалам шуточно-рекламного
> характера, которые и не призваны что-то рассказывать, к «имиджевым
> продуктам» вы относитесь уж больно предвзято и субьективно.

Да просто нравится, знаете ли, профессиональный продукт, а не абы что на коленке. Чтобы Вам было понятно: юмор исключительно важен, но как косметика. Если скелета нет, мышц нет, кожи нет, косметика не спасает. Потому сначала нужно подготовить содержание, а потом уже можно озаботиться формой.
> Забыл добавить — нормальный человек сам-то никогда хамить не станет. Что бы ему не ответили. ^_^

Вам виднее, конечно. Вы превентивно хамите, ещё до ответа.

> Будьте немного несерьезны при чтении таких заметок. Это может значительно изменить взгляд на них.

Публикуйте в личных блогах, я их и видеть не буду.

> И последнее — где же то я вам, милсдарь, нахамил-то?

Да там вот выше, в посте 20:46.
> Нет. Это к тому, что вы не поняли суть заметки.

Суть заметки: «был я тут на ремиксе, а у меня с собой был фотоаппарат». Если в таком формате, то фото можно было опубликовать в личном блоге. Ну или хотя бы без претензий обозначить т.н. «суть заметки» — фото с ремикса.

> Вас вполне резонно отредиректили в сторону докладов на офсайте ремикса.

Не совсем понятно, зачем тогда публиковать пост, который заведомо окажется на главной странице хабра. Если уж публикуете, будьте добры, соответствовать.

> после этого вы сами (боже, какой моветон!) назвали свою критику конструктивной и начали хамить. Больше похоже на
> театр одного актера.

Скорее, на рекламу турбомилка. Я бы и не против, если бы нормально подготовили статью. Ну и перечитайте ещё раз мой пост — написан он вежливо, нормальным языком. А вот после ответов ваших никакого желания нормально общаться с вами нет.

> Может все-таки вы слишком серьезно относитесь к Microsoft и всех новостях, которые о ней и про нее?

К уровню материалов я отношусь серьёзно. Ну, нет времени нормально написать — скажи, вот фотки, отчёт будет позже, все всё понимают.

Information

Rating
4,429-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Backend Developer
Lead
From 450,000 ₽
C#
Rust
Algorithms and data structures
Functional programming