Архитектура современных веб-приложений на примере adopt.com.ua. Внешние сервисы

В предыдущей части я рассказал о ядре. Теперь пройдемся о внешних вещах. На Heroku эфемерная файловая система. Это значит, что после перезагрузки инстанса, например при редеплое, все записанные файлы пропадут. Основной контент сайта—это фото, поэтому их нужно где-то хранить. Для этого мы используем AWS S3. Файлы прозрачно загружаются на S3 с помощью RoR, для этого не нужно писать дополнительного кода. То же кстати есть и...

Таймкоди до стріму з Олександром Соловйовим: Clojure, як стати CTO, складність бізнесу

Саша в Ютубі: https://www.youtube.com/channel/UChAo... Твітер: https://twitter.com/asolovyov Телеграм канал: https://t.me/bitethebyte​ Та сама крутезна доповідь про FRP: https://www.youtube.com/watch?v=R4sTv...​ Топ тем для тих у кого мало часу: 00:15:40​ Чи виправдане використання Clojure зважаючи на низьку популярність мови? 00:44:39​ Які якості важливі для СТО? 01:21:42​ Звідки складність...

Архитектура современных веб-приложений на примере adopt.com.ua

Я разработчик сервиса по пристройству животных — https://www.adopt.com.ua/ Там вы можете найти себе друга—котика или собачку. Хотя сайт простой, я применяю те же подходы для разработки своих коммерческих проектов. Если бы у меня стояла задача делать стартап, то я всё делал бы так же. Расскажу о том, как всё устроено внутри. Сайт сделан на Ruby on Rails. Это веб-фреймворк который предоставляет всё,...

Когда полезно уметь в leetcode

На той неделе я писал о том, что знания алгоритмов и умение быстро решать задачи из литкода мне никогда не пригождались. Ну что ж, instant karma! На выходных я писал компилятор телеграмовских сообщений в html—это нужно для двухсторонней синхронизации с Ghost. Взял собщение из телеги, конвертнул в html, засунул в Ghost, получил пост на сайте, Profit! Изи таска. Телеграм присылает сообщения в хитром формате. Вы...

Доступность

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

daliy rozhok №3: скучная жизнь, сефл-хелп книги, бесит интернет

Дайджест канала @daily_rozhok где я пишу про рандомные вещи. Сегодня в меню: Необходимость взаимодействия с разными людьми в интернете, часто поджигает мне задницу: Бомбанул от критики—как я ввязался в срач в комментах к своему же посту и проиграл. Что нужно было делать чтобы не проиграть. Shadowban—фича мечты. Возможность блокировать людей направо и налево и строить свой манямирок без неугодных. В последнее время вместо...

Клубхауз и польза

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

Computer Science знания, которые мне пригодились

В прошлом материале я перечислил вещи, которые я не использую на практике. Сегодня поговорим о том, что важно и нужно. Поехали. Как устроены и работают разные базы данных и хранилища, как работают индексы, зайчатки CAP, как работают транзакции, что такое план запроса, что такое N+1—на мой взгляд это одни из важнейших знаний которыми должен обладать любой разработчик имеющий дело с хранением данных. В современной...

Computer Science знания, которые мне не пригодились

В культуре собеседований западных продуктовых компаний и тех кто под них косит принято гонять кандидатов по базам CS: решать алгоритмические задачи, спрашивать заковыриствую теорию. Бытует мнение, что на практике эти знания применяются крайне редко—поэтому мы, кандидаты, подгораем от необходимости этих знаний на собесах. Зачем спрашивать, если у вас формочки? Оставив в стороне целесообразность проведения таких интервью я сфокусируюсь на своём опыте—какие знания из "базы"...

Раздробленный софт

Каждый день в интернетах появляются новые продукты. Какие-то из них решают маленькую задачу, например превращают веб-страницу в аудио-подксат, какие-то—комплекс, например систему управления проектом. Больше всего меня напрягает в этом сложность интеграции решений и сложность встраивания одно в другое. Для работы с блогом я использовал разные процессы. Сейчас я остановился на self-hosted "вордпрессе" (ghost) + self-hosted сервисе для кросспоста в телеграм. Последний потихоньку обрастает фичами. А теперь...

Stop it!

Перед прочтением посмотрите классический ролик о психотерапии. Женщина приходит к терапевту и рассказывает ему о своих страхах. А тот на все её запросы отвечает "Stop it!". Прекрати! Где-то так оно и работает. Если тебя что-то не устраивает то надо просто взять и перестать это делать. If you're homeless, just buy a house. Другого способа нет. Мне трудно постепенно сокращать нежелательное поведение, значительно проще радикально всё обрубить....

Главный ограничитель карьерного роста

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

daily rozhok №2: продвижение канала, собирательство музыки, инфобизнес, "Тонкое искусство пофигизма", донаты

Главное на этой неделе—серия мета-постов о создании и продвижении канала, если хотите этим делом заняться то советую к изучению. Три простых шага: Создаём и продвигаем: Как я продвигал и рекламировал телеграм канал — способы продвижения этого канала, которые сработали и не сработали, включая платную рекламу. История как я купил сотню подписчиков за 4 тыщи рублей. Монетизируем: Как я продавал рекламу на телеграм канале — сколько денег заработал...

Простые решения—ресайз картинок для вебсервиса

Я занимаюсь проектом adopt.com.ua—каталог котиков и собачек на пристройство. Основной его частью является контент—фото животных. Куратор может загружать изображения любого размера. Чтобы они быстро отрисовывались у пользователей, нужно их ресайзить под размеры плашек. Это стандартная задача для проектов где есть картинки или аватарки. Часто для оптимизации фото желательно отресайзить в несколько разных размеров, под мобилы и десктопы. Как она решается обычно? Несколько...

Как я наивно советовал фичу сделать

Для прослушивания и покупки музыки я пользуюсь сервисом Bandcamp. Они отличаются от традиционных стриминговых платформ типа спотифая, дизера, саундклауда и прочих музиков тем, что продают музыку, в электронном (аудиофайлы) и физическом (диски, пластинки) виде. Сервис берет себе комиссию 15% за цифровые штуки и 10% за физические. Многие артисты жалуются, что сотни тысяч прослушиваний на стриминговых сервисах не приносят им никакой прибыли. Bandcamp, в свою очередь придерживается...

daily rozhok №1: лутбоксы укрпочтой и коучи

Летом я завел канал для ежедневных мыслей. Почему отдельный? Иногда хочется написать о каком-то событии, единомоментной фрустрации, воспоминании или новости, и этот пост мне кажется несколько оффтопным или незначимым тут.Каналы куда пишут каждый день, читают сильно меньше. Экспериментально я вывел что три средних поста за неделю, в понедельник, среду и пятницу, дают больше всего просмотров. Если начинать пихать еще или в другие дни, то люди...