Supremus #11161 5 апреля 2017 они и доджатся уже не первый год, даже без решарпера, а на 2017 студию вообще можно решарпер не ставить, может эти челы в блокноте пишут, хуй их знает.и еще раз на всякий случай: в сишарпе нет глобальной области видимости. все, что ты пишешь должно находиться внутри класса/структуры/интерфейса, а они в свою очередь внутри неймспейса. Поделиться сообщением Ссылка на сообщение
suez #11162 5 апреля 2017 Да я естественно не говорил о полноценно глобальных переменных, вы чо блядь ебанулись. Я больше имел в виду ситуации, когда какой-нибудь ебыч пишет хуй знает сколько кода в одном файле, определяет переменные в разных местах (а не только в начале) и тебе потом надо через CTRL+F искать определенные переменные, которые изменяются где-то там в функциях и так далее. Это одна из основных причин почему в js и много где так дрочат на функциональщину, ибо в функциональщине запрещены side-effects, когда функция помимо работы с переданными аргументами изменяет какие-то переменные, существующие за пределами самой функции. Если честно то я слегка прихуел с того сколько мне еботы написали на ласт страницах, лул. Особенно весело все это читать от всяких аутистов типа джастдуитов и еще кого, которые пишут так, словно они не являются никому не нужными мамкиными говнокодерами. http://codepen.io/suez/ - they see me bydlocoding, they hatin. Поделиться сообщением Ссылка на сообщение
choojoykin #11163 5 апреля 2017 пригорел = проиграл ни мало ни много, а много и мало Поделиться сообщением Ссылка на сообщение
Cantona.Eric #11164 5 апреля 2017 Ну если префикс m_ юзается по соглашению для переменных на уровне класса, тогда ок, вопрос про функции с запашком отпадает. То что говнокода везде дохуя я это знаю. Но мне всегда казалось что с теми иде, что юзают поцаны в таких языках, подобные примитивные фейлы (сравнение переменной с самой собой) должны доджится по умолчанию.Когда джуны учат язык, им на первом занятии говорят, что наш язык жава/си/раби/пайтон по умолчанию лучше ЖС потому что его написали не на коленке. Поэтому эти мамкины погромисты и срут на всех форумах о жабаскрипте Я не человек, Я - Кантона. (с) Miraxes#2986 Поделиться сообщением Ссылка на сообщение
suez #11165 5 апреля 2017 Да это я уже давно понял. Просто прихуел с того, что поцаны на полном серьезе думают что у меня познания как у джуна с 6 месяцами опыта программинга, лул. Особенно смешно читать как часто народ защищает откровенный говнокод из джавы и подобной еботы, говоря "да это норм ваще, все так пишут". Мне до сих пор снятся кошмары от той функции, что чужойкин кидал несколько страниц назад, там где с одной ?коллекцией? или хз чем делается квадролион операций в одной строчке, длиной в километр. http://codepen.io/suez/ - they see me bydlocoding, they hatin. Поделиться сообщением Ссылка на сообщение
Akimosik #11166 5 апреля 2017 Стоп холиварить по поводу какой яп круче. Во всех языках есть говнокодеры и не стоит ревьюить их код. Поделиться сообщением Ссылка на сообщение
Rooster #11167 5 апреля 2017 Это одна из основных причин почему в js и много где так дрочат на функциональщину, ибо в функциональщине запрещены side-effects, когда функция помимо работы с переданными аргументами изменяет какие-то переменные, существующие за пределами самой функции.Т. е. если мне нужно изменить глобальную переменную в функции я просто должен передать ее как параметр? Поделиться сообщением Ссылка на сообщение
TheDeadSkin #11168 5 апреля 2017 Посаны из "сурьезных" языков погромирования, поясните плз по хардкоруВот статья об анализе кода Cryengine 5 (C# как я понимаю), написанного явно не студентамиhttps://habrahabr.ru/company/pvs-studio/blog/325600/Один из первых примеров функция setActive, в которой просто примитивный фейл со сравнением переменной с самой собой (очепятка)Внимание вопрос - как блядь люди пишут и коммитят такой код вообще? У поцанов линтеры не изобрели? Покрытия тестами и тд?Я у себя на проекте пробел после запятой не поставлю - мне линтер из монитора в лицо плюнет. А уж задетектить сравнение переменной с самой собой - ну мне кажется тут даже линтер не нужен, учитывая что все эти СУРЬЕЗНЫЕ пограмисты пишут в йоба-иде, которые грузятся миллион лет, и мне кажется там такое должно быть по умолчанию.А еще проиграл вголосяру что в этой же функции имеется вот такоеm_bActive = bActive;OnResetState(); Ебать, я около-глобальные переменные изменял внутри функций последний раз год-два назад (когда опыт кодинга был год+ считай), если не считать демок офк. Ибо это процедурное программирование считай. Ну с es6 классами офк могу позволить себе изменять this.%var%, ибо четко понятно, что это свойство на уровне класса. Но вот то что написано сверху это прям вообще пиздос же, неужели это вполне адекватный говнокод паттерн написания кода в C#? Кароче я слегка в ахуе с настолько примитивной еботы, лол.добавлю свои 5 копеек со стороны новичка в с++ (поэтому некоторые вещи на уровне догадок) это игровой движок и это С++, этим всё сказано - масштаб + язык 85ого года, отсюда и относительная уёбищность того как это выглядит со стороны, я пока сам не начал на плюсах чето кодить для меня с++ код был абслютно нечитаем (да и сейчас лучше, но не намного, ибо я ещё не добрался до темплейтов, всё до сих пор обходилось форматом "С с классами")m_* это явно такая себе софт-замена this.*, 90% что там это так делали т.к. код часто мешался с С и у тебя могла оказаться (или даже появиться позже) реально глобальная или окологлобальная переменная с таким же названием как мембер класса, дефолт решение конфликта названий это "bActive" будет обращаться к глобальной, а классовую вызывать надо "this.bActive" и вместо того чтоб спамить this. на каждый чих им по дефолту меняют названия второй момент это то что у с++ нехарактерная для жавы/C#/JS ООП структура кода где ты (чаще всего) class { } объявляешь в хедер файле, дашь там только сигнатуры, а уже потом в .cpp даёшь тело функций, всё-таки старый языкплюс код игрового движка по дефолту сложный и довольно низкоуровеный, он должен быть производительным, поэтому в ход могут идти и (около-)глобальные переменные, и грязные хаки и что-угодно конкретно bActive == bActive может быть результатом того что функция больше не нужна, но её всё ещё много чего вызывает, поэтому её "тихо убили" вместо того чтоб убивать явно и потом искать все её использования в кодобазе которая может быть огромной, в таком случае компилятор имеет все шансы поймать if (true) return; и выоптимизировать нахуй все вызовы функции. когда ты работаешь соло/в 2-3 человека правильно убить функцию куда проще чем на проектах масштаба крайэнджина это уродство работает, работает шустро как для требований игрового движка и такой говнокод это такой себе компромис между производительностью и надёжностью, если бы движки писали на джаве/сшарпе где код куда более надёжен/читаем/поддерживаем из-за повышеного кол-ва абстракций и GC - компутеры 2017ого были как раз норм чтоб на медиуме гонять игры с треугольными головами и листвой натолько острой что об неё можно порезаться (с) гуфовский suez и Kant понравилось это Поделиться сообщением Ссылка на сообщение
choojoykin #11169 5 апреля 2017 (изменено) или хз чем делается квадролион операций в одной строчке, длиной в километр.это пример ебучей джавы8 бро вот еще примерно такое же гавно for (ProviderField providerField : getProviderFieldListResult.getProviderField()) { FieldUsageTypes fieldUsageTypeList = providerField.getFieldUsageTypeList(); providerFields.addAll(fieldUsageTypeList.getFieldUsageType() .stream() .filter(this::checkMyDickToo) .map(fieldUsageType -> providerField) .collect(Collectors.toList())); } а в джава7 гавнокоде это выглядит так for (ProviderField providerField : getProviderFieldListResult.getProviderField()) { FieldUsageTypes fieldUsageTypeList = providerField.getFieldUsageTypeList(); for (FieldUsageType fieldUsageType : fieldUsageTypeList.getFieldUsageType()) { if (checkMyDickToo(fieldUsageType)) providerFields.add(providerField); } } Изменено 5 апреля 2017 пользователем choojoykin ни мало ни много, а много и мало Поделиться сообщением Ссылка на сообщение
suez #11170 5 апреля 2017 (изменено) Когда каждая операция в отдельной строчке это ок. А вот тот первый вариант с однострочником это пиздец был.Правда то что ты скинул тоже пиздец, ибо код внутри скобочек .addAll() надо вынести сверху в отдельную переменную для отфильтрованного/обработанного листа. Изменено 5 апреля 2017 пользователем suez http://codepen.io/suez/ - they see me bydlocoding, they hatin. Поделиться сообщением Ссылка на сообщение
choojoykin #11171 5 апреля 2017 Когда каждая операция в отдельной строчке это ок. А вот тот первый вариант с однострочником это пиздец был.Правда то что ты скинул тоже пиздец, ибо код внутри скобочек .addAll() надо вынести сверху в отдельную переменную для отфильтрованного/обработанного листа.я же гавнокод пишу ни мало ни много, а много и мало Поделиться сообщением Ссылка на сообщение
Hikari #11172 5 апреля 2017 Гуру подскажите, собираюсь с 0 учиться, посмотрел по вакансиям, там где я собираюсь обитать 70% джаваскрипт, хтмл, ксс. Для нуба нормально сразу идти по этому пути? Сам склонялся к джава и питону, но как я понимаю, чтобы быть востребованным прогером на питоне, надо еще знать и базы, и другие скриптовые языки. Поделиться сообщением Ссылка на сообщение
suez #11173 5 апреля 2017 (изменено) Просто это рили хуй прочтешьЯ изначально прочел этот кусок так, что ты fieldUsageTypeList.getFieldUsageType() добавляешь к providerFields с помощью .addAll() а затем все это дело фильтруешь и обрабатываешь. И только приглядевшись я понял что у строчки с .addAll( нету закрывающей скобки, и следовательно весь этот пиздец происходит внутри перед добавлением. Изменено 5 апреля 2017 пользователем suez http://codepen.io/suez/ - they see me bydlocoding, they hatin. Поделиться сообщением Ссылка на сообщение
TheDeadSkin #11174 5 апреля 2017 (изменено) или хз чем делается квадролион операций в одной строчке, длиной в километр.это пример ебучей джавы8 бро вот еще примерно такое же гавно for (ProviderField providerField : getProviderFieldListResult.getProviderField()) { FieldUsageTypes fieldUsageTypeList = providerField.getFieldUsageTypeList(); providerFields.addAll(fieldUsageTypeList.getFieldUsageType() .stream() .filter(this::checkMyDickToo) .map(fieldUsageType -> providerField) .collect(Collectors.toList())); } а в джава7 гавнокоде это выглядит так for (ProviderField providerField : getProviderFieldListResult.getProviderField()) { FieldUsageTypes fieldUsageTypeList = providerField.getFieldUsageTypeList(); for (FieldUsageType fieldUsageType : fieldUsageTypeList.getFieldUsageType()) { if (checkMyDickToo(fieldUsageType)) providerFields.add(providerField); } }я когда даю подряд много .action().action2().action3() стараюсь или всё в одну строку если их мало и они короткие, или если их много то даже первое выносить на отдельную строку, ибо можешь создаться впечатление что при collection.action1().action2().action3() action2() это первое действие в цепочке, а не второе а стоп, тут всё ещё хуже, бляяяя короче такие вещи я форматирую ещё иначе, я даю скобкам структуру фигурных чтоб выделять вложеные действиявот такfor (ProviderField providerField : getProviderFieldListResult.getProviderField()) { FieldUsageTypes fieldUsageTypeList = providerField.getFieldUsageTypeList(); providerFields.addAll ( fieldUsageTypeList.getFieldUsageType() .stream() .filter(this::checkMyDickToo) .map(fieldUsageType -> providerField) .collect(Collectors.toList()) ); } Изменено 5 апреля 2017 пользователем TheDeadSkin DeadMage понравилось это Поделиться сообщением Ссылка на сообщение
ElGobedano #11175 5 апреля 2017 Что , парни, Ruby с его end end end не так уж и плох ? Поделиться сообщением Ссылка на сообщение
TheDeadSkin #11176 5 апреля 2017 энд энд всё-равно хуже чем это прикол С-синтаксиса в том что ты можешь творишь ваще что угодно и даже такие огромные команды форматировать пока они не станут читаемыми мало что, я считаю что форма записи выше более читаема чем куча verbose кода, при чём вроде как в руби нельзя делить команду на разные строки С-синтаксис максимально гибкий - хочешь всё в одну строку? пожалуйста. хочешь одну команду разделить на 20? да легко. я не понимаю людей которые жлобятся на кол-во строк и в итоге рожают жс-мемасики с ()}))})}(); или жава-мемасики .do1().action3().add20(20.split().join().splitAgain(array.splitnothing())).hui().pizda(); Поделиться сообщением Ссылка на сообщение
SKYnv #11177 5 апреля 2017 (изменено) Гуру подскажите, собираюсь с 0 учиться, посмотрел по вакансиям, там где я собираюсь обитать 70% джаваскрипт, хтмл, ксс. Для нуба нормально сразу идти по этому пути? Сам склонялся к джава и питону, но как я понимаю, чтобы быть востребованным прогером на питоне, надо еще знать и базы, и другие скриптовые языки.с питоном и джавой ты быстрее взлетишь чем с яваскриптом, но он тебе тоже понадобиться рано или поздно. Потому делай упор на первые два (что-то одно из них), но яваскрипт тоже копай. На фронтенде все равно жс будет, на бэкенде питон. Изменено 5 апреля 2017 пользователем SKYnv << твой комментарий очень важен для форума. Поделиться сообщением Ссылка на сообщение
Lorde - Sober ll #11178 5 апреля 2017 На фронтенде все равно жс будет, на бэкенде питон. поч именно питон, вариантов же масса have courage and be kind 😈🫀💋 🩸👣🤌🏿🦄 🐝✨ ⚡️ ☄️❣️ 💕 💞❤️😈 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 Поделиться сообщением Ссылка на сообщение
Milky_Way #11179 5 апреля 2017 бекэнд на питоне я знаю точно что все телки которые красивые и которые любят ебаться, разбираются в часах Но у меня нету часов, и хуевая ауди поэтому приходится дома дрочить Поделиться сообщением Ссылка на сообщение
sonac #11180 5 апреля 2017 а че, нормас, наваять на джанге сайтец. я слышал много контор таким промышляет, что б потом сидеть еще и на шее у клиента супортя его. Поделиться сообщением Ссылка на сообщение