Search
Write a publication
Pull to refresh
30
0
Александр Трахимёнок @astec

User

Send message

Prettier в крупных проектах: тратим 20 минут на настройку, забываем о форматировании навсегда

Reading time3 min
Views43K
Разработчики часто не могут договориться о форматировании кода, и типичный рабочий день для многих начинает выглядеть так: кофе, кодинг, всё мирно и хорошо, — а потом, бац, и наступает код-ревью, на котором выясняется, что ты где-то поставил скобочки не так или не перенес что-то на новую строчку.



Год назад одна из команд в Skyeng сталкивалась с такими холиварами почти на каждом ревью. Но затем человек, у которого больше всех болело, сказал: «Теперь живем на Prettier'e, согласны?» За следующие месяцы ребята ни разу не поднимали вопрос о форматировании, а теперь эта штука стоит на всем монорепозитории фронтенда — и его использует каждая команда, которая туда заезжает.
Читать дальше →

Angular 9 и Ivy: ленивая загрузка компонентов

Reading time10 min
Views16K
Ленивая загрузка компонентов в Angular? Может, речь идёт о ленивой загрузке модулей с помощью маршрутизатора Angular? Нет, мы говорим именно о компонентах. Текущая версия Angular поддерживает лишь ленивую загрузку модулей. Но Ivy даёт разработчику новые возможности в работе с компонентами.


Читать дальше →

Монорепозитории: пожалуйста не надо

Reading time10 min
Views56K
От переводчика: Привет, Хабр! Да, это очередная статья о преимуществах и недостатках монорепозиториев. Собирался написать свою статью о том, как мы используем монорепозиторий, как мы переходили с maven на bazel и что из этого получилось. Но пока собирался с мыслями, вышла отличная статья от разработчика из Lyft, которую я и решил для вас перевести. Обещаю опубликовать свои дополнения к статье, а также опыт с bazel в виде продолжения.
Мы в Новом 2019 году, и я настроен на еще одну дискуссию о преимуществах (или отсутствии таковых) в хранении всего исходного кода организации в «Монорепозитории». Для тех из вас, кто не знаком с этим подходом, идея состоит в том, чтобы хранить весь исходный код в едином репозитории системы контроля версий. Альтернатива, конечно, заключается в том, чтобы хранить исходный код в нескольких независимых репозиториях, разделяя их обычно по границе сервисов/приложений/библиотек.

В данном посте я буду называть такой подход «полирепозиторий».

Повысьте производительность SPA, разбив ваши библиотеки Angular на несколько частей

Reading time7 min
Views8.6K

Привет, Хабр! Представляю Вашему вниманию перевод статьи «Improve SPA performance by splitting your Angular libraries in multiple chunks» автора Kevin Kreuzer.


Angular — отличный фреймворк. Мы все его любим <3.


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


Сегодня благодаря Angular CLI библиотеки легко создать. Они прекрасно подходят для того, чтобы делиться кодом между несколькими приложениями.


Так как они могут быть использованы во многих местах, производительность является критическим аспектом. Библиотека, которая имеет низкую производительность может замедлять несколько приложений!


В Frontend есть разные типы производительности. runtime — производительность и initial load. В этой статье мы сосредоточимся на initial load.


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

Читать дальше →

ruleguard: динамические проверки для Go

Reading time8 min
Views5.6K


В этой статье я расскажу о новой библиотеке (и утилите) статического анализа go-ruleguard, которая адаптирует gogrep для использования внутри линтеров.


Отличительная особенность: правила статического анализа вы описываете на особом Go-подобном DSL, который на старте ruleguard превращается в набор диагностик. Возможно, это один из самых легко конфигурируемых инструментов для реализации кастомных инспекций для Go.


В качестве бонуса, мы поговорим об go/analysis и его предшественниках.

Читать дальше →

Строгие правила для нового приложения на Angular

Reading time8 min
Views11K

Как создать и настроить Angular проект с нуля


Статья была обновлена 29 Февраля 2020 чтобы следовать лучшим практикам.


