Pull to refresh
15
0
Morthan @Morthan

User

Send message

Можете привести пример, когда ошибку нельзя воспроизвести и нужно до умопомрачения анализировать код?

Например, такая ситуация. Есть программа, которая забирает письма из почтового ящика и потом что-то с ними делает. Клиент жалуется, что иногда она портит имена аттачей. Чаще всего не портит, но иногда — портит. Предсказать, будет ли имя испорчено, нельзя. В прошлой версии всё было нормально.

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

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

Это вещи, которые бывают крайними, согласно правилам русского языка. Ко всему остальному полагается применять прилагательное «последний». (Не помню, из какой книги цитата. Кажись, «Акулы из стали».)

Для отрисовки я взял готовую библиотеку jsTreemap. Внешний вид специально подбирал для большей похожести на WinDirStat.

Цикломатическая сложность вместе с прочими метриками раз в день считалась с помощью Source Monitor и экспортировалась в XML. Дальше я его парсил и генерировал страницу.

Абсолютная и относительная сложность это, скорее, режимы отображения.

В режиме относительной сложности блок с наименьшей сложностью зелёный, с наибольшей — красный, а между ними градиент.

В режиме абсолютной сложности блок с нулевой сложностью зелёный, со сложностью 15 и выше — красный, а между ними градиент.

Таким образом, относительная сложность показывает, что чинить в первую очередь, а абсолютная — насколько всё в принципе плохо.

Я когда-то делал древовидную визуализацию метрик проекта. Размер блока — количество строк кода. Цвет — сложность (градиент от зелёного к красному, чем краснее, тем сложнее).

Могу предположить, что за счёт языка реализации. Lucene написан на Java, Tantivy — на Rust.

Правильно. Вот к этому идеалу и нужно стремиться! ;-)


В точном соответствии с ТРИЗ: идеальный конечный результат — это когда системы нет, а её функции выполняются.

ИМХО, это два разных вида удовольствия и одно не отменяет другое. А насчёт элегантности кода… не думаю, что хороший код пишут для того, чтобы его кто-то оценил.

Разумеется! Не ломается только идеальная программа, а идеал недостижим. Но к нему нужно стремиться. :-)

Нет, мне это не кажется странным. Это вполне в порядке вещей. Собственно, самое первое моё слово в этом треде было аббревиатурой «По моему скромному мнению». У вас, понятное дело, мнение может быть другим — почему бы и нет?


Если бы я написал: «Ха! Автор несомненно и тотально прав на 100% для всех людей на поверхности планеты Земля», то тут имело бы смысл спорить. А ломать копья, обсуждая субъективные мнения, как мне кажется, бессмысленно.

Во-первых, почему нет следования из «эстетическое удовольствие» в «качественный код»? Для вас, допустим, нет. А для меня, допустим, есть. Как я и написал в самом-самом начале. :-)


Во-вторых, почему вы считаете, что я хочу оспорить или доказать утверждение, что «[некоторые] разработчики пишут некачественный код, который идёт потребителю»?


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

Если вопрос ставится в форме «или эстетическое удовольствие или деньги», то ровно в такой же форме он встаёт перед любым разработчиком. И он, разработчик, в подавляющем большинстве случаев выбирает деньги. Что логично.


А если разработчики выбирают деньги, а не удовольствие от написания качественного кода, то они пишут не очень качественный код. Следовательно, автор прав: разработчики пишут некачественный код, который идёт потребителю.

По-моему, я это уже писал несколькими комментариями ранее. Процитировать?

Ну, значит, ваше чувство прекрасного не совпадает с моим. Это тоже вариант нормы. :-)

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


Конечно, это моё субъективное мнение, то бишь ИМХО.

Если вопрос ставится в форме «или эстетическое удовольствие или деньги», то ровно в такой же форме он встаёт перед любым разработчиком. И он, разработчик, в подавляющем большинстве случаев выбирает деньги. Что логично.


А если разработчики выбирают деньги, а не удовольствие от написания качественного кода, то они пишут не очень качественный код. Следовательно, автор прав: разработчики пишут некачественный код, который идёт потребителю.

ИМХО, такое противопоставление подтверждает правоту автора. :-)

Ага. :-)
Наша рабочая гипотеза заключалась в том, что когда перед группами поставлены конфликтные, то есть достижимые только за счет другой группы, цели, их члены испытывают враждебность друг к другу, даже если группы состоят из нормальных уравновешенных личностей. Из этой посылки следует заключение, которое мы рассмотрим позже. Чтобы спровоцировать столкновение между группами, мы устроили соревнования по бейсболу, футболу, перетягиванию каната, поискам сокровищ и т.д. Игры начались в духе здорового спортивного состязания. Но по ходу дела здоровый спортивный дух быстро улетучился. Мальчики обеих групп начали обзывать соперников «вонючками», «подлецами» и «жуликами». А затем отказались иметь дело с членами противостоящей группы. Мальчики лагеря 1949 г. отвернулись от товарищей, избранных «лучшими друзьями» сразу после приезда в лагерь. Большинство мальчиков негативно оценивало членов противостоящей группы. Соперничающие группы изготовили угрожающие плакаты и затевали набеги, втайне запасая зеленые яблоки для вооружения. В лагере у «Пещеры Грабителя» «Орлы», потерпев поражение в игре, подожгли флаг, забытый на поле «Гремучими змеями». На следующее утро, добравшись до стадиона, «Гремучие змеи» захватили флаг «Орлов». С того момента потасовки и набеги стали ежедневным явлением.

Дальше экспериментаторы грамотно накалили ситуацию и в конце попытались всех помирить. В книге Арсен не стал дожидаться окончания и свалил раньше.
Кстати, показанный в «Цифровом» эксперимент с разделением подростков на команды реально проводился в середине прошлого века.
Ну, книгу вы уже выложили.

Не припоминаю, чтобы что-то выкладывал. Надеюсь, это опечатка, иначе придётся заподозрить у себя провалы в памяти. :-)

Книги эти у меня есть, даже в бумаге. Но там нет постов про игры, например. И комментарии, конечно, тоже весьма ценны. Иногда объём комментариев превышает объём поста и среди них попадаются очень интересные.
После прочтения очередного такого поста очень хочется вспомнить молодость, собрать все посты Мосигры, сверстать их в один FB2 и выложить куда-нибудь на Флибусту. Но в итоге лень всё равно побеждает. :-)
1
23 ...

Information

Rating
Does not participate
Location
Запорожская обл., Украина
Registered
Activity