Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 6

Рекомендованные сообщения

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

и еще раз на всякий случай: в сишарпе нет глобальной области видимости. все, что ты пишешь должно находиться внутри класса/структуры/интерфейса, а они в свою очередь внутри неймспейса.

Поделиться сообщением


Ссылка на сообщение

Да я естественно не говорил о полноценно глобальных переменных, вы чо блядь ебанулись. Я больше имел в виду ситуации, когда какой-нибудь ебыч пишет хуй знает сколько кода в одном файле, определяет переменные в разных местах (а не только в начале) и тебе потом надо через CTRL+F искать определенные переменные, которые изменяются где-то там в функциях и так далее.

 

Это одна из основных причин почему в js и много где так дрочат на функциональщину, ибо в функциональщине запрещены side-effects, когда функция помимо работы с переданными аргументами изменяет какие-то переменные, существующие за пределами самой функции.

 

Если честно то я слегка прихуел с того сколько мне еботы написали на ласт страницах, лул. Особенно весело все это читать от всяких аутистов типа джастдуитов и еще кого, которые пишут так, словно они не являются никому не нужными мамкиными говнокодерами.


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

пригорел = проиграл


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

Ну если префикс m_ юзается по соглашению для переменных на уровне класса, тогда ок, вопрос про функции с запашком отпадает.

 

То что говнокода везде дохуя я это знаю. Но мне всегда казалось что с теми иде, что юзают поцаны в таких языках, подобные примитивные фейлы (сравнение переменной с самой собой) должны доджится по умолчанию.

Когда джуны учат язык, им на первом занятии говорят, что наш язык жава/си/раби/пайтон по умолчанию лучше ЖС потому что его написали не на коленке.

 

Поэтому эти мамкины погромисты и срут на всех форумах о жабаскрипте  :yes:


Я не человек, Я - Кантона. (с)

Miraxes#2986

753357.png

Поделиться сообщением


Ссылка на сообщение

Да это я уже давно понял. Просто прихуел с того, что поцаны на полном серьезе думают что у меня познания как у джуна с 6 месяцами опыта программинга, лул. Особенно смешно читать как часто народ защищает откровенный говнокод из джавы и подобной еботы, говоря "да это норм ваще, все так пишут". Мне до сих пор снятся кошмары от той функции, что чужойкин кидал несколько страниц назад, там где с одной ?коллекцией? или хз чем делается квадролион операций в одной строчке, длиной в километр.


userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

Стоп холиварить по поводу какой яп круче. Во всех языках есть говнокодеры и не стоит ревьюить их код.

Поделиться сообщением


Ссылка на сообщение

Это одна из основных причин почему в js и много где так дрочат на функциональщину, ибо в функциональщине запрещены side-effects, когда функция помимо работы с переданными аргументами изменяет какие-то переменные, существующие за пределами самой функции.

Т. е. если мне нужно изменить глобальную переменную в функции я просто должен передать ее как параметр?


Shaman.png.0cdd33d48561cd068bb3c5ee78289381.png Anna.jpeg.03c9b49363298ceec256500a5d522f7d.jpeg Nigga.jpg.f807f2556bdbf68452292a9301494591.jpg

 

Поделиться сообщением


Ссылка на сообщение

Посаны из "сурьезных" языков погромирования, поясните плз по хардкору

Вот статья об анализе кода 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 понравилось это

Поделиться сообщением


Ссылка на сообщение
(изменено)
или хз чем делается квадролион операций в одной строчке, длиной в километр.

это пример ебучей джавы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);
}
}

Изменено пользователем choojoykin

:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение
(изменено)

Когда каждая операция в отдельной строчке это ок. А вот тот первый вариант с однострочником это пиздец был.

Правда то что ты скинул тоже пиздец, ибо код внутри скобочек .addAll() надо вынести сверху в отдельную переменную для отфильтрованного/обработанного листа.


Изменено пользователем suez

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение

