Умение разбираться в чужом коде
Вставка
- Опубліковано 25 вер 2024
- Erid: 2Vtzqv5aBD7 | Тот самый курс по Go-разработке с гарантией трудоустройства: clck.ru/3AsQ5t Оплата обучения - только после выхода на работу!
---
Подпишись на наш Telegram Канал 🖤 t.me/extremecode
The Saga by Karl Casey @ White Bat Audio // • Retro Synthwave - The ...
Наконец-то новая реклама!
Еще больше рекламы у нас в телеге: 🖤t.me/extremecode
Контент без рекламы, зато платно: ❤ boosty.to/extremecode
i j k l m n o p q используются для обозначения переменных из множества целых чисел при индексации многомерных массивов - чисто для удобства чтения кода.
Буква i пошла не от слова index, а от слова imaginary - мнимый. После того, как придумали мнимые числа (z = x +iy), некоторые из математиков захотели придумать что нибудь похожее большей "размерности", и так придумали кватернионы (придумал их Гамильтон) - числа вида a+ib+jc+kd (для обозначения других мнимых единиц взяли следующие после i буквы латинского алфавита). Мнимую часть кватерниона Гамильтон назвал вектором, позже векторами стали описывать пространства в геометрии, и i,j,k стали базисными векторами, а дальше уже сами знаете :)
@@kulimakzu3748 в таких местах фразы типа "придумали мнимые числа" лучше заменить на "захотели извлекать корни из трицательных чисел" - ну мол не просто взяли и придумали, а тупо за каким-то конкретным лешим! Так же и с кватернионами...
Вообще если не смотреть на свой код 🐈 неделю то твой 🐈 уже не твой🐈 или вы там настолько ПЗУ что всю жизнь в голове внутренние органы держите? через неделю ты помнишь только скелет ☠️ через год…
@@kulimakzu3748чёрт, моё пиво опередили. Ну ладно, крайне точное пояснение, даже приебаться трудно, сказано даже слишком подробно пздц, ну мог бы в принципе ещё сказать что этими самыми векторами просто обожали обозначать координаты(вектора/я_быдло) на матрицах которые и были прародителями самих массивов, но ладно, доебаться получилось можно победной походкой идти в закат 👍
Легаси - это сохранившийся со времён сухого закона комментарий " Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще?"
Вспомнился анекдот:
Уволили старых программистов, наняли новых. Те приплыли на остров, запускать завод, изучают, что сделано. Нашли в огромном зале кучу швабр которые держат потолок, огромный вентилятор на другом конце острова и воздушный шар сделанный из старого лоскутного одеяла.
Значит, потолок укрепили, швабры убрали. Вентилятор был не нужен, его убрали, ну и шар то же.
Все пропатчили и заапдейтили и запустили завод. День работает, два, тут из всех щелей начинает идти ядовитый газ, что делать не понятно, выключить не получается. Звонят прошлым програмерам. Спрашивают, что делать, им отвечают:
"Ну смотри, если такая ситуация, то убираете швабры, потолок падает вместе с генератором - завод отключается, если не поможет то включаете вентилятор и газ сдувает с острова, ну а если и это не поможет сваливаете на воздушном шаре."
Я такой же видел, но про инженеров) И там бы диалог с прошлым инженером с кучей рофлов.
Сделал вакансию на хедхантере, добавил к резюме "Умение дышать воздухом" и меня сразу взяли на должность ультрапотного сеньёра-джависта!!! Спасибо, @ExtremeCode!!!!
i, j, k... взялись из обозначения базиса в многомерной декартовой системе координат
вообще не только в СК мерность обозначается этими буквами, но и в матрицах, то бишь, в массивах.
это знают лишь те, кто учился в институте
i,j,k - это база
@@guxershmeg да все это знают, кроме автора ролика 😁
ме пизди, это index, jindex и kindex
ijk - это единичные векторы в трехмерном пространстве.
Аналогия с листами, листами листов и листами листов листов
не только. но в целом из матеши да
Да, это за нас математики азбуку по порядку использовать придумали
Нам один старый препод рассказывал что в каком-то древнем языке (в Фортране что-ли, не помню точно) тип переменной определялся первой буквой ее имени, и i,j,k соответствовали целому типу.
А использовать единичные векторы в качестве итераторов это бред. Все равно что "растягивать" пространство на каждой итерации и начинать цикл с пространства, в котором единичные векторы "равны нулю"
@@skatoskat Предположим у тебя есть один цикл - он представляется в видео одномерной матрицы. Если цикл в цикле - работа обоих представляется в виде двумерной матрицы, и т.д.. Реализуй алгоритм умножения двух двумерных матриц и поймёшь что к чему.
@@skatoskat в программировании слово "вектор" обозначает одномерный массив любой длины. Т.е. это специальный тип данных, который, как и другие специальные типы, поддерживается какой-то библиотекой векторных функций, которые оптимизированы и с векторными данныма работают быстрее чем через перебор циклами.
(см. например MATLAB)
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Да ладно в чужом. Умение разбираться в своём спустя неделю это уже суперхардбасскилл
Когда-нибудь, он наконец-то докачает эти NPM пакеты...
Зря надеешься - он запустил npm install everything...
Опа, неожиданная встреча на Экстрим Цоде. Ну и по классике: какда серия
Лет 35 назад был случай, на ремонте стоял самый мощный в городе экскаватор. Починили экскаватор заменой одного транзистора, типа КТ315. И когда экскаваторщик увидел что было причиной выхода из подчинения его машины, он не поверил "Эта крошка пластмассы управляет самым мощным в городе экскаватором?!!!". Вот так и в легаси-коде. Какая-то загогулинка в один символ прячущаяся за километры исходного кода, обваливают работу целого предприятия.
не очень сравнение
@@AlexeyFishevно история ахуенная
Языки программирования создавали математики. Идентификаторы i, j, k в математике - индекс элемента в матрице (читай в массиве). Поэтому счетчик цикла должен быть i, j, k
ExtremeCode уже третий год собирает для нас начальный проект на node js.
I,J,K,L,M,N -были integer "по-умолчанию" на Фортране для машин IBM 1401, PDP, БЭСМ-6. Данный стандарт дошел до Fortran-77, в котором еще присутствовали форматные строки (5 симв - опциональный номер строки, 1 симв - знак пробел или знак продолжения предыдущей строки, выражение фортрана) на 80 символов.
В свою очередь фортран создавался для математиков, у которых принято так обозначать индексы уже сотни лет
Индекс, джиндекс, куинднекс, очевидно
Судя по обилию камментов типа "Хорош братан, давай вперед" - программеры реально деградируют )))
Это объясняет откуда в современном коде появляется такое количество говнокода :)))
Это вы ещё банковское ПО не обслуживали. Вот где эталонный говнокод. Какая-нибудь однофайловая дрисня о 10к строк на делфе или каболе - вообще обычное дело
Братан хорош! Давай-давай вперёд! Контент в кайф, можно еще? Ваще красавчик!)
Понять, что делает код, может любой, кто знаком с синтаксисом. Сложнее понять, зачем он это делает.
Когда код плохо структурирован, например, написан или неоднократно изменён в спешке, понять, зачем что-то происходит становится сложно даже автору.
Легаси код -- это код, про который никто не знает, зачем он что-то делает.
Правильно написанные тесты могут в этом помочь, демострируя цель происходящего в коде. Ну а если тесты написаны для того, чтобы процент покрытия был не ниже требуемого -- ну удачи...
Деньги-то не пахнут, а вот легаси код очень даже пованивает.
i, j, скорее всего, пришло из математики, где i, j испокон веков использовалось для обозначения индексов матрицы. Иногда можно встретить i, j, k. Единственное, что могу сказать, так это то, что этими символами обозначаются базисные векторы в трехмерном пространстве, что пришло из линейной алгебра, откуда и сами матрицы
Братан, хорош, давай, давай, вперёд!
Контент в кайф!
можно ещё?
Вообще красавчик!
Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще?
Вперёд, контент! можно вот хорош, вообще в кайф, красавчик! давай почаще можно этого Братан, давай, вот ещё?
2:52 Обозначения индексов i, j, k, наследованы из линейной алгебры, где они обозначают разные компоненты векторов.
множества натуральных чисел, используемых для индексов в массиве.
Братан хорош, давай, давай, вперед, контент в кайф, можно еще? Вообще красавчик!
I и j скорее всего из математики
там эти буквы часто используются потому что остальные уже задействованы в чем то другом
+ i, j, k это базисные вектора простарнства Oxyz
2:35 Эта хрень пошла еще с алгебры, где единичные векторы по каждому измерению в пространстве, именовались как i, j, k . Почему они так называются тоже хз.
P.S прочитал что уже миллиард человек ответили на этот вопрос, поэтому оставлю этот коммент чисто для продвижения
Если есть в описании "умение разбиратьсч в чужом коде", читай как: "У нас тут говна кусок, а не проект, а тот, ато все это писал, ушел. Если ты это дерьмо не понимаешь, то в этом виноват ты."
Меня увольняют с работы:
НЕЕЕЕЕЕЕЕЕЕЕТ!!!
Но, никто не может прочитать мой дерьмо код:
😈😈😈
Комент насписал - канал поддержал. Контент в кайф.
_i_ - это index, а _j, k, l_ - это просто следующие по алфавиту буквы.
Обычно когда кто-то срёт, не думает о том что в этом дерьме еще потом кто-то будет копаться.
Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще?"
Подсказка i j
Когда три цикла, используются i j k, думаю теперь очевидно почему j k
Элементарно Ватсон, это обычная алфавитная последовательность латиницы, начинающаяся с I (index), логично для программиста брать для следующего индекса следующую букву алфавита и никакой магии, всё понятно
а можно такую же контору, но для C#, обучают, утраивают на работу и плачу процент в течении двух лет, не устроился или меньше 100т.р. зарплата ничего не плачу.
Ты видел проценты у Kata от зп?
@@kirillkomsсколько?
Гарантированное трудоустройство это фантазии
Я пишу код и архитектуру так, чтобы компания мной дорожила. =)
Экстрим цоде выдал видос который мне порекомендовал Ютуб, значит что-то интересное
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик!
Это наверное самый бессодержательный ролик на эту тему, что когда либо выпускали на ютубе. Держишь планку
i - это индекс
j - это джиндекс
k - это киндекс
Вопросы???
я - это яндекс?
про i, j, кажется, очень логично объясняется через традиции обозначений в математике, что уместно, так как первые программы вычисляли что-то для физиков или математиков и разрабатывались тоже математиками, или физиками, или из соседних областей. во-первых, обозначить индекс за i, кажется, пришло кому-то в голову ещё задолго до того, как появились первые компьютеры (когда сами индексы были, легко понять, а вот когда это стала именно i, мне пока не удалось найти). во-вторых, для других буквенных обозначений использовались разные области алфавита в зависимости от типа величины, например, для известных величин - из начала (a, b, c, ...), для неизвестных - из конца (x, y, z). при этом если букв требовалось несколько, брали следующую по алфавиту, и эта традиция появилась ещё до того, как придумали индексы. соответственно, если все соединить, то получается, что когда индекс обозначается за i, а затем появляется ещё какой-то индекс, но буква i уже занята, то берём следующую букву - j. ну и все)
Идешь учиться на гошника
Ожидание: никакого легаси
Реальность: копаешься в говнолегаси на пхп преписывая это всё на го
Ставлю публичный класс😮
J - просто следующая буква после I. Неужели это неочевидно?
Братан, харош! Давай-давай! Вперёд! Контент в кайф!! Можно ещё? Вообще красавчик!!! Можно вот этого вот почаще? Давайте, пока!
Контент имба.
Как же запарила эта шляпа с рекламой курсов
Объясняю всего раз, что такое I, J, K, L и M, больше не спрашивайте:
I - index
J - jindex
K - kindex
L - lindex
M - mindex
Не благодарите, это я сам только понял, когда видео смотрел 😎
Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще
известно откуда - "итое(I) житое(j)" :)
Индексы I, J это традиция из математики, там где матрицы. А может по-тому, что J идёт после I .. если надо лексически сравнить, то J больше, но минимально больше.. так что в каком-то смысле это логика вложения. Мы заполняем двумерный массив по каждому внутреннему и поэлементно, J приоритетней. Но да, манипуляции могут произойти, на пример, транспонирование матрицы: _[ I, J]->_[J, I ]
i, j, k из векторной алгебры может?
Абсолютно верно, массив же и есть система линейных уравнений. Автор, очевидно, провоцирует на активность в комментариях, чтобы ютуб продвигал ролик. А так эта информация получается чуть ли не в любом ВУЗе на практически любом направлении обучения к 3 курсу максимум.
i, j, k пришли из математики (кватернионы. Векторный анализ)
ни о чём видос
Как и остальные, это просто пост из твиттера переведенный в ютуб, что бы рекламку можно было вставить)
@@LLlblKAPHOкак и большая часть на ютубе, да и похуй собсна
@@LLlblKAPHOа чей пост?
@@dashandr1 я говорю что инфа из видоса достойна пары строчек в Твиттере. Ведет ли автор посты в тг или твите на самом деле - не знаю
В алфавите после i идёт j
i и j скорее всего взяты из математики, где они использовались во всяких лимитах (и других частях высшей математики) и т.п, в то время когда x и y были более связаны с координатами и функциями.
Не "скорее всего", а именно так. Эх блин... Блогеры-программеры :)
харош
i - сокращено от слова «iteration» (итерация), а не от индекса
Братан, хорош, я только вчера прошел Балдурс Гейт 3, и чёрт возьми - какая же это долгая игра. Очень крутая, но очень долгая. Пепяу просто.
А требование разбираться в чужой работе - это всегда какой-то флажочек, не зависимо от специальности. Типа - а почему тот человек, который сделал эту работу не может в ней сам разобраться или научить меня? Он уволился? А почему?
смысл такой же как и в фразе старый бох
Братан, харош, контент в кайф, давай по больше таких видосов)
j потому что больше всего похожа на i?)
i,j,k - позывные людей в черном
Не понял, это что другой чувак? Почему он говорит теперь как диктор с Кинопоиска?
Походу нейросеть начала осваивать канал
i - index
j - jindex
z - zindex
че не понятного
Боже, нет.
z - zjindex.
Ну и как бы если я какой-то видос до конца досматриваю, то никогда не поленюсь поставить лайк и написать в комменте типа
abcdefgh i j k l m n opqrstuvwxyz
SOLID плохо масштабируется. Потому что на любой пук надо потрогать 30-50 файлов. Вообще ООП приводит к слишком большой связности. Это основная причина, по которой сейчас не берут джунов на работу. 20 лет назад любой инженер мог разобраться в процедурном коде и его нанимали. Сейчас есть куча говна, в которой джуниор уже не осилит. У нас образовалась масса проектов с плохим дизайном.
слишком толсто
Все так, ооп это игрушка дьявола, ежже
сЫрно
ООП хорош, определённо. Хотя в какой-то момент наверное могут быть проблемы.
ООП или не ООП. Я просто любитель, в серьёзных проектах не работал и не работаю. Но ковырял и ковыряю сталкер, в т.ч. скрипты, Lua частично поддерживает ООП, в точности LuaBinding. Некоторые используют примитивный процедурный соплеобразный дизайн, я предпочитаю ООП с помощью LuaBinding, и у меня нет проблем править десятки скриптов если надо создать дополнительный класс, так же нет проблем с экземплярами класса, а у соплежуев все эти проблемы на лице. Не верите, смотрите скрипты Кирага и мои.
Как музыка называется?
Налил воды ради интеграции?
Легаси - это сохранившийся со времён сухого закона комментарий
Те, кто пишут, что индексы i и j пошли из обозначения единичных векторов не правы. "i" действительно "index", и обозначает элемент последовательности a_i (i-ый элемента последовательности a). Когда нужно взять подпоследовательность, то пишут (a_i)_j и так далее по алфавиту: i,j,k,l... Уже похоже на запись массивов во многих языках. В математике единичный вектор вообще записывается как e_i, где i=[1..n], а n - мерность пространства. Тензор тогда запишется как A_i,j.
В школьной математике приняли обозначения векторов как в переменных (x,y,z) (тоже по алфавиту), а единичные вектора e_1=i, e_2=j, e_3=k скорее всего вообще из обозначения кватернионов, где i от "imaginary" и далее по алфавиту. У кватернионов мнимые единицы действительно "перпендикулярны" друг другу.
Братан хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Ваще красавчик! Можно вот этого вот почаще?
Нельзя, устроившись в контору, заниматься только тем, чтобы переделывать за другим его код в «правильный» вид. Тебя просто попрут с фразой «Да ты же нихрена не делаешь». А еще в такой конторе ты быстро осознаешь, что ты либо начинаешь писать быстро и чтобы работало, и вообще насрать на все правила, либо тебя уволят, потому что твой сосед пишет быстро и чтобы работало, насрав на все правила.
Закрепиться ты сможешь только в том случае, если в конторе регулярно появляются новые крупные проекты, и ты единственный, кто может построить структуру проекта так, чтобы сосед-говнокодер мог его поддерживать.
Интересно, мы заметим, когда читающих текст на этом канале заменят на нейронку?)
OOP or not OOP. I'm just an amateur, I haven't worked in serious projects and I don't work. But the stalker was picking and picking, including scripts, Lua partially supports OOP, exactly LuaBinding. Some use a primitive procedural nozzle-like design, I prefer OOP using LuaBinding, and I have no problems editing dozens of scripts if I need to create an additional class, there are also no problems with class instances, and the students have all these problems on their face. If you don't believe me, look at Kirag's scripts and mine.
Ее, четвертый! А по переменным для цикла, там же просматривается порядок,начинаем с I дальше по алфавиту J, K, L, M, N и тд .но обычно хватает две три буквы.
чтобы разобраться в говнокоде надо самому его писать? посыл этого видео видимо об этом )))
Братан, хорош, давай давай вообще красавчик! Контент в кайф
Николай , где же ты
spasibo
Братан, хорош! Давай, давай! Вперёд! Контент в кайф!! Можно ещё? Вообще красавчик!
Не даст закоммитить...ага...--no-verify.
Братан, харош! Давай-давай! Вперёд! Контент в кайф!! Можно ещё? Вообще красавчик!!! Можно вот этого вот почаще?
Go для тех кто не осили хРуст
Го хорош тем, что во многих конторах он только начинает внедрятся, и там пока не успели наговнокодить тонны легаси
@@kirillkarpin724 гошники хотя бы деньги реальные зарабатывают в отличие от растовиков :)
3 месяца сижу переписываю старое говно на новые рельсы. Сгорело много стульев, даже асбестовых...
*I know that feeling bro*
Уже почти 2 года на 20-летнем легаси.
@@muggzzzzz крепись, бро…
Братан хорош, давай ещё, контент в кайф
Очередной ролик не о чём. Какой выпуск подряд уже...
Ну вот микрофон раньше был лучше и интонация, как в последней фразе - самый топ. Сейчас хуже
Если переменные используются тут же рядом на небольшом участке кода, я могу их назвать коротко. Типа там $data или $result. По контексту и так понятно, что это. В противном случае называю так, чтобы по названию было понятно, что это.
эй, по хорошему у тебя вообще не должно быть ситуаций, чтобы переменные использовались не рядом
@@tomasddf это нереально. Например, передаю что-то из контроллера во вьюху. Я же не буду передавать просто $data. Непонятно будет. А где-нибудь в модельке в небольшом методе почему бы не сунуть какие-то полученные данные в ту же $data, поработать тут же и вернуть какой-то результат, $data больше нигде не используется.
@@Denisko123 В смысле непонятно?
Из контроллера во вьюху в 9 случаях из 10 передается всякая фигня, полученная из ДБ, который вообще пофиг как называть. $models, $data, $res, $result - любому должно быть понятно, что это фигня из БД, которое нужно раскидывать по вьюхе, а конкретное содержимое приходится узнавать всякими "дамперами". Если не понято -> в сад. Это понятно любому, кто Пыху хотя бы пару недель изучал. Ну можно дополнительно передать что-то отдельными переменными, но основное - это пачка фигни из ДБ, которую дробить нет никакого смысла, при условии, что она будет использована в 1-м месте.
Ну, в каком-то сказочном мире, возможно, кто-то пишет комменты на 2 экрана, расписывающие содержимое этих массивов/объектов, но в реальном мире -это пустая трата времени - так ничего никогда не сделаешь - только комменты писать будешь вечно.
А еще есть такая фигня, как Битрикс (который БУС). Вот битриксоиды с удовольствие послушают сказки про "понятные" переменные во вьюхах ( там это шаблоны компонентов), а потом пойдут разгребать $arResult, потому что за нафталиновые книжки тов. Мартина денег не платят, да и на момент своего появления она, со своими радикальными идеями, нафиК никому не интересна была (ВНЕЗАПНО!)
Ахах, новые фишки появляются, а костылей на кослтылях все больше и больше
Собираю пати на open-source проект. Требуются : фронт, бэк, художник, девопс, тестер. Приветствуется общительность и дружелюбие. Можно low-level. Экспа гарантируется, шансы дропа голды низкие.
я думаю j потому что похоже на i. тогда для [][][] будет [і][j][l]
Братан, братан, хорош, кайфовый видос! Можно вот этого вот почаще?
i и j, насколько я понимаю, пришли из математики. Там часто в матрицах и векторах используется. А как оно туда уже пришло, ху́й его знает
Бро давай еще ваще ты красавчик
у нас на матеше в универе было i j k
Так i это итератор
За что в тг забанили((( За то, что я написал о том, что вы клувнов выпилили из-за рекламодателей?