« first day (1099 days earlier)      last day (2221 days later) » 
02:00 - 22:0022:00 - 00:00

2:52 AM
@Grundy он может вести его сегодня, а подтвердить завтра, тогда придется и сегодня и завтра вводить
 
 
3 hours later…
 
2 hours later…
7:40 AM
Какие-нибудь модераторы, заблокируйте мой ответ в ru.stackoverflow.com/questions/739684 , там поциент пытается вписать бред без обсуждения войной правок
 
8:24 AM
Нашёл прелюбопытный вопрос, на который нельзя оставить тревогу: ru.stackoverflow.com/q/76665
И призываю добровольцев с голосами-удаляшками к выпиливанию метки -- там совсем чуть-чуть.
 
8:40 AM
@АндрейNOP Не может :)
 
(поциент успокоился и перешёл к обсуждению, блокировать теперь не нужно :)
 
@andreymal он ж написал: Убираю все свои правки. Не добавляйте.
 
@D-side его даже править нельзя почему-то. Хотел метку "образование" с него убрать
только на нем и осталась...
 
@АндрейNOP я пробую по порядку: убрать метку правкой (2 успешно), выписать удаляшку на весь вопрос (2 успешно), тревогнуть модераторов (0 успешно), инициировать в чатике (1 успешно).
@andreymal Николас за наименование "поциент" может, цитирую, "оттаскать за бороды". Тут агрессивная бинайсократия :) Понимаю вашу фрустрацию, но рекомендую её не изливать публично.
 
9:26 AM
@D-side там и работу выпиливали - просто в некоторых вопросах одна мета образование и ее неизвестно на что заменить
 
@Grundy кажись, нам опять нужна служебная (модераторская) метка. Кроме ещё и . // @NicolasChabanovsky никаких новостей на этот счёт нету, кстати?
 
@D-side была такая метка вроде
кстати
возможно нет тревоги потому что есть историческая блокировка
 
@Grundy наверняка.
 
@andreymal Блокировать ответы нельзя.
 
@NicolasChabanovsky как это?
 
9:30 AM
@D-side Мне казалось, что служебные метки есть только на Мете.
 
вроде можно б было
типа плашка еще появлялась - заблокировано на время разбирательств
 
@NicolasChabanovsky совершенно верно. Я ж и задавал вопрос о том, возможно ли завести их на основном сайте, т. к. они там полезны.
 
Плюс служебные метки — это что–то такое страшное и тяжелое, так как задаются простым добавлением в код.
 
@NicolasChabanovsky ленивые программисты
 
6
A: Возможны ли "служебные метки" с Меты (вроде [важное]) на основном сайте?

Nicolas ChabanovskyДа, как оказалось, введение специальных меток на основном сайте технически возможно. Обновление Как оказалось, можно в теории, но не всегда на практике. Сейчас продолжаю общаться с ребятами, будем искать оптимальный подход. В текущая реализация движка, как я понял, не позволяет легко задават...

 
9:31 AM
@D-side Вроде бы нельзя. Я даже помню, что спрашивал у коллег.
 
@NicolasChabanovsky в текущих обстоятельствах нет. И да, я бы скептически отнёсся к одноразовой фиче. Но вот мы обнаружили новый случай, где она была бы полезна. Возможно, стоит поднять вопрос о вынесении этого статуса из кода в БД?
 
@D-side Вопрос–то я подниму, только с большой вероятностью он останется висеть до тех пор пока эта функция не понадобиться где–нибудь в каналах.
Такое ощущение, что надо скинуться и купить платную подписку на канал для нашего сообщества и закидывать нововведениями и дефектами разработчиков :D
 
Добавил в вопрос новые случаи потенциального применения.
 
A K
Мне кажется, что если цель - упростить процесс запрета меток, то нужно идти прямым путём: обосновать делегирование этого права с трёх человек в компании на управляющих сообществ. Дадут Николасу - нам и хватит на долгое время вперёд. И не надо никаких хаков со служебными метками.
 
