Рубрика «Разработка веб-сайтов» - 69

Как мы делали очередной конструктор чат-ботов. Часть 1 - 1

Привет, Хабромир! Последний год мы с командой провели, создавая свой стартап «Конструктор чат-ботов для бизнеса Botlify», и я хотел бы поделиться с аудиторией небольшой историей проекта и о принятых технических решениях. В этом посте я постараюсь максимально сконцентрироваться на технических деталях и меньше углубляться в продукт и бизнес, несмотря на то, что в этом проекте моя роль намного меньше связана с разработкой и технологиями. Данный материал основан на моем личном опыте, я не стартап-коуч и не претендую на звание хорошего программиста, менеджера, архитектора или предпринимателя. Мы относительно молодой стартап, у которого не много пользователей, так что тут не будет ничего про нагрузки и проблемы больших проектов. Под катом я расскажу как начинался мой проект, на какие разработческие грабли мы наступали и какие выводы делали.
Читать полностью »

Вышла 9 версия Angular, это основной релиз, охватывающий всю платформу, включая сам фреймворк, angular material и CLI. В этом релизе приложения по умолчанию переключаются на компилятор и рантайм Ivy и, а также представляются улучшенные способы тестирования компонентов.

Это одно из самых больших обновлений Angular за последние 3 года, и команда разработчиков рада возможностям, позволяющим разработчикам создавать лучшие приложения и вносить свой вклад в экосистему Angular.
Читать полностью »

ххх: на чём пишешь фронтенд?
yyy: на костылях и велосипедах
ххх: ммм, хороший фреймворк!
Bash.im

Когда приходит мысль стать программистом, ты вдохновенно открываешь справочник Шилдта по С, заказываешь толстую книгу Страуструпа по С++ и учишься шутить про указатель на указатель на указатель и про рекурсию. Жёсткая романтика первого времени… Но всё меняется, когда в твою жизнь случайно приходит JavaScript. «Какой он простой, понятный, какой классный синтаксис! Всё, решено, буду писать сайты», — думает начинающий программист и решает стать гуру всея веба. Но потом выбранный стек меняет своё дружелюбное лицо, и чем дальше, тем больше. Но ты уже не можешь остановиться, потому что ты один из них — фронтенд-разработчиков. Тех самых, которые «смотрящие за мордой сайта». Ну что, захотелось присоединиться? Тогда для вас 2 серия нашего спецраздела «Профессия:…»

Профессия: фронтенд-разработчик - 1


Мы уже готовили эту статью, когда в среду вышел пост «Хабр Карьеры» с интервью представителя онлайн-школы о работе фронтенда, что не могло не радовать: значит, в нашей серии «Профессия:..» появится очередной нужный, полезный, актуальный материал. Кстати, первый выпуск был посвящён профессии системного администратора
Читать полностью »

Веб-скрапинг — это метод сбора данных с веб-сайтов. Этот термин обычно используется в применении к автоматизированному сбору данных. Сегодня мы поговорим о том, как собирать данные с сайтов анонимно. Причина, по которой некто может захотеть анонимности в деле веб-скрапинга, заключается в том, что многие веб-серверы применяют определённые правила к подключениям с IP-адресов, с которых за некий отрезок времени выполнено какое-то количество запросов. Здесь мы будем пользоваться следующими инструментами:

  • Puppeteer — для доступа к веб-страницам.
  • Cheerio — для парсинга HTML-кода.
  • Tor — для выполнения каждого запроса с различного IP-адреса.

Надо отметить, что правовые аспекты веб-скрапинга — вопрос непростой и часто неясный. Поэтому уважайте «Условия использования» тех страниц, данные которых вы собираете. Вот хороший материал на эту тему.

Node.js, Tor, Puppeteer и Cheerio: анонимный веб-скрапинг - 1
Читать полностью »

Playwright — драматургия от Microsoft и новый инструмент для тестирования - 1

Я десять лет тестирую и пишу код, а последние четыре года — тестирую доклады в программном комитете конференции Heisenbug. Сегодня расскажу о сквозных тестах, кросс-браузерности и ощущениях от использования Playwright версии 0.10.0.

Из конца в конец

Зачем нужны сквозные (end-to-end) тесты? Они управляют браузером и имитируют действия пользователя. Например, я описал пользовательские сценарии и хочу, чтобы они были проверены с каждой версией продукта. Проверять все сценарии для всех версий вручную — дороже и дольше, чем автоматикой.

Есть разные инструменты: Selenium, Puppeteer, Selenoid, Cypress и другие. Две недели назад вышел новый инструмент — Playwright, над которым работал Андрей Лушников, разработчик Puppeteer. Эта библиотека полностью решает проблему написания кросс-браузерных тестов.

Читать полностью »

Привет! Меня зовут Александр Зубов, я отвечаю за фронтенд архитектуру Авито. Хочу пригласить вас на митап по фронтенду, который мы проводим в нашем офисе вместе с сообществом Facebook Developer Circle: Moscow.

