Как стать автором
Обновить
5
0

Пользователь

Отправить сообщение

Заблуждения программистов о времени

Время на прочтение12 мин
Количество просмотров76K

Музей-скансен эпохи Средневековья в Дании в режиме обычной работы (слева) ставит целью воссоздать повседневную жизнь города на стыке XIV и XV веков. Для съёмок фильма (справа) он «погрязнел»

Для киносъёмок в музей под открытым небом Middelaldercentret внесли несколько изменений. Вместо аккуратной каменной улицы развели неприятную кашицу из грязи, не самые роскошные стеклянные окна прикрыли досками и развесили везде выцветшее тряпьё. Здания как следует измазали чем-то коричневым, кое-где зачем-то перемешав субстанцию с соломой. В случайное здание воткнули факел, а не попытались изобразить лучину или фонарь.

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

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

Попытки собрать заблуждения про время и часовые пояса на Хабре уже были шесть и десять лет назад. Но без контрпримеров не так интересно.

Заблуждение 1. В сутках 24 часа или 86 400 секунд


Иногда и кое-где стрелки часов переводят, создавая сутки длиной в 23 и 25 часов — всё очевидно. Будет неплохо углубиться в случаи поэкзотичней.
Читать дальше →

Что будет, если от разработчиков не отстать: умирающая команда

Время на прочтение11 мин
Количество просмотров61K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

Проект — внутренний банка, он нужен для улучшения работы внутри компании. Традиционных решений в кровавом энерпрайзе — два: нанять новую команду (но вгружать мидла на проект такой сложности — три-четыре месяца) или же оставить проект на поддержке, через два года найти ему замену, а команду тихо похоронить в подвале. Точнее, не так: те, кто плывет по течению и не заботится о карьере, остаются тихо сидеть «на пенсии», то есть в бесконечной поддержке проекта. А самые проактивные тут же перейдут в другие команды или другие компании.

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →

14 КБ это слишком много. Делаем сайты меньше 1 КБ

Время на прочтение6 мин
Количество просмотров32K

Минимализм хорош во всех отношениях. Во-первых, это красиво. Во-вторых, эффективно. Разница в скорости загрузки сайтов особенно заметна на фоне монструозных корпоративных приложений с мегабайтами скриптов, тормозящих практически на любом устройстве. Поразительно, что за годы компьютеры ускорились в десятки раз, а сайты грузятся медленнее, чем раньше (график на КДПВ за 2011–2019 гг, статистика по скорости от Httparchive.org). Только подумайте, на сколько же сайтам нужно жиреть каждый год, чтобы сохранить эти тормоза!

Известно, что для минимизации задержки важным рубежом является 14 КБ. Если ужать веб-страницу или её первую часть в меньший объём, загрузка сильно ускоряется из-за спецификации TCP, которая определяет максимальный размер пакета в 1500 байт (из них 1460 полезных) и алгоритма медленного старта TCP, ограниченного десятью пакетами.

Но 14 КБ — не предел оптимизации. Далеко не предел.
Читать дальше →

React, я люблю тебя, но ты сводишь меня с ума

Время на прочтение13 мин
Количество просмотров19K


Привет, друзья!


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


Дорогой React, мы встречаемся уже почти 10 лет. Мы прошли долгий путь вместе. Но ситуация вышла из-под контроля. Нам нужно поговорить.

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

Дизайн таблиц для чайников

Время на прочтение4 мин
Количество просмотров36K

Привет, Хабр!

Меня зовут Костя, и я отвечаю за дизайн в AGIMA. Недавно, рассказывая коллеге, как надо было оформить таблицу, я словил дежавю: делал я это явно не первый раз. Поэтому я решил написать эту совсем базовую статью о том, как делать приличные таблицы, чтобы у меня всегда было куда послать следующего спрашивающего. Статья будет полезна как начинающим дизайнерам, так и просто жаждущим приподнять уровень своих документов чуть выше плинтуса. А в конце ,elen ссылки, которые помогут вам достичь табличного совершенства.

Читать далее

Как развернуть React приложение с помощью AWS S3 и CloudFront

Время на прочтение13 мин
Количество просмотров7.4K