Когда каждая операция в отдельной строчке это ок. А вот тот первый вариант с однострочником это пиздец был.

Правда то что ты скинул тоже пиздец, ибо код внутри скобочек .addAll() надо вынести сверху в отдельную переменную для отфильтрованного/обработанного листа.

я же гавнокод пишу  :trollface:


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

Гуру подскажите, собираюсь с 0 учиться, посмотрел по вакансиям, там где я собираюсь обитать 70% джаваскрипт, хтмл, ксс. Для нуба нормально сразу идти по этому пути? Сам склонялся к джава и питону, но как я понимаю, чтобы быть востребованным прогером на питоне, надо еще знать и базы, и другие скриптовые языки.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Просто это рили хуй прочтешь

Я изначально прочел этот кусок так, что ты fieldUsageTypeList.getFieldUsageType() добавляешь к providerFields с помощью .addAll() а затем все это дело фильтруешь и обрабатываешь. И только приглядевшись я понял что у строчки с .addAll( нету закрывающей скобки, и следовательно весь этот пиздец происходит внутри перед добавлением.


Изменено пользователем suez

userbar-53933.png

http://codepen.io/suez/ - they see me bydlocoding, they hatin.

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

или хз чем делается квадролион операций в одной строчке, длиной в километр.

это пример ебучей джавы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())
            );
        }
 

Изменено пользователем TheDeadSkin
DeadMage понравилось это

Поделиться сообщением


Ссылка на сообщение

Что , парни, Ruby с его end end end не так уж и плох ?

Поделиться сообщением


Ссылка на сообщение

энд энд всё-равно хуже чем это

прикол С-синтаксиса в том что ты можешь творишь ваще что угодно и даже такие огромные команды форматировать пока они не станут читаемыми

мало что, я считаю что форма записи выше более читаема чем куча verbose кода, при чём вроде как в руби нельзя делить команду на разные строки

 

С-синтаксис максимально гибкий - хочешь всё в одну строку? пожалуйста. хочешь одну команду разделить на 20? да легко.

 

я не понимаю людей которые жлобятся на кол-во строк и в итоге рожают жс-мемасики с ()}))})}(); или жава-мемасики .do1().action3().add20(20.split().join().splitAgain(array.splitnothing())).hui().pizda();

Поделиться сообщением


Ссылка на сообщение
(изменено)

Гуру подскажите, собираюсь с 0 учиться, посмотрел по вакансиям, там где я собираюсь обитать 70% джаваскрипт, хтмл, ксс. Для нуба нормально сразу идти по этому пути? Сам склонялся к джава и питону, но как я понимаю, чтобы быть востребованным прогером на питоне, надо еще знать и базы, и другие скриптовые языки.

с питоном и джавой ты быстрее взлетишь чем с яваскриптом, но он тебе тоже понадобиться рано или поздно. Потому делай упор на первые два (что-то одно из них), но яваскрипт тоже копай. На фронтенде все равно жс будет, на бэкенде питон.


Изменено пользователем SKYnv

 

<< твой комментарий очень важен для форума.

Поделиться сообщением


Ссылка на сообщение

 

 

На фронтенде все равно жс будет, на бэкенде питон.
 

поч именно питон, вариантов же масса


have courage and be kind

  😈🫀💋 🩸👣🤌🏿🦄 🐝 ☄️❣️ 💕 💞❤️😈

 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖

220941652_Annotation2021-03-20123345.jpg.23dcff343d6a377badf433b20f5271fd.jpg

💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 💖 

Поделиться сообщением


Ссылка на сообщение

бекэнд на питоне  :palevo:  :palevo:  :palevo:


я знаю точно что все телки которые красивые и которые любят ебаться, разбираются в часах

Но у меня нету часов, и хуевая ауди поэтому приходится дома дрочить

Поделиться сообщением


Ссылка на сообщение

а че, нормас, наваять на джанге сайтец. я слышал много контор таким промышляет, что б потом сидеть еще и на шее у клиента супортя его.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...