Всем привет! Пока контент готовится, расскажу вам про ещё одну мою активность
На конференции "Стачка" был доклад про организацию митапов в компании и командах, который вдохновил меня на запуск подобных событий у себя на работе. В качестве пилота я собрал маленькую команду и выбрал уже заезженную (но всё ещё актуальную) тему про ChatGpt - а конкретно про то, как мы используем его для решения рабочих задач.
Мы собрали кейсы для аналитиков, продактов и разработчиков и представили их в своих презентациях. И всё прошло отлично! В конце доклада была интересная дискуссия на темы использования ИИ в работе, от безопасности до "а что если делегируя всё ИИ ты не будешь развиваться?"
Могу сказать, что организовывать такие мини-митапы действительно очень крутая практика, и это точно не последний мой доклад. А про то, как я использую GPT в жизни у меня есть статья (пусть немного и устаревшая - сейчас я использую его в большем количестве кейсов)
(а ещё у меня сегодня день рождения)
Flex Code
На конференции "Стачка" был доклад про организацию митапов в компании и командах, который вдохновил меня на запуск подобных событий у себя на работе. В качестве пилота я собрал маленькую команду и выбрал уже заезженную (но всё ещё актуальную) тему про ChatGpt - а конкретно про то, как мы используем его для решения рабочих задач.
Мы собрали кейсы для аналитиков, продактов и разработчиков и представили их в своих презентациях. И всё прошло отлично! В конце доклада была интересная дискуссия на темы использования ИИ в работе, от безопасности до "а что если делегируя всё ИИ ты не будешь развиваться?"
Могу сказать, что организовывать такие мини-митапы действительно очень крутая практика, и это точно не последний мой доклад. А про то, как я использую GPT в жизни у меня есть статья (пусть немного и устаревшая - сейчас я использую его в большем количестве кейсов)
(а ещё у меня сегодня день рождения)
Flex Code
🎉13👍6
Всем привет!
Вспоминая недавний митап, расскажу подробнее про то, как я использую GPT на работе.
Важно понимать, что GPT (по крайней мере бесплатные версии) не сможет решать сложные/комплексные/специфичные задачи, особенно если про них мало информации в интернете. Однако базовые рутинные дела он может выполнять быстрее (и иногда лучше) чем человек. И вот примеры:
1. Маппинги объектов. Переложить 40+ полей из класса A в класс B с дополнительной логикой - тупая, но затратная задача. Однако можно просто написать в GPT "Напиши метод маппинга из класса <код> в класс <код>", и с высокой вероятностью он всё сделает как надо. А где "сомневается" - оставит коммент
2. Генерация SQL. Лично я в первую очередь использовал GPT для генерации таблиц на основе классов - мне было супер-лень писать код самостоятельно или натыкивать каждый столбец в интерфейсе СУБД. Ну а ещё он может быстро сгенерить код для пагинации или других запросов
3. Генерация DTO по документации. Скармливаем GPT json или просто описание полей из документации (иногда поля в интеграциях просто описываются списком в ворд-документе) и получаем необходимые классы
ВАЖНО!
Код от GPT надо проверять, а потом перепроверять. Он может генерировать плохой код, код с несуществующими методами или просто код, который не выполняет нужную задачу. Однако как показывает практика, лично мне проверить и добавить пару фиксов в уже готовый код гораздо проще, чем писать всё с нуля
А вот ещё пара статей про безопасность ChatGPT:
- GPT сливает персональные данные
- GPT генерирует уязвимый код
- Немного дырявый GPT
- Мысли про безопасность использования GPT
Flex Code
Вспоминая недавний митап, расскажу подробнее про то, как я использую GPT на работе.
Важно понимать, что GPT (по крайней мере бесплатные версии) не сможет решать сложные/комплексные/специфичные задачи, особенно если про них мало информации в интернете. Однако базовые рутинные дела он может выполнять быстрее (и иногда лучше) чем человек. И вот примеры:
1. Маппинги объектов. Переложить 40+ полей из класса A в класс B с дополнительной логикой - тупая, но затратная задача. Однако можно просто написать в GPT "Напиши метод маппинга из класса <код> в класс <код>", и с высокой вероятностью он всё сделает как надо. А где "сомневается" - оставит коммент
2. Генерация SQL. Лично я в первую очередь использовал GPT для генерации таблиц на основе классов - мне было супер-лень писать код самостоятельно или натыкивать каждый столбец в интерфейсе СУБД. Ну а ещё он может быстро сгенерить код для пагинации или других запросов
3. Генерация DTO по документации. Скармливаем GPT json или просто описание полей из документации (иногда поля в интеграциях просто описываются списком в ворд-документе) и получаем необходимые классы
ВАЖНО!
Код от GPT надо проверять, а потом перепроверять. Он может генерировать плохой код, код с несуществующими методами или просто код, который не выполняет нужную задачу. Однако как показывает практика, лично мне проверить и добавить пару фиксов в уже готовый код гораздо проще, чем писать всё с нуля
А вот ещё пара статей про безопасность ChatGPT:
- GPT сливает персональные данные
- GPT генерирует уязвимый код
- Немного дырявый GPT
- Мысли про безопасность использования GPT
Flex Code
👍14
Итак, 2023 год подходит к концу.
Небольшие итоги:
- 7 статей для Flex Code
- 4 статьи для TimeWeb (чуть чуть попробовал себя в роли копирайтера)
- Очень много книг, однако технических стало поменьше - про 5 из них я рассказал в этом блоге
- Один завершённый пет-проект (кстати открыл исходники)
- Посетил конференцию "Стачка" в Ульяновске
- Организовал 2 митапа - в колледже и на работе
В целом считаю, что год прошёл очень хорошо, а следующий будет ещё лучше! (но можно было и не заболевать на праздники)
Всех с Наступающим!🎄🎄🎄
Небольшие итоги:
- 7 статей для Flex Code
- 4 статьи для TimeWeb (чуть чуть попробовал себя в роли копирайтера)
- Очень много книг, однако технических стало поменьше - про 5 из них я рассказал в этом блоге
- Один завершённый пет-проект (кстати открыл исходники)
- Посетил конференцию "Стачка" в Ульяновске
- Организовал 2 митапа - в колледже и на работе
В целом считаю, что год прошёл очень хорошо, а следующий будет ещё лучше! (но можно было и не заболевать на праздники)
Всех с Наступающим!🎄🎄🎄
🎄13
Под новый год JetBrains сделали мне "подарок" - отказались продлевать учебную лицензию для своих IDE. И ради интереса я решил посмотреть, а как там VS Code?
Мой прошлый опыт с VS Code был негативным - очень плохой автокомплит, отсутствуют встроенные Tests Explorer и Solution Explorer, рабочий проект очень медленно индексируется. Однако сейчас, с новым расширением от Microsoft "C# Dev Kit" всё поменялось:
- Довольно быстро индексируется проект
- Нормальный автокомплит с автоматическими using из коробки
- Встроенные обозреватели решений и тестов довольно удобные
- Наконец-то vs code парсит файл launchSettings.json и не нужно создавать кастомные конфигурации запуска проектов
А вместе с парой дополнительных плагинов со сниппетами и полезными командами получается отличный бесплатный инструмент. Всё ещё хуже, чем JetBrains Rider, но в разы лучше чем раньше
Подводя итоги - VS Code для меня стала лучшей бесплатной IDE под C#. Но я постараюсь вернуться в райдер)
Мой прошлый опыт с VS Code был негативным - очень плохой автокомплит, отсутствуют встроенные Tests Explorer и Solution Explorer, рабочий проект очень медленно индексируется. Однако сейчас, с новым расширением от Microsoft "C# Dev Kit" всё поменялось:
- Довольно быстро индексируется проект
- Нормальный автокомплит с автоматическими using из коробки
- Встроенные обозреватели решений и тестов довольно удобные
- Наконец-то vs code парсит файл launchSettings.json и не нужно создавать кастомные конфигурации запуска проектов
А вместе с парой дополнительных плагинов со сниппетами и полезными командами получается отличный бесплатный инструмент. Всё ещё хуже, чем JetBrains Rider, но в разы лучше чем раньше
Подводя итоги - VS Code для меня стала лучшей бесплатной IDE под C#. Но я постараюсь вернуться в райдер)
🤷3👍1😢1🫡1
Недавно прочитал две книги про продуктивность и тайм-менеджмент:
- Джедайские техники
- Путь Джедая
Об этих книгах я слышал много, но как-то руки не доходили их прочитать. Теперь вот дошли :)
Это самые базированные книги про продуктивность, и я рекомендую прочитать их абсолютно всем. По крайней мере первую. Основная мысль книги в том, что нам часто не хватает не времени, а некоторого когнитивного ресурса, который автор называет "мыслетопливом". И в книге подробно расписано, на что мы это мыслетопливо расходуем и как его экономить, правильно организуя свои дела и задачи. Ну и разные рекомендации про приложения, организацию и всё такое
Вторая книга призвана дополнить первую. Она разделена на две большие части - сначала введение, где мы определяем уровень своей организованности, а потом набор конкретных мыслей, практик, "вакцин" и рекомендаций для каждого уровня. Конкретно из этой книги я подчеркнул для себя идеи "красных" и "зелёных" задач и "практику стратегического продалбывания". Ну и ещё пару идей.
В обоих книгах полно отсылок на другие труды, такие как "Антихрупкость" Нассима Талеба или "Думай медленно - решай быстро" Канемана. Тоже очень порадовало, да и в целом читаются книги легко и приятно.
В общем, рекомендую. Даже не нашёл недостатков у этих книг :)
#книги
- Джедайские техники
- Путь Джедая
Об этих книгах я слышал много, но как-то руки не доходили их прочитать. Теперь вот дошли :)
Это самые базированные книги про продуктивность, и я рекомендую прочитать их абсолютно всем. По крайней мере первую. Основная мысль книги в том, что нам часто не хватает не времени, а некоторого когнитивного ресурса, который автор называет "мыслетопливом". И в книге подробно расписано, на что мы это мыслетопливо расходуем и как его экономить, правильно организуя свои дела и задачи. Ну и разные рекомендации про приложения, организацию и всё такое
Вторая книга призвана дополнить первую. Она разделена на две большие части - сначала введение, где мы определяем уровень своей организованности, а потом набор конкретных мыслей, практик, "вакцин" и рекомендаций для каждого уровня. Конкретно из этой книги я подчеркнул для себя идеи "красных" и "зелёных" задач и "практику стратегического продалбывания". Ну и ещё пару идей.
В обоих книгах полно отсылок на другие труды, такие как "Антихрупкость" Нассима Талеба или "Думай медленно - решай быстро" Канемана. Тоже очень порадовало, да и в целом читаются книги легко и приятно.
В общем, рекомендую. Даже не нашёл недостатков у этих книг :)
#книги
🔥11
Всем привет!
Сегодня расскажу про одно приложение, о котором я знал давно, но только недавно начал пользоваться
Loom - приложение для записи экрана. По сути это просто расширение для браузера, которое позволяет очень быстро записать короткое видео и сразу поделиться им
Как его можно использовать?
- Если вы тестировщик, саппорт или разработчик, и вам необходимо показать факт воспроизведения какого-то бага. Иногда видео гораздо нагляднее и удобнее.
- В обучающих кейсах - быстро записать видео с пояснением как учитель, продемонстрировать домашнее задание - очень удобно
- Черновики для видеоконтента
- Много других кейсов
В бесплатной версии можно создавать до 25 видео по 5 минут, но старые неактуальные записи можно удалять. Есть ещё работа в команде в приложении, но я пока что не пользовался. Если кто-то уже затестил - пишите комментарии!
А ещё есть прикольные интеграции с разными сервисами - от GitHub до Notion. В общем, полезная штука, советую
#приложения
Flex Code
Сегодня расскажу про одно приложение, о котором я знал давно, но только недавно начал пользоваться
Loom - приложение для записи экрана. По сути это просто расширение для браузера, которое позволяет очень быстро записать короткое видео и сразу поделиться им
Как его можно использовать?
- Если вы тестировщик, саппорт или разработчик, и вам необходимо показать факт воспроизведения какого-то бага. Иногда видео гораздо нагляднее и удобнее.
- В обучающих кейсах - быстро записать видео с пояснением как учитель, продемонстрировать домашнее задание - очень удобно
- Черновики для видеоконтента
- Много других кейсов
В бесплатной версии можно создавать до 25 видео по 5 минут, но старые неактуальные записи можно удалять. Есть ещё работа в команде в приложении, но я пока что не пользовался. Если кто-то уже затестил - пишите комментарии!
А ещё есть прикольные интеграции с разными сервисами - от GitHub до Notion. В общем, полезная штука, советую
#приложения
Flex Code
🔥8👏1👌1
Неочевидный дизайн enum в C#
Недавно столкнулся с задачей сконвертировать строковое значение в Enum. В строке может быть как нормальное строковое значение из перечисления, так и число.
Задачка тривиальная:
- Вызываем
- Если распарсили - используем это значение дальше
- Если нет - выполняем логику обработки отсутствия значения в enum
И тут на вход прилетает строковое значение "333" (такого значения в enum нет). А
Лично для меня супер неочевидно то, что TryParse не проверяет соответствие числа именованной константе из
А вот пример для воспроизведения:
Что интересно: в java и kotlin такого поведения не замечено (беглым тестом в онлайн компиляторе). В typescript тоже - при парсинге из числа, которое не входит в enum мы получаем undefined. Интересно, какие причины такой реализации?
#кейсы
Недавно столкнулся с задачей сконвертировать строковое значение в Enum. В строке может быть как нормальное строковое значение из перечисления, так и число.
Задачка тривиальная:
- Вызываем
Enum.TryParse(value, out var result)
- Если распарсили - используем это значение дальше
- Если нет - выполняем логику обработки отсутствия значения в enum
И тут на вход прилетает строковое значение "333" (такого значения в enum нет). А
TryParse
возвращает true
. Итог - некорректное поведение системы. И нет, это не баг - это стандартное поведение метода TryParse
.Лично для меня супер неочевидно то, что TryParse не проверяет соответствие числа именованной константе из
enum
. Теперь знаю, что такое поведение исправляется с помощью метода IsDefined
. (Источник - https://github.com/microsoft/referencesource/blob/master/mscorlib/system/enum.cs#L367)А вот пример для воспроизведения:
var value = "333";
Console.WriteLine($"Пытаемся распарсить: '{value}'");
if (Enum.TryParse<SomeEnum>(value, out var result))
{
Console.WriteLine($"Результат парсинга - '{result}'. Тип - '{result.GetType().Name}'");
}
else
{
Console.WriteLine("Распарсить значение не удалось");
}
public enum SomeEnum
{
FirstValue = 0,
SecondValue = 1
}
Что интересно: в java и kotlin такого поведения не замечено (беглым тестом в онлайн компиляторе). В typescript тоже - при парсинге из числа, которое не входит в enum мы получаем undefined. Интересно, какие причины такой реализации?
#кейсы
🤔5👏2🫡1
Да, это снова рекомендации по приложениям. На этот раз - DevToys - мультитул разработчика. Очень удобная штука, которую использую как в работе, так и в пет-проектах.
Мои основные кейсы:
- Форматирование JSON (или XML) - часто из дебага вытаскиваю огромные запросы эластика и монги, и надо их раскрыть и проанализировать. Копирую огромный JSON, вставляю в DevToys - получаю читаемый текст. Много проблемных запросов обнаружил как раз благодаря этому инструменту
- Сравнение текстов - снова пример с запросами в БД. Допустим, есть баг - на продакшн среде и на тестовой среде разное поведение. Беру запрос с прода, с теста и сравниваю. Или просто какие-то тексты, результаты от API, и прочее - всё, что нельзя или неудобно сравнивать через гит
- Проверка регулярных выражений - иногда пользуюсь сайтом regex101, иногда этим приложением
В зависимости от задач и специфики работы могут пригодиться совершенно разные функции этого приложения. Думаю, что оно будет полезно не только разработчикам, но и аналитикам, тестировщикам и многим другим. В общем, пробуйте!
#приложения
Flex Code
🔥8👍2🫡2