Митап пройдёт 5 марта. Будем говорить о протоколе http/3, использовании Relay Modern и проблемах классического подхода управления состоянием приложения при разработке сложных интерфейсов. Выступят докладчики из Яндекса, Facebook и Авито. Под катом — тезисы, информация о спикерах и ссылка на регистрацию.

Фронтенд митап Facebook и AvitoTech - 1

Читать полностью »

Технологии глубокого обучения за короткий срок прошли большой путь развития — от простых нейронных сетей до достаточно сложных архитектур. Для поддержки быстрого распространения этих технологий были разработаны различные библиотеки и платформы глубокого обучения. Одна из основных целей подобных библиотек заключается в том, чтобы предоставить разработчикам простые интерфейсы, позволяющие создавать и обучать нейросетевые модели. Подобные библиотеки позволяют своим пользователям обращать больше внимания на решаемые задачи, а не на тонкости реализации моделей. Для этого может понадобиться скрывать реализацию базовых механизмов за несколькими уровнями абстракции. А это, в свою очередь усложняет понимание базовых принципов, на которых основаны библиотеки глубокого обучения.

О реализации библиотеки для глубокого обучения на Python - 1

Статья, перевод которой мы публикуем, нацелена на разбор особенностей устройства низкоуровневых строительных блоков библиотек глубокого обучения. Сначала мы кратко поговорим о сущности глубокого обучения. Это позволит нам понять функциональные требования к соответствующему программному обеспечению. Затем мы рассмотрим разработку простой, но работающей библиотеки глубокого обучения на Python с использованием NumPy. Эта библиотека способна обеспечить сквозное обучение простых нейросетевых моделей. По ходу дела мы поговорим о различных компонентах фреймворков глубокого обучения. Библиотека, которую мы будем рассматривать, совсем невелика, меньше 100 строк кода. А это значит, что с ней будет достаточно просто разобраться. Полный код проекта, которым мы будем заниматься, можно найти здесь.
Читать полностью »

Почему Discord переходит с Go на Rust - 1

Rust становится первоклассным языком в самых разных областях. Мы в Discord успешно используем его и на серверной, и на клиентской стороне. Например, на стороне клиента в конвейере кодирования видео для Go Live, а на стороне сервера для функций Elixir NIF (Native Implemented Functions).

Недавно мы резко улучшили производительность одной службы, переписав её с Go на Rust. В этой статье объясним, почему для нас имело смысл переписать службу, как мы это сделали и насколько повысилась производительность.
Читать полностью »

Однажды я разговорился с разработчиком из компании-клиента о программном обеспечении. Мне стоило бы понять то, что разговор пошёл куда-то не туда, когда собеседник сказал о том, как нам, разработчикам ПО, повезло: «Мы обманом заставляем организации платить нам за, как кажется, простую работу». Неважно — насколько некто продвинулся в деле написания кода, но я полагаю, что не стоит говорить обо всей индустрии разработки программного обеспечения как о чём-то вроде шайки мошенников.

Я не стал заострять на этом внимание, разговор добрался до Agile. Клиент, в целом, был открыт идее испытания новых методологий и улучшения своих рабочих процессов. Но — лишь до тех пор, пока я не упомянул о разработке через тестирование (TDD, Test-Driven Development). Единственным ответом на это была следующая фраза: «Значение TDD преувеличено».

Мой ответ тем, кто полагает, что значение TDD преувеличено - 1

Мне не только больно было это слышать, но это заставило меня понять то, что TDD — это ещё одна из тех Agile-методологий, которые могут выглядеть чем-то вроде «городских легенд». Это — то, что заставило меня написать данный материал, в котором мне хотелось бы обратиться к тем, кто сомневается в ценности TDD.
Читать полностью »

Мой второй год в качестве независимого разработчика - 1
Иллюстрация Лорейн Йоу. Суслик-талисман языка Go адаптирован из работ Рене Френч

Два года назад автор этой статьи Майкл Линч (Michael Lynch) уволился с должности инженера-программиста в Google, чтобы начать собственный бизнес (см. статью «Почему я ушёл из Google и начал работать на себя», 443 комментария на Хабре, +216). Вместо «Google» в заголовок можно поставить название любой крупной компании — фабрики программного обеспечения, где каждый программист считается винтиком в большой машине, будь то Microsoft, EPAM, etc…

Мы решили перевести вторую часть статьи — посмотрим, что получилось у автора в качестве независимого разработчика. В первой части он упоминал о проекте Indie Hackers: это онлайн-сообщество для основателей маленьких предприятий по разработке ПО. Ключевое слово «маленьких». Это не будущие цукерберги, не основатели стартапов, а те, кто хочет построить скромный прибыльный бизнес, дающий средства к существованию.

Интересно, что стало с его проектами. Об этом ниже в оригинальном тексте автора.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js