@AK не-не, речь не о чёрном списке меток, которых нет и нельзя создать. Прочитайте вопрос выше.
 
9:50 AM
@D-side Спасибо!
 
A K
@D-side Я и вопрос прочитал и по ссылке в чате глянул обсуждение, но всё равно рассматриваю вопрос в виде "как сделать метку, чтобы ей никто не пользовался". А о чём тогда идёт речь?
Вопрос к тем, у кого есть привилегии 10к+
Я так понял, что на 10к+ даётся право удалять вопросы, наверное оно и у меня есть, но я его нигде не видел: кнопки удалить нет нигде
и везде пишется "вы не можете голосовать за удаление данного сообщения"
Почему?
Это потому что я участвовал в закрытии этих вопросов, да?
 
@AK важное отличие от чёрного списка: что метка будет существовать.
 
A K
Или они ещё слишком свежие?
@D-side А-а-а-а, ну так это сильно меняет дело! думаю, стоит упомянуть об этом в вопросе.
 
10:08 AM
@AK мне это казалось очевидным из сравнения с и подобными, но отметил явно, ок.
 
 
2 hours later…
12:06 PM
New strings for translation:
 
12:25 PM
0
Q: Ой! Ваш вопрос не может быть отправлен по следующей причине:

Антон ПрохоровОй! Ваш вопрос не может быть отправлен по следующей причине: Кажется, ваше сообщение содержит код, не оформленный соответствующим образом. Пожалуйста, выделите весь код 4 отступами с помощью кнопки на панели инструментов или воспользуйтесь комбинацией клавиш CTRL+K. Чтобы получить дополнительную...

 
1:16 PM
@LocalizationBot ок
 
A K
@Grundy Что он там такого сказал, что вы ОКнули? В этой строке захардкожено "Grundy - молодец"? )) Или что? ))
 
@AK @Grundy - молодец, это само собой ;-)
 
Всем, привет. Подскажите люди добрые, где проконсультироваться по проблеме с RAID-ом можно? вопрос на он-топик не готов стоставить...
 
A K
1:44 PM
@4per Ну, если на so - то прямо тут. А вообще - я бы на sysadmins.ru спросил бы или на форуме ixbt
 
все прив.
Если вопрос с минусами удаляешь, то минуса тоже удаляются что ли?
ответ
а не вопрос
а то вон постят ответы, получают минуса, удаляют, постят то же самое заново. не думал, что так можно (:
 
@AK спасибо, попробую там. Для здесь много букв, наверное...
 
2:09 PM
@teran да
 
@VadimOvchinnikov Удалили метку и добавили в черный список.
 
4:50 PM
Коллеги! Ради эксперимента, не мог бы кто–нибудь оставить тревогу на комментарии к со словом спасибо в этом ответе:
4
A: Как задать выравнивание секций в ELF файле?

a_sДля выравнивания секций в ELF можно использовать скрипты линкера (мануал). Конкретно для выравнивания секции .text в тексте ld-скрипта должно быть что-то типа: .text ALIGN(0x2000): { *(.text) } В ld ld-скрипт передается с помощью опции -T.

Оставил бы сам, только у меня привелегии модератора и он удалиться сразу.
Пожалуйста, дайте знать, если оставите тревогу!
 
5:09 PM
готово
 
5:20 PM
@NicolasChabanovsky нету никакого там комментария
 
@NicolasChabanovsky Спасибо большое! А вы бы не могли процесс автоматического удаления меток и внесение в чёрный список осветить на мете c меткой ? Очень интересует, чтобы вы опубликовали для всех про то, у кого есть полномочия на внесения, сколько времени занимает удаление в среденем у разработчиков в том числе и на коммуникацию, преценты в истории нашего сообщества, как вносить и т.д. Также есть неотвеченный связанный вопрос ru.meta.stackoverflow.com/q/7037/220571
 
@VadimOvchinnikov Спасибо за идею! Мне кажется, что это уже где–то должно быть.
@АндрейNOP Ага! Теперь нет :)
0
Q: Автоматическое удаление комментариев по тревоге «более не является необходимым»

Nicolas ChabanovskyПродолжая улучшать соотношение сигнал–шум в нашей базе знаний, предлагаю автоматизировать удаление комментариев по тревоге «более не является необходимым». Мы уже знакомы с механикой работы этой функции сайта (см. «Удаление комментариев с заданными словами по первой тревоге»), но повторюсь очень ...

@VadimOvchinnikov Если не найду, где это есть, обязательно подумаю над публикацией! :)
 
5:42 PM
1
Q: Автоматическое удаление комментариев по тревоге «более не является необходимым»

Nicolas ChabanovskyПродолжая улучшать соотношение сигнал–шум в нашей базе знаний, предлагаю автоматизировать удаление комментариев по тревоге «более не является необходимым». Мы уже знакомы с механикой работы этой функции сайта (см. «Удаление комментариев с заданными словами по первой тревоге»), но повторюсь очень ...

 
есть тут кто?
нужны статьи при именование переменных и функций и общие подходы к написанию кода (поверхностно) с кучей примеров
нужно независимо от языка и без привязки к стайлгайдам
нацеленность именно на хороший/плохой подбор слов
такой, чтоб 95% программистов с этим соглашались
@VladD @NicolasChabanovsky @Grundy @PavelMayorov @PashaPash @AK @avp @SergeyTeplyakov ^^
 
@Qwertiy Есть такая книга «Чистый код», если в бумаге подойдет.
Про подходы в ООП лично ничего лучше Гаммы и Ко не видел.
 
@NicolasChabanovsky как-то покомпактнее нельзя и в электронном виде? и мне для начинающего, который постоянно с этим косячит, несмотря на то, что в целом код пишет хорошо
habrahabr.ru/post/172091 - мне вот это нравится, но там есть куча стайлгайдных моментов и сишной специфики
 
@Qwertiy Можно поискать так называемые документы по стилистики кода от Google, к примеру. В них обычно коротко и по делу, но доки разные от проекта к проекту.
 
A K
@Qwertiy На каком он языке пишет?
 
5:54 PM
нацеленность на ООП тоже не очень нужна - максимум принцип разделения ответственности, да и то в немного не в оригинальном виде
 
@Qwertiy если вообще компактно - код надо писать так, как будто его будет поддерживать маньяк, который знает где ты живешь
 
@NicolasChabanovsky нет, не стайлгайд - это он соблюдает, нужны именно общие приницпы
 
Универсальных стайлгайдов не бывает :(
 
@AK javascript, но непринципиально, мне общие принципы нужны
@PashaPash мне не нужен стайлгайд, мне нужен набор принципов
 
5:56 PM
Сомневаюсь, что такой набор существует. Стиль кода в энтерпрайз с# будет очень далек от react/redux js
Даже насчет базовых вопросов, типизации, например, будут споры
 
примерно такого вида:
- функция-действие должна показывать выполняемую бизнес-задачу и начинаться с глагола
- если функция не симметрична относительно передаваемых аргументов, из их названий должно быть ясно, какой из них какой
- общие названия типа items или array могут использоваться только если функции всё равно, что за массив она получает и она не обладает задачей в бизнес-области
- ...
 
A K
@Qwertiy не, я тогда пас. У меня кое-что откопалось в закладках, но во-первых там шарп, во-вторых там рассуждения: свои принципы нужно будет под себя выковывать
@Qwertiy Ага. Найдёте - дайте почитать. Вряд ли вы где-то найдёте такое в одном месте.
 
@PashaPash типизацию лесом, интересует именно подбор имён и общие практики - я выше накидал какой-то набросок
@AK давай, мне всё равно пригодится
@AK в принципе, можно будет потом в виде вопроса с ответом оформить, главное чтоб было, откуда брать
а то самому такое во-первых, очень долго составлять, а во-вторых, всё не предусмотришь
всякие там intercect(array1, array2) - нормально, а exclude(array1, array2) - уже нет, потому что становится непонятно, какой из какого исключаем
это ж вообще никак от языка не зависит
всякие сокращения - лесом, регистр букв - тоже и всё остальное стайлгайдовское
// я пока отойду, через полчаса почитаю чат
 
A K
Вторую не покажу - это моя личная стигма )
 
6:15 PM
Может кто-то сталкивался, куда копать, как можно пользователю утвердить свой аккаунт в фейсбуке на стороннем сайте ? Мне нужно реализовать не авторизацию на сайте черех ФБ а именно каким то образом сделать верификацию.
Типа привязать аккаунт к аккаунту на сайте
 
A K
@webstackoverload легко. Просите войти через фейсбук. Вошёл - зачит верифицирован ;)
Способ надёжный и простой как автомат калашникова
А вы что хотите? Заставлять "напиши на этой странице текст такой-то"? ))
 
avp
6:44 PM
@Qwertiy а про литературное программирование ему не рассказывали?
 
7:16 PM
@avp что-то я сам не знаю, что это... но если это то, что я думаю, то брррррррррррр
 
7:30 PM
Всем привет! Кто напомнит, если в приложении есть одно окно для отображения списка всех сущностей вкратце и другое для просмотра/редактирования конкретной сущности, то в use case диаграмме нужно сделать один "CRUD entity" или также "Read all entities"?
 
@Qwertiy это очень даже зависит от языка. в свифте обязательны имена параметров при вызове метода. так что там будет exclude(from: array1, setToExclude: array2)
 
@PashaPash это и были имена параметров в моём примере
а не имена аргументов
 
@Qwertiy не совсем понял, что имелось в виду
проклятый андроид
@Qwertiy ну второй свифт требовал бы вызова вида excludeFrom(array1, setToExclude: array2)
 
avp
@Qwertiy суть подхода в том, что вы рассказываете о своей программе читателю, а сам код это лишь иллюстрация (названия переменных и функций в ней становятся не так уж важны)
 
т.е. у них был официальный гайд "добавлять имя первого параметра в имя метода", и он поменялся к 3-й версии (в которой указание имени первого параметра тоже стало одинаковым)
так что "как именовать методы" даже в рамках одного языка от версии к версии пляшет. какие уж тут общие советы
@Qwertiy в каких-то языках не будет функций-действий, в каких-то не будет массивов, какие-то вообще не будут использоваться для написания бизнес-логики
 
7:41 PM
@PashaPash нет выглядело бы вот так: exclude(array1: a, array2: b), потому что array1 и array2 в моём примере были именами аргументов функции, а не именами передаваемых параметров
@AK а вот это в целом нравится
@avp это как комментировать каждую строку кода - гадость какая-то...
 
@Qwertiy ну это все равно предполагает, что в языке принято использовать методы, причем статические, причем принимающие по два аргумента. вдруг есть язык, в котором родные гайдлайны принудительно заставляют писать код вида a.exclude(b)
@Qwertiy или, например, преданием анафеме функций от нескольких параметров в том виде, в котором это происходи в шарпе
 
@PashaPash всегда найдётся операция, для которой хэлперного метода нет)
@PashaPash ну да, а ещё пошли писать на ассемблере и брейнфаке
во всех production-языках есть функции, почти во всех классы, и есть куча всего, что к ним ко всем применимо
зачем искать исключения, когда явно есть стандартные правила, которых все придерживаются
@PashaPash
 