Создадим приложение с использованием фреймворка Next.js, настроим облачные сервисы Amazon S3, Amazon CloudFront, AWS Lambda@Edge, развернем приложение и настроим маршрутизацию доменного имени.

Читать далее

Спросим у Google, насколько наша встреча была предначертана судьбой

Время на прочтение17 мин
Количество просмотров23K

Введение


Когда я познакомилась со своим бойфрендом, я иногда ощущала небольшое сожаление от того, что у нас не было умилительной киношной истории встречи, несмотря на то, что мы пять лет жили в одном и том же городе и учились в одном университете. Наша история не уникальна для многих пар в 2020 году: на спаде между двумя волнами COVID мы начали общаться онлайн, в приложении для знакомств Bumble.

Я подумала, что благодаря истории местоположений Google, втихомолку отслеживающей данные GPS, можно было бы найти ответ на вопрос о том, насколько судьбоносно пересекались наши дорожки до встречи. Насколько близко мы были к тому, чтобы воспроизвести романтическую сцену «среди десятков людей они нашли глазами друг друга»?
Читать дальше →

Создаем Telegram бот с регистрацией пользователей из таблицы в Airtable + Python

Время на прочтение1 мин
Количество просмотров14K

Создавайте чат-бот просто копируя базу данных в Airtable. Обработчики команд чат-бота пишутся на Python прямо в таблице в Airtable. Хранение данных пользователей так же возможно в базу Airtable.

Читать далее

Заблуждения программистов о почтовых адресах

Время на прочтение15 мин
Количество просмотров49K
У всех легковых автомобилей четыре колеса. Исключение из этого правила — Reliant Robin.

Если у автомобиля больше четырёх колёс, то это грузовик, автобус или вообще автопоезд. Исключение найдётся и здесь: Mercedes-AMG G 63 6x6.

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

Заблуждение 0. Для доставки нужны адрес и имя


В мае 2016 года издание Skessuhorn рассказало трогательную историю: семья фермеров в Хоуларе на северо-западе Исландии получила письмо, на котором не были указаны ни имена получателей, ни адрес, по которому его нужно было доставить. Письмо отправил зарубежный турист, который гостил в посёлке Хоулар и точного адреса не знал. Вместо этого на конверте было изображено местоположение получателя с кратким описанием места, вместо имени — «датчанка, которая работает в супермаркете в Будардалюре».

Адрес называл точно только страну (Исландия) и посёлок (Будардалюр). Дальше шло текстовое описание: лошадиная ферма, где живёт исландская/датская семья с тремя детьми и большим количеством овец. Письмо турист отправил из столицы Исландии, Рейкьявика.


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

Основные изменения React 18

Время на прочтение4 мин
Количество просмотров16K

Привет, меня зовут Кристина, я фронтенд-разработчик в Домклик. Хочу рассказать немного про основные изменения React 18.

Читать далее

Архитектура приложений Web 3.0

Время на прочтение11 мин
Количество просмотров22K

Архитектура приложений Web 3.0 (или «DApps») полностью отличается от приложений Web 2.0. 

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

Как приложение Web 2.0 это может показаться простым, но в архитектуру Medium входит многое, чтобы сделать все это возможным:

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

Во-вторых, бэкэнд (написанный на таком языке, как Node.js, Java или Python) должен определять бизнес-логику Medium. Например, что происходит, когда новый пользователь регистрируется, публикует новый блог или комментирует чей-то еще блог? 

В-третьих, фронтэнд (обычно написанный на JavaScript, HTML и CSS) должен определять логику пользовательского интерфейса Medium. Например, как выглядит сайт и что происходит, когда пользователь взаимодействует с каждым элементом на странице?

Собрав все это вместе, когда вы пишете сообщение в блоге на Medium, вы взаимодействуете с его фронтэндом, который общается с его бэкэндом, который общается с его базой данных. Весь этот код размещается на централизованных серверах и отправляется пользователям через интернет-браузер. Это хороший общий обзор того, как сегодня работает большинство приложений Web 2.0.

Читать далее

Что такое дженерики в TypeScript?

Время на прочтение5 мин
Количество просмотров20K

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

Читать далее

Как достичь производительного рендеринга в браузере

