Илиас Эззахид: Буря.
Михаил Непряхин: Так всем. Привет напишите. Пожалуйста, плюсики Слышно Ливидно
Михаил Непряхин: так Ладно хорошо Начинаем
Михаил Непряхин: так Ну, в общем сегодня будем говорить про
Михаил Непряхин: синтаксис
Михаил Непряхин: в и
Михаил Непряхин: да давайте поговорим про
Михаил Непряхин: синдексис
Михаил Непряхин: а и
Михаил Непряхин: так значит про мифы. Проив говорить особо нечего условие без Кобочек пишется
Михаил Непряхин: ну так же здесь Можно и добавить все эти
Михаил Непряхин: Или Или условия Внутри тоже все это без Кобочек
Михаил Непряхин: значит элс есть
Михаил Непряхин: ну вообще в целом если вы можете написать без элза
Михаил Непряхин: то Лучше, писать без газа то есть
Михаил Непряхин: почти Всегда, Можно написать без эзу
Михаил Непряхин: Поэтому айлс вы довольно редко можете Увидеть
Михаил Непряхин: ну что. В целом как бы Рекомендация такая что. Типа чтобы код был проще лишь элвис немножечко усложняет Кот
Михаил Непряхин: и вфлс Еще более редкий Зверь потому что и фэйлс просто заменяется на Свичу
Михаил Непряхин: А с Вич прикольная конструкция часто используется
Михаил Непряхин: можно как вот здесь полная замена
Михаил Непряхин: вот этого уефа с и
Михаил Непряхин: и просто вот Как бы здесь проверяются условия
Михаил Непряхин: и соответственно здесь
Михаил Непряхин: короче Дефолт здесь такой что
Михаил Непряхин: первый кейс который сработает
Михаил Непряхин: а произойдет выход
Михаил Непряхин: То Есть Если У нас зиро
Михаил Непряхин: Если Она зиро будет Два
Михаил Непряхин: Мы вот здесь вот ээ Получим Совпадение, и отсюда Выйдем
Михаил Непряхин: есть возможность переопределить Эту тему,
Михаил Непряхин: супер Мне кажется, самое Редкое слово. Которое есть в гошке ключевое это.
Михаил Непряхин: Тру У Меня как там Фоукс-у вот короче говоря если вы Делаете вот с Этим словом
Михаил Непряхин: то даже если сработает первый кейс
Михаил Непряхин: вы все равно не выйдете и свечаю и этот кейс работает и этот кейс работает то Есть короче вот эта штука переопределяет Поведение по умолчанию
Михаил Непряхин: в каких-то языках, по умолчанию как Раз, Таки вот это поведение в логушке оно гарантировано для удобства что, первый сработавший кейс вы из свеча выходите
Михаил Непряхин: плюс значит можно вот здесь от свече задать условия
Михаил Непряхин: точнее как бы проверить что, Там То есть вот зира пишется ну здесь суда перемены оставляются Или Там функция конец
Михаил Непряхин: с получением значения
Михаил Непряхин: и и
Михаил Непряхин: по-моему функции Можно Всегда толкать
Михаил Непряхин: да да ну вот Функцию, Тоже, Можно представить
Михаил Непряхин: а ты анонимную. Функцию, поставит вот и в общем-то просто проверяется По совпадению с Этим значением Что прикольно и гошники Узнают
Михаил Непряхин: Не сразу
Михаил Непряхин: это То Что можно здесь вот Допустим У вас такая ситуация, Что все три кейса Поведение должно быть одинаковое просто через, запятую можете здесь их поставить так вот и
Михаил Непряхин: задать то есть этот кейс сработает
Михаил Непряхин: или преднерки ли при значение двойки либо притруки хороши запятая здесь получается значение ну как, о
Михаил Непряхин: вот но Только очень коротко компактная Поэтому в целом ветвление
Михаил Непряхин: прикольно сделано то есть Искать
Михаил Непряхин: а довольно удобно этим всем. Пользоваться а ну вот здесь я показал этот пример
Михаил Непряхин: да и Еще кстати вот Еще фишка что можно
Михаил Непряхин: отделить нули
Михаил Непряхин: в виньте Нижним подчеркиванием,
Михаил Непряхин: тоже удобно многие не знают то есть Реально прям вот большие числа когда пишете то Удобно бывает отделить
Михаил Непряхин: то же самое срабатывает переменных окружения. То Есть можете переменное окружение тоже когда передавать в Гошку извини какие-то переменные
Михаил Непряхин: то можно тоже также ниже не подчеркиваю не использовать он Это понимает
Михаил Непряхин: вот ну и дефолтный кейс когда не сработали все остальные кейсы тогда срабатывает дворник кейс
Михаил Непряхин: Еще из приколов дефолтник кейс
Михаил Непряхин: может быть
Михаил Непряхин: в другом, блин месте например, сверху
Михаил Непряхин: и и
Михаил Непряхин: один Раз на Собеседование такую Взяточку Показали Ну Любят на Собянину такое Спрашивать Я Никогда Этого в Жизни Не Видел. И после Этого Тоже, Никогда Не Видел. Но запомнил Что Были наказываться можно дефорники и сверху делать Но практика Дурацкая то есть Так никто Не пишет
Михаил Непряхин: ааа
Михаил Непряхин: потому Что Так Проще читать вы сверху вниз читаете То есть все кейсы они срабатывают сверху вниз если вы понимаете Что У какого-то кейса вероятность Срабатывания выше То просто наверх его помещаете Ну, чтобы как бы оптимизировать
Михаил Непряхин: выполнение кода
Михаил Непряхин: и еще интересная особенность ифа что так как в Голову. Очень часто встречается вот такая тема
Михаил Непряхин: вот такие выражения когда У нас есть
Михаил Непряхин: а функция она что-то возвращает какое-то значение одно, или два
Михаил Непряхин: и мы Вынуждены проверять это значение
Михаил Непряхин: так. Как когда вы переходите с другого языка на Голову.
Михаил Непряхин: У вас есть потребность
Михаил Непряхин: писать в том же стиле в котором. Вы привыкли
Михаил Непряхин: это вообще такая большая проблема что
Михаил Непряхин: ну, это всех касается то есть вы когда со Своего родного языка переходите на Другой вы все равно используете привычки наработанные в предыдущем языке
Михаил Непряхин: и и
Михаил Непряхин: Постепенно конечно как вы чем больше Насмотрено чем больше вы кода читаете тем вы ну жевательны От разных Людей То есть если вы прямо на одном месте долго Работаете У вас только Один коллега и Вывод весь, Год видя как только он пишет то конечно у вас как бы вы автоматически перенимаете его манеру его стиль
Михаил Непряхин: а если вы видите смотрите читаете, разные библиотеки у вас несколько коллег Вы смотрите у всех разный стиль потому что одинаково никто не пишет то у вас появляется насмотренность и Вы постепенно вот понимаете вот как это иематично писать
Михаил Непряхин: вот
Михаил Непряхин: и короче говоря
Михаил Непряхин: всех бесит что вот эти вот ифы когда Добавляются они
Михаил Непряхин: аа Делают, код как бы тяжеловеснее потому Что больше срок Кода
Михаил Непряхин: Ну а философия в Голову.
Михаил Непряхин: И за
Михаил Непряхин: вертикальности написания Кода
Михаил Непряхин: то есть и как бы специально так Сделано
Михаил Непряхин: и в Принципе поощряется чтобы вы не писали сложные инструкции конструкции
Михаил Непряхин: аа, Компактно и вот как бы за один Раз,
Михаил Непряхин: и лучше Всегда разбивать Что то сложное
Михаил Непряхин: а на Мелкие декомпозировать на Мелкие части
Михаил Непряхин: и
Михаил Непряхин: хоть и срок кода будет больше Читаться оно будет быстрее то есть как бы философия гоу в скорости чтения потому что Кот мы чаще читаем чем, пишем во много Раз, он в десять Раз, чаще Мы Кот Читаем о чем Пишем и свой собственный и чужой и Поэтому
Михаил Непряхин: Не стоит напрягаться из-за того что Там, частая Обработка ошибок
Михаил Непряхин: Или Там такие проверки потому что во-первых вы все равно привыкаете к этому. Патрону к этому. Рифу и его начинаете ну, как бы фильтровать и вычленять самую суть
Михаил Непряхин: что, суть здесь вот это а остальное Там можно даже и Не смотреть что, Там это как бы типа когда У нас что-то идет, Не Так А дальше смотрите Там То Что когда идет, Так
Михаил Непряхин: вот То есть Чаще всего вифия после функции
Михаил Непряхин: обрабатывается и
Михаил Непряхин: то Что может идти Не Так это похоже на
Михаил Непряхин: тайк кейдж
Михаил Непряхин: конструкцию но
Михаил Непряхин: здесь
Михаил Непряхин: Ошибка в гоу
Михаил Непряхин: а это официальное обычное значение это Возврат из Функций то есть У нас функции обычно возвышают кортеж из двух значений это само. Значение и Ошибку,
Михаил Непряхин: вот и все ошибки обрабатываются ну в том Числе вот если у нас Булю во значения
Михаил Непряхин: Например, возвращается из функции принято называть функцию начиная с из ну Типа Как вопрос типа из вот что-то там типа да нет
Михаил Непряхин: типа ок, ок, и
Михаил Непряхин: аа типа как каналы мапы еще что-то они возвращают а вот это булево значение
Михаил Непряхин: и его принято писать ок,
Михаил Непряхин: и проверять что если, вдруг не ок,
Михаил Непряхин: То как-то обрабатывать
Михаил Непряхин: вот так вот Ммм
Михаил Непряхин: специально для тех кто кого, бесит, вот этот паттер этой конструкции
Михаил Непряхин: если, возвращается одно, значение
Михаил Непряхин: и дальше результат этой функции не обрабатывается, можно вот сюда вот поместить
Михаил Непряхин: и получится Что У нас Не четыре строчки кода а три
Михаил Непряхин: есть команды которые прямо вот типа ну запрещено это типа а есть команды Наоборот где если вы это не сделали то вам скажут нам так сделать
Михаил Непряхин: я долгое время придерживался того Что вот это вот как ни крути читается проще
Михаил Непряхин: а чем вот это вот
Михаил Непряхин: вот Но уже привык к тому что в Принципе тоже как бы так довольно часто пишут и ну с этим надо просто смириться
Михаил Непряхин: а иногда бывает что, здесь два значение возвращается допустим там Еще ошибка здесь можно прямо. Выражение записать там типа
Михаил Непряхин: ошибка неравна нию и тут внутри еще что-то сделать
Михаил Непряхин: то есть и
Михаил Непряхин: это такой Сахар для того чтобы еще схлопнуть немножечко сделать строк Кода Поменьше
Михаил Непряхин: вот чаще всего с ошибками Используют
Михаил Непряхин: так М-м. Пройфу больше нечего говорить Со Свечами
Михаил Непряхин: Давайте Про циклы посмотрим значит Что у нас с циклами
Михаил Непряхин: аа в гоу всего лишь одно ключевое слово для Циклов а других Ключевых слов Нет то Есть нету лука там еще чего-то фор и фор а У вайла вайма нету лупа Нет то есть это просто фор
Михаил Непряхин: а оно он может быть разный То есть вот если аргументов здесь никаких Нет
Михаил Непряхин: То это бесконечный цикл
Михаил Непряхин: и раз у нас бесконечный цикл То должно быть какое-то условие чтобы из него выйти и ключевое слово. Для Выхода из цикла, Фор это брейк
Михаил Непряхин: а про брать Мы еще попозже поговорим потому что
Михаил Непряхин: также брейк
Михаил Непряхин: эээ
Михаил Непряхин: а является ключевым словом для Выхода,
Михаил Непряхин: допустим
Михаил Непряхин: Ммм
Михаил Непряхин: вот
Михаил Непряхин: так и
Михаил Непряхин: здесь у нас что ну сословие мог и я еще исключу своего континню то есть мы можем инвертировать
Михаил Непряхин: можем условие сделать вот так вот типа по какому, условию мы выходим
Михаил Непряхин: можем сделать инверсию можем сказать Что по Какому условию Мы продолжаем
Михаил Непряхин: а Выходим Мы Допустим в конце
Михаил Непряхин: и ну собственно говоря этим можете пользоваться для того чтобы как-то Облегчить чтение, от этого фора
Михаил Непряхин: так для того чтобы вот так вот допустим если, у вас есть какой-то конкретный аккаунт вы можете соответственно сделать классический и вот этот вот сищный фор здесь у нас точкой запятой разделены условия и
Михаил Непряхин: может не быть первого условия может не быть последние условия ну а если их обоих Нет То, как бы в Принципе этот цикл
Михаил Непряхин: и здесь Можно точки запятой опустить и получается такой цикл типа как ив то есть пока здесь, тру мы крутимся и
Михаил Непряхин: плюс один дело,
Михаил Непряхин: вот
Михаил Непряхин: так
Михаил Непряхин: ну да вот можем ничего здесь, не объявить можем вынести вот это объявление за скобки
Михаил Непряхин: Так здесь Что здесь я элементу правда Показал
Михаил Непряхин: ну а это вот он с опущенными точками запятыми если, ни правого ни левого нет ээ секций то он просто превращается вот в такой вариант
Михаил Непряхин: так можем иерироваться соответственно по
Михаил Непряхин: с вайсом и по массивом
Михаил Непряхин: и по
Михаил Непряхин: значит смотрите вообще почему мы можем интегрироваться в гол, всего четыре варианта
Михаил Непряхин: значит ну Первое это массив
Михаил Непряхин: и свайс потому что послать сам массив
Михаил Непряхин: а ну петь на самом деле еще сталинграда можем оперироваться по мапе по хошмапе можем игрорироваться по каналу
Михаил Непряхин: и по стринге ну по страннке там
Михаил Непряхин: с особенностями а ну кстати Сейчас в тренн городе, починили Сейчас По стринге можно контролироваться нормально По буку
Михаил Непряхин: потому что Раньше по-моему рация строги была по Байтам
Михаил Непряхин: так вот мы можем
Михаил Непряхин: Заранее объявить какой то массив и по нему отвернулся Таким образом через, ключевое слово рэнч
Михаил Непряхин: можем прямо, здесь писать
Михаил Непряхин: свайся или массив По которому Хотим? Интеллигенции Тоже довольно часто Можно видеть допустим это удобно когда мы Хотим?
Михаил Непряхин: Сделать
Михаил Непряхин: а теперьтраи
Михаил Непряхин: и Допустим мы хотим? Как-то чтобы у нас вот Это Количество Попыток Ну сервера все-таки пишем на ретро Я довольно часто приходится. Писать
Михаил Непряхин: Сторонние библиотеки обычно Громоздкие сложные а вот часто надо будет, просто вам какую-то задержку сделать и вот допустим Первый Раз вы делаете задержку там одна секунда второй раз если допустим не прошло там пять секунд третий там пятнадцать секунд и там
Михаил Непряхин: шестьдесят и там не знаю
Михаил Непряхин: а и
Михаил Непряхин: триста секунд как не так вот и Таким образом можно передать Это, и довольно компактно эту территорию сделать
Михаил Непряхин: то есть чаще, всего для этого я вижу что бы это делали если, вам надо просто подряд вот Так, вот проигрырироваться пять Раз,
Михаил Непряхин: то завезли сахаров еще буквально недавно завезли Сахар можно прямо вот здесь указать одно число и оно превратится в литератор
Михаил Непряхин: единственный минус он будет контролироваться с ноля
Михаил Непряхин: аа здесь можно Добавить
Михаил Непряхин: а передачу вот этого вот То, Что Там он
Михаил Непряхин: ну Или как-то по-другому делать
Михаил Непряхин: аа ничего другого никакого. Сахара здесь Нет То, есть вот только так
Михаил Непряхин: да
Михаил Непряхин: так ну да можно черзай и
Михаил Непряхин: если, Мы добавляем еще одну, перемену делаем две, перемены
Михаил Непряхин: то то есть вот в этом случае Первое будет
Михаил Непряхин: Индекс
Михаил Непряхин: если мы посвайся и тренируемся
Михаил Непряхин: если По маме и тренируемся то первым Значением будет Ключ если По Масситам По
Михаил Непряхин: Каналу То просто значение будет но круж Там зависит от того Почему Мы иерируемся зависит что вы здесь получаете чаще всего интеллигенции по свайсу первое значение будет индекс то есть там ноль один два три четыре пять
Михаил Непряхин: вот и
Михаил Непряхин: если не хотим, выводить индекс
Михаил Непряхин: то нужно обязательно то есть если допустим не использоваться У нас э в телецикла надо Делать нижнее Подчеркивание потому Что иначе, Голову. Отругаться прямо не Даст Комбировать Что
Михаил Непряхин: мы объявили переменную, а Не используем ее
Михаил Непряхин: это для тех кто приходит с динамических особенно языков висячая проблема. Когда будет что-нибудь пишете хотите, Быстренько затыбажить и
Михаил Непряхин: как бы вам ни гошка Не даст скомпелировать программу и запустить ее если. Вы объявили какую-то переменную но ее Не используете ну то есть это на самом деле избавляет от целого Класса, ошибок вот этих вот когда вы либо просто какого-то мусора в коде
Михаил Непряхин: а когда вы объявили Перемену и зачем Ты ее Не используете
Михаил Непряхин: вот Но э сперва подвешивают потом быстро привыкайте ну и учитесь как. Бы как-то обходить как. Комментировать правильно
Михаил Непряхин: так
Михаил Непряхин: ну это я уже сказал да
Михаил Непряхин: такой сахар начинается с ноля
Михаил Непряхин: трантаун
Михаил Непряхин: значит вот еще
Михаил Непряхин: бывает такая проблема значит у нас цикл, в Цикле
Михаил Непряхин: в Бесконечном Цикле у нас Еще Один цикл,
Михаил Непряхин: и нам нужно выйти вот из Этого
Михаил Непряхин: с самого верхнего цикла
Михаил Непряхин: если мы просто заюзием брейк
Михаил Непряхин: То Мы выйдем вот и решка показывает Мы выйдем из этого цикла, потому что брейк оон выходит со своего уровня вот на котором Мы Сейчас. Находимся то же самое Там селекти еще
Михаил Непряхин: Ивода в циклифор
Михаил Непряхин: Поэтому
Михаил Непряхин: чтобы как-то Этим, управлять Куда Мы хотим, выйти вот Мы хотим, сюда выйти По брейку или хотим, сюда выйти значит есть метки
Михаил Непряхин: это По Сути хищный оператор Гоу ту
Михаил Непряхин: и как Раньше, программы, работали в Принципе как ассамблея работает что Мы просто ставим метку и
Михаил Непряхин: и и
Михаил Непряхин: то есть после цикла луп Не даст император, поставить то есть, как бы это ограниченное Использование только вот мы ставим метку рядышком То, есть, выше
Михаил Непряхин: а строчки с циклом Куда мы хотим, прыгнуть То, есть как бы из Какого цикла Мы хотим, выйти
Михаил Непряхин: и можно назвать как угодно это Не произвольное название я назвал лу можно назвать фор
Михаил Непряхин: ну просто Одинаково должно быть
Михаил Непряхин: а очень редкий Зверь и кто Не Знает такой Возможности Языка тот как-то Еще по-другому и
Михаил Непряхин: и уже тогда брейк изю когда ты дал ненужную отметку но часто бывает красиво можно написать вот именно только Таким образом чтобы там лишние функции, не делать из допустимого острова кода а у Григорий почитался бы лучше
Михаил Непряхин: то есть вы когда функцию сюда добавите вы заставляете человека прыгать, по Этой функции читая человек Кот потом бах, где Там, эта функция потом раз опять, в этот и как, бы у вас контекст немножко. Размывается а это позволяет контекст Держать Ммм
Михаил Непряхин: Могу вкусировать внимание не распыляться,
Михаил Непряхин: и второй пример Использования вот этот улег добавил. Мы как бы и
Михаил Непряхин: вот это вот гоун разделен на такую на Две части да То есть как бы вот это просто базовое Использование языка
Михаил Непряхин: и все что, связано с многопоточкой со синхронностью вот это все Мы это чуть Позже Будем смотреть но вот Оттуда из этой части Многопоточной вот есть конструкция селект
Михаил Непряхин: и она похожа на свич потому. Что тоже имеет. Кейсы Но Только она работает с каналами Каналы это вообще такая чисто Гошная Абстракция каналов догошки нигде Не было ну что-то подобное было только
Михаил Непряхин: забыл, как язык называться на котором написан кролик робит мкю
Михаил Непряхин: кажется, что там тоже такой язык похожий на голову но вот кроме него
Михаил Непряхин: он и
Михаил Непряхин: час
Михаил Непряхин: я Рванг, и
Михаил Непряхин: вроде бы язык не мертв но он такой не в мейнстриме вот и есть такая же история короче Если Мы Без Метки, сделаем брейк
Михаил Непряхин: То Мы Выйдем из Этой конструкции. А Если Мы Хотим? Выйти из цикла приходится добавлять Метку Причем ту же самую Метку Добавить не получится потому
Михаил Непряхин: Нижней реги сторон тут короче
Михаил Непряхин: считает Что это другое. Слово
Михаил Непряхин: на выход будет после цикла даже если могу поставить до
Михаил Непряхин: да ну если здесь поставить
Михаил Непряхин: час если здесь поставить луп,
Михаил Непряхин: он выйдет вот из этого цикла, ну то есть это поведение точно такое же какое мы до этого и получали и Без глупо
Михаил Непряхин: то есть мы ставим метку
Михаил Непряхин: допустим у нас еще один цикл, еще один цикл,
Михаил Непряхин: и мы хотим, выйти, вот из всех
Михаил Непряхин: тогда мы вот ставим вот прямо. Вот
Михаил Непряхин: перед тем откуда мы хотим, выйти если, мы хотим, только вот из этого выйти а вот в этом продолжить крутиться ну ставим перед ним то, есть вот По сути вот такой простой функционал больше больше ничего Нет
Михаил Непряхин: так часто Читаю Кот на Голову. Где называют Перемену одной буквы и насколько допустимо
Михаил Непряхин: noise
Михаил Непряхин: э
Михаил Непряхин: да интересный вопрос
Михаил Непряхин: э смотрите
Михаил Непряхин: в и
Михаил Непряхин: есть Две школы,
Михаил Непряхин: еще лучше не делатьварные циклы,
Михаил Непряхин: а ну Иногда невозможно или допустим
Михаил Непряхин: воркеры это еще по сути конструкции из буркера вокер он просто у Него постоянно крутится ну и внутри тоже допустим селек нужен
Михаил Непряхин: или ну редко. Но бывает когда это оправданно
Михаил Непряхин: короче проны буквенные перемены это правда значит в голо Коде часто встречаются однобукленные перемены ну про ай я тут, ничего не Говорю как бы а это и индекс Или в циклифор а это общее употребимое если ай Занята то
Михаил Непряхин: джой, если жизнь занята то Окей вот рессивер У Метода набукленной Всегда
Михаил Непряхин: и короче чем ужас Коуп
Михаил Непряхин: Тем и
Михаил Непряхин: допустимы однобуквенные перемены
Михаил Непряхин: то есть если, У нас тут такой коротенький скуп и я тут что-нибудь объявляю какую-нибудь переменную я могу ее назвать пэн и допустим где-нибудь здесь я там заиспользую
Михаил Непряхин: аа но чем больше сколб допустим мы объявили перемену здесь
Михаил Непряхин: а собираемся ее использовать где-нибудь вот здесь
Михаил Непряхин: ну или мы ее здесь использовали здесь использовали понятно что, если. Вы хотите, перемену использовать где-то в конце и
Михаил Непряхин: и если. Вы допустим объявили переменную какую-то и вы ее и здесь здесь использовали и потом здесь еще используете то пока человек дочитает до низа он уже забудет что то за н
Михаил Непряхин: и да конечно в голову есть описать Это, очень хорошо Вы наводите Мышку, Вы видите что-то хоть такое но тем Не менее лучше в этом случае называть уже там намброс какой-нибудь то есть уже длинно называть
Михаил Непряхин: вот чтобы когда вы видели видели пример что это нам, вас
Михаил Непряхин: но опять, же по мере насмотренности есть люди которые прямо, Сейчас запрещают на буквуные перемены даже вот там если маленький узкий сколб
Михаил Непряхин: а если, еды которые вообще запрещают типа вот Не терпят потому что ну опять пришли с какого-то языка где встречались вот с этим вот адом когда у вас много однобукных перемен
Михаил Непряхин: значит первое правило когда чем меньше сколб тем больше допустимы там буквы на перемены
Михаил Непряхин: второе правило
Михаил Непряхин: у вас может быть домен какой-то он допустим домен
Михаил Непряхин: ордер вот У вас там сервис занимается
Михаил Непряхин: называется сервис ордер
Михаил Непряхин: и Ну ордерами какими-то заказами Она занимается
Михаил Непряхин: и У вас есть структура
Михаил Непряхин: и соответственно так же открытием пишу
Михаил Непряхин: а структура ордер она какая-то большая и она вот используется повсеместно
Михаил Непряхин: и для облегчения ну просто делают, вот маленькое о это Всегда, ордер то есть,
Михаил Непряхин: во всем. Сервисе постоянно используется этот ордер и тогда можно вот как бы и так понятно ужесточать букву это ордер
Михаил Непряхин: но если Это не очевидное что Это такое То не называется но вообще вот эта вот Однобуквенная философия она довольно таки
Михаил Непряхин: сложное и сложно рассказать как ее Уместно употреблять Только По насмотренностью
Михаил Непряхин: в своих проектах Я довольно часто использую однобуквенные ну потому что как бы и
Михаил Непряхин: и без Проблем читайте код с однобукольными. Переменами допустим У вас Там парочкой Ну обычно она одна Ну допустим Две У вас Там ездят на функцию набуквленной перемены если читайте без Проблем все нормально значит Окей
Михаил Непряхин: если Вы понимаете что хрень какая-то непонятна надо Бы назвать подлиннее ну в следующий Раз, так не делайте да то есть как Бы вот Примерно такой рецепт но как правило все-таки
Михаил Непряхин: принято в гошке называть
Михаил Непряхин: м-м только ли северным, буквиным, и вот какие-то вот ну от кого-то я сказал какие случаи есть ли интернет это дело
Михаил Непряхин: но он больше вредит на самом деле Чем, помогает
Михаил Непряхин: и по Сути если, этот линтер включен то просто Всегда, длинными, ну однобуленные перемены не используют три Двух буквен
Михаил Непряхин: вот ну и длинные тоже не принято называть То есть Если как бы вы приходите из джавы ну у нас вроде таких Нет ну в джаве например если вы видели квад Там принято очень длинное название перемены писать
Михаил Непряхин: здесь это тоже не приветствуется потому что у нас еще есть Пакеты которые Тоже, участвуют ведь, вот в хм Например, да это пакет
Михаил Непряхин: и Например, если у вас
Михаил Непряхин: вот такая ситуация, была бы
Михаил Непряхин: ну, Тут как бы не в тему и
Михаил Непряхин: укротить название функций и переменных
Михаил Непряхин: так
Михаил Непряхин: а так сережа может блокировать и стараться по его форму какой в ней смысл в таком исполнении и тогда можно прозвучать Канал и ждать от нее всеного
Михаил Непряхин: это для контекста
Михаил Непряхин: то есть ээ вы здесь у вас здесь контекст дан
Михаил Непряхин: ну
Михаил Непряхин: вот так короче
Михаил Непряхин: и вы в цикле крутитесь и в этом случае ну вы не можете просто так выйти вы селигте так и останетесь Поэтому
Михаил Непряхин: это вам может понадобиться
Михаил Непряхин: то есть это узкий кейс все не то Что Хорошие, Правды
Михаил Непряхин: многие вообще не Знают Про ту метку и обходятся без нее
Михаил Непряхин: так вот
Михаил Непряхин: А дальше по структуры
Михаил Непряхин: А ей Про опыт тут же поговорим значит
Михаил Непряхин: структуру если, называется с маленькой буквы. Приватная с большой, публичная вот У меня приватная структура
Михаил Непряхин: а квассов гол. Нет
Михаил Непряхин: соответственно здесь все
Михаил Непряхин: построено на том что
Михаил Непряхин: вот это вот метод так обозначается но это сахар
Михаил Непряхин: по большому счету в Голову. Как бы оп официального нет потому что классов нет
Михаил Непряхин: а есть только структуры и функции.
Михаил Непряхин: Но есть особый синтаксис который позволяет ассоциировать
Михаил Непряхин: конкретную функцию с каким-то типом ну со структурой не обязательно структура можно ассоциировать сделать метод и у обычного, Янта
Михаил Непряхин: вот То есть вы можете сделать Тайп инт
Михаил Непряхин: а и
Михаил Непряхин: а юзер, но сьюзер,
Михаил Непряхин: вот и в Принципе как бы вот это уже получается метод у Инта
Михаил Непряхин: она вот ну чаще всего Конечно все таки у структуры бывает
Михаил Непряхин: он и
Михаил Непряхин: значит вот эта часть называется ресивер
Михаил Непряхин: а это очень похоже на то как в других языках вот здесь вот
Михаил Непряхин: использует например, слово, здесь
Михаил Непряхин: и ну и вот это было бы вот так вот просто, в голод вынесли вот сюда опять же решение, такое других как такого Нет
Михаил Непряхин: но только вот это вот не принято называть
Михаил Непряхин: длинно
Михаил Непряхин: здесь обычно одна Буква
Михаил Непряхин: на ней обычно она начинается по как у вас называться типа с какой буквы Есть ли у вас допустим тип, даже из двух слов называется юозер
Михаил Непряхин: то здесь все равно не принято называть юен вот так вот то есть все равно будет только либо ю либо н
Михаил Непряхин: и это
Михаил Непряхин: это непривычно потому что если у вас было здесь эс то конечно
Михаил Непряхин: у вас Всегда, было здесь а здесь поучаться в голову в зависимости от того какая структура какую букву здесь сделали, вот такую букву здесь используете
Михаил Непряхин: вот и это Всегда одна. Буква то есть здесь длинные Не пишутся это сразу виднокушник Не гожник если здесь начинает какой-то длинный Россию быть
Михаил Непряхин: значит как надо про это думать
Михаил Непряхин: на самом деле
Михаил Непряхин: это первый аргумент функции.
Михаил Непряхин: То есть вот смотрите мы можем принять
Михаил Непряхин: а Функцию
Михаил Непряхин: этот самый. Юзер, первым аргументом
Михаил Непряхин: и ну вот эта переменная да а это тип
Михаил Непряхин: и как видите даже как бы ничего и не поменялось ну кроме того что немножко, сломался этот ну вот в этом случае
Михаил Непряхин: то вот так Было бы тут, мы ее принимаем
Михаил Непряхин: вот и все работает
Михаил Непряхин: То есть просто Запомните
Михаил Непряхин: что когда вы Видите вот это вот
Михаил Непряхин: да это называют методом У типа
Михаил Непряхин: У структуры но это по Сути просто функция ассоциированная Сахар. Сделан для Ассоциации с этим Типом
Михаил Непряхин: но По большому счету это просто первый аргумент от Этой функции.
Михаил Непряхин: Потом начинается еще такая История посмотреть на
Михаил Непряхин: Указатели здесь появляется указатель
Михаил Непряхин: и
Михаил Непряхин: тут. Еще становится все сложнее потому Что Человек Смотрит какая Разница с указателем без указателя
Михаил Непряхин: и и
Михаил Непряхин: а здесь смотрите здесь тем не менее мы так и Продолжаем с этим работать потому Что здесь автоматически тоже сахар идет, для
Михаил Непряхин: то есть и на самом деле если у нас тут указатель то тут Россию, он вот так вот принимается
Михаил Непряхин: все вот это тожевалидный синтаксис на самом деле
Михаил Непряхин: и оно Автоматически работает то есть вот это вот не надо писать гоу
Михаил Непряхин: а то есть оно вот так вот Автоматически разменовывается
Михаил Непряхин: вот но когда вы понимаете что ага на самом деле это первый аргумент вот такие а ну в Принципе так Оно уже и понятно, Что это такое
Михаил Непряхин: значит Поэтому Не Пугайтесь
Михаил Непряхин: просто перемещайте его первым аргументом Ну как Бы первым аргументом на самом деле как Бы У Него Разница в том что Мы тогда У нас Появляется возможность вот Так Вот Как метод использовать вот Но Мы про это еще Тоже. Поговорим
Михаил Непряхин: так ну вот мы объявили значит тут у, нас э шаблон типа как бы здесь мы его инициализируем
Михаил Непряхин: есть Два варианта мы можем сразу заницировать вот через Круглые скобки через литературы можем объявить пустую структуру
Михаил Непряхин: вот Таким вот образом, а дальше уже через, точку вот собственно вот Это, вот все Присвоить
Михаил Непряхин: ну так не принято то есть если вы сразу понимаете что, вы можете объявить здесь то обычно делают, так и еще Есть Это второй вариант да еще Есть третий вариант короче делаете через. Вар двоеточие убираете и У вас структура получается Зеровелью
Михаил Непряхин: но Зеро Валью структуры это
Михаил Непряхин: структура инициатизированная всеми, полями
Михаил Непряхин: просто все поля тоже зероаль уинта это ноль остринги пустая строка
Михаил Непряхин: винтаноль
Михаил Непряхин: вот
Михаил Непряхин: он и
Михаил Непряхин: Опять же тут же по насмотренности потом поймете когда, что, используют ну, как бы вот три способа
Михаил Непряхин: опять, же это типа когда, Говорят, что, вот
Михаил Непряхин: одним способом только можно сделать одну вещь все-таки есть тут Небольшая вариативность Но она скорее сделана как сахар то есть там неудобство потому что в некоторых Ситуациях Так удобнее делать Некоторых Так
Михаил Непряхин: а Так мы вызываем метод
Михаил Непряхин: присвоим в переменную печатаем
Михаил Непряхин: да
Михаил Непряхин: дальше
Михаил Непряхин: такая интересная особенность
Михаил Непряхин: значит э есть такое понятие как Выравнивание
Михаил Непряхин: Выравнивание или паддинг
Михаил Непряхин: что это такое значит когда вы видите структуру в гоу То в памяти когда структура будет инициатива и помещена в память как переменная
Михаил Непряхин: вот эти вот поля они Реально будут находиться в памяти друг За другом то есть как вы видите структуру так оно и в памяти и будет
Михаил Непряхин: и все так же то есть это сделано по поводу Би си
Михаил Непряхин: а но минус в том
Михаил Непряхин: что так как у нас
Михаил Непряхин: шестидесяти четырех безразрядная система ну мы работаем на шестидесяти четырехразрядных системах
Михаил Непряхин: а То
Михаил Непряхин: у нас Возникает
Михаил Непряхин: такая штука как паддинг Выравнивание потому Что инструкция ну То есть как бы процесса рон Читает словами мышиными словами и если Мы поместили например десять четыре байта
Михаил Непряхин: То они все равно будут занимать восемь бай потому что они выравниваются по восемь бай
Михаил Непряхин: Поэтому
Михаил Непряхин: вот эта вот структура она Могла бы, и
Михаил Непряхин: а двадцать четыре байта да но это не так на самом деле она будет тридцать два байтом
Михаил Непряхин: вот можно вот Этой функции посмотреть ансев сайзов
Михаил Непряхин: Ммм
Михаил Непряхин: Она Показывает Сколько
Михаил Непряхин: структура объект занимает на стеке
Михаил Непряхин: Поэтому если мы печемся о памяти ну опять. Же смотрите я вам это рассказываю потому что иногда бывает это важно Понятно, что чаще всего Мы пишем программы. Не под высокий рпц то есть Там Хайлот на голову ну, Мне кажется, Там процентов пять
Михаил Непряхин: Пишется ну понятно, Что если. Вы работаете в больших Компаниях Там маркет Пейзаж Там Побольше Хайево Да Но все равно Тем Не менее Как бы хайву встречаться редко то есть редко приходит думать, о памяти
Михаил Непряхин: но эти Вопросы, могут задать на собеседник
Михаил Непряхин: и это балун все Популяризирует, и Поэтому тоже
Михаил Непряхин: у нас собеседник, появляются эти Вопросы, и в целом просто для себя неплохо знать
Михаил Непряхин: что если, у вас
Михаил Непряхин: важно у вас много Одинаковых структур вы Хотите, чтобы не меньше занимали место азтеки но вы Хотите, чтобы они были на Стыке
Михаил Непряхин: структуры самые большие, нужно помещать наверх
Михаил Непряхин: и тогда получается интересная штука что у вас вот Эти, вот четыре байта они уже не будут потреблять лишние четыребайта каждый потому что, они выровняются
Михаил Непряхин: и структура правды будет двадцать четыре. Байта
Михаил Непряхин: аа то же самое например,
Михаил Непряхин: с булом посмотрите бум это один байт
Михаил Непряхин: но вот в этом случае он займет восемь бай потому, что будет выровня вот по этому поводу потому, что это тридцать восемь байден,
Михаил Непряхин: и структура будет заменять шестнадцать бай
Михаил Непряхин: ну например, если вы здесь поместите четыре байта
Михаил Непряхин: аа тип
Михаил Непряхин: то он же выровняется по четырем Байтам ну вот такая особенность либо короче Мы По восемь в Раннем, Или По четыре
Михаил Непряхин: Но например, еще такая История Есть ли У вас много булов
Михаил Непряхин: Допустим,
Михаил Непряхин: вот здесь Давайте Добавим,
Михаил Непряхин: а вот этого Тоже, будут Занимать восемь байден, потому что, У вас все Они выровняются и
Михаил Непряхин: Давайте Запустим, Так Размер структуры юзер, четыре Я хочу посмотреть
Михаил Непряхин: в ответе восемь, Бай
Михаил Непряхин: То есть Выравнивание работа Таким как бы способом когда вы с Этим немножко работаете то Вы как бы там какую То логику начинаете замечать как оно как лучше сделать И так далее
Михаил Непряхин: так в целом надо просто, об этом знать что есть такое понятие есть такое явление как Выравнивание что структура представлена в памяти в том же порядке Поля находится как вы видите
Михаил Непряхин: например, у власти автоматический паддинг и это тоже как Будто бы вроде плюсы есть что мы экономим на памяти но мы часто Хотим? И Контролировать это чтобы и
Михаил Непряхин: в памяти Мы получаем То же самое что Мы видим
Михаил Непряхин: а вот
Михаил Непряхин: и я
Михаил Непряхин: если вы хотите,
Михаил Непряхин: оптимизацию
Михаил Непряхин: большую самую большую короче сортируйте чем больше занимает Аа тип в памяти тем вы его помещаете выше и чем меньше тем ниже то есть стрилинг Всегда, будет вверху слайся Забо. Отверху Ума повседневзу,
Михаил Непряхин: а если
Михаил Непряхин: вот если здесь будет ну
Михаил Непряхин: так ну вот здесь так Сейчас Давайте подумаем допустим четыре Бата четыре Байта
Михаил Непряхин: ну, он срочно триба это займет потому что он все равно Выровняется по четыре Байта у Меня, такой прогноз давайте провером
Михаил Непряхин: Нет господи еще двенадцать ну, вот здесь он вырвался типа вот Это занимает восемь и в этого и Это выровнялось По восьми, То Есть видя как Бы Я вот Даже, вот Не угадал То Есть потому Что Не Очевидно Что вот эта, ситуация, Она дает двенадцать
Михаил Непряхин: Нет все нормально что За
Михаил Непряхин: чудо У Меня, там Не, То запустилось что ли
Михаил Непряхин: двенадцать да все правильно правильно сказал Саду короче
Михаил Непряхин: выровняется по Четырем байтам
Михаил Непряхин: вот а если Но если стренка будет то Тоже, выравняется по Восьми
Михаил Непряхин: то есть, здесь будет восемь значит будет шестнадцать плюс восемь двадцать четыре год но тебе хорошо
Михаил Непряхин: да двадцать четыре вот короче Это не партия не надо там Это как бы учить просто смысл в том что надо было взять
Михаил Непряхин: если пойнтер спонтан что такое поинтер это восемь байд то есть поинтер в шестидесяти четырех разрядной системе это обычный ин,
Михаил Непряхин: восемь бай Поэтому если она здесь будет, поинтер давайте, добавим
Михаил Непряхин: в и
Михаил Непряхин: допустим ира ира это интерфейсы в него взировали
Михаил Непряхин: я
Михаил Непряхин: нил
Михаил Непряхин: вот он будет соответственно восемь бай и Мы это все Выровняем До шестнадцати но Давайте проверим
Михаил Непряхин: два четыре,
Михаил Непряхин: а интерфейс это Не, это Не, пойнтер Это же шестнадцать пальцев
Михаил Непряхин: Это два поинтера
Михаил Непряхин: Так Сейчас надо
Михаил Непряхин: Давайте заведем,
Михаил Непряхин: тай и
Михаил Непряхин: возьму пустую Возьмем пустую структуру и вот Это поле Будет указатель на Эту пустую структуру Вот Это точно восемь бай
Михаил Непряхин: восемь восемь Шестнадцать Вот
Михаил Непряхин: Вот
Михаил Непряхин: так По идее Можно сдать, структуру с Восьми Булевыми. Полями и подбай да на
Михаил Непряхин: верно
Михаил Непряхин: так если хочется Попробовать то можно сделать Там Мое предложение
Михаил Непряхин: если хочется упороться то
Михаил Непряхин: можете
Михаил Непряхин: вообще сделать
Михаил Непряхин: смотрите
Михаил Непряхин: так а иди битва Можно сделать
Михаил Непряхин: так вот делайте бетмапу делайте инт восемь
Михаил Непряхин: вот это будет один пайт
Михаил Непряхин: аа и Займет место один бэйт ну смотрите займет место один байт
Михаил Непряхин: но каждый вид вы будете использовать как флажок була вас будет занимать один байт а информации будет как Будто. Восемь Булевых замечаний
Михаил Непряхин: Не Слепой Ни о чемме
Михаил Непряхин: Хочу пароваться. Тут Можно прям До битов да
Михаил Непряхин: так в Давайте Сделаем перерыв
Михаил Непряхин: Две Троночки
Михаил Непряхин: дыхнем
Михаил Непряхин: так Проравнивание вопрос еще так по четыре. Бата
Михаил Непряхин: а Будет выравниваться, в тридцати двухбитных системах
Михаил Непряхин: а по восемь, шестьдесят четырех бедных да Нет видите там вот ну, понятно, что в тридцати Двух в битных
Михаил Непряхин: вообще и
Михаил Непряхин: мы Всегда, можем говорить про шестидесяти четырехбитное а
Михаил Непряхин: а вот здесь,
Михаил Непряхин: где То у Меня пример был Вот по четыре, байта выровнялась а уйти с вити тоже четыре, четыре, выровнялась То есть как бы Ммм
Михаил Непряхин: зависит от того что там предыдущее какое значение то есть в этом случае видите по четыре бронировать в этом по восемь уровня воспитанного
Михаил Непряхин: там какие-то есть правила ну их много ну это может их волна посмотреть он там про как, Рассказывал по-моему есть про этот
Михаил Непряхин: да круче
Михаил Непряхин: и по четыре по восемь
Михаил Непряхин: дальше
Михаил Непряхин: Что еще про структуры
Михаил Непряхин: значит есть у нас ээ два варианта
Михаил Непряхин: Встраивание наверняка
Михаил Непряхин: как сказать
Михаил Непряхин: вот ситуация, мы Хотим,
Михаил Непряхин: на две Структуры
Михаил Непряхин: и мы Хотим?
Михаил Непряхин: Эту структуру Использовать вот у нас структура эпл! Есть
Михаил Непряхин: какой там привод
Михаил Непряхин: мы Хотим? Ее использовать внутри Структуры банана
Михаил Непряхин: как, бы Обернуть ее хотим,
Михаил Непряхин: Этот тип может быть Не, Нашим например, каким То чужим но Нам Вот он Нужен
Михаил Непряхин: наследований в Гоу нету
Михаил Непряхин: ну понятно по каким причинам исследований нету потому что Наследование жести приносит больше придачу пользы
Михаил Непряхин: аа ну и просто кручу философия такая что Наследование дискредитировался больше всего Вреда по запутыванию. Козы мне кажется, пронесло именно Наследование Поэтому в гой его просто убрали
Михаил Непряхин: но надо ведь, как-то что-то подобное Иметь,
Михаил Непряхин: и Вот у нас Есть два варианта чтобы Иметь,
Михаил Непряхин: подобное поведение первый, вариант называется композиция
Михаил Непряхин: когда мы называем тип тут ведь мы его называем называем эпл и ну а это Уже название типа теп-пу новосибир
Михаил Непряхин: тайп
Михаил Непряхин: дакот
Михаил Непряхин: вот Мы его сделали Композицию
Михаил Непряхин: и второй вариант Мы можем сделать Мбдинг Встраивание
Михаил Непряхин: салют вот это называется Джеймбединг
Михаил Непряхин: Сейчас То, есть мы прям сам тип Встроили.
Михаил Непряхин: И и
Михаил Непряхин: а в чем Разница
Михаил Непряхин: ну вот здесь вот когда у нас
Михаил Непряхин: мып
Михаил Непряхин: внутри
Михаил Непряхин: просто имеем поле
Михаил Непряхин: а это поле вот эта. Структура
Михаил Непряхин: и оно в памяти будут представлены просто типа подряд идущие байты То есть
Михаил Непряхин: вот а Мы по-моему доведутчи потому что То что Там Внутри и так, далее
Михаил Непряхин: с мейбедингом То же самое на самом деле но просто они себя ведут по разному
Михаил Непряхин: и если вы не хотите, наделять вот эту структуру свойствами эпл,
Михаил Непряхин: то вы делаете Так
Михаил Непряхин: а если вы хотите, получить нечто похожее на Наследование вы делаете Мбединг
Михаил Непряхин: в случае мбддинга
Михаил Непряхин: У вас
Михаил Непряхин: а Методы
Михаил Непряхин: можно переопределить Методы
Михаил Непряхин: то Есть если
Михаил Непряхин: анна вот дальше Поговорим да тут, пока Про структуры значит
Михаил Непряхин: Сейчас Сейчас посмечу я Хотел сказать
Михаил Непряхин: так. Ничего интересного
Михаил Непряхин: так. Вот Мы создаем ээпал с боеводом говорим что
Михаил Непряхин: этот эпо он является полем в Другой структуре банана
Михаил Непряхин: ага, да вот черт его показать значит обращение, к Боль к Полям
Михаил Непряхин: А значит у нас структура банана мы с ней работаем как нам обратиться к структуре эпл и достучаться до привода то есть в этом идее Мы хотим, допо его отойти Мы говорим что вот он Г нашепал
Михаил Непряхин: то есть Мы прям антрепризацию имеем в виду, этого поля ну а дальше уже получаем по его от которой у этого плана вроде очевидно
Михаил Непряхин: но вот так вот оно работать не будет то Есть у нас Мы Не можем сразу Получить доступ к Полеводу
Михаил Непряхин: и соответственно
Михаил Непряхин: иногда
Михаил Непряхин: Мы можем Иметь,
Михаил Непряхин: у себя
Михаил Непряхин: банана тоже по его от
Михаил Непряхин: и ну вот мы обращаемся, Сейчас к Приводу. Бананы да
Михаил Непряхин: а ну Допустим мы хотим, перекрыть его мы хотим, вот этот Наш паевод
Михаил Непряхин: а и
Михаил Непряхин: вернее Нет Мы хотим,
Михаил Непряхин: есть поймут Мы хотим, его Пере определить То есть типа
Михаил Непряхин: нас вот этот повод Не устраивает вот в Этой структуре нас все устраивает там еще есть какие-то поля и все хорошо Мы ее Хотим? Юзать Но вот поле. По его От нас не устраивает мы хотим, его заменить
Михаил Непряхин: и в этом случае, если,
Михаил Непряхин: вот мы его здесь определим
Михаил Непряхин: давайте вызовем
Михаил Непряхин: хочу вот он бананы, то, есть это его вот Мы вызвали Из бананы
Михаил Непряхин: и как бы,
Михаил Непряхин: а если, Мы допустим
Михаил Непряхин: Сделаем мбединг
Михаил Непряхин: Встраивание
Михаил Непряхин: Так шас
Михаил Непряхин: чего вы Так перекладывать-то но уж сам забыл,
Михаил Непряхин: ну да все правильно как я Рассказывал да то есть видите у нас ээ банана важнее
Михаил Непряхин: то есть когда у нас есть Э Повод и в структуре которую Мы устраиваем и наша Собственная Структура то наша Собственная Структура она важнее Если Мы просто обращаемся Так То мы Получаем ее логично как мы перекрываем
Михаил Непряхин: То есть у нас есть встроена когда структура но вот То что, у нас оно Важнее Сейчас Мы Там. Дальше увидим То Же самое с методами происходит То есть Мы методы Тоже. Можем переопределить
Михаил Непряхин: То есть вот Этот здесь метод здесь показывая с помощью бэдинга Можно переопределить вот Эти, вложенные Поля
Михаил Непряхин: а если, бы У, нас бы Не было этого метода
Михаил Непряхин: То Мы бы просто вот здесь бы достучались, сразу допла
Михаил Непряхин: и не надо было бы делать вот эту полную, квалификацию вот это вот полностью прописывать этот Путь то есть витя он тоже работает можно и полностью Путь указать
Михаил Непряхин: а можно
Михаил Непряхин: а достучаться до поля просто,
Михаил Непряхин: сразу
Михаил Непряхин: вот ну допустим бывает ситуация, когда У нас есть все-таки
Михаил Непряхин: вот эта структура по его от
Михаил Непряхин: ээ в банане-то письмо тоже есть что-то
Михаил Непряхин: есть У нас п поймут, и в банане и выпрям
Михаил Непряхин: но мы хотим, Иметь возможность достучаться и туда и туда если мы просто обращаемся то логично мы попадаем банану но мы можем прямо вот полный путь прописать полный пуль д план и мы достучимся и дрепла
Михаил Непряхин: то есть, короче и если У нас есть одинаковое название полей то нужна полная квалификация если, мы хотим, достучаться до какой-то Внутренней структуры,
Михаил Непряхин: если, мы хотим, ее перекрыть
Михаил Непряхин: то ну вот собственно говоря Таким образом. Мы можем вот Это, поле. Переопределить
Михаил Непряхин: и если нам Это, ничего Не нужно То Есть Мы Не хотим, Переопределять и Не, Хотим, и
Михаил Непряхин: и у вас все нормально у вас Нет вот этих ошибок То есть здесь я строго попадаю
Михаил Непряхин: в банану это понятно если я хочу выпал то я должен
Михаил Непряхин: Можно это прописать
Михаил Непряхин: что и
Михаил Непряхин: вот и попадай в Эпл
Михаил Непряхин: а то есть в чем Мораль
Михаил Непряхин: Не используйте Эмбэдинг Без назначения
Михаил Непряхин: вот как бы есть два инструмента,
Михаил Непряхин: что Эмбдинг только Тогда когда вы хотите, переопределить какое то поле, есть поле она нас Не устраивает Мы Хотим? Свое, переопределить тогда им. Бейдинг
Михаил Непряхин: если нам это Не нужно ну просто делайте Композицию
Михаил Непряхин: и все нормально и у вас как бы
Михаил Непряхин: это получается, такой диай да своего рода Что мы в своей структуре имеем доступ к другой структуре
Михаил Непряхин: То есть как бы вот мы ее
Михаил Непряхин: она может быть по указателю
Михаил Непряхин: ну как бы вот зависимость от нее получили она там где нибудь изменилась и У нас она Тоже, изменилась мы к ней доступ имеем
Михаил Непряхин: так методы также появлялись на следующее да да вот Сейчас про метод еще расскажу
Михаил Непряхин: не Предъявивший, отдельно. Про дядей и поговорим Это Так Это
Михаил Непряхин: только Упомянул дядь разве Это
Михаил Непряхин: начнем здесь дальше с методами точно такая же история есть те пол
Михаил Непряхин: у опла, есть Метод принт
Михаил Непряхин: есть бананом
Михаил Непряхин: и в банану займ беженцев эпл
Михаил Непряхин: и если мы Сейчас
Михаил Непряхин: добавим к банане
Михаил Непряхин: точно такой Же Метод то Есть Он должен Быть с той Же сигнатурой. И Вот Эта часть называется Сигнатура. Метода
Михаил Непряхин: аа в сигнатуру входит и возвращаемое значение тоже то есть если он Тут возвращает что-то вот мы Тут тоже должны также Сделать чтобы матч произошел
Михаил Непряхин: аа вот ну как минимум они Не должны называться Одинаково
Михаил Непряхин: Так вот Если, У Нас Есть Мы Добавляем такой Же Метод с Таким Же названием. Он перекрывает
Михаил Непряхин: то Есть короче говоря
Михаил Непряхин: та структура, которая выше в которой мы Работаем она перекрывает ту которая у нас три
Михаил Непряхин: есть ли у нас эмбдинг а вот у нас Есть Эмбдинг то Есть Мы просто прописали его он Внутри
Михаил Непряхин: и Ну, что У нас тут Мы создали. Эпо создали. Банана а Внутри эпл Печатаем
Михаил Непряхин: Делаем принт
Михаил Непряхин: так Ну здесь напечатается бананы потому Что я уже только Что переопределил, вот Хаем банана вот если Мы Не Имеем точно такого же метода у себя ну логично что у нас получается эпо
Михаил Непряхин: ну и вот на этом как бы строится там там есть вот эти вот паттерные Которые ну если вдруг, вы каким-то патроном привыкли То вы можете как бы
Михаил Непряхин: такое поведение
Михаил Непряхин: типа это как бы похоже на Наследование ну Наследование Не является вот
Михаил Непряхин: а но по большому счету
Михаил Непряхин: это очень редко использует это и
Михаил Непряхин: вот а
Михаил Непряхин: а что такое Возможно, как бы есть такой элемент Наследования
Михаил Непряхин: потому что
Михаил Непряхин: оно крайне редко бывает нужно и чаще всего это все-таки для библиотек а не для кода, который вот такой продовый
Михаил Непряхин: вот и опять, же если, вы Не Хотите, вот делать. Вот это вот перекрытие
Михаил Непряхин: но Хотите, иметь взятую структуру
Михаил Непряхин: то ну Не делайте вы им Бэдинг вот делаете Композицию То есть Нет У вас цели вот этот метод переопределить ну как бы ну и все ну обратитесь вы потом вот так вот здесь Вот это от этого всем будет легче потому что вы явно говорите вот этот принт он а Тепла он не от бананы он от Тепла
Михаил Непряхин: а есть ли у вас в этомбдинг
Михаил Непряхин: и вы делаете принт
Михаил Непряхин: что вы заставляете человека вы заставляете человека
Михаил Непряхин: ну кто будет читать этот код естественно
Михаил Непряхин: а вы его заставляете разбираться Вот этот принт Он будет от бананы потому что я читаю Кот банана принт
Михаил Непряхин: Так мне надо разобраться у бананы есть принт ну этот код говорит о том что он есть на самом деле у банана нет принта и этот принт она тепла
Михаил Непряхин: и это вносит путаницу и это заставляет
Михаил Непряхин: ну тут можно ошибиться потому Что это уже Не Очевидно
Михаил Непряхин: эта банана она может Жить вообще где-то Там в Другой структуре и Мы ее Сейчас даже можем Не видеть То есть Там У нас Много-много либо Экранов сверху либо вообще другая функция Но Мы видим Вот этот код и Мы видим Что Мы Делаем принт От бананы но на самом деле это принт а тепла
Михаил Непряхин: Поэтому Вы просто добавляете делайте Не бэдинг делайте композицию
Михаил Непряхин: все композиция вам Не Даст Совершить такую Ошибку композиция, вас заставит указать Конкретно От кого, вы хотите. Сделать принт и вот тогда вас Кот кто Будет читать Он понимает Ага принято тепла, все понятно
Михаил Непряхин: вот
Михаил Непряхин: иногда очень редко
Михаил Непряхин: аа в Продуктом Коде ну Прям можно что-нибудь такое красиво сделать
Михаил Непряхин: но это опять, же должно быть Очевидно для читающего
Михаил Непряхин: если есть сомнения Что читающие запутаются то лучше не надо
Михаил Непряхин: Так множественный банк не закушен Нет не запрещен да множество ботинков то есть этот может быть в Этом и бэдинге да а вы в итоге можете сделать функцию то есть тут как бульдо множественный митинг но вот такого
Михаил Непряхин: Для такого в продуктовом кодексе,
Михаил Непряхин: так и
Михаил Непряхин: Должна, Быть очень Докажем чтобы перекрыть
Михаил Непряхин: так
Михаил Непряхин: да
Михаил Непряхин: Фуф
Михаил Непряхин: так о
Михаил Непряхин: функция
Михаил Непряхин: так ну с маленькой буквы приватная функция с большой буквы публичная функция для пакета
Михаил Непряхин: то Есть с большой буквы функция будет видна в других пакетах ну Тут в мейне она да Поэтому из марины ничего не будет видно Но если бы это был любой другой пакет то с большой буквы Это было Бы видно
Михаил Непряхин: вот У нас появляется вот эта вот классическая гошная история Что функция возвращает Ошибку,
Михаил Непряхин: а мэйбир где она то У меня
Михаил Непряхин: вот она У меня
Михаил Непряхин: вот значит
Михаил Непряхин: смотрим сигнатуру Ну значит мы принимаем три аргумента значит нэймэйдж и из блок
Михаил Непряхин: а более того значения чаще всего называют начиная с из
Михаил Непряхин: как бы типа вопрос типа это заблокировано но еда нет проще как бы читать Код и эта функция возвращает Ошибку.
Михаил Непряхин: Раз эта функция может вернуть Ошибку.
Михаил Непряхин: Мы обязаны эту Ошибку. Проверить если. Мы ее Не Проверим то Медвежка будет подсвечивать
Михаил Непряхин: а на самом деле Кот компелируется
Михаил Непряхин: но вот если здесь будет Происходить ошибка то это будет просто
Михаил Непряхин: ну будет очень странно себя программу, Вести и вы очень долго будете ее дыбажить Поэтому и
Михаил Непряхин: есть, еще вариант Кстати. Вот так вот например, сделать если вы Хотите, проигнорировать ошибку и Чтобы даже еды Не ругалась ну Так и Идея Не Будет ругаться и Пожалуйста, Все Соберется Но Ошибка Как Бы Будет ну в никуда Уходить
Михаил Непряхин: короче так Никогда не делайте потому Что в примерах так часто Делают, и поначалу многие тоже Пишут Код допустим
Михаил Непряхин: тут такая история Что У нас много Функций
Михаил Непряхин: и Мы такие бли ну вот Не хотим, Мы все Эти ошибки проверять хотим, сделать такой красивый код в общем тут четыре строчки
Михаил Непряхин: и Чтобы и денежка Ни Ругалась инкулятор Не Ругался просто вот так вот нижнее Подчеркивание сделаем и все смотрите все красиво и Мы типа и Кот Читаем и как Будто. Сделали Но Если, где-то здесь происходит Ошибка ну тут все как бы
Михаил Непряхин: У вас здесь получается зеравелью возвращается и дальше вы будете Очень. Долго искать где же оно произошло
Михаил Непряхин: а вот Поэтому ошибки Мы Всегда пробатываем
Михаил Непряхин: а даже если там примеры Пишет лися еще что-то
Михаил Непряхин: и ну вот классическая обработка ошибки это ир не равно не
Михаил Непряхин: бывает иногда когда нам удобно
Михаил Непряхин: проверить и равно нил.
Михаил Непряхин: То есть, ошибки Нет и Написать какую-то логику вот здесь а Если, ошибка произошла то как бы здесь дальше Продолжать
Михаил Непряхин: но и
Михаил Непряхин: Вот это Вот э Плохо читается потому Что ну в Этом Случае лучшего десять, помечать
Михаил Непряхин: типа Что
Михаил Непряхин: ну Как То написать Что
Михаил Непряхин: это типа ошибки Нет
Михаил Непряхин: То, есть как бы надо как бы больше вот именно, обращать внимание, на это потому что в целом ну, все привыкли Что вот этот блок он выглядит так если вы, здесь видите
Михаил Непряхин: иф ир то нейросеть в голове она говорит Что следующий значок это не равно и нею значит что внутри это ошибка если мы сюда, внутрь Не, попали то Вот здесь у нас ошибки Нет
Михаил Непряхин: Вот Но Иногда в Алгоритмах! Это бывает удобно сделать и Поэтому здесь приходится, писать комментарий обрати внимание
Михаил Непряхин: Есть ли у нас Функция, Допустим Гетьюзер
Михаил Непряхин: возвращает
Михаил Непряхин: аа Два значения
Михаил Непряхин: ошибка возвращается Сюда второй то есть первым возвращ это кортеж да то есть в скобочках если. У нас одно, значение то скобочки не Делаются ну, конечно это Само Кортеж но без Кобочек если, больше одного, значения то Добавляются Скобочки мы зашаем Кортеж
Михаил Непряхин: и Ошибка Всегда, возвращается Последней
Михаил Непряхин: максимум делают ну, вот здесь может быть четыре значения то есть чаще всего это одно, или два может быть три Например, еще что-то
Михаил Непряхин: и ну очень супер редко. В какой он библиотеке иногда бывает
Михаил Непряхин: Еще четвертая
Михаил Непряхин: и но
Михаил Непряхин: вы так точно как бы никогда не делаете
Михаил Непряхин: э если у вас здесь уже три значения возвращается то наверное стоит вот это все в одну структуру объединить и эту одну структуру возвращать
Михаил Непряхин: как будто, в это на это указывают
Михаил Непряхин: так
Михаил Непряхин: привет из мира, Похп смчко фанкшн ну вот это не понял. Не понял. Что там Что там за собачкой вакшин Так как Вырабатываются ошибки в объективе ира стэктера семнадцать,
Михаил Непряхин: ну манаса-то нет конечно и
Михаил Непряхин: ну покажу покажу Сейчас покажу
Михаил Непряхин: Так эльфрос, Не идет Не-не-не Первая Ошибка Никогда Не делает Ошибка она Всегда последняя
Михаил Непряхин: Так
Михаил Непряхин: Пробормот Тоже, будет интересна вообще история
Михаил Непряхин: так-так Гет юзер
Михаил Непряхин: ага Никогда Не делайте Так
Михаил Непряхин: есть интересный пример
Михаил Непряхин: а синтаксиса который в гоу сделали
Михаил Непряхин: как бы типа прикольно
Михаил Непряхин: что он есть но он Предан анафеме и Так никто Никогда никто Не Делает а если, кто За Делает То
Михаил Непряхин: ну на Него начинают все орать и это говорит о том что Он какой-то новичок
Михаил Непряхин: значит вот смотрите была У нас Функция
Михаил Непряхин: только Что. Показывала да вот У нас возвращается Кортеж
Михаил Непряхин: если Мы посмотрим как Мы здесь работаем в этом эту функцию объявили
Михаил Непряхин: а если произошла Ошибка
Михаил Непряхин: Вот вернули эту Ошибку Вот вернули этого юзера Он пустой просто зеровелю здесь Тоже Вот ей вернули
Михаил Непряхин: если сорок два Вот такого юзера и нил. Что типа Нет ошибки Вот Мы тут, и проверяем Что ирар Не равно нел То значит Ошибки Нет
Михаил Непряхин: и Вот в конце вернули То Есть От нас Секс- кейс а Вот эта нота Фаунд Тоже, вернули ошибку и взировали вот этого значения
Михаил Непряхин: ну, и Всегда проверяйте если, здесь ошибка то вот Там уже не важно что Мы не закладываемся вот то что там ну там должно быть конечно зероэлью вот это значение но если вы здесь нашли ошибку вы даже не смотрите что там
Михаил Непряхин: для удобства то есть, видите вот это ведь надо переменную объявить вот мы юзер объявили
Михаил Непряхин: а это строчка Кода
Михаил Непряхин: и и
Михаил Непряхин: разработчики гошки подумали Можно же вот это вот сократить и
Михаил Непряхин: здесь вот внутри сигнатуры сделать инициативу
Михаил Непряхин: то есть вот здесь вот внутри можно записать вот так вот юзер
Михаил Непряхин: Это похоже на аргументы да вот посмотрели на эти аргументы Которые аа Входящие
Михаил Непряхин: и подумали ноки здесь Кордеж исходящих но выглядит Это уже как Будто как функция и следующий шаг а что. Если, Добавить Сюда название переменных
Михаил Непряхин: и Это сделать сахаром инициализацией то есть вот это вот равно то же самое Что вот это вот и вот это вот
Михаил Непряхин: экономия строчки
Михаил Непряхин: Мы имеем здесь уже инициативу, переменную мы если вдруг делаем ритерн то Видите у нас Она Там уже Инициатива Не надо ничего Не централизовать ну здесь Мы просто Тоже Юзер, возвращаем то же самое с ошибкой Вот Мы Там
Михаил Непряхин: ну здесь с ошибкой в Одну мою Ошибку и Не объявляли Но Иногда бывает что надо и Ошибку Тоже, Так вот объявить так бывает не часто но иногда бывает и так вот а в этом случае мы уже две, Строчки сэкономили
Михаил Непряхин: вот
Михаил Непряхин: и это вот была вторая литература а что. Если, Сделать так
Михаил Непряхин: и следите за руками
Михаил Непряхин: третья, литерация
Михаил Непряхин: но ведь если, у нас уже есть инициатива перемены
Михаил Непряхин: то мы можем сделать голый ретер
Михаил Непряхин: голый Терн без
Михаил Непряхин: без вот этого вот
Михаил Непряхин: то есть просто делаем Реттюн типа выходим то есть вот проверяем адишник на ноль адишник Там У нас ошибка Мы говорим ошибка присваиваем вот в эту переменную Ошибку,
Михаил Непряхин: а дальше Делаем горя терн
Михаил Непряхин: и вот в каких значениях вот на текущий момент вот эти перемены были вот Мы их в этих значениях и вернем
Михаил Непряхин: то есть юзер у нас Был в зеровелью ирар вот Мы Присвоили.
Михаил Непряхин: Допустим Не произошла ошибка да Сексас кейс
Михаил Непряхин: а Мы сделали Инициативу, с помощью Лидера, структуры
Михаил Непряхин: и Возвращаем ирарнил
Михаил Непряхин: то есть как бы здесь без вариантов здесь город терн не прокатит
Михаил Непряхин: ну допустим опять это не случилось тогда. У нас ошибка над фаунд Мы ее уже присваиваем а на Текущей строке юзер, у нас в Серавелью а ирар вот в нота фаунд Дела в голый Рятерн и тоже все работает
Михаил Непряхин: вот Но Эти, Голые ратерны
Михаил Непряхин: смотрите когда У вас длинная функция и вы Не Видите Сигнатуры допустим Там Экран ушел вы не видите Сигнатуры
Михаил Непряхин: а вы пугову мироттерны не понимаете Что вы возвращаете когда много читаете код вы просто видите гоголь терн вам надо поднять
Михаил Непряхин: стек свой в голове э понять а какие у нас общая что у нас возвращает эта функция сколько Хоть возвращаемых значений
Михаил Непряхин: смотрит ага два окей вот у нас следующий шаг вот у нас здесь юзера здесь ир
Михаил Непряхин: чтобы понять в каких значениях был юзер, и ир здесь надо всю предыдущую тему. О функции. Перечитать
Михаил Непряхин: и как бы отмечать у себя в голове вот юзер зеровелью юзерзеравелью га юзер присвоен значит Сейчас Юзер, Он уже со значениями и то же самое там а ошибка Он в каком значении нил нил ага вот присвоили. Ошибку уже не нил
Михаил Непряхин: и вы сделаете возврат то есть как бы это с одной стороны усложняет чтение что вы не видите что вы возвращаете а с другой стороны когда даже вы хотите, ну. Понимаете что, вы возвращаете вас заставляют
Михаил Непряхин: запоминать
Михаил Непряхин: как бы отгадать в каких Значениях были эти перемены
Михаил Непряхин: что, ведет к многочисленным ошибкам и дурацким, Багам
Михаил Непряхин: Поэтому вот этот стиль
Михаил Непряхин: а он абсолютно запрещен и типа ну просто Не дай бог где-то вы Так Напишете нельзя
Михаил Непряхин: а Но Так как этот Стиль под Строгим запретом
Михаил Непряхин: то и вот этот Стиль к сожалению Тоже, пострадал
Михаил Непряхин: смотрите в это уже не так Плохо потому что
Михаил Непряхин: возвращаемый значение вы и видите
Михаил Непряхин: а вы экономите на вот на Этой строчке на инициативе вот она здесь
Михаил Непряхин: и как будто Бы это уже неплохо но так как вот репутация этого стиля и уже как Бы на Подкорке убошников что типа
Михаил Непряхин: и когда они видят вот такую сигнатуру они Таки а Блин так нельзя и когда вы, Тоже так напишете они такие а Блин так нельзя
Михаил Непряхин: хотя на самом деле
Михаил Непряхин: а иногда это удобно когда это удобно
Михаил Непряхин: ну вот в этом случае смотрите мы возвращаем юзера
Михаил Непряхин: и мы и так Видим что, это юзер юзер ну офигеть сколько информации дает эта перемены да ничего не дает но есть ситуация, когда например, вы возвращаете стрингу
Михаил Непряхин: и тогда вот этот юзер
Михаил Непряхин: а Вы можете не видеть
Михаил Непряхин: даже тело функции Вы уже по сигнатуре получаете очень много информации что это не просто какая то стринга то есть вот писатель вы так вот видите
Михаил Непряхин: Что в этом случае мы должны делать мы должны посмотреть на метод ну на функцию
Михаил Непряхин: функция называется гет юзер
Михаил Непряхин: окей значит как Будто бы здесь должен быть юзер
Михаил Непряхин: ну функция может называться блин просто гет Или как нибудь еще не очевидна что, мы в итоге возвращаем и тут, бац у гол, есть такая возможность добавить вот сюда
Михаил Непряхин: а дополнительную информацию
Михаил Непряхин: и это Не Ради экономии вот Этой строчки
Михаил Непряхин: это Ради читаемости то есть действительно удобно вывести гет а мы возражаем юзера
Михаил Непряхин: или допустим
Михаил Непряхин: у нас перемена инт и
Михаил Непряхин: смотрим функция как называется
Михаил Непряхин: как бы хез из Названия функций непонятно чего она Возвращает ну как бы
Михаил Непряхин: Понятно, что, надо называть Функцией так чтобы очевидно было Что они возвращают тогда бы было бы проще, но так бывает не Всегда, возможно
Михаил Непряхин: это иногда правильнее назвать функцию определенно но зато из Этого Названия непонятно что. Оно возвращает тогда. Вы можете здесь Добавить квалификацию дополнительную, неквалификацию перемены
Михаил Непряхин: вот и объяснить что. Это Не просто Инт Это Код вам Статус-код Какой-нибудь
Михаил Непряхин: и в Некоторых Командах Прямо тоже бьют По рукам Потому что Если Вы из Суда вы так перемены добавили
Михаил Непряхин: линтер ругается Но даже весь, селинтер Не настроен Это развязывает руки Случайно сделать вот так и никто Не будет ругаться и как бы можно было тоже сделать Ерн
Михаил Непряхин: а вот так телевизор вернем
Михаил Непряхин: и еще один вариант улучшения читаемости то есть видим очень внутреннюю прочитаемость да потому что
Михаил Непряхин: важно
Михаил Непряхин: думать, над темнатурами то есть если вы в динамическом языке привыкли
Михаил Непряхин: а что у вас Сигнатура. Почти не дает вам никакой информации ну что там ну как бы у вас название метода и все да вы
Михаил Непряхин: ни типов не видеть не то что функция Возвращает и
Михаил Непряхин: То в языках Сострогайте пизацией и ну как бы Например, да за степизацией
Михаил Непряхин: у нас Сигнатура. Несет очень много информации Поэтому мы много времени тратим на то чтобы хорошо назвать функцию
Михаил Непряхин: и если вдруг у нас такая ситуация, что, допустим он здесь возвращается к стригам
Михаил Непряхин: есть Еще один вариант как это улучшит читаемость сигнатуры значит мы добавляем тип
Михаил Непряхин: мьюзик
Михаил Непряхин: Стринг, он допустим на стринга да возмущается весь Родственник то есть мы просто сделали стригу
Михаил Непряхин: типизируемой
Михаил Непряхин: и возвращаем этот юзер и мы уже по сигнатуре видим что и
Михаил Непряхин: так вот он есть у юзер
Михаил Непряхин: вот и так бы он Не ругался
Михаил Непряхин: и плюс к этому.
Михаил Непряхин: Типизированному Стринговому Юзеру вы можете добавить
Михаил Непряхин: функции, ну Не знаю Там какую-нибудь Принта например Или еще что-нибудь Или Стринг, есть еще
Михаил Непряхин: ну старинкой страны. Тут конечно Нет смысла ну короче какие-то Методы вы еще можете Добавить выледаться еще что То
Михаил Непряхин: То Есть в общем смысле
Михаил Непряхин: вот это вот типизация простых типов
Михаил Непряхин: она в гоу доступна Мы и им можем Тоже типизировать на какой-нибудь Там
Михаил Непряхин: статус код сделать
Михаил Непряхин: и э
Михаил Непряхин: таким Образом повысить читаемость, Кода и интерфейсов Именно на Уровне Сигнатуры Еще дополнительно ну плюс вы еще защищаетесь
Михаил Непряхин: оттого Что все-таки Инт Это все под множество ментов
Михаил Непряхин: а вот статус код Это Уже подмножество Которое Гораздо меньше
Михаил Непряхин: а то есть вы еще можете допустим влидацию добавить и что допустим
Михаил Непряхин: Давно может быть Двести либо четыреста либо ну все коды перечислены допустим и сделать вич
Михаил Непряхин: а валидации мне Очень Даже напишем
Михаил Непряхин: валерий террор
Михаил Непряхин: вот и здесь Просто сделать свич
Михаил Непряхин: а То. Что
Михаил Непряхин: статус
Михаил Непряхин: он
Михаил Непряхин: можно Просто перечислить Так сделать
Михаил Непряхин: вот и
Михаил Непряхин: а если, Нет То дефолт но Там какая-то ошибка вот как-то так
Михаил Непряхин: и вот таким образом У вас уже
Михаил Непряхин: еще как бы становится код более безопасным Еще можно
Михаил Непряхин: повысить
Михаил Непряхин: типизацию и Без того Типизированного языка
Михаил Непряхин: и иногда это замусоривает затрудняет и иногда действительно проще там не запариваться и просто вернуть здесь инт или Стринг, то есть тут, как бы надо понимать просто что у вас в распоряжении есть такой инструмент
Михаил Непряхин: понятно что, микроскопом можно гвозди забивать Поэтому здесь опять, же. Только насмотренность и как бы опыт. Как ни странно
Михаил Непряхин: таких, вещах так почему так много остановились на этом потому, что чертовски это все важно то есть как мы останавливаемся на только на важных вещах то что не важно Мы Быстренько просматриваем Идем Дальше
Михаил Непряхин: так Посмотрим на Вопросы, да Давайте Если Какие То Вопросы, Есть То пишите или даже можете голосом задать
Михаил Непряхин: так для чего возвращают ир раноут Фаунд, почему Не Ним
Михаил Непряхин: Ну, здесь такая ситуация, короче что Это секс-кейс а вот если Мы Дошли досюда значит Ошибка ну Это просто Экземпал Это Не какой-то там продакшн Ради, Кот просто Э гдемпо как. Можно
Михаил Непряхин: обычно принято
Михаил Непряхин: Все-таки в конце возвращать ну типа не ошибку а Уже какой-то секс вариант ну такое тоже бывает
Михаил Непряхин: ну если Мы забудем проверить То просто У нас Там в каком-то месте оно
Михаил Непряхин: там поломается и где-нибудь все-таки ошибка это вылезет если вы обрабатываете, ошибки если вы вообще нигде Не обрабатываете, У вас и
Михаил Непряхин: как бы Обработка ошибок это Прям Тоже, такая большая тема Там Есть, о чем поговорить вот Есть просто два типа ошибок вот это У меня ошибка
Михаил Непряхин: Это ошибка Кастомная
Михаил Непряхин: не моя
Михаил Непряхин: из юзер, пространство из моего а вот если, вы читаете файл,
Михаил Непряхин: Допустим давайте
Михаил Непряхин: павел Допустим хотим, читать файл, Ирар
Михаил Непряхин: Так уэс оупен
Михаил Непряхин: а и
Михаил Непряхин: Вот он может Вернуть ошибку
Михаил Непряхин: обычно верху все перемены пишут шап посмотрим где тут они
Михаил Непряхин: а Так ну это у них просто, это не ошибки
Михаил Непряхин: линкольнер ну, вот у них вот это может вернуть вот это у них типичная как бы своя собственная ошибка
Михаил Непряхин: как а остальное вот они могут сделать из этого ошибку Ну, это старый тип, новый тип, это просто, ошибки писать столбиком? Как Переменная короче говоря
Михаил Непряхин: можно проверить
Михаил Непряхин: прямо вот
Михаил Непряхин: а вот Есть, ошибки Ведь, Тоже из пакетов с
Михаил Непряхин: ну? Это даже Не ошибка это проверка на ошибку из нотекзист
Михаил Непряхин: а также также могут вернуться разные ошибки Там. Соединением Проблемы. Еще что-то и Смысл в том что просто если вы обрабатываете Ошибку, хоть, как-нибудь вот если вы просто хотя бы паник, сделаете паник, и ошибка
Михаил Непряхин: У вас вот там вот уже Будет ошибка то есть как бы вы ее уже не пропустите потому что
Михаил Непряхин: вы вот здесь попытались прочитать файл.
Михаил Непряхин: Ошибка вернулась
Михаил Непряхин: вы ее вы на нее не забили вы ее обработали вы попали Сюда
Михаил Непряхин: и здесь вы должны. Сделать так чтобы не идти дальше
Михаил Непряхин: ну. Какие есть варианты Паника можно прямо, сказать я исключу своего паника паникуй разматывайся трейс сделай все типа Мы завершаем работу ну это не продакшн разве это только для отладки
Михаил Непряхин: можем сделать ос сделать просто фмт При нтв напечатать эту ошибку
Михаил Непряхин: а Потом сделать уэс Экситван и Это бот
Михаил Непряхин: Это было То же самое Что и Там по сути для этого я сделал панику только Без Разматывания стейк трейса ну чаще всего это просто делается ретро на наверх то есть мы Выходим из функции в этот момент
Михаил Непряхин: а на самом верхнем уровне мы обрабатываем эту ошибку ну просто магируем ее блокируем и идем дальше
Михаил Непряхин: у нас по обычные сервера они Не заканчиваются здесь и Сейчас то есть, если ошибка произошла в запросе ну ничего страшного Мы ее реагируем идем Дальше Если ошибка произошла на Этапе Инициативы программы То конечно Мы тут Же все закрываем и говорим Что Мы Не Можем Там открыть этот файл
Михаил Непряхин: но мы и Можем добавить логику что если мы не Можем открыть файл и мы понимаем что Это ну не так уж и важно
Михаил Непряхин: Можем Продолжать Дальше работу то Мы ее. Дальше продолжаем допустим тоже реагируем и продолжаем Дальше просто Мы понимаем Что Мы уже Не можем использовать после этого вот эту переменную файл потому, что, там взировали пустое значение
Михаил Непряхин: а то есть здесь
Михаил Непряхин: возможны разные сценарии в зависимости от того Что это за Ошибка
Михаил Непряхин: а также ошибки типизируются и Мы Можем проверить Что за Ошибка если. Это Ошибка Там, Что файлы Не существует ну окей нормально ничего Страшного например да ну как будто. Бы а если, у нас Там сетевая и
Михаил Непряхин: Ошибка
Михаил Непряхин: в гоу это обычная переменная и Мы очень уважаем ошибки и обрабатываем их все То есть Мы
Михаил Непряхин: буквально Там два-три случая когда Мы забиваем на ошибку потому что Там типа вообще Не важно. Ну. Посмотрим какие Это случаи будут
Михаил Непряхин: так
Михаил Непряхин: Ну. И
Михаил Непряхин: Если город Терн Запрещен почему язык Это Позволяет.
Михаил Непряхин: А Ну. Кто-то ведь где-то Это написал уже и гоу
Михаил Непряхин: а в отличие От других языков Не Ломает, Еще ни разу Не Ломал Обратная совместимость
Михаил Непряхин: и Ну-ка где-то там на поэтом показываю пальцем да То есть как бы гоу Сохраняет обратную совместимость с самой первой версией и если уже что-то везде Было сделано как-то коу Сейчас не может это зади прикетить и извлека выкинуть
Михаил Непряхин: даже в стандартной библиотеке это есть Поэтому тут уж
Михаил Непряхин: как принято называть геттором промель гитлер
Михаил Непряхин: если вы будете читать и
Михаил Непряхин: а То
Михаил Непряхин: гетеры принято называть просто вот ордер
Михаил Непряхин: но а
Михаил Непряхин: так редко называют обычно называют гитлер так что Тут как бы
Михаил Непряхин: нету нету на этот счет строгих каких-то правил
Михаил Непряхин: Можно ограничить валидное значение валидных Значений и сразу в сигнатуре функции То есть как ином
Михаил Непряхин: Нет Нет Так Нет То есть это Не Раз да здесь Так нельзя
Михаил Непряхин: как бы можно вернуть ей Нам ну сделать из йоты и Вернуть но это очень редкое явление Поэтому как бы Нет
Михаил Непряхин: ну это и так нормально все в го и без этого то есть понятно, что, там строгости меньше но в Этой руки развязывают и прочие программы. Писать и приятнее это, делать
Михаил Непряхин: как-то здесь затратить ошибок ну будет так трайс ну как бы и сложно сказать что вы имеете в виду не затратить ошибок ну то есть а Я понял
Михаил Непряхин: Мы в угол оборачиваем ошибки и
Михаил Непряхин: Мы в гоу Всегда имеем весь
Михаил Непряхин: стек трейс так сказать Ну как бы короче если Мы в программе падаем с паникой вот как здесь У Меня Тут фигня какая-то Давайте Сейчас запишу Тут И так Сейчас так тряссь будет ну вот видите там
Михаил Непряхин: ну что даже Не из сектора, я просто Не скомпелировалась но если, бы стресс был я бы увидел Список всего чего Там На каком месте Мы Остановились и начали разматывать стек обратно
Михаил Непряхин: вот и
Михаил Непряхин: Но Он почти Никогда Не, нужен потому Что, все ошибки оборачиваются
Михаил Непряхин: Есть Э такая штука как Рапинг, ошибок и Мы
Михаил Непряхин: на каждой функции, Мы Допустим У нас
Михаил Непряхин: Сейчас
Михаил Непряхин: значит
Михаил Непряхин: Мы вызвали какую то
Михаил Непряхин: вызвали какую то Функцию она вызвала другую Функцию а эта функция вызвала третью Функцию здесь произошла ошибка
Михаил Непряхин: произошла ошибка
Михаил Непряхин: и соответственно
Михаил Непряхин: происходит возврат назад
Михаил Непряхин: а здесь это оригинальная ошибка то есть Мы Там создали эту Ошибку. Она просто возвращается как есть функции би Мы добавляем контекст к этой ошибке
Михаил Непряхин: Мы говорим Что это не просто ошибка а это ошибка Произошедшая функции би а в конкретном месте то есть вот Мы Там, добавляем прямо текстом
Михаил Непряхин: контекст чтобы Мы потом ошибку когда Прочитали Мы Могли восстановить
Михаил Непряхин: всю Цепочку Событий и зайти в Функцию Би. И найти То самое Место, где произошла ошибка дальше эта ошибка возвращается функцию эй и функции эй тоже добавляется свой контекст
Михаил Непряхин: и дальше она тоже возвращается попадает на самый верхний уровень а на Верхнем уровне это все просто Лагируется
Михаил Непряхин: и Мы влоги, имеем всю Цепочку
Михаил Непряхин: и нам, не нужен этот большой стейк трейс потому что вот по этому контексту по добавлению ошибок мы э видим
Михаил Непряхин: всю цепочку вот это в Голову. Прям бест-практис так все Делают это пронков То Ну Не То что Прям совсем все но Там нормальные люди Так делают
Михаил Непряхин: Так михаил расскажи Кратко Как обычно повышают версию бог после развода старая. Как обычная Мать
Михаил Непряхин: Старое Воспоминание. Старый Кот вообще никогда Не ломается просто никогда Нет Проблемы с обратной совместимостью ее просто Нет
Михаил Непряхин: Авторы из автора и библиотек какие-нибудь агитхаби ну знаете опен сорт как Бы нормальные люди не пишут опанцева с хорошим не бывает как Бы чем, больше Людей и
Михаил Непряхин: неудивительно аа почему он ну как бы не такой хороший
Михаил Непряхин: и вот там Например? Он четыреста семьдесят компьютеров разве может четыреста за семьдесят контрибьюторов написать что-то хорошее естественно они чего-то обязательного мают
Михаил Непряхин: и Поэтому чем меньше Людей библиотеку пишут тем и
Михаил Непряхин: сам погриц мы возьмем ну приятно дело что Контрибьютер как бы ну популярный но видите все равно меньше да поменьше все-таки ну там еще зависит от того насколько
Михаил Непряхин: если главный человек в библиотеке как он участвует следит ли он за этим вообще в курсе ли он что такое символ да там можно ли его мать обратно совместить себя нельзя
Михаил Непряхин: но в целом проблемы с обратной совместимостью ее нет
Михаил Непряхин: а можно смело апать до Последней версии ничего Не ломается Но в целом Рекомендация такая Что обычно сидят на Предпоследней версии Ну, просто? Так на всякий случай потому Что как. Только появляется новая версия ну там все равно
Михаил Непряхин: редко Но что нибудь бывает ломается Поэтому лучше подождать хотя бы там пару версий
Михаил Непряхин: этого и
Михаил Непряхин: у меня тут Нет Гомода ну короче Сейчас Вот Сейчас версия Языка я Вот обновил компилятор и
Михаил Непряхин: а и
Михаил Непряхин: бывает очень, Редко что ломается
Михаил Непряхин: почти Никогда Поэтому в голове исключение Программа, продолжает работать про ошибках ни. От программы Не Будет, при ошибках работать У вас там где-нибудь обязательно вы на нил. Пойнттер ресепшен рано Или поздно летите
Михаил Непряхин: я Имею, в виду Что вот Если вы Не обрабатываете ошибки То вы можете попасть в Ситуацию, когда У вас Программа, молча
Михаил Непряхин: продолжает работать. Но она ведет. Себя странно и вы не понимаете Что происходит потому Что вы где То нижнее Подчеркивание заявили для обработки ошибок или где То просто забили на обработку ошибок Поэтому
Михаил Непряхин: особенно, те кто с динамических Языков, кто привык забивать на Ошибки кто вообще в Принципе как вот Эта Концепция Не знакома
Михаил Непряхин: потому что ну? Чего тратить Кеч да Можно и Не Делать Легко Или там сделать его вообще на все здесь так не прокатит здесь вот функция возвращает ошибку все вы должны ее обработать
Михаил Непряхин: просто привыкайте к Этому
Михаил Непряхин: так в сравнении с Однопоточными языками Если мы не смогли открыть файлы и Хотим, потому Что выполнение, Нам нужно обернуть трейкович а вгу как бы наоборот а в гол, Мы должны проверить Не вернулась ли ошибка из функции, и Если, вернулась Мы
Михаил Непряхин: как бы вот и дальше Принимаем решение что с этим делать
Михаил Непряхин: то есть как бы подход. С одной стороны более гибче с Другой стороны
Михаил Непряхин: появляются дополнительные три строчки кода но и ежка, спасибо схлопывает их в
Михаил Непряхин: вот в две все видя как Бы вот редешка тут берет вот это и схлопывает вот эти три превращают в две ну как бы можно там на стройках Настроить хотя мне не очень такое нравится Я обычно все раскрываю
Михаил Непряхин: потому что это читается как бы для меня ну для гошника это читается легко типа гожник он отсмотрит ага много кода но что здесь по делу
Михаил Непряхин: вот по делу вот по делу вот по делу вот по делу остальной обработка ошибки это просто не партийцы даже взглядом
Михаил Непряхин: Так можете потом показать пример рапинга ошибок естественно мы Про это будем подробно разговаривать и
Михаил Непряхин: так все если ошибок вопросов больше нет
Михаил Непряхин: все никто голосом ничего больше не хочет сдать
Михаил Непряхин: с остальным все понятно с мбдингами
Михаил Непряхин: функциями
Михаил Непряхин: ладно
Михаил Непряхин: все ну. Еще Давайте тогда кто написал физбас в следующий Раз глянем
Михаил Непряхин: вот
Михаил Непряхин: Шибки постепенно когда будем сталкиваться Еще ошибки будем разбирать
Михаил Непряхин: все тогда давайте всем. Пока.