3 месяца назад публиковал заметку о том как обращаюсь с публикацией npm-пакетов. Два месяца назад осознал, что это все еще требует непозволительно много времени на поддержку.
Тогда я сделал @solid-soda/scripts — пакет инкапсулирующий в себе все проверки. Там статический анализ кода и стилей, форматирование, проверка сообщений к коммитам и их генерация, создание релизов.
Процесс публикации и поддержки пакетов сильно упростился. Обновил заметку.
Процесс подготовки npm-пакета
#процесс
Тогда я сделал @solid-soda/scripts — пакет инкапсулирующий в себе все проверки. Там статический анализ кода и стилей, форматирование, проверка сообщений к коммитам и их генерация, создание релизов.
Процесс публикации и поддержки пакетов сильно упростился. Обновил заметку.
Процесс подготовки npm-пакета
#процесс
Другое программирование
Я уже говорил, как уважаю Data Science. Теперь про еще один отличный способ прикоснуться к этому миру.
В Otus есть крутой курс «Нейронные сети на Python» — довольно сложный и обширный. Для его прохождения нужно иметь начальные знания в Python, линейной алгебре, началах анализа и теории вероятностей. Проверить свой уровень можно во вступительном тесте.
15 мая (сегодня) в 20.00 МСК они проведут открытый урок «Учим нейронную сеть копировать почерк». Внутри будет разбор одной из финальных задач прошлого набора курса — порождение рукописного текста с заданным почерком.
#партнерский_материал
Я уже говорил, как уважаю Data Science. Теперь про еще один отличный способ прикоснуться к этому миру.
В Otus есть крутой курс «Нейронные сети на Python» — довольно сложный и обширный. Для его прохождения нужно иметь начальные знания в Python, линейной алгебре, началах анализа и теории вероятностей. Проверить свой уровень можно во вступительном тесте.
15 мая (сегодня) в 20.00 МСК они проведут открытый урок «Учим нейронную сеть копировать почерк». Внутри будет разбор одной из финальных задач прошлого набора курса — порождение рукописного текста с заданным почерком.
#партнерский_материал
Чиним img
Последние годы все больше задач переносится на клиент. Например, обрезание картинки для аватара вполне можно делать на клиенте. Но если попробовать, то можно столкнуться с проблемой — фотографии все время поворачиваются не так как задумано.
Крутой доклад Дмитрия Махнёва «Чиним img» как раз об этом — причины такого поведения фотографий и пути решения.
#фронтенд
Последние годы все больше задач переносится на клиент. Например, обрезание картинки для аватара вполне можно делать на клиенте. Но если попробовать, то можно столкнуться с проблемой — фотографии все время поворачиваются не так как задумано.
Крутой доклад Дмитрия Махнёва «Чиним img» как раз об этом — причины такого поведения фотографий и пути решения.
#фронтенд
YouTube
006. Чиним img - Дмитрий Махнёв
Однажды, получив весьма тривиальную задачу, я встретился с удивительным багом при работе с тегом img. Мир пошатнулся. Разбор бага занял немало времени. И доставил огромное количество положительных эмоций, которыми нельзя не поделиться.
Смотреть презентацию:…
Смотреть презентацию:…
Локальная разработка
Локально тестировать логин через соцсети больно. Многие провайдеры требуют чтобы сайт был доступен в интернете (например, они сами шлют какой-нибудь запрос к вам), другим обязательно нужен сертификат.
Есть простой способ избавиться от этой боли — ngrok. Эта штука позволяет моментально получить URL для вашего локального компьютера, SSL в комплекте.
Для нужд локальной разработки вполне достаточно бесплатной версии.
#удобство_разработки
Локально тестировать логин через соцсети больно. Многие провайдеры требуют чтобы сайт был доступен в интернете (например, они сами шлют какой-нибудь запрос к вам), другим обязательно нужен сертификат.
Есть простой способ избавиться от этой боли — ngrok. Эта штука позволяет моментально получить URL для вашего локального компьютера, SSL в комплекте.
Для нужд локальной разработки вполне достаточно бесплатной версии.
#удобство_разработки
Товарищ подсказал еще одно аналогичное решение — localtunnel. Выглядит даже проще.
https://localtunnel.me/
https://localtunnel.me/
theboroer.github.io
Localtunnel ~ Expose yourself to the world
DRY — не повторяй себя. Этот принцип часто понимается неверно.
Напиши это дважды
Часто сложность кода возрастает из-за преждевременного вынесения "общего" кода в отдельное место. Выделять нечто в самостоятельную сущность следует только после того как были набраны юзкейсы. Когда становится понятно, как такой код должен использоваться — его можно выносить.
Не повторяй логику
Бизнес-логику повторять нельзя. Если в приложении вычисляется скидка — она должна вычисляться только в одном месте. Важно разделять одинаковую логику и похожую. Похожая логика может сильно разойтись через время, тогда придется снова разделять их обратно.
Тематическая статья — Ошибочное понимание принципа DRY
#проектирование
Напиши это дважды
Часто сложность кода возрастает из-за преждевременного вынесения "общего" кода в отдельное место. Выделять нечто в самостоятельную сущность следует только после того как были набраны юзкейсы. Когда становится понятно, как такой код должен использоваться — его можно выносить.
Не повторяй логику
Бизнес-логику повторять нельзя. Если в приложении вычисляется скидка — она должна вычисляться только в одном месте. Важно разделять одинаковую логику и похожую. Похожая логика может сильно разойтись через время, тогда придется снова разделять их обратно.
Тематическая статья — Ошибочное понимание принципа DRY
#проектирование
Я слушаю очень много подкастов. Некоторые из них связаны с программированием.
+ ДевШахта — много про софт-скиллы, много про Node.js.
+ Мысли и методы — о непривычном в программировании. Вопросы вычислимости, связи информатики и вселенной.
+ Новости 512 — еженедельные экстра-короткие новостные выпуски.
+ Пятиминутка React — не только React, а скорее фортенд в целом. К сожалению, не выходит с декабря прошлого года.
И еще парочка, они классные, но я перестал их слушать.
+ Frontend Weekend — интервью с разработчиками, чаще фротендерами, но не всегда.
+ Радио-Т — длинные выпуски, обсуждаются новости и статьи.
На случай если кто-нибудь не знает что такое подкасты и не умеет их слушать. Подкаст — это аудио-шоу. Люди говорят что-нибудь в микрофон, вы слушаете это. Удобство формата в его нетребовательности. Можно слушать подкасты в метро, во время уборки дома, прогулки с собакой. Как слушать подкасты.
#рекомендации
+ ДевШахта — много про софт-скиллы, много про Node.js.
+ Мысли и методы — о непривычном в программировании. Вопросы вычислимости, связи информатики и вселенной.
+ Новости 512 — еженедельные экстра-короткие новостные выпуски.
+ Пятиминутка React — не только React, а скорее фортенд в целом. К сожалению, не выходит с декабря прошлого года.
И еще парочка, они классные, но я перестал их слушать.
+ Frontend Weekend — интервью с разработчиками, чаще фротендерами, но не всегда.
+ Радио-Т — длинные выпуски, обсуждаются новости и статьи.
На случай если кто-нибудь не знает что такое подкасты и не умеет их слушать. Подкаст — это аудио-шоу. Люди говорят что-нибудь в микрофон, вы слушаете это. Удобство формата в его нетребовательности. Можно слушать подкасты в метро, во время уборки дома, прогулки с собакой. Как слушать подкасты.
#рекомендации
Самое ценное
Самое ценное, что есть в наших программах — это данные. Данные важно правильно хранить, обеспечивать их доступность, не терять и еще куча всего. И немногие разработчики умеют все это делать хорошо. Но самые страшные факапы связаны именно с утратой или порчей данных.
При этом работать с данными должен уметь любой член команды — разработчик, админ, девопс (многие считают что это отдельная должность).
Если данных много — все эти задачи усложняются. Я абсолютно не представляю как работать с базой данных даже в 100 гигабайт.
Как раз для таких людей OTUS запускает онлайн-курс "Data Engineer". Он о том как работать с большими данными, мониторить и тестировать такие базы, обращаться с распределенными хранилищами.
20 мая (завтра) в 20.00 МСК пройдет вебинар "Lean Data Engineering: большие данные при небольшом бюджете", который предваряет этот курс. Чтобы попасть на него, нужно пройти тестирование.
#данные #партнерский_материал
Самое ценное, что есть в наших программах — это данные. Данные важно правильно хранить, обеспечивать их доступность, не терять и еще куча всего. И немногие разработчики умеют все это делать хорошо. Но самые страшные факапы связаны именно с утратой или порчей данных.
При этом работать с данными должен уметь любой член команды — разработчик, админ, девопс (многие считают что это отдельная должность).
Если данных много — все эти задачи усложняются. Я абсолютно не представляю как работать с базой данных даже в 100 гигабайт.
Как раз для таких людей OTUS запускает онлайн-курс "Data Engineer". Он о том как работать с большими данными, мониторить и тестировать такие базы, обращаться с распределенными хранилищами.
20 мая (завтра) в 20.00 МСК пройдет вебинар "Lean Data Engineering: большие данные при небольшом бюджете", который предваряет этот курс. Чтобы попасть на него, нужно пройти тестирование.
#данные #партнерский_материал
Самое ценное
Продолжим разговор о данных. Я не умею управлять базами данных достаточно хорошо. Как развернуть кластер с кучей нод, бэкапами и мониторингом — для меня загадка. Когда мне нужно написать хоть сколько-нибудь сложный SQL запрос — я гуглю.
Чтобы компенсировать такие пробелы в знаниях, можно отдать задачу управления базой данных кому-то другому. Почти все провайдеры облачных серверов предоставляют управляемые ими базы данных.
+ DO Managed Databases
+ AWS RDS
В чем суть
Провайдер предоставляет базу данных. Поднять ее можно из удобного интерфейса. Никакого обслуживания она не требует, сама бэкапится. Если потребуется масштабировать — все произойдет само, дополнительных усилий не требуется. Провайдер же обеспечивает безопасть базы.
На мой взгляд, это как раз тот случай когда можно отдать сколько-нибудь денег за свое время и спокойствие. Во всех домашних проектах использую DO Managed Databases (просто потому что AWS слишком сложный для меня).
#данные
Продолжим разговор о данных. Я не умею управлять базами данных достаточно хорошо. Как развернуть кластер с кучей нод, бэкапами и мониторингом — для меня загадка. Когда мне нужно написать хоть сколько-нибудь сложный SQL запрос — я гуглю.
Чтобы компенсировать такие пробелы в знаниях, можно отдать задачу управления базой данных кому-то другому. Почти все провайдеры облачных серверов предоставляют управляемые ими базы данных.
+ DO Managed Databases
+ AWS RDS
В чем суть
Провайдер предоставляет базу данных. Поднять ее можно из удобного интерфейса. Никакого обслуживания она не требует, сама бэкапится. Если потребуется масштабировать — все произойдет само, дополнительных усилий не требуется. Провайдер же обеспечивает безопасть базы.
На мой взгляд, это как раз тот случай когда можно отдать сколько-нибудь денег за свое время и спокойствие. Во всех домашних проектах использую DO Managed Databases (просто потому что AWS слишком сложный для меня).
#данные
История: удаленная база и две минуты страха
В 2017 году я работал над генератором интернет-магазинов. И тогда я еще хуже представлял себе как правильно обращаься с данными.
При очередном релизе нужно было обновить схему базы, я просто удалил старую базу и накатил схему новой. Когда я понял, что произошло — я очень напугался и навсегда запомнил, изменять схему базы нужно посредствам миграций/эволюций.
Тематическая статья — Версионная миграция структуры базы данных: основные подходы
Кончилось все хорошо, база в этом приложении была всего лишь зеркалом другого источника данных и мы ее быстро восстановили.
#кейс #данные
В 2017 году я работал над генератором интернет-магазинов. И тогда я еще хуже представлял себе как правильно обращаься с данными.
При очередном релизе нужно было обновить схему базы, я просто удалил старую базу и накатил схему новой. Когда я понял, что произошло — я очень напугался и навсегда запомнил, изменять схему базы нужно посредствам миграций/эволюций.
Тематическая статья — Версионная миграция структуры базы данных: основные подходы
Кончилось все хорошо, база в этом приложении была всего лишь зеркалом другого источника данных и мы ее быстро восстановили.
#кейс #данные
Хорошая практика
В прошлом году гремела статья от инженеров из Хероку о приложениях 12 факторов.
Это отличные советы по построению приложений, прочтите их и жизнь станет проще.
The Twelve-Factor App
#проектирование #общие_знания
В прошлом году гремела статья от инженеров из Хероку о приложениях 12 факторов.
Это отличные советы по построению приложений, прочтите их и жизнь станет проще.
The Twelve-Factor App
#проектирование #общие_знания
12factor.net
The Twelve-Factor App (Русский перевод)
A methodology for building modern, scalable, maintainable software-as-a-service apps.
Golang
Я люблю изучать новые языки программирования. Осенью читал "7 языков за 7 недель", а совсем недавно внимательно смотрел на ReasonML и Dart.
Я уверен, что изучение новых языков — большое благо. Так можно перенять какие-то крутые идеи из параллельных миров и использовать их в своей практике.
Последний год я пристально следил за развитием Go. Это максимально непривычный для меня язык — по большей части из-за особенного Go-way. В нем совсем другие лучшие практики. У них там нет исключений! И это осознанный выбор авторов. При этом язык сверх-популярен. Веб, CLI, все можно писать на Go.
OTUS запускает курс "Разработчик Golang", а 23 мая (завтра) в 20.00 МСК пройдет день открытых дверей на этом курсе. Как обычно, доступно предварительное тестирование.
Пишите впечатления от мероприятия, да и в целом мнения о Golang, будет интересно почитать о вашем опыте.
#языки #партнерский_материал
Я люблю изучать новые языки программирования. Осенью читал "7 языков за 7 недель", а совсем недавно внимательно смотрел на ReasonML и Dart.
Я уверен, что изучение новых языков — большое благо. Так можно перенять какие-то крутые идеи из параллельных миров и использовать их в своей практике.
Последний год я пристально следил за развитием Go. Это максимально непривычный для меня язык — по большей части из-за особенного Go-way. В нем совсем другие лучшие практики. У них там нет исключений! И это осознанный выбор авторов. При этом язык сверх-популярен. Веб, CLI, все можно писать на Go.
OTUS запускает курс "Разработчик Golang", а 23 мая (завтра) в 20.00 МСК пройдет день открытых дверей на этом курсе. Как обычно, доступно предварительное тестирование.
Пишите впечатления от мероприятия, да и в целом мнения о Golang, будет интересно почитать о вашем опыте.
#языки #партнерский_материал
24-25 мая а Питере будет HolyJS.
Буду писать интересные штуки сразу в твиттер — @kamyshev_code.
Я на конференции оба дня, подходите знакомиться.
Буду писать интересные штуки сразу в твиттер — @kamyshev_code.
Я на конференции оба дня, подходите знакомиться.
На выходных сходил на HolyJS. Отличная конференция. Когда выложат доклады — рекомендую посмотреть эти:
Deno, a new way to JavaScript
Райан Даль (автор Node.js) рассказал о своем новом проекте.
Очень странное тестирование
Шокирующий подход к unit-тестированию через свойства.
Подход к типобезопасной разработке на TypeScript
Хороший вводный доклад по TypeScipt.
Modern web testing and automation with Puppeteer
Прекрансный доклад с реальными примерами e2e тестирования с помощью Puppeteer, очень хороший доклад.
Обработка озера данных на Node.js в serverless-архитектуре
Почти ничего не понял, но звучит как невероятно крутой подход. Полезно для расширения кругозора.
Node.js: так же быстро, выше, сильнее с GraalVM
Магия — возможность запускать внутри Node.js кода кусочки на R, Python, Java, Ruby. Впечталяющуая технология, определенно стоит попробовать.
О тестировании на основе свойств и Deno скоро расскажу подробнее.
Deno, a new way to JavaScript
Райан Даль (автор Node.js) рассказал о своем новом проекте.
Очень странное тестирование
Шокирующий подход к unit-тестированию через свойства.
Подход к типобезопасной разработке на TypeScript
Хороший вводный доклад по TypeScipt.
Modern web testing and automation with Puppeteer
Прекрансный доклад с реальными примерами e2e тестирования с помощью Puppeteer, очень хороший доклад.
Обработка озера данных на Node.js в serverless-архитектуре
Почти ничего не понял, но звучит как невероятно крутой подход. Полезно для расширения кругозора.
Node.js: так же быстро, выше, сильнее с GraalVM
Магия — возможность запускать внутри Node.js кода кусочки на R, Python, Java, Ruby. Впечталяющуая технология, определенно стоит попробовать.
О тестировании на основе свойств и Deno скоро расскажу подробнее.