Ну например взять какой нибудь интерфейс SortedSet, сымплементировать от него класс, и допустить в имплементации какой нибудь косяк с сортировкой. В итоге, все программы, принимающие на вход SortedSet и справедливо делающие предположение о том что итерация по коллекции будет идти по определенному порядку, перестанут быть корректными после подстановки класса с косяком. Прямое нарушение LSP. Но языкам пофиг — пока синтаксически все верно, они все сбилдят и запустят.
LSP вообще просто нарушить, даже если тупо интерфейс имплементировать. И ничто не проверит за девелопера корректность LSP — ни компилятор, ни статический анализатор, ни даже система типов. Единственный реальный недостаток наследования по отношению к остальным инструментам sybtypingа только в том, что с ним нарушить LSP проще всего.
Правильное решение — перестать хаять наследование по поводу и без, и просто перестать его использовать для создания типов, которые не являются subtypeами по LSP от родителя.
ИМХО 90% кейсов, где нужен Builder, покрыли бы именованные аргументы конструкторов с дефалтными значениями
Это решаемо уже сегодня — вторичными конструкторами, делегирующими в this, не? С точки зрения класса это может и громозко, но с точки зрения клиента — никаких отличий от дефолтных значений.
Вообще идея какбэ была не в том что покрытие — показатель, а в том что если команда знает и может назвать свое покрытие тестами, значит относится к тестированию серьезней чем вышеупомянутое «20 тестов прогоняемые раз в день». Но таких ушлых ребят как вы щас описали наверно никакими вопросами не смутишь)
Не, ну серьезно — что зазорного в ремарке? Она может быть тупой либо по делу, полезной или пустопорожней, четкой или нечеткой, с большим импактом на солюшен или с маленьким. Моя обязанность как ревьюера — давать ремарки по делу, и чтобы они были полезными и четкими. Обязанность оунера PR — либо фиксить ремарку, либо дать обратный фидбек, если ремарка не по делу, пустопорожняя или неприменима по иным причинам. Последнее не менее важно чем первое — все мы ошибаемся, можем и фигню в ремарки написать.
Но какого хрена я как ревьюер должен испытывать чувство вины за то что я эти ремарки даю? Какого хрена я должен думать о том что своей ремаркой я кого то обижу? Не матом же я их пишу, в конце то концов, и на ревью не перехожу на личности?
За что здесь автор статьи извиняется, я понять не могу? За кучу ремарок? За то что ремарки были не по существу? За то что самоутверждаясь, он матом в комментах писал и оскорблял оунеров PR?
За что автор статьи чуствовал себя виноватым, когда по молодости ему старшие кучу ремарок на ревью выкатывали? Что такого то — люди его видите ли носом в код тыкали. Сделал выводы и пошел дальше — че за сопли то?
Честнее было бы озаглавить статью «я — токсичный закомплексованный подонок и самоутверждаюсь на безхребетных июнях, и больше так не хочу» — один пень весь пост об этом и был. Нефиг сюда ревью и индустрию в РФ приплетать.
Ну вот щас резко осознаем проблему, и перестаем вообще давать ремарки. Стыдно ему стало…
Большой вопрос не раскрытый в статье — что за ремарки это были, что их было на один PR настолько много, что прям люди ломались. Небось ревьювер делал работу типичного статического анализатора, аля «здесь четыре пробела вместо двух», или «переставь скобки — так на полмилисекунды быстрее, я в микробенчмарках видел». То есть статический анализатор приделать было влом, тесты писать было влом, объективных критериев оценки солюшена — ноль, и видите ли ревьюеры распоясались — самоутверждаются на новичках. Решение — пусть не самоутверждаются, все логично. Ага. То что львиную часть их самоутверждения можно пофиксить установив статические анализаторы, да так чтоб они билд фейлили, не допуская на ревью и не оскорбляя чьих то чуств — не, тогда синьорам самоутверждаться негде будет. Тогда уже придется докапываться по архитектуре, дизайну, а это уже сложнее, там сотни ремарок не найдешь.
И у новичков типа яиц по определению нет — ответить по существу ремарки. Отстоять свой солюшен, отвечая на ремарку объективной контраргументацией. А еще июнь прям ранимая душа, весь изведется же, в то время как фикс ремарки — одна строчка. Че за тупые комплексы? Если согласен с ремаркой — фиксь и мотай на ус экспириенс от знающего спеца. Не согласен — пиши ответ, либо спусти на тормозах и пофиксь как просят, если спор о мелочах. Че комплексовать то?
Отдельно хочется отметить того персонажа, который уволил человека из-за синьорских ремарок на ревью в начале статьи (нелепость). Хочется надеяться что реальная причина все же была в некомпетентности, а не в ремарках, а то как то совсем грустно становится.
А мне как раз больше нравится именно категоричный стиль изложения, как у Егора.
Когда материал подается прямо, в ультимативной форме, его гораздо проще воспринимать объективно. Видя ничем не прикрытые тезисы автора, проще указать на ошибки, проще объективно аргументировать, проще делать выводы для себя. Когда материал подается как «ну типа каждый подход имеет право быть в определенном контексте, блаблабла», начинаешь невольно такой материал трактовать в силу своего опыта и понимания, искажая его по пути.
Для хейтеров такого подхода я рекомендовал бы его же книгу «256 Bloghacks», где он описывает почему он так делает. Пара цитат:
«I am not afraid of being wrong. That's what attracts readers and provoke them to think. I am not just saying what I think, but I provoke them to agree or disagree with me. Sometimes I am wrong. But it's better to be wrong than to say nothing. If I think something about something I just say it, strongly taking one side of discussion».
«It's their (the readers) job to find truth in the middle, not mine. My job is to strongly and explicitly defend one side of the argument. They will find another side somewhere else, they'll compare, and they'll draw their own conclusions».
Это решаемо уже сегодня — вторичными конструкторами, делегирующими в this, не? С точки зрения класса это может и громозко, но с точки зрения клиента — никаких отличий от дефолтных значений.
Но какого хрена я как ревьюер должен испытывать чувство вины за то что я эти ремарки даю? Какого хрена я должен думать о том что своей ремаркой я кого то обижу? Не матом же я их пишу, в конце то концов, и на ревью не перехожу на личности?
За что здесь автор статьи извиняется, я понять не могу? За кучу ремарок? За то что ремарки были не по существу? За то что самоутверждаясь, он матом в комментах писал и оскорблял оунеров PR?
За что автор статьи чуствовал себя виноватым, когда по молодости ему старшие кучу ремарок на ревью выкатывали? Что такого то — люди его видите ли носом в код тыкали. Сделал выводы и пошел дальше — че за сопли то?
Честнее было бы озаглавить статью «я — токсичный закомплексованный подонок и самоутверждаюсь на безхребетных июнях, и больше так не хочу» — один пень весь пост об этом и был. Нефиг сюда ревью и индустрию в РФ приплетать.
Большой вопрос не раскрытый в статье — что за ремарки это были, что их было на один PR настолько много, что прям люди ломались. Небось ревьювер делал работу типичного статического анализатора, аля «здесь четыре пробела вместо двух», или «переставь скобки — так на полмилисекунды быстрее, я в микробенчмарках видел». То есть статический анализатор приделать было влом, тесты писать было влом, объективных критериев оценки солюшена — ноль, и видите ли ревьюеры распоясались — самоутверждаются на новичках. Решение — пусть не самоутверждаются, все логично. Ага. То что львиную часть их самоутверждения можно пофиксить установив статические анализаторы, да так чтоб они билд фейлили, не допуская на ревью и не оскорбляя чьих то чуств — не, тогда синьорам самоутверждаться негде будет. Тогда уже придется докапываться по архитектуре, дизайну, а это уже сложнее, там сотни ремарок не найдешь.
И у новичков типа яиц по определению нет — ответить по существу ремарки. Отстоять свой солюшен, отвечая на ремарку объективной контраргументацией. А еще июнь прям ранимая душа, весь изведется же, в то время как фикс ремарки — одна строчка. Че за тупые комплексы? Если согласен с ремаркой — фиксь и мотай на ус экспириенс от знающего спеца. Не согласен — пиши ответ, либо спусти на тормозах и пофиксь как просят, если спор о мелочах. Че комплексовать то?
Отдельно хочется отметить того персонажа, который уволил человека из-за синьорских ремарок на ревью в начале статьи (нелепость). Хочется надеяться что реальная причина все же была в некомпетентности, а не в ремарках, а то как то совсем грустно становится.
Когда материал подается прямо, в ультимативной форме, его гораздо проще воспринимать объективно. Видя ничем не прикрытые тезисы автора, проще указать на ошибки, проще объективно аргументировать, проще делать выводы для себя. Когда материал подается как «ну типа каждый подход имеет право быть в определенном контексте, блаблабла», начинаешь невольно такой материал трактовать в силу своего опыта и понимания, искажая его по пути.
Для хейтеров такого подхода я рекомендовал бы его же книгу «256 Bloghacks», где он описывает почему он так делает. Пара цитат:
«I am not afraid of being wrong. That's what attracts readers and provoke them to think. I am not just saying what I think, but I provoke them to agree or disagree with me. Sometimes I am wrong. But it's better to be wrong than to say nothing. If I think something about something I just say it, strongly taking one side of discussion».
«It's their (the readers) job to find truth in the middle, not mine. My job is to strongly and explicitly defend one side of the argument. They will find another side somewhere else, they'll compare, and they'll draw their own conclusions».