Время на прочтение10 мин
Количество просмотров6.2K

Один великий китайский философ сказал: «каждый разработчик должен понимать, как исполняется его программа». Что ж, давайте разбираться. Говорить будем про рендеринг и его производительность.

Меня зовут Глеб Михеев, я CTO Skillbox Holding, а также руководитель программного комитета FrontendConf. Уже как 19 лет работаю в коммерческой разработке. Сегодня я расскажу, как устроен браузерный конвейер поставки кадров на экран и что нужно знать каждому разработчику, чтобы его интерфейсы были отзывчивыми, не лагали, а анимации были плавными и выдавали 60fps даже при высокой вычислительной нагрузке на main thread.

Читать далее

Как продвигать стартап: 12 способов выхода на рынок от 100 «единорогов»

Время на прочтение7 мин
Количество просмотров9.4K

Рассказ о том, с каких шагов начинали продвижение своих продуктов 100 самых дорогих стартапов мира, и два алгоритма, которые помогут вам выбрать свою дорогу к первой 1000 пользователей.

Читать далее

Невыжившие в IT

Время на прочтение7 мин
Количество просмотров204K

Этот текст я пишу из лучших побуждений, безо всякой иронии, снобизма и насмешки. Хочу сберечь время и нервы тем, кто поддался на «войти в айти» и прямо сейчас учится сортировать массивы, парсить строки и верит в «да-да, этим ты и будешь заниматься на работе».

Есть такое понятие – ошибка выжившего. Грубо говоря, о явлении, тенденции или событии судят по людям, которые прошли его успешно – выжили. Совершенно игнорируя информацию о тех, кто успеха не достиг. В результате случайная удача интерпретируется как устойчивая вероятность. Если интересна мат.часть – почитайте Нассима Талеба или Даниэля Канемана. Их книги существенно дешевле курсов по ИТ.

Я опишу типичные ошибки тех, кто не выжил. И, соответственно, не вошёл в ИТ. Всё из опыта личных наблюдений.

Да, если «тут всё неправда», «а вот мой друг Коля успешно…» или «а у меня получилось» - прекрасно, текст не про вас и не для вас. Вы и ваш друг Коля – выжившие.

Читать далее

Доступ к API Binance, KuCoin и Huobi на C#

Время на прочтение8 мин
Количество просмотров17K


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

Рассмотрим одну из таких ситуаций, когда получать данные на клиента напрямую с биржи не удобно, в нашем случае это получение списка торговых пар биржи отсортированных по таким показателям как например, ликвидность и волатильность. Вот в примере ниже, мы из клиентского кода на JavaScript обращаемся за списком продуктов биржи к своему Rest full API Web Service по ссылке

https://cryptoalert.mizerov.com/api/Products/” + ex

где ex – код биржи.

Читать далее

Есть ли в вашей IT команде саботажник?

Время на прочтение8 мин
Количество просмотров65K

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

Если вам всё это знакомо, то почти наверняка в вашей команде есть скрытый саботажник.

Читать далее

«Спроси почему, %&@$#?», или как саботажники захватывают власть в коллективе

Время на прочтение7 мин
Количество просмотров33K

Предыдущая статья про саботажников набрала более 55 тысяч читателей, став одной из самых читаемых на «Хабре». И понятно, почему. Саботажники есть везде – как дырки в сыре, они пронизывают практически любой профессиональный коллектив. Сегодня мы разберём, как саботажники захватывают власть.

Читать далее

Козёл отпущения

Время на прочтение5 мин
Количество просмотров9.8K

Мой предыдущий пятничный пост про «козла-провокатора» неожиданно для меня и моих коллег вызвал непродолжительную, но бурную дискуссию в комментариях, где меня буквально обвинили в измене прогрессивным принципам современного овцеводства.

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

Приятного вам пятничного чтения!
Читать дальше →

Добавить свой React компонент к балуну над меткой/Placemark в react-yandex-maps, используя React.createPortal

Время на прочтение3 мин
Количество просмотров8.6K

Добрый день. Хочу поделиться информацией о том как мне удалось пририсовать динамическую React компоненту внутрь всплывающего окна над меткой на Яндекс карте.

Читать далее

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность