> There are only two hard things in Computer Science: cache invalidation and naming things.В этом полезном итт треде будем решать вторую из этих проблем, то есть помогать друг другу подбирать хорошие, годные имена для наших функций, типов и классов.
Я начну: как назвать функцию, которая возвращает функцию, которая принимает некий флаг и возвращает функцию, которая принимает некий контекст и возвращает результат?
>>1086185утечки_памяти_искать_здесь — вот так и назови.
Напоминаю, что это полезный тред, так что школоту и прочих петросянов следует игнорировать, ибо они уже обоссаны.Остановился на makeExecutor. ExecutorFactory делать не стал, так как это просто функция, возвращающая один, конкретный экзекьютор.
>>1086183 (OP)определись с Verb-Noun или Noun-Verb, предпочитаю второе. поскольку ооп для пидоров, пишу на процедурном типа: модуль_хреновина_действие_прочее
БЛЯДОТВАРИ, НАЗВАНИЕ ДОЛЖНО БЫТЬ CAMELCASE- ПЕРЕД ЭТИМ НУЖНО ПРОИТИСЬ ПОИСКОМ И УБЕДИТЬСЯ ЧТО ОНО УНИКАЛЬНОНапримерebalTvoyuMamashuProveryaSukaчем уникальнее/длиннее тем лучше
>>1086233>НАЗВАНИЕ ДОЛЖНО БЫТЬ CAMELCASEне должно, довн
>>1086234офнись нахуй
>>1086236>офнись нахуйпроверяй за щекой
>>1086233Камелкейс самое уебищное что можно было придумать после польской нотации. Не зря во всех нормальных системах типа *никса, используют андерскоп.
(some-good-name)мимо кложур бох
>>1086233>чем уникальнее/длиннее тем лучшеДа это же индус джявист.
>>1086232>Verb-Noun или Noun-VerbА у меня наоборот аллергия на второе, если его используют как замену неймспейсам. Ну, то есть если уж занимаешься байтоебством и вынужден использовать язык без неймспейсов, то я бы предпочел хотя бы отделять модульнейм двумя андерскорами или чем-то в таком духе.Но с другой стороны, из-за этого получаются уродливые неконсистентности, когда в отдельный неймспейс выносить оверкилл, а оставлять в этом же без указания _хреновины_ - непонятно.Вот например у меня теперь живут рядом enableExecutor, disableExecutor и setExecutorEnabled. И хуй знает, как эту последнюю хуйню перефразировать. Впрочем, все равно она должна быть приватной, так что похуй. С твоим подходом было бы гораздо консистентнее, да.
>>1086244Тред не о камелКейс вс снейк_кейс вс кебаб-кейс, а о хороших именах. Был бы ты кложур-богом - сказал бы чего по делу. Хикка же БЫЛ знаменит своим вниманием к именам.
>>1086282>отделять модульнейм двумя андерскорами или чем-то в таком духе.так лучше отделять имя всего проекта или библиотеки
>>1086295Ну да: my_lib_name__module_name__do_stuff. Но в любом случае это кровь кишки пизда распидорасило, конечно. Лучше уж в структуры пихать.
Я сегодня пизец наговнокодил, давно так плохо переменных не называлhttps://gist.github.com/anonymous/39c5462cab4fbaff96ec593b445a9afa
Для трейтов и интерфейсов норм Can-VerbВсяко лучше высеров I-Хуйня-able.
>>1086318CanCompare пипец убого звучит
>>1086316Ты в курсе, что можно объявлять более одной функции, да?>>1086318По-моему либо Comparable, либо ICompare.
>>1086326>Ты в курсе, что можно объявлять более одной функции, да?Да, да ещё и делаю это на автомате. Там можно только циклы на 19 и 34 строке вынести, да только придётся больше параметров передавать, чем строк
>>1086316Говнокод, да ещё и на говноязыке
>>1086341
>>1086183 (OP)Какой антоним у shutdown? startup же, так?
Поясните за двойной андерскор. Это что шутка что ли такая блядь? Его же визуально как нехуй перепутать с одинарным, вы офонарели там? Тройной тоже используете? Пиздос.
Гады.
>>1086185ProcessorProviderFactory
>>1086420У тебя шрифт не моноширинный?>>1086425Только Executor :3А так - да, правда я уже выше по поводу фактори отписал.
>>1086183 (OP)Какой слово противоположно по смыслу слову pure? Кроме impure.
>>1086183 (OP)AbstractWorkerManager
>>1086598Dirty
>>1086598Держиhttp://www.thesaurus.com/browse/pure?s=t
>>1086598karasik
>>1086598virtual
Правильный ответ - IO, ящитаю.>>1086627ФабрикаПошлыхМенеджеров ( ° ʖ °) >>1086657А теперь прочитай, что там по ссылке, долбоебина.>>1086685>>1086722Юморные вы ребята, чуть животик не надорвал!
>>1086598джигурда
>>1086183 (OP)Как назвать модуль, сохраняющий стейт приложения в ин-мемори хранилище?state? data? storage? data source? data storage? ds?
>>1086318I действительно уебищно. Не нужно.
>>1086598sideEffect
>>1087708cache?
>>1087742Нет, это не кэш для какой-то другой базы, а именно самостоятельное хранилище.Во, хранилище. Ну видимо все-таки data store тогда.
>>1087741Тогда уж sideEffecty, или что-то такое. Pure function - side effect function. Так не работает.
Бля, кстати, а вы в коммитах как пишете:fixed bug XXXилиfix bug XXXА?
>>1087744sideEffectful
>>1087746Как минимум bug fix
>>1087754Бля, ну не тупи. Implement feature X vs implemented feature X, make X do Y vs made X do Y, etc
>>1087762https://en.wiktionary.org/wiki/bugfixВ остальных случаях конечно второй вариант
>>1087992> конечно второй вариант > конечноА в большинстве стайлгайдов в опенсорсе строго первый.
>>1088021А ну если паджиты сказали
>>1087746Пишу инфинитив
>>1088021Ща бы пул реквест отклонить из-за simple past
>>1088032> Писать инфинитив (я)Пофиксил тебя, братан.>>1088039Братан, ты не поверишь...
>>1088039>Request>Пишет что добавил фичу, хотя по сути просит добавить фичу
>>1088108И что тибе не нравится, in terms of commit history?
Такое вчера попалось:https://blog.elpassion.com/naming-101-quick-guide-on-how-to-name-things-a9bcbfd02f02тлдр: называй переменные на один уровень абстракции выше (что в ней? цвет, вес, координаты), но называй классы конкретными сущностями, если не можешь назвать класс простым словом, то ты не СОЛИД, лалкаПро классы на -ер:http://www.yegor256.com/2015/03/09/objects-end-with-er.html>>1086598Command или set(), если изменяетQuery или get(), если возвращаетhttps://ru.wikipedia.org/wiki/CQRS>>1087746https://chris.beams.io/posts/git-commit/If applied, this commit will...fix bug
>>1088168>If applied, this commit will...Что-то перемудрил. What does this commit do? This commit ...fixes bug
>>1088168>Command или set(), если изменяет>Query или get(), если возвращаетНу блядь, эти слова не являются антонинами к pure. Речь шла о штуках типа PureExecutor, IO\EffectfulExecutor, такое.Алсо, выебешивают лишние get в названиях функций (хаскеллоблядки таким часто страдают). Суки, любая функция по определению у вас делает гет, нахуя это слово туда добавлять?! Вместо getFoo пишите просто foo - за исключением случаев, когда для возвращения значения требуется жирное вычисление: тогда гет подразумевает выполняемое действие, а не просто возвращаемый предмет, но и тогда лучше заменить его на более конкретный глагол, если это возможно (компьют, например).
>>1088168>If applied, this commit will...>fix bug А вот это четко, точно. И как я раньше об этом не подумал? Спасибо, выпей 2 стаканчика чая за свое здоровье :3>>1088190>fixes bug Але епта инфинитив привет
>https://chris.beams.io/posts/git-commit/Кекнул с аргументации: Торвальдс пишет заголовки коммиты на ломаном английском, пишите и вы. Ниет.
>>1088284> Ниет.Ну вот закончишь школу, заведешь гитхаб, начнешь коммитить в опен-сорсные проекты - тогда и возвращайся, тогда и поговорим.
>>1088290>тогда и поговорим.С тобой никто и не начинал разговаривать, шизик.
>>1088284> MutableAnnotationUtilsПиздец, как хорошо что я больше не пишу на Джаве.
>>1088357Ну ты уж определись: либо ты разговариваешь со мной, либо твой рот занят моим потным хуйцом.
Делаю вот так. Что скажете?var nEntry = aEntry.length;for(var iEntry = 0; iEntry < nEntry; ++iEntry) { console.log(aEntry[iEntry]);}
>>1089815адов пиздец
>>1089815Эти префиксы i, a, n теряются на фоне имени переменной.Самый большой бугурт у меня, когда пытаются итераторам придумать какие-то дикие имена. i,j,k - это практически стандарт в программировании, как a,b,c - для неизвестных в математических переменных.
>>1089815вотакуот делойvar length = aEntry.length;for(var index = 0; index < length; index++) {console.log(aEntry[index]);}
>>1089815Уебывай обратно в свой пхп-тред, или откуда ты там вылез, говно.>>1089821> 2017> не использовать map>>1089819Вообще, хорошие и стандартные сокращения значительно улучшают читаемость. Только нужно не забыть в доках к проекту все эти сокращения описать.
Алсо, заметил интересную вещь: тред был создан для задавания ответов по поводу именования конкретных сущностей\функций, которые встречаются у анончика в коде. Но вместо этого анончик обсуждает разные стандарты нотации.Что как бы намекает нам, что либо у анончика есть постоянный партнер по парному программированию, либо нувыпонели.
>>1089819> как a,b,c - для неизвестных в математических переменных.Блядь, только сейчас понял, что хуиту написал."Неизвестных в математических уравнениях" имелось в виду.
>>1086183 (OP)Как назвать 2-tuple, он же ordered pair, в котором первый элемент - тег, а второй элемент - сам контент? Ну типа, не юнион же. Как коротко назвать?
>>1089941Так и назови - кортеж.
>>1089964Слишком общее же.> первый элемент - тег, а второй элемент - сам контен
>>1089941Семантически. Action например, или что это у тебя
>>1090108>>1090110Так в том и дело, что там что угодно может быть. Энтити типа. Обджект. Блядь, важен именно тот факт, что это тегнутая хуйня. Тэггед обджет, блядь. Говно.
>>1089818>>1089844Бомбанули, что не первыми додумались, лошки?
>>1089844> использовать map и возвращать void
>>1089844Использовать map там, где нужно использовать цикл? Ты одурел, мразь?
>>1090826>возвращать voidБайтослесарь не палится, ололо.
>>1090904>нужно использовать циклБайтослесарь не палится, ололо.
>>1090946Тайпскриптер если что. Причем много где типы тайпскрипта стали стандартной документацией для JS, в том числе JS IDE тебе подсветит, что ты возвращаешь void
>>1090140Так и назови Pair или если первый всегда тег - TagObjectPair .
>>1091063Ты так говоришь, как будто тайпскриптер от байтослесаря далеко ушел.
>>1090947>>1090946А ты у нас кто, воннаби хипстер?
>>1091278Я - тот, кто ебет твою мамашу, очевидно же.
>>1088115/thread
>>1091593Ок, сделаем вид что никто не заметил как кое-кто джважды попытался подменить понятия и "закроем тред"
>>1091620Кстати, мне сегодня было откровение, я понял к чему эти императивы. Это инструкции по восстановлению конечного объекта, как в event sourcing. Гит хранит диффы, и чтоб из начального файла получить конечный, ты проходишь по хешам с соответствующими инструкциями: Change, Remove, Add, Revert, Merge, Move etc.
>>1091652Ну а я думаю все проще: есть такой способ визуализации данных - временная шкала. Вот если думать о истории коммитов, как о данных с которыми работаешь в представлении подобной шкалы - то всё норм. Другой вопрос: почему гуманитарии придумали рассказывать историю в настоящем времени. Впрочем, какой может быть спрос с гуманитариев?
>>1091660> убит, сожжен, завоевано, разрушено> почему гуманитарии придумали рассказывать историю в настоящем времени
>>1091652Вот кстати, event sourcing - тоже какой-то хуевый термин. Вместо "давайте хранить историю всех событий" - туевы хучи маркетинговых статей с паттернами и архитектурами.
>>1091660Причем тут таймлайн, наркоман, зачастую история изменений в Гите нелинейна.>>1091867Ой, просто иди нахуй.
>>1092097>Причем тут таймлайн, наркоман, зачастую история изменений в Гите нелинейна.А ты никогда не видел нелинейную шкалу? В школе-то учился? В интернете бывал?
>>1092097>Ой, просто иди нахуй.Зачем ты так(( Давайте уже закроем обсуждение коммитов гита, вроде все разобрались, аргументы в пользу инфинитива неоспоримые.
>>1092182>императива быстрофикс:3
>>1086183 (OP)Напоминаю что формы с -er/-or делают только дебилы.мимо
>>1092200Ну формы-то одинаковые! И там же выше еще приводили аргумент про "if applied, this commit will...", так что я написал про инфинитив, имея в виду императив как его частный случай. Вот.