Короткое вступление


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

Читать дальше →

В каких странах и городах разработчики зарабатывают больше, если учесть налоги и стоимость жизни?

Reading time6 min
Views114K


Если сравнить зарплату разработчика программного обеспечения квалификации middle в Москве, Лос-Анджелесе и Сан-Франциско, взяв данные по зарплатам, которые оставляют сами разработчики на специализированных сервисах по мониторингу зарплат, то увидим: 

  • В Москве зарплата такого разработчика на конец 2019 года составляет 130 000 руб. в месяц (по данным сервиса зарплат на moikrug.ru)
  • В Сан-Франциско — 9 404 долларов США в месяц, что примерно равно 564 000 руб. в месяц (по данным сервиса зарплат на glassdoor.com).

На первый взгляд, разработчик в Сан-Франциско получает более чем в 4 раза большую зарплату. Чаще всего на этом сравнение заканчивают, делают печальный вывод о колоссальном разрыве в уровне зарплат и вспоминают поросёнка Петра.
Читать дальше →

Privacy by design и privacy by default (спроектированная защита данных и конфиденциальность по умолчанию по GDPR)

Reading time11 min
Views10K
image

В мае 2018 года вступил в силу новый закон о защите персональных данных – General Data Protection Regulation или Регламент Европейского Парламента и Совета Европейского Союза 2016/679 от 27 апреля 2016 г. о защите физических лиц при обработке персональных данных и о свободном обращении таких данных, а также об отмене Директивы 95/46/ЕС (далее GDPR), который предоставляет резидентам ЕС инструменты для полного контроля над своими персональными данными, защита которых является фундаментальным правом в Европейском союзе. Статья 25 GDPR требует от компаний создания систем со встроенной защитой персональных данных и систем конфиденциальности по умолчанию — privacy by design и privacy by default. В настоящем материале мы разберем эти понятия.
Читать дальше →

Конфигурация приложений на Angular. Лучшие практики

Reading time6 min
Views20K

Как управлять файлами конфигурации среды и целями


Когда вы создали angular приложение с помощью Angular CLI или Nrwl Nx tools у вас всегда есть папка с фалами конфигурации окружения:


<APP_FOLDER>/src/environments/
                       └──environment.ts
                       └──environment.prod.ts
Читать дальше →

Какие инструменты помогут соответствовать GDPR

Reading time3 min
Views5K
Подборка утилит, литературы и фреймворков, которые помогут разобраться в требованиях регламента и подскажут, как им соответствовать. Под катом — бесплатные продукты от стартапа Algolia, сервисы которого использует Twitch, а также несколько открытых и проприетарных решений.

Читать дальше →

Локализация приложения за 10 шагов

Reading time8 min
Views6.2K

По прогнозам аналитической платформы App Annie, в ближайшие 4 года интерес к мобильным приложениям будет стабильно расти: если вы задумываетесь о выводе своего приложения на новые рынки, возможно, сейчас самое подходящее время.

За два года работы менеджером по локализации в дейтинг-приложении Badoo я поняла, что в локализации есть свои правила, зная которые можно качественно и быстро адаптировать для нового рынка любой продукт. Они пригодятся тем, кто хочет локализовать приложение, но не знает, с чего начать.
Читать дальше →

9 библиотек веб-компонентов

Reading time3 min
Views14K

1. Material components web


image

Если использовать в заголовке слово «Material», то это гарантированно даст первые места в рейтингах UI-библиотек. Веб-библиотека Google Material-components — это версия веб-компонента библиотеки Material-UI. Эти веб-компоненты можно включить в широкий спектр контекстов и сред.
Читать дальше →

Внедряем Sign in with Apple — систему авторизации от Apple

Reading time6 min
Views56K
Привет, Хабр!

Этим летом на конференции WWDC 2019 Apple представила собственную систему авторизации Sign in with Apple  и сделала ее обязательной для всех приложений в App Store, которые используют вход через соцсети. Исключение составляют образовательные, корпоративные, правительственные и бизнес-приложения, использующие собственную авторизацию. К Sign in with Apple Apple сделала качественную документацию, и в этой статье мы на примере ЦИАН расскажем, как внедрить ее в свой сервис.


