Спасибо за ваши реакции под первым выпуском подкаста. Проголосуйте, пожалуйста, в опросе. Все вместе посмотрим на сколько в целом зашёл формат. И если у вас есть комментарии, пожелания, фидбек - напишите в комментариях. Так вы можете повлиять на будущие выпуски.
Понравился выпуск про Нивал?
Anonymous Poll
43%
Послушал, понравилось
4%
Послушал, не понравилось
36%
Может послушаю когда-нибудь
18%
Не буду слушать
ComponentLurker
Классный инструмент для поиска по скрипту. Можно найти все префабы в проекте, где накинут выбранный скрипт. Дополнительно можно указать условие и найти префбы, где выбранное поле в скрипте имеет определённое значение. Например найти все префабы где ничего не прокинуто в интересующее поле.
https://github.com/vksokolov/ComponentLurker/
Классный инструмент для поиска по скрипту. Можно найти все префабы в проекте, где накинут выбранный скрипт. Дополнительно можно указать условие и найти префбы, где выбранное поле в скрипте имеет определённое значение. Например найти все префабы где ничего не прокинуто в интересующее поле.
https://github.com/vksokolov/ComponentLurker/
👍6❤1🤔1
Audio
Паттерн "Команда"
Обсуждаем один из наиболее используемых паттернов программирования и разбираем примеры применения.
Автор: @cat_and_code
#подкаст 2
Обсуждаем один из наиболее используемых паттернов программирования и разбираем примеры применения.
Автор: @cat_and_code
#подкаст 2
👍4🔥2
Новые посты пишут те, у кого старые плохие долго думал я. 🌚
Тем не менее, заметил, что многие игнорируют тип данных
Когда нам нужен класс с данными, который в логике приложения нужно сравнивать с другими. Сделан для того, чтобы экономить время и не заниматься переопределением кучи методов: операторы == и !=, GetHashCode, Equals, ToString и конструктор.
Как он работает? Компилятор сам создаёт переопределения для всех необходимых методов. Что по сути превращает record в новых вкусный сахар.
Создание record, способ №1:
В этом примере свойства под капотом создаются get. Но есть синтаксис, который все-таки позволяет менять значения после создания экземпляра.
Что делает эта строчка? Создаётся новый экземпляр и записывается в n1, то есть запись выше равносильна такой:
Способ №2, сразу с настройкой свойств как вам нужно. Тут уже без проблем можно присваивать новые значения через “=”.
В обоих случаях компилятор за нас сгенерирует конструктор и создаст все перегрузки методов сравнения. Сразу можно пользоваться:
Повторюсь, что record - это сахар, разворачивается в class, поэтому есть поддержка всего, что мы любим:
- Наследование
- Могут быть abstract
- Могут быть sealed
- Поддерживают реализацию интерфейсов
#техничка
@cat_and_code
Тем не менее, заметил, что многие игнорируют тип данных
record, который появился в С# 9. Хочу кратко пройтись чем он может быть полезен.Когда нам нужен класс с данными, который в логике приложения нужно сравнивать с другими. Сделан для того, чтобы экономить время и не заниматься переопределением кучи методов: операторы == и !=, GetHashCode, Equals, ToString и конструктор.
Как он работает? Компилятор сам создаёт переопределения для всех необходимых методов. Что по сути превращает record в новых вкусный сахар.
Создание record, способ №1:
public record Name(int Value, string Str);
var n1 = new Name(1, “name1”);
В этом примере свойства под капотом создаются get. Но есть синтаксис, который все-таки позволяет менять значения после создания экземпляра.
n1 = n1 with { Value = 3 }; Что делает эта строчка? Создаётся новый экземпляр и записывается в n1, то есть запись выше равносильна такой:
n1 = new Name(3, n1.Str);
Способ №2, сразу с настройкой свойств как вам нужно. Тут уже без проблем можно присваивать новые значения через “=”.
public record Name(int Value, string Str)
{
public int Value {get; set;} = Value;
}
var n2 = new Name(2, “name2”);
n2.Value = 3;
В обоих случаях компилятор за нас сгенерирует конструктор и создаст все перегрузки методов сравнения. Сразу можно пользоваться:
if (n1 == n2)
…
Повторюсь, что record - это сахар, разворачивается в class, поэтому есть поддержка всего, что мы любим:
- Наследование
- Могут быть abstract
- Могут быть sealed
- Поддерживают реализацию интерфейсов
#техничка
@cat_and_code
🔥6🍾5
9го дня был на лекции от создателей игры Василиса и Баба Яга. Прям чего-то нового не услышал, но смог лично сказать девчонкам, что графика у них получается очень крутая. Трейлер в VK.
И еще раз утвердился в мысли, что интересные (нестандартные) проекты получаются у людей, которые имеют необычный бекграунд. То есть какой-то значительный опыт не из сферы геймдева. В данном случае - работа книжным иллюстратором, организация художественных постановок в театре кукол. Таким образом у этой творческой команды, создание игры - это дополнительный инструмент для самовыражения. А среди инди проектов этого года можно ожидать звездочку, которая будет светить вместе с другими, но мерцать чуть по-своему.
Игра на Steam
И еще раз утвердился в мысли, что интересные (нестандартные) проекты получаются у людей, которые имеют необычный бекграунд. То есть какой-то значительный опыт не из сферы геймдева. В данном случае - работа книжным иллюстратором, организация художественных постановок в театре кукол. Таким образом у этой творческой команды, создание игры - это дополнительный инструмент для самовыражения. А среди инди проектов этого года можно ожидать звездочку, которая будет светить вместе с другими, но мерцать чуть по-своему.
Игра на Steam
Telegram
Baba Yaga Games | Василиса и Баба Яга
Инди-студия из Санкт-Петербурга
Группа ВК: https://vk.com/babayaga_games
Добавь игру в вишлист, это чертовски важно для нас!
Steam: https://store.steampowered.com/app/3969610/Job_Fit_For_a_Devil
VK Play: https://vkplay.ru/play/game/chertova-sluzhba/
Группа ВК: https://vk.com/babayaga_games
Добавь игру в вишлист, это чертовски важно для нас!
Steam: https://store.steampowered.com/app/3969610/Job_Fit_For_a_Devil
VK Play: https://vkplay.ru/play/game/chertova-sluzhba/
❤5👍1
Как-то сталкивался с ситуацией, что некоторые даже сильно опытные разработчики не могли ответить на вопрос “Что такое .Net?”. Думаю дело тут в том, что многие привыкнув работать на уровне игр\приложений не задумываются на чем оно строится и за счёт чего работает. Пробежимся, краткая сводка, буквально на 30 секунд.
.Net - это платформа, которая позволяет писать, компилировать код и запускать приложения, написанные на C# и других языках. Содержит совокупность ресурсов отладки, набор программ для запуска приложений на разных платформах.
Раскроем:
- Поддержка языков программирования - C#, F#, Visual Basic, IL ассемблер
- Обширные библиотеки классов, основные из них можно перечислить:
- Компилятор на базе Roslyn, это опенсорс платформа, разрабатываемая Microsoft, что в ней для нас важного: компиляторы и средства для анализа кода.
- Компилятор - переводит исходный код ЯП в промежуточный IL-код и наборы метаданных. Затем IL-код будет выполняться в CLR.
- Различные фичи наподобие проверки синтаксиса и предложения по исправлению кода реализуются как раз за счёт использования Roslyn.
- Основная ягодка .Net - это CLR (Common Language Runtime), неотъемлемая часть платформы, в неё входит:
- Загрузчик сборок
- Функционал обработки исключений
- Управление потоками
- Управление памятью
- Сборщик мусора
- Механизм контроля совместимости типов
- JIT-компилятор (Just-in-Time), который работает с IL кодом и переводит его в исполняемый машинный код.
#техничка
@cat_and_code
.Net - это платформа, которая позволяет писать, компилировать код и запускать приложения, написанные на C# и других языках. Содержит совокупность ресурсов отладки, набор программ для запуска приложений на разных платформах.
Раскроем:
- Поддержка языков программирования - C#, F#, Visual Basic, IL ассемблер
- Обширные библиотеки классов, основные из них можно перечислить:
System, System.Collections, System.IO, System.Net, System.Linq, System.Threading. По этим неймспейсам вполне можно понять, что в них и что мы привыкли использовать как должное.- Компилятор на базе Roslyn, это опенсорс платформа, разрабатываемая Microsoft, что в ней для нас важного: компиляторы и средства для анализа кода.
- Компилятор - переводит исходный код ЯП в промежуточный IL-код и наборы метаданных. Затем IL-код будет выполняться в CLR.
- Различные фичи наподобие проверки синтаксиса и предложения по исправлению кода реализуются как раз за счёт использования Roslyn.
- Основная ягодка .Net - это CLR (Common Language Runtime), неотъемлемая часть платформы, в неё входит:
- Загрузчик сборок
- Функционал обработки исключений
- Управление потоками
- Управление памятью
- Сборщик мусора
- Механизм контроля совместимости типов
- JIT-компилятор (Just-in-Time), который работает с IL кодом и переводит его в исполняемый машинный код.
#техничка
@cat_and_code
🌚5👍1🔥1
Мне на одном из рабочих проектов понадобилось сильно сократить размер билда под WebGL. Специфика задачи еще была в том, что параллельно из игры нужно было выпилить часть больших фичей, поэтому получились не очень валидные данные ДО и ПОСЛЕ, но даже без удаления фичей вполне можно добиться x0.5 от начального размера. У меня результат 133 Мб → 36 Мб.
Топ по эффективности:
- Компрессия текстур. У меня на проекте она почти отсутствовала, текстуры либо не были пожаты вообще, либо были размеры текстур не кратные 4м и компрессия снова не работала. Так что привести все к размерам и выставить сжатие (для WebGL мы ставим RGB(A) Compressed BC7)
- Если вы можете себе позволить - уменьшение размера текстур. Мы выбрали компромисс, такой что на FullHD мониторе смотрится нормально, а на 4K уже так себе.
- Пережать атласы, так чтобы в них не было пустого места. За пустое место в них тоже приходится платить мегабайтами.
- Удаление и стриппинг шейдеров. Зависит от проекта, но иногда даёт десятки мегабайт.
- Формат компрессии билда - Brotli. Само по себе дало профит примерно в 10% от размера билда в Gzip.
- Удаление лишних шрифтов. Сам шрифт и ассеты связанные с ними весят много. Это снова компромисс, так как такой приём влияет на дизайн. У нас их было 15, оставили 3, профит ~12 Мб .
- Пожатие звуков. Здесь просто шакалим звуки на сколько можно, определяя на слух что получилось.
- Стриппинг кода. Зависит от проекта - мне дало всего 1.5 Мб, на другом проекте давало десятки Мб. (ProjectSettings → Player → (Под конкретной платформой включить галку Strip Engine Code и Managed Stripping Level поставить в High)
- Чистка менеджера пакетов и ручная чистка файла manifest. В том числе от модулей Unity. Например, можно дропнуть физику или тайлмапы, если вы их не используете.
Ну и главное правило: смотреть билд репорт. Иногда бывают сюрпризы. Например, вы можете обнаружить что какие-то мусорные префабы тянут за собой массу ресурсов в сборку.
#техничка
@cat_and_code
Топ по эффективности:
- Компрессия текстур. У меня на проекте она почти отсутствовала, текстуры либо не были пожаты вообще, либо были размеры текстур не кратные 4м и компрессия снова не работала. Так что привести все к размерам и выставить сжатие (для WebGL мы ставим RGB(A) Compressed BC7)
- Если вы можете себе позволить - уменьшение размера текстур. Мы выбрали компромисс, такой что на FullHD мониторе смотрится нормально, а на 4K уже так себе.
- Пережать атласы, так чтобы в них не было пустого места. За пустое место в них тоже приходится платить мегабайтами.
- Удаление и стриппинг шейдеров. Зависит от проекта, но иногда даёт десятки мегабайт.
- Формат компрессии билда - Brotli. Само по себе дало профит примерно в 10% от размера билда в Gzip.
- Удаление лишних шрифтов. Сам шрифт и ассеты связанные с ними весят много. Это снова компромисс, так как такой приём влияет на дизайн. У нас их было 15, оставили 3, профит ~12 Мб .
- Пожатие звуков. Здесь просто шакалим звуки на сколько можно, определяя на слух что получилось.
- Стриппинг кода. Зависит от проекта - мне дало всего 1.5 Мб, на другом проекте давало десятки Мб. (ProjectSettings → Player → (Под конкретной платформой включить галку Strip Engine Code и Managed Stripping Level поставить в High)
- Чистка менеджера пакетов и ручная чистка файла manifest. В том числе от модулей Unity. Например, можно дропнуть физику или тайлмапы, если вы их не используете.
Ну и главное правило: смотреть билд репорт. Иногда бывают сюрпризы. Например, вы можете обнаружить что какие-то мусорные префабы тянут за собой массу ресурсов в сборку.
#техничка
@cat_and_code
🔥9❤2🦄2👍1👏1
Поиграли в Индику?
Давайте пофилософствуем. В целом комментирование тайтла начинает утихать, но мне интересен тот “раскол”, который игра создала среди публики. Кто не играл, там повествование выстроено вокруг православной веры. И как я понимаю, это настолько поджигает некоторые… умы, что был шквал критики, статьи типа таких. И стоит заметить, что авторы засветились русофобскими высказываниями.
Слог приведённой статьи завораживает и вот это все с одной стороны, одна часть аудитории.
Продолжение следующим постом
Давайте пофилософствуем. В целом комментирование тайтла начинает утихать, но мне интересен тот “раскол”, который игра создала среди публики. Кто не играл, там повествование выстроено вокруг православной веры. И как я понимаю, это настолько поджигает некоторые… умы, что был шквал критики, статьи типа таких. И стоит заметить, что авторы засветились русофобскими высказываниями.
“Индика - это не игра, это русофобское политическое высказывание релокантов в попытке замарать грязью русскую культуру и православие.”
Слог приведённой статьи завораживает и вот это все с одной стороны, одна часть аудитории.
Продолжение следующим постом
😈4
Начало, это продолжение:
С другой у нас есть симулятор ходьбы, с затягивающим сюжетом, офигенным и очень продуманным визуальным стилем, с акцентами на архитектуру. Свежо выглядящая помесь стимпанка и эстетики России в сложный период начала 20го века. Вовлекающие диалоги, сам не замечаешь как начинаешь мысленно включаться в беседу и отвечать, то чёрту, то Индике. Добавим сюда очень крутую и подходящую актёрскую озвучку. Это все формирует часть аудитории, которая наслаждается игрой, за все то, что в ней появляется, когда ты нажал на кнопку “Играть” в Steam.
Что мне не понятно, оскорблённая часть аудитории, это
1) Глубоко верующие люди, которых задели логические тупики выстраиваемые чёртом? Или потому, что авторы позволяют себе сомневаться в каких-то религиозных догматах?
Не понимаю, как можно оскорбиться на это, потому что игра в основном просто ставит игрока перед каким-то вопросом один на один, но у тебя вполне может быть свой ответ, которого нет у Индики. Если ответа нет, то задумаешься на будущее, как это бывает когда читаешь книги, например.
Может быть какие-то неаккуратные выражения на тему религии? Не ставлю в один ряд, но но как проверенный временем пример. Неаккуратная фраза про религию: “Почём опиум для народа?” — мы же не презираем, а наоборот очень любим авторов книги “12 стульев”. Так что едва ли какие-то фразы могли бы вызвать такой резонанс.
Если говорить о сомнениях в веровании, которые игра могла бы посеять - тоже не серьёзно. Потому, что либо твоя вера крепка и тебе в целом не важно кто и что говорит вокруг. Пример есть в геймдеве, сцена с батюшкой в игре “Кужлёвка” (не раскрываю, лучше поиграйте). Либо может ты ещё сам ищешь какие-то ответы, но тогда какое право злиться на тех, кто задет вопросы?
2) Русофобская позиция авторов? Или потому, что авторы с таким мировоззрением позволяют себе выпускать творческие произведения на тему России?
Мы вычеркнем из памяти крылатые фразы фильма ДМБ, потому, что режиссёр иноагент? Или сейчас масса музыкантов уехала за границу, но их песни мы с детства слушали. Понимаю, как публика может не соглашаться с позициями этих авторов, но повод ли это перекладывать отношение к автору на продукты его творчества? Допустим нельзя на те которые были давно, а в текущее время, нужно более жёстко фильтровать весь контент, потому, что время такое. Но тогда тоже даже близко не дотягивает до информационно-культурной бомбы. Кто вообще бы заметил эту игру вне геймерского сообщества, если бы не стали появляться статьи, вроде приведённой выше? А может дело, в том, что игра слишком негативно показала альтернативную реальность России? Но тогда вообще не понятно, как например фильмы Балабанова не запрещены.
Таким образом получилась масса вопросов и противоречий, которые существуют одновременно. Явная иллюстрация того, что не стоит мыслить только черной или белой краской.
С другой у нас есть симулятор ходьбы, с затягивающим сюжетом, офигенным и очень продуманным визуальным стилем, с акцентами на архитектуру. Свежо выглядящая помесь стимпанка и эстетики России в сложный период начала 20го века. Вовлекающие диалоги, сам не замечаешь как начинаешь мысленно включаться в беседу и отвечать, то чёрту, то Индике. Добавим сюда очень крутую и подходящую актёрскую озвучку. Это все формирует часть аудитории, которая наслаждается игрой, за все то, что в ней появляется, когда ты нажал на кнопку “Играть” в Steam.
Что мне не понятно, оскорблённая часть аудитории, это
1) Глубоко верующие люди, которых задели логические тупики выстраиваемые чёртом? Или потому, что авторы позволяют себе сомневаться в каких-то религиозных догматах?
Не понимаю, как можно оскорбиться на это, потому что игра в основном просто ставит игрока перед каким-то вопросом один на один, но у тебя вполне может быть свой ответ, которого нет у Индики. Если ответа нет, то задумаешься на будущее, как это бывает когда читаешь книги, например.
Может быть какие-то неаккуратные выражения на тему религии? Не ставлю в один ряд, но но как проверенный временем пример. Неаккуратная фраза про религию: “Почём опиум для народа?” — мы же не презираем, а наоборот очень любим авторов книги “12 стульев”. Так что едва ли какие-то фразы могли бы вызвать такой резонанс.
Если говорить о сомнениях в веровании, которые игра могла бы посеять - тоже не серьёзно. Потому, что либо твоя вера крепка и тебе в целом не важно кто и что говорит вокруг. Пример есть в геймдеве, сцена с батюшкой в игре “Кужлёвка” (не раскрываю, лучше поиграйте). Либо может ты ещё сам ищешь какие-то ответы, но тогда какое право злиться на тех, кто задет вопросы?
2) Русофобская позиция авторов? Или потому, что авторы с таким мировоззрением позволяют себе выпускать творческие произведения на тему России?
Мы вычеркнем из памяти крылатые фразы фильма ДМБ, потому, что режиссёр иноагент? Или сейчас масса музыкантов уехала за границу, но их песни мы с детства слушали. Понимаю, как публика может не соглашаться с позициями этих авторов, но повод ли это перекладывать отношение к автору на продукты его творчества? Допустим нельзя на те которые были давно, а в текущее время, нужно более жёстко фильтровать весь контент, потому, что время такое. Но тогда тоже даже близко не дотягивает до информационно-культурной бомбы. Кто вообще бы заметил эту игру вне геймерского сообщества, если бы не стали появляться статьи, вроде приведённой выше? А может дело, в том, что игра слишком негативно показала альтернативную реальность России? Но тогда вообще не понятно, как например фильмы Балабанова не запрещены.
Таким образом получилась масса вопросов и противоречий, которые существуют одновременно. Явная иллюстрация того, что не стоит мыслить только черной или белой краской.
🗿3🤝2🫡1
У меня есть небольшой проект на гите с коллекцией шейдров, которые добавляю по мере личной необходимости. В целом все базовые, применимые и простые. В какой-то момент обнаружил, что не только мне они пригождаются. Так вот — недавно добавил стекло.
https://github.com/KotikovD/ShadersCollection
https://github.com/KotikovD/ShadersCollection
🔥11🐳3😍1
😁15
Выше был пост про то, “Что такое .Net”? И в комментариях прозвучало замечание, что может быть и не важно, если программист этого не знает, что это не мешает ему выдавать результат. Мне захотелось раскрыть свой ответ в отдельном посте. Может быть кто-то из коллег приведёт аргументы и переубедит меня.
Если бы я задал этот вопрос на собеседовании и не получил бы ответа, то крест на кандидате бы не ставил, конечно если он в целом в курсе основных составляющих платформы. Через этот вопрос как раз можно перейти к другим темам, например, про сборщик мусора.
Но почему я не согласен с позицией:- «не знает, ну и зачем оно в реальной жизни». Сначала несколько, на мой взгляд, аналогичных утверждений: зачем использовать IDisposable, без этого можно выдавать результат. Можно использовать только коллекции List и Dictionary и тоже выдавать результат. Можно не знать как устроен словарь и выдавать результат. Можно использовать для чисел только int и float и тоже выдавать результат. В общем такой список каждый может дополнить в комментариях или представить сам себе.
А теперь пример из другой сферы, допустим вы ищите водителя-механика в логистический парк, приглашаете соискателя и спрашивайте “Какие основные технические узлы есть у грузовика?”, а он вам отвечает “Я за рулём езжу, педали нажимаю, какая разница как он устроен? Груз довести смогу”. Вывод: кандидат неопытный водитель, жизнь его ещё не мотала поломками, на любой потенциальной заморочке с машиной ему нужна будет помощь + оправдывает своё незнание отрицая важность технической части. В целом задача любого работодателя выбрать сотрудника, чтобы он усиливал компанию, а не тянул назад. Да, в программировании не все так прямолинейно, но как правило если ты не интересуешься техническими вопросами, то не одним каким-то, а в целом не интересуешься.
И так, смотря какие задачи нужно делать, какого уровня эти задачи. Если окна собирать и в целом на «общую» игровую логику не сложного проекта под опекой старшего, то можно и без много каких знаний. Например, это джун и то при условии, что человек не отрицает важность технических дебрей, а стремится все это постичь, просто ещё не успел в силу каких-то причин.А иначе зачем такой джун вообще, который не стремится развиваться и отстаивает эту позицию?
Если стоят более серьёзные технические задачи + нормальная доля свободы на проекте, не могу себе представить специалиста, который отрицает какие-то прямые или косвенные технические знания. Выбирать более важное для изучения и что-то отсеивать - придётся, конечно, но это не отрицание. В любом случае человек любознательный и привыкший копать в глубь.
Поэтому и бывают такие вопросы на собесах, чтобы за ограниченное время успеть понять на сколько глубокий специалист и сопоставить его уровень с задачами проекта.
Согласны с такой позицией? Может быть вы сами применяете или сталкивались с другими подобными вопросами, поделитесь.
Если бы я задал этот вопрос на собеседовании и не получил бы ответа, то крест на кандидате бы не ставил, конечно если он в целом в курсе основных составляющих платформы. Через этот вопрос как раз можно перейти к другим темам, например, про сборщик мусора.
Но почему я не согласен с позицией:- «не знает, ну и зачем оно в реальной жизни». Сначала несколько, на мой взгляд, аналогичных утверждений: зачем использовать IDisposable, без этого можно выдавать результат. Можно использовать только коллекции List и Dictionary и тоже выдавать результат. Можно не знать как устроен словарь и выдавать результат. Можно использовать для чисел только int и float и тоже выдавать результат. В общем такой список каждый может дополнить в комментариях или представить сам себе.
А теперь пример из другой сферы, допустим вы ищите водителя-механика в логистический парк, приглашаете соискателя и спрашивайте “Какие основные технические узлы есть у грузовика?”, а он вам отвечает “Я за рулём езжу, педали нажимаю, какая разница как он устроен? Груз довести смогу”. Вывод: кандидат неопытный водитель, жизнь его ещё не мотала поломками, на любой потенциальной заморочке с машиной ему нужна будет помощь + оправдывает своё незнание отрицая важность технической части. В целом задача любого работодателя выбрать сотрудника, чтобы он усиливал компанию, а не тянул назад. Да, в программировании не все так прямолинейно, но как правило если ты не интересуешься техническими вопросами, то не одним каким-то, а в целом не интересуешься.
И так, смотря какие задачи нужно делать, какого уровня эти задачи. Если окна собирать и в целом на «общую» игровую логику не сложного проекта под опекой старшего, то можно и без много каких знаний. Например, это джун и то при условии, что человек не отрицает важность технических дебрей, а стремится все это постичь, просто ещё не успел в силу каких-то причин.
Если стоят более серьёзные технические задачи + нормальная доля свободы на проекте, не могу себе представить специалиста, который отрицает какие-то прямые или косвенные технические знания. Выбирать более важное для изучения и что-то отсеивать - придётся, конечно, но это не отрицание. В любом случае человек любознательный и привыкший копать в глубь.
Поэтому и бывают такие вопросы на собесах, чтобы за ограниченное время успеть понять на сколько глубокий специалист и сопоставить его уровень с задачами проекта.
Согласны с такой позицией? Может быть вы сами применяете или сталкивались с другими подобными вопросами, поделитесь.
👍4🔥3🤔3💊2🐳1
Простая, но полезная штука, замечаю, что не все пользуются. Блок try-catch умеет перехватывать разные ошибки, может быть много блоков catch. Идет сверху вниз, поэтому выше должны быть типизированные ошибки, а Exception последним.
Удобно для более подробного логирования или обработки штатных ситуаций, как в примере ниже. Пример, кстати, не идеальный, как можно улучшить?
#техничка
Удобно для более подробного логирования или обработки штатных ситуаций, как в примере ниже. Пример, кстати, не идеальный, как можно улучшить?
#техничка
try
{
// какой-то код с логикой
Profiler.BeginSample($"[AllocAnalyzer] Config: {configName}");
// еще код с логикой
await handler.ReadObjectsListFromConfigAsync(cancellationToken);
Profiler.EndSample();
}
// Обработка штатной отмены по cancellationToken
catch (OperationCanceledException)
{
Profiler.EndSample();
return;
}
catch (Exception e)
{
ConfigsDataLoader.HandleConfigException(e, configName);
return;
}
👍2🔥1👀1
Многие наверное в курсе, что Telegram вообще не даёт никакой новой аудитории через внутренний поиск, рекомендации или еще что-то. Поэтому единственное, что тут есть — это упоминания канала по ссылке, которую админы других каналов делают вручную.
Привет, всем новым подписчикам, рад что вы присоединились, может быть вам будет интересно 😄
На данный момент нас тут около 200 человек и вот примерно 40 новых подписчиков пришли благодаря следующему приему: ребята из Cookies Games сделали подборку каналов в виде папки и договорились о взаимном постинге этой самой папки во всех каналах. Получается достаточно рабочая реклама. Могу выделить несколько критериев:
- Продвигая небольшие каналы, подбираем такие же. Все примерно, 150-450 участников. Теоретический, далее можно повторять историю, меняя каналы и постепенно увеличивая их «размер»
- В выборке каналы живые, профильные, ведут их ради идеи. Это вообще главный критерий.Интересно как ребята вообще всех нас нашли и собрали?
- Такая реклама не раздражает, потому как подписчики тоже зачастую рады найти еще профильных каналов, но не понятно как.
Посмотрите, что есть в папке GameDev. Мне было приятно обнаружить как старых знакомых, так и найти новых. Можете кликнуть и посмотреть всех, ниже пара личных рекомендаций:
NuclearBand — взаимно следим друг за другом почти с момента когда я начал вести свой канал. Вайб примерно как у нас тут: мысли программиста, код, истории с работы.
[Не Кеша] — сейчас пытался понять, почему я сам читаю этот канал. но кажется, потому, что мне нравится сочетание крипоты и девлогов. Авторский стиль в общем)
Есть среди подписчиков админы каналов? Как вам такой прием? Поделитесь своими каналами в комментах.
Привет, всем новым подписчикам, рад что вы присоединились, может быть вам будет интересно 😄
На данный момент нас тут около 200 человек и вот примерно 40 новых подписчиков пришли благодаря следующему приему: ребята из Cookies Games сделали подборку каналов в виде папки и договорились о взаимном постинге этой самой папки во всех каналах. Получается достаточно рабочая реклама. Могу выделить несколько критериев:
- Продвигая небольшие каналы, подбираем такие же. Все примерно, 150-450 участников. Теоретический, далее можно повторять историю, меняя каналы и постепенно увеличивая их «размер»
- В выборке каналы живые, профильные, ведут их ради идеи. Это вообще главный критерий.
- Такая реклама не раздражает, потому как подписчики тоже зачастую рады найти еще профильных каналов, но не понятно как.
Посмотрите, что есть в папке GameDev. Мне было приятно обнаружить как старых знакомых, так и найти новых. Можете кликнуть и посмотреть всех, ниже пара личных рекомендаций:
NuclearBand — взаимно следим друг за другом почти с момента когда я начал вести свой канал. Вайб примерно как у нас тут: мысли программиста, код, истории с работы.
[Не Кеша] — сейчас пытался понять, почему я сам читаю этот канал. но кажется, потому, что мне нравится сочетание крипоты и девлогов. Авторский стиль в общем)
Есть среди подписчиков админы каналов? Как вам такой прием? Поделитесь своими каналами в комментах.
🔥2🥰1🤝1
Я предпочитаю инди игры и иногда пишу о них тут. Обычно в них можно найти нестандартные механики или сюжеты, не подходящие для больших продуктов. Пощупал игру Санёк. Мне кажется это идеальный пример, масса эмоций и нестандартного опыта всего за 2 игровых часа, но целых $ 8.5.
Добавил в желаемое давно, когда попробовал демку, купил только сейчас. Игра ставит себя как приключение в детство. Рекомендую посмотреть трейлер по ссылке выше перед чтением текста, чтобы уловить посыл игры. Я хочу перечислить личные неравнодушные моменты:
- Трейлер и демо настроили меня на крайнюю ностальгию и сведение олд скулл самым сильным образом. Почему-то сюжет после демо (то есть основная игра) много слабее, не знаю чего не хватило, возможно, я заскучал в длинных диалогах и долгих утомительных хождениях в поисках точек интерактива. По впечатлениям игра не ностальгическая, а детская. Можно провести время с ребенком лет 5-7: включаете игру, даете ему мышку и клаву, себе наливаете чай, далее он играет, а вы ему за жизнь рассказываете, как папа-мама жили, а не то что он теперь.
- Игра не поддерживает джойстик. Для меня это жирный минус. Но было бы можно это простить, если игра игралась бы только мышкой. Но нет, клава + мышь. Поддержать геймпад можно было на изи.
- Экстра неожиданная находка. Я нашел блокнотик с спискомнаших секретиков упражений, которые мы используем для разминки на работе. Привожу скрин из рабочего спец-чата, где бот напоминает что делать, а все кто сделал — ставят реакции.
-Игру пройти не смог. У меня поучилась уникальная концовка. Здесь спойлер: ближе к концу игры главного героя байтят пойти в страшный лес ночью на 100 шагов в глубину. По доброй логике игры ясно, что надо сгонять в лес, затем вернуться и получить звиздюлей от матери. Так вот я пошел, шагал минут 10, честно плутал во обе стороны и далее… ничего не произошло! Представьте как это долго (10 минут) с точки зрения геймплея, просто смотреть на идущего перса по лесу. Успел заучить визуальные паттерны этого леса. Думаю глюк, какой-то триггер не отработал. Получается, моя концовка: ослушался мать, повелся на байт других детей во дворе и напрочь заблудился в лесу с потерей перспектив, конец. Потрясное и неожиданное завершение, за 10 минут я как раз пережил все стадии выгорания надежд выбраться и принял неизбежное.
- Есть и киллер-фича игры — это внутриигровая консоль UnityIngameDebugConsole, которая открывается клавишей тильды. У меня даже форк на нее есть, как-то очень надо было чтобы она еще FPS выводила. Так я узнал, что я прошел 3238 шагов, что есть нул рефы в диалогах, дофига ворнингов на аудио и дотвин.
- Может быть жестко сужу, но игра не стоит 8.5 баксов, ни по каким критериям.
#игры
Добавил в желаемое давно, когда попробовал демку, купил только сейчас. Игра ставит себя как приключение в детство. Рекомендую посмотреть трейлер по ссылке выше перед чтением текста, чтобы уловить посыл игры. Я хочу перечислить личные неравнодушные моменты:
- Трейлер и демо настроили меня на крайнюю ностальгию и сведение олд скулл самым сильным образом. Почему-то сюжет после демо (то есть основная игра) много слабее, не знаю чего не хватило, возможно, я заскучал в длинных диалогах и долгих утомительных хождениях в поисках точек интерактива. По впечатлениям игра не ностальгическая, а детская. Можно провести время с ребенком лет 5-7: включаете игру, даете ему мышку и клаву, себе наливаете чай, далее он играет, а вы ему за жизнь рассказываете, как папа-мама жили, а не то что он теперь.
- Игра не поддерживает джойстик. Для меня это жирный минус. Но было бы можно это простить, если игра игралась бы только мышкой. Но нет, клава + мышь. Поддержать геймпад можно было на изи.
- Экстра неожиданная находка. Я нашел блокнотик с списком
-
- Есть и киллер-фича игры — это внутриигровая консоль UnityIngameDebugConsole, которая открывается клавишей тильды. У меня даже форк на нее есть, как-то очень надо было чтобы она еще FPS выводила. Так я узнал, что я прошел 3238 шагов, что есть нул рефы в диалогах, дофига ворнингов на аудио и дотвин.
- Может быть жестко сужу, но игра не стоит 8.5 баксов, ни по каким критериям.
#игры
😁4🔥2👀2