@Qwertiy ну зачем сразу так. какой-нибудь F# будет делать (с точки зрения C#) exclude(a)(b), причем там на уровне соглашений будет принято, что в качестве основного множества будет первое (или последнее)
@Qwertiy production - это мейнстрим языках общего назначения с уклоном в ооп? Java / C# / C++
 
@PashaPash ооп необязательно, js, питон я бы тоже отнёс к списку
 
@Qwertiy стандартные правила работают только в рамках очень ограниченной области. R - это стандартный язык?
или какой-нибудь M?
 
7:50 PM
функциональные - в принципе тоже можно, но там несколько другой подход
впрочем, если в функциональном кто-нибудь зазовёт функцию myFunction - вряд ли читающий этот код скажет, что так и надо
 
@Qwertiy ну, например в F# (и в остальной функциональщине) действительно есть соглашение по порядку параметров
@Qwertiy ну да. "писать код так, чтобы было понятно"
 
@PashaPash я R не знаю и даже не видел - не могу про него ничего сказать
@PashaPash ну вот нужно это "понятно" в разжёванном виде
 
@Qwertiy это субъективное "понятно". мне иногда за мой же код стыдно и непонятно наступает через некоторе время
@Qwertiy особенно когда написано "красиво", все названо "правильно", но ничерта непонятно
 
avp
@Qwertiy если так делать, то точно, получится гадость. Рассказывать нужно о задаче, об идее ее решения и описывать логику решения. В общем, писать рассказ на своем языке (в комментариях). А код лишь показывает формализацию этого на компьютерном языке.
 
@PashaPash вот пока интересует именно часть с именованием
@PashaPash ну значит мудрить не надо было
@avp не люблю комментарии
 
7:53 PM
@Qwertiy так даже именование различается. ну или ок, оно стандартное, но бессмысленное
@Qwertiy за что отвечает интерфейс RequestProcessorFactoryFactory?
 
@PashaPash вот как раз интересует осмысленность
@PashaPash за отрывание рук архитектору за написание фабрики фабрик ;)
 
@Qwertiy осмысленность зависит от предметной области и от уровня знания этой предметной области читающим код
2
 
@PashaPash apache - вообще сокращение от "a patched server" или чего-то такого)
 
@Qwertiy ага. шутка про с-диез
 
@PashaPash в принципе да, но ведь есть то, чего точно делать не надо
@PashaPash кажется, не знаю такую
 
7:57 PM
@Qwertiy не надо овердизайнить. не надо считать, что паттерны - это то, что в гамме (а остальное - не паттерны). не надо бездумно следовать чужим советам. и все такое
 
@PashaPash ладно, что ты хочешь доказать?
 
0
Q: Зачем нам удаление комментариев со "спасибо"?

QwertiyКак правило, таких комментариев не больше одного под ответом и они никому не мешают. Так зачем же нам надо городить целую систему, да ещё и потенциально дающую false-positive-результаты - ведь проверяться будет только вхождение слов, а не смысл комментария, чтобу убирать то, что не мешает? Предл...

 
8:11 PM
@Qwertiy ничего :)
 
8:37 PM
@Qwertiy У меня где-то был ответ про это, но без примеров, сорри.
 
@VladD ну давай что есть)
 
62
A: Как писать красивый и читаемый код?

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

 
@VladD хм.. да, а есть что-то более приземлённое?
 
@Qwertiy Не-а
 