Читать дальше →
30 октября IT-департаменту МКБ в Твери стукнуло 6 лет, поэтому запуск хабра-тетрис-челленджа пришелся как нельзя кстати. Это сейчас в подразделении представлено несколько направлений: мобильная разработка, аналитика, тестирование, Siebel-разработка и колл-центр, а 6 лет назад офис разработки открыли три человека, двое из которых работают в МКБ до сих пор. Они приняли вызов первыми.
Знакомьтесь!

Прикручиваем ngx-translate в Angular приложение. Практическое пошаговое руководство

Reading time4 min
Views24K

Практическая пошаговая инструкция как прикрутить динамическую локализацию (возможность выбора языков) в веб приложении на Angular 4+ используя @ngx-translate/core.


В принципе можно найти публикации на подобную тему, может быть достаточно самой документации этой библиотеки, но я хотел систематизировать эту инструкцию для более удобного применения. Такая закладка в копилку начинающего Angular разработчика. В конце статьи есть ссылка на открытый репозиторий с примером.


Читать дальше →

9 лучших опенсорс находок за сентябрь 2019

Reading time2 min
Views53K

Доброго Хактоберфеста, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за сентябрь 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, C, Rust, Ruby, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.


Прошлый выпуск.

Читать дальше →

Как заопенсорсить npm-пакет с нормальным деплоем, CI и демо (без потери радости к жизни)

Reading time6 min
Views11K

Вот вы сделали что-то новое и крутое, приходит мысль — выложить в опенсорс и опубликовать в npm.


Просто запушить код в публичный репозиторий недостаточно. Это обречет проект на отсутствие развития и провал. А с другой стороны вспоминается целый ряд скучных процессов: версионирование и публикация пакета, настройка непрерывной интеграции, хостинг и деплой странички с демо проекта, организация возможности контрибьютинга для комьюнити.


Если вы хотели опубликовать небольшой пакет, то такой набор работы может сильно отпугнуть. Светлая идея поделиться чем-то полезным уйдет в долгий ящик сложных дел.


На самом деле всё это может занять у вас меньше часа. Без знаний DevOps и совершенно бесплатно.


Читать дальше →

Скучный технологический стек интернет-компании из одного человека

Reading time8 min
Views26K

Поисковая выдача на ListenNotes.com

Listen Notes — это поисковая система и база данных подкастов. Технология на самом деле очень скучная. Никакого ИИ, глубокого обучения или блокчейна. «Если вы должны объявлять о внедрении ИИ, то вы не используете Настоящий ИИ» :)

После прочтения этой статьи вы сможете повторить мой проект или легко сделать нечто подобное. Не придётся нанимать много разработчиков. Помните, когда Instagram привлёк $57,5 млн и отошёл к Facebook за $1 млрд, у них было всего 13 сотрудников — и это не только разработчики. Покупка Instagram произошла в начале 2012-го. Сейчас 2019 год, и сегодня как никогда просто создать что-то значимое с крошечной инженерной командой — даже из одного человека.

Делаем таблицу с бесконечной прокруткой без event listener

Reading time2 min
Views9K

Что ж оно так лагает-то?



Если при рендеринге огромной таблицы с какой-нибудь transition анимацией не делать ничего дополнительно, то приложение будет лагать, а пользователь страдать.


И что же делать?

Что интересного я вынес за два года разработки и продвижения мобильной игры

Reading time7 min
Views32K
Привет, Хабр! Давно не виделись… С прошлой публикации — «Чему я научился на своих ошибках или как сделать вторую игру лучше» прошло уже целых 2 года! Сегодня я расскажу о том, что нового я попробовал в продвижении, монетизации приложения и конечно же о том, что из этого вышло.


Читать дальше →

Information

Rating
Does not participate
Location
Ирландия
Date of birth
Registered
Activity