Умение разбираться в чужом коде
Vložit
- čas přidán 6. 09. 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!!!!
ijk - это единичные векторы в трехмерном пространстве.
Аналогия с листами, листами листов и листами листов листов
не только. но в целом из матеши да
Да, это за нас математики азбуку по порядку использовать придумали
Нам один старый препод рассказывал что в каком-то древнем языке (в Фортране что-ли, не помню точно) тип переменной определялся первой буквой ее имени, и i,j,k соответствовали целому типу.
А использовать единичные векторы в качестве итераторов это бред. Все равно что "растягивать" пространство на каждой итерации и начинать цикл с пространства, в котором единичные векторы "равны нулю"
@@skatoskat Предположим у тебя есть один цикл - он представляется в видео одномерной матрицы. Если цикл в цикле - работа обоих представляется в виде двумерной матрицы, и т.д.. Реализуй алгоритм умножения двух двумерных матриц и поймёшь что к чему.
@@skatoskat в программировании слово "вектор" обозначает одномерный массив любой длины. Т.е. это специальный тип данных, который, как и другие специальные типы, поддерживается какой-то библиотекой векторных функций, которые оптимизированы и с векторными данныма работают быстрее чем через перебор циклами.
(см. например MATLAB)
i, j, k... взялись из обозначения базиса в многомерной декартовой системе координат
вообще не только в СК мерность обозначается этими буквами, но и в матрицах, то бишь, в массивах.
это знают лишь те, кто учился в институте
i,j,k - это база
@@guxershmeg да все это знают, кроме автора ролика 😁
ме пизди, это index, jindex и kindex
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Когда-нибудь, он наконец-то докачает эти NPM пакеты...
Зря надеешься - он запустил npm install everything...
Опа, неожиданная встреча на Экстрим Цоде. Ну и по классике: какда серия
Языки программирования создавали математики. Идентификаторы i, j, k в математике - индекс элемента в матрице (читай в массиве). Поэтому счетчик цикла должен быть i, j, k
Лет 35 назад был случай, на ремонте стоял самый мощный в городе экскаватор. Починили экскаватор заменой одного транзистора, типа КТ315. И когда экскаваторщик увидел что было причиной выхода из подчинения его машины, он не поверил "Эта крошка пластмассы управляет самым мощным в городе экскаватором?!!!". Вот так и в легаси-коде. Какая-то загогулинка в один символ прячущаяся за километры исходного кода, обваливают работу целого предприятия.
не очень сравнение
@@AlexeyFishevно история ахуенная
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. Единственное, что могу сказать, так это то, что этими символами обозначаются базисные векторы в трехмерном пространстве, что пришло из линейной алгебра, откуда и сами матрицы
Судя по обилию камментов типа "Хорош братан, давай вперед" - программеры реально деградируют )))
Это объясняет откуда в современном коде появляется такое количество говнокода :)))
Братан, хорош, давай, давай, вперёд!
Контент в кайф!
можно ещё?
Вообще красавчик!
Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще?
Вперёд, контент! можно вот хорош, вообще в кайф, красавчик! давай почаще можно этого Братан, давай, вот ещё?
а можно такую же контору, но для C#, обучают, утраивают на работу и плачу процент в течении двух лет, не устроился или меньше 100т.р. зарплата ничего не плачу.
Ты видел проценты у Kata от зп?
@@kirillkomsсколько?
Гарантированное трудоустройство это фантазии
Братан хорош, давай, давай, вперед, контент в кайф, можно еще? Вообще красавчик!
i - это индекс
j - это джиндекс
k - это киндекс
Вопросы???
я - это яндекс?
2:52 Обозначения индексов i, j, k, наследованы из линейной алгебры, где они обозначают разные компоненты векторов.
множества натуральных чисел, используемых для индексов в массиве.
Как же запарила эта шляпа с рекламой курсов
I и j скорее всего из математики
там эти буквы часто используются потому что остальные уже задействованы в чем то другом
+ i, j, k это базисные вектора простарнства Oxyz
_i_ - это index, а _j, k, l_ - это просто следующие по алфавиту буквы.
Меня увольняют с работы:
НЕЕЕЕЕЕЕЕЕЕЕТ!!!
Но, никто не может прочитать мой дерьмо код:
😈😈😈
J - просто следующая буква после I. Неужели это неочевидно?
ни о чём видос
Как и остальные, это просто пост из твиттера переведенный в ютуб, что бы рекламку можно было вставить)
@@LLlblKAPHOкак и большая часть на ютубе, да и похуй собсна
@@LLlblKAPHOа чей пост?
@@dashandr1 я говорю что инфа из видоса достойна пары строчек в Твиттере. Ведет ли автор посты в тг или твите на самом деле - не знаю
В алфавите после i идёт j
Я пишу код и архитектуру так, чтобы компания мной дорожила. =)
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик!
Подсказка i j
Когда три цикла, используются i j k, думаю теперь очевидно почему j k
Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще?"
i, j, k из векторной алгебры может?
Абсолютно верно, массив же и есть система линейных уравнений. Автор, очевидно, провоцирует на активность в комментариях, чтобы ютуб продвигал ролик. А так эта информация получается чуть ли не в любом ВУЗе на практически любом направлении обучения к 3 курсу максимум.
2:35 Эта хрень пошла еще с алгебры, где единичные векторы по каждому измерению в пространстве, именовались как i, j, k . Почему они так называются тоже хз.
P.S прочитал что уже миллиард человек ответили на этот вопрос, поэтому оставлю этот коммент чисто для продвижения
про i, j, кажется, очень логично объясняется через традиции обозначений в математике, что уместно, так как первые программы вычисляли что-то для физиков или математиков и разрабатывались тоже математиками, или физиками, или из соседних областей. во-первых, обозначить индекс за i, кажется, пришло кому-то в голову ещё задолго до того, как появились первые компьютеры (когда сами индексы были, легко понять, а вот когда это стала именно i, мне пока не удалось найти). во-вторых, для других буквенных обозначений использовались разные области алфавита в зависимости от типа величины, например, для известных величин - из начала (a, b, c, ...), для неизвестных - из конца (x, y, z). при этом если букв требовалось несколько, брали следующую по алфавиту, и эта традиция появилась ещё до того, как придумали индексы. соответственно, если все соединить, то получается, что когда индекс обозначается за i, а затем появляется ещё какой-то индекс, но буква i уже занята, то берём следующую букву - j. ну и все)
Комент насписал - канал поддержал. Контент в кайф.
Экстрим цоде выдал видос который мне порекомендовал Ютуб, значит что-то интересное
Братан, харош! Давай-давай! Вперёд! Контент в кайф!! Можно ещё? Вообще красавчик!!! Можно вот этого вот почаще? Давайте, пока!
Если есть в описании "умение разбиратьсч в чужом коде", читай как: "У нас тут говна кусок, а не проект, а тот, ато все это писал, ушел. Если ты это дерьмо не понимаешь, то в этом виноват ты."
Обычно когда кто-то срёт, не думает о том что в этом дерьме еще потом кто-то будет копаться.
Элементарно Ватсон, это обычная алфавитная последовательность латиницы, начинающаяся с I (index), логично для программиста брать для следующего индекса следующую букву алфавита и никакой магии, всё понятно
i - index
j - jindex
z - zindex
че не понятного
Боже, нет.
z - zjindex.
Братан, хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик. Можно всего этого почаще
j потому что больше всего похожа на i?)
Идешь учиться на гошника
Ожидание: никакого легаси
Реальность: копаешься в говнолегаси на пхп преписывая это всё на го
Ставлю публичный класс😮
Это наверное самый бессодержательный ролик на эту тему, что когда либо выпускали на ютубе. Держишь планку
Как музыка называется?
известно откуда - "итое(I) житое(j)" :)
i - сокращено от слова «iteration» (итерация), а не от индекса
Объясняю всего раз, что такое I, J, K, L и M, больше не спрашивайте:
I - index
J - jindex
K - kindex
L - lindex
M - mindex
Не благодарите, это я сам только понял, когда видео смотрел 😎
Налил воды ради интеграции?
Не понял, это что другой чувак? Почему он говорит теперь как диктор с Кинопоиска?
Походу нейросеть начала осваивать канал
i, j, k пришли из математики (кватернионы. Векторный анализ)
Братан, хорош, я только вчера прошел Балдурс Гейт 3, и чёрт возьми - какая же это долгая игра. Очень крутая, но очень долгая. Пепяу просто.
А требование разбираться в чужой работе - это всегда какой-то флажочек, не зависимо от специальности. Типа - а почему тот человек, который сделал эту работу не может в ней сам разобраться или научить меня? Он уволился? А почему?
Индексы I, J это традиция из математики, там где матрицы. А может по-тому, что J идёт после I .. если надо лексически сравнить, то J больше, но минимально больше.. так что в каком-то смысле это логика вложения. Мы заполняем двумерный массив по каждому внутреннему и поэлементно, J приоритетней. Но да, манипуляции могут произойти, на пример, транспонирование матрицы: _[ I, J]->_[J, I ]
i и j скорее всего взяты из математики, где они использовались во всяких лимитах (и других частях высшей математики) и т.п, в то время когда x и y были более связаны с координатами и функциями.
Не "скорее всего", а именно так. Эх блин... Блогеры-программеры :)
Братан, харош, контент в кайф, давай по больше таких видосов)
Контент имба.
смысл такой же как и в фразе старый бох
i,j,k - позывные людей в черном
Очередной ролик не о чём. Какой выпуск подряд уже...
SOLID плохо масштабируется. Потому что на любой пук надо потрогать 30-50 файлов. Вообще ООП приводит к слишком большой связности. Это основная причина, по которой сейчас не берут джунов на работу. 20 лет назад любой инженер мог разобраться в процедурном коде и его нанимали. Сейчас есть куча говна, в которой джуниор уже не осилит. У нас образовалась масса проектов с плохим дизайном.
слишком толсто
Все так, ооп это игрушка дьявола, ежже
сЫрно
ООП хорош, определённо. Хотя в какой-то момент наверное могут быть проблемы.
ООП или не ООП. Я просто любитель, в серьёзных проектах не работал и не работаю. Но ковырял и ковыряю сталкер, в т.ч. скрипты, Lua частично поддерживает ООП, в точности LuaBinding. Некоторые используют примитивный процедурный соплеобразный дизайн, я предпочитаю ООП с помощью LuaBinding, и у меня нет проблем править десятки скриптов если надо создать дополнительный класс, так же нет проблем с экземплярами класса, а у соплежуев все эти проблемы на лице. Не верите, смотрите скрипты Кирага и мои.
Братан хорош! Давай, давай вперёд! Контент в кайф! Можно ещё? Ваще красавчик! Можно вот этого вот почаще?
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.
Николай , где же ты
abcdefgh i j k l m n opqrstuvwxyz
Те, кто пишут, что индексы 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" и далее по алфавиту. У кватернионов мнимые единицы действительно "перпендикулярны" друг другу.
Интересно, мы заметим, когда читающих текст на этом канале заменят на нейронку?)
чтобы разобраться в говнокоде надо самому его писать? посыл этого видео видимо об этом )))
харош
Ну и как бы если я какой-то видос до конца досматриваю, то никогда не поленюсь поставить лайк и написать в комменте типа
Братан, хорош, давай давай вообще красавчик! Контент в кайф
Нельзя, устроившись в контору, заниматься только тем, чтобы переделывать за другим его код в «правильный» вид. Тебя просто попрут с фразой «Да ты же нихрена не делаешь». А еще в такой конторе ты быстро осознаешь, что ты либо начинаешь писать быстро и чтобы работало, и вообще насрать на все правила, либо тебя уволят, потому что твой сосед пишет быстро и чтобы работало, насрав на все правила.
Закрепиться ты сможешь только в том случае, если в конторе регулярно появляются новые крупные проекты, и ты единственный, кто может построить структуру проекта так, чтобы сосед-говнокодер мог его поддерживать.
Братан, хорош! Давай, давай! Вперёд! Контент в кайф!! Можно ещё? Вообще красавчик!
Братан, харош! Давай-давай! Вперёд! Контент в кайф!! Можно ещё? Вообще красавчик!!! Можно вот этого вот почаще?
За что в тг забанили((( За то, что я написал о том, что вы клувнов выпилили из-за рекламодателей?
Не даст закоммитить...ага...--no-verify.
ты кто ваще, где тот человек, на которого я когда то подписался?
Братан хорош, давай ещё, контент в кайф
Ее, четвертый! А по переменным для цикла, там же просматривается порядок,начинаем с I дальше по алфавиту J, K, L, M, N и тд .но обычно хватает две три буквы.
Братан, братан, хорош, кайфовый видос! Можно вот этого вот почаще?
spasibo
3 месяца сижу переписываю старое говно на новые рельсы. Сгорело много стульев, даже асбестовых...
*I know that feeling bro*
Уже почти 2 года на 20-летнем легаси.
@@muggzzzzz крепись, бро…
Ахах, новые фишки появляются, а костылей на кослтылях все больше и больше
Go для тех кто не осили хРуст
Го хорош тем, что во многих конторах он только начинает внедрятся, и там пока не успели наговнокодить тонны легаси
@@kirillkarpin724 гошники хотя бы деньги реальные зарабатывают в отличие от растовиков :)
Ну вот микрофон раньше был лучше и интонация, как в последней фразе - самый топ. Сейчас хуже
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? Давайте пока
У кого линал в унике был, тот вопросами про ijk не задается
У того вьетнамские флешбеки
я думаю j потому что похоже на i. тогда для [][][] будет [і][j][l]
Очень бы хотелось написать, что контент в кайф, но чёта в этот раз тебе сценарий написал Капита Очевидность и ты вообще ни чего полезного не сказал
"j" просто потому что следующая в алфавите после "i".
Но это не точно, скорее всего от слова "jopa"
ijk - это единичные векторы в трехмерном пространстве
база из математики короче
I это разве не итератор
Собираю пати на open-source проект. Требуются : фронт, бэк, художник, девопс, тестер. Приветствуется общительность и дружелюбие. Можно low-level. Экспа гарантируется, шансы дропа голды низкие.