@VladD эх((
 
8:49 PM
@Qwertiy Се ля ви :)
 
@VladD :D
 
@Qwertiy В принципе, во многом повторяет статью на Хабре, на которую была звезданутая ссылка от AK
Хотя я писал ее сам
 
@VladD да принципы везде одни и те же, но вот как их выдрать откуда-то, непонятно :(
 
@Qwertiy Центральный принцип — должно быть легко читать, пусть даже при этом и сложнее писать.
 
@VladD это-от ясно, но это слишком абстрактно
момент "сложнее писать" пока не интересует
 
8:54 PM
@Qwertiy А остальное — попытки показать из этого всякие следствия
@Qwertiy Ну, он реально важен. Например, разбиение на мелкие функции. Читать легче, писать сложнее.
 
интересуют прямо принципиальные моменты, чего не надо делать, как надо делать вместо этого, почему так и в каких случаях это не так
@VladD да ерунда, ненавижу мелкие функции - никогда ничего найти невозможно
 
@Qwertiy значит, неправильно называются и неправильно сгруппированы :-P
 
@Qwertiy кстати, может кто-то выше спрашивал - а зачем все это?
т.е. нафига?
 
@PashaPash то есть нахрена?
 
@VladD ну это уже совсем грубо
 
8:57 PM
где эти поганые 10 вложенных вызовов, которые отрисовывают эту поганую стрелочку для сортировки столбца, которая по какой-то причине оказалась некликабельна и как перевесить обработчик клика на контейнер
 
@VladD но да
 
@VladD, вот реальная ситуация с проекта - как раз из-за этого дробления на фиг знает что
 
@PashaPash Окей, тогда «позвольте полюбопытствовать о цели вашего вопроса»
 
))
@Qwertiy ну есть мнение (не мое), что функции должны быть не больше 8 строк
 
@Qwertiy У меня вот проблем не возникает. Но над каждой функцией приходится подумать, а не формально дробить на куски.
Возможно, проблема в этом
 
8:59 PM
@PashaPash есть некий разработчик, который пишет всякую жесть при том, что в целом всё делает нормально и стайл-гайдов придерживается
 
Ну и если непонятно, где искать — может быть, распыление ответственности
 
надо ему что-то дать почитать с подробными обоснованиями и примерами
 
@Qwertiy А можно примерчик?
 
@PashaPash брррррррррр, нафиг
 
@Qwertiy это такой очень странный вывод, цепочка идет чаще всего от "SOLID" - это "Solid", S стоит первым, так что будем его применять как основной принцип. а если в методе больше 8 строк, значит в нем две ответствености
@Qwertiy про 8 строк есть в статье по ссылке от АК
@Qwertiy проще уволить. честно.
@Qwertiy если он не джун - увольняйте. если джун - покажите как надо на личном примере. не поймет - увольняйте
 
9:01 PM
@VladD есть два массива, надо из одного исключить другой на основе id объектов - объявление функции такое: removeSame(first, second) - угадай, что именно она делает?
 
это я как техдир программерской конторы говорю :( если человек опытом не выработал чувства красоты кода - нафиг. не переучишь.
 
@PashaPash джун, понимает всё вроде хорошо, к замечаниям прислушивается, но косячить с именованием продолжает
 
@Qwertiy решается пуллреквестами
@Qwertiy ну тогда только ждать. и показывать на личном примере
 
@PashaPash про пулл-реквесты понятно, но всё-таки учить не пулл-реквестами надо
 
@Qwertiy надо учить пуллреквестами, причем заставлять его ревьювить чужой код
 
9:04 PM
@PashaPash но код не содержит аргументации, почему так
 
@Qwertiy тупо тыкать пальцем в каждый факам с именованием. каждый раз. пока не поймет
@Qwertiy аргументация не поможет. нельзя понять проблему с нечитабельностью кода, если сам не читал чужой нечитабельный код
 
@PashaPash ну это тоже можно, но всё-таки хотелось бы в какой-нибудь гайдлайн ткнуть
 
@Qwertiy не поможет :)
 
@PashaPash а мне кажется, что поможет
 
@Qwertiy ну т.е. вы ему втираете "не разбрасывай грабли, а то потом на них кто-то наступит". пустить его на поле таких граблей и подождать - гораздо эффективнее
 
9:05 PM
@PashaPash а где взять чужой нечитабельный код?
 
@Qwertiy мне б ваши проблемы...
 
@PashaPash :D
 
@Qwertiy дать почитать исходники любого проекта, написанного другим джуном
 
не знаю, если он вполне придерживается стайлгайда по оформлению, то почему же по именованию не будет придерживаться?
 
@Qwertiy ну т.е. проблема ж не в том, что он злой или плохой. он просто не осознает проблемы. примерно так же тяжело объяснить проблему поддерживамости девелоперам, которые никогда не поддерживали проект старше 5 лет
когда человек просто не думает о логгировании, например. ну не приходилось ему ни разу прод дебажить из-за отсутствия логов. но при этом он сеньер. регулярно встречается.
 
9:08 PM
@PashaPash ну да, наверное
 
@Qwertiy ну просто давайте ему читать чужой код + тыкайте пальцев в его ошибки (с объяснением, или просто с уточнением "а тут что из чего вычитается, по коду непонятно"). если вменяемый - быстро дойдет
 
в том-то и смысл, что хочется некий набор правил, отсекающий совсем грубые косяки, а остальное уже с опытом
 
если нет - goto уволить
 
не хочется ограничивать всё подряд
 
@Qwertiy ну можно дать гайдлайн для class library devs по C#
там вещи вроде "называть глаголами" расписаны
в стиле DO give methods names that are verbs or verb phrases.
DO name collection properties with a plural phrase describing the items in the collection instead of using a singular phrase followed by "List" or "Collection."
 
9:11 PM
@PashaPash а в форме одной статьи нет его?
а то что-то я там сам в ссылках запутался
 
чтоб можно было просто читать подряд и не перебираться по ссылкам на разные страницы
 
это кусок книги
 
@PashaPash :)
 
@Qwertiy github.com/dotnet/docs/blob/master/docs/standard/… - стянуть файлы по списку и склеить в один
 
9:15 PM
@PashaPash интересный способ :)
 
@Qwertiy Не знаю. По названию непонятно => нуждается в переделке.
 
@VladD вот именно)
 
@Qwertiy Учить. «Кто жалеет розги, тот портит ребёнка».
 
@VladD из second исключает first, при этом изменяет second, ничего не возвращает
 
@Qwertiy Значит, не пускать коммит через кодревью до тех пор, пока не придумает правильное название.
 
9:20 PM
аргументация такая: ну у нас же в методе первый проход по first, а второй - по second
 
@Qwertiy Грех мутабельности? Сжечь ведьму!
2
@Qwertiy Бить. Пока не поймёт, что никому не интересно, как там внутри заимплементировано.
 
и вообще, это распространённое желание называть метод на основе внутреннего поведения, а не внешнего
 
@Qwertiy Ну, у меня тоже есть много тайных желаний. Но УК Германии не позволяет.
2
 
@VladD так ведь у многих такая проблема :(
 
@Qwertiy Все согрешили, и все лишены Божественной Функциональности
 
9:22 PM
@VladD :D
 
Главное — покаяться! Главное, осознать, что так нельзя, и почему именно так нельзя.
 
@VladD а я прочитал и засомневался - "функциональности" или "функциональщины" :D
 
@Qwertiy ЭтотМетодВычитаетМножествоИзМножестваИВыНиЗаЧтоНеДогадаетесьКакОнЭтоДелает()
 
@Qwertiy Ну я ж специально подбирал ;)
 
@PashaPash ага, главное, у него аргументов нет))
 
9:24 PM
@Qwertiy он их принимает через предварительную становку свойств. а если свойства не выставить - запускает два события.
 
@PashaPash ага, я так и подумал)))
 
и ожидает, что аргументы кто-то в обработчиках положит в e.Data
 
@PashaPash Жги, господь!
 
@VladD ну как же, это же ооп. МножествоВычитающийПроцессор
 
9:25 PM
@PashaPash а если не положит, то шлёт http-запрос к гуглопереводчику)
 
@Qwertiy вы вот смеетесь, а 1С и все англоязычные программисты именно так код видят
 
avp
@Qwertiy а я, когда читал ваше описание, подумал наоборот. Из первого удаляем те элементы, что есть во втором. Но, в любом случае, надеяться на то, что имена функций и аргументов делают код понятным -- это наивно
 
@PashaPash Execution in kingdom of nouns все читали, надеюсь?
 
@VladD нет. но уже читаю
 
@avp я тоже так думал.. пока тело метода не увидел)
@VladD эм.. не слышал, кажется
 
9:27 PM
@PashaPash Оч. нра. Прекрасный наброс против ынтерпрайзщины, особенно в Java-варианте.
@Qwertiy Первая гуглоссылка
 
avp
@Qwertiy вот. В любом случае придется просматривать код (или комментарии -))
 
@Qwertiy Set.difference<'T> Function (F#)
// Signature:
Set.difference : Set<'T> -> Set<'T> -> Set<'T> (requires comparison)
 
@PashaPash это что?
 
отображает сет в нечто, что отображает сет в сет
 
@PashaPash Ох уж эта индийская кухня
 
9:30 PM
@Qwertiy это exclude на F#. библиотечная функция
@Qwertiy можно сделать let excludeFromMainSet = Set.difference mainSet
 
@PashaPash второй исключают из первого
@PashaPash удобно
 
@Qwertiy Но не так удобно, если хочется зафиксировать второй аргумент
Для этого приходится продумывать порядок аргументов
 
@VladD скоро в js магию подвезут))
 
да, поэтому функция фильтрации того же сета там принимает фильтуемый сет вторым аргументом. а предикат - первым.
@VladD решается оператором |>
 
@PashaPash и его подвезут))
 
9:34 PM
@VladD точнее, флипом
let (><) f a b = f b a
запихиваешь функцию в (><) - и готово
 
@PashaPash Угу, у меня такой же в Prelude.fs
только называется просто flip
 
avp
@VladD и как людям не лень писать столько букв на в общем-то очевидную тему?
 
@avp Ну это вот вам очевидно. А есть некоторые джависты, которые считают, что так и надо, и это правильно и круто.
Скопирую-ка ссылку сюда, чтобы не искали: steve-yegge.blogspot.com/2006/03/…
@Qwertiy А type safety подвезут?
 
9:54 PM
@VladD гаааааадость... typescript достал уже, особенно своим null safety
кстати, пугает то, что его собираются завезти в шарп (((
 
@Qwertiy Я, наоборот, очень рад
Ещё вот может к C# 9 подвезут higher-kinded types
 
@VladD ок, есть класс с 9 полями - все 9 либо одновременно null, либо одновременно не null - как это выразить в коде?
 
@Qwertiy nullable instance класса?
 
чтобы не надо было любые действия с ними обрачивать в проверку 9 полей на null
@VladD нет, это внутри
 
@Qwertiy Ну например
 
9:56 PM
либо фреймвёрк вызвал 9 коллбеков и у тебя 9 не-null'ов, либо это unit-тест и у тебя 9 null'ов
@VladD вот ^^
 
class C
{
    class D { string f1, f2, f3, ...}
    D? data;
}
У меня большинство ситуаций ортогональны: каждое поле в отрыве от других nullable или не nullable
Ну а в сложных ситуациях, да, компилятор не поможет, и помогает CheckInvariant() после каждого метода.
 
createElement("div", x => this.a = x,
  createElement("div", x => this.b = x),
  createElement("div", x => this.c = x),
  createElement("div", x => this.d = x),
  createElement("div", x => this.e = x),
  createElement("div", x => this.f = x),
  createElement("div", x => this.g = x),
  createElement("div", x => this.h = x),
)
 
@Qwertiy Что это?
 
@VladD перепиши ^^ на свой вариант с классом
код)
 
02:00 - 22:0022:00 - 00:00

« first day (1099 days earlier)      last day (2221 days later) »