В предыдущей части я рассказал о ядре
[https://www.rozhkov.me/modern-web-applications-architecture/]. Теперь пройдемся
о внешних вещах.
На Heroku эфемерная файловая система. Это значит, что после перезагрузки
инстанса, например при редеплое, все записанные файлы пропадут. Основной контент
сайта—это фото, поэтому их нужно где-то хранить. Для этого мы используем AWS S3
[https://aws.amazon.com/s3/]. Файлы прозрачно загружаются на S3 с помощью RoR,
для этого...
На той неделе я писал о том, что знания алгоритмов и умение быстро решать задачи
из литкода мне никогда не пригождались
[https://www.rozhkov.me/useless-computer-science-knoweledge/].
Ну что ж, instant karma! На выходных я писал компилятор телеграмовских сообщений
в html—это нужно для двухсторонней синхронизации с Ghost. Взял собщение из
телеги, конвертнул в html, засунул в Ghost, получил пост на сайте, Profit! Изи
таска.
Телеграм присылает...
В прошлом материале [https://www.rozhkov.me/useless-computer-science-knoweledge/] я
перечислил вещи, которые я не использую на практике. Сегодня поговорим о том,
что важно и нужно. Поехали.
Как устроены и работают разные базы данных и хранилища, как работают индексы,
зайчатки CAP, как работают транзакции, что такое план запроса, что такое N+1—на
мой взгляд это одни из важнейших знаний которыми должен обладать любой
разработчик имеющий дело...
В культуре собеседований западных продуктовых компаний и тех кто под них косит
принято гонять кандидатов по базам CS: решать алгоритмические задачи, спрашивать
заковыриствую теорию. Бытует мнение, что на практике эти знания применяются
крайне редко—поэтому мы, кандидаты, подгораем от необходимости этих знаний на
собесах. Зачем спрашивать, если у вас формочки?
Оставив в стороне целесообразность проведения таких интервью я сфокусируюсь на
своём опыте—какие знания из "...
Когда твоя компания предоставляет услуги для другой компании то часто между вами
сильно усложняется коммуникация и взаимодействие.
Например, у некоторых корпоративные правила требуют, чтобы все шло через
электронную почту. У других—ты не можешь достучаться напрямую до нужных тебе
людей, а можешь действовать только через посредников.
Это сильно усложняет процесс и делает его каким-то бесчеловечным. Я уверен что
на том конце провода такие же люди, которые...
Есть у меня такая отрицательная черта—не особо думать перед выбором чего-то.
Главное ввязаться, а там разберемся.
Терпеть не могу планировать и двигать колбаски на диаграммах ганта. Писать
спецификации и участвовать в длительных обсуждениях роадмапа на следующие 10
лет. Обсуждать то, что не нужно прямо сейчас и уже, что не горит.
Выбирать товары, технику и перечитывать миллион обзоров. Пытаться поймать самое
лучшее.
Закладывать архитектуру на столетия...
На первой работе я провел 7 с хвостиком лет. На второй—был первым
сотрудником-инженером.
Раньше мне это казалось крутым. Будучи в компании незнакомых коллег я всегда
пользовался возможностью похвастаться "я тут уже Х лет!", "вот этот проект
стартовал много лет назад, еще когда тут из вас никого не было!", "я тут первый
инженер, а вы не знали? да, вот эти все...
Что отличает продуктивного инженера от посредственного? Почему один делает
задачу месяц, а другой—пару часов?
Возьмём бота. По моим оценкам, джун управится с задачей за 40 часов, а
прокачанный чел—за 4-8, минимимум в 5 раз быстрее. Я посмотрел историю Toggl и
нашел задачу очень схожую с квиз-ботом, которую сделал как раз за 4 часа. За
счет чего достигается такая скорость?
Первое и самое главное—наличие...
Какие могут быть варианты развития маленького чат-бота? В исходном тексте я
описал инфраструктурные вещи—усложнение всего, кроме логики бота. Что делать,
если хочется программировать, а не фуллстечить, девопсить и разбираться с
кубернетесами?
Бот работает только в телеграме. Скорее всего, там отсутствует прослойка логики
обработки диалогов. Что, если понадобится добавить еще один мессенджер? Для
этого нужно добавлять абстракции—диалог, кнопка, событие от мессенджера,
контекст пользователя. Выде...
Джуниор должен управиться с базовым чатботом за рабочую неделю, 40 часов чистого
времени.
Чем я руководствуюсь при такой оценке?
Во-первых, 40 часов—это очень много. Это 5 дней напряженной работы, 10 дней
обычной офисной работы или 20(!) дней по 2 часа в день. Колоссальное количество
времени.
Во-вторых, у меня уже есть эмпирические данные:
1. Когда я брал к себе в шлюпку первого джава-джуна, то дал тестовое...
Розглянемо реалізацію квіз-чатбота на прикладі Java.
Більшість вакансій з Java вимагають знання Spring/Hibernate. Цей фреймворк вже
давно домінує на ринку, і якщо ви його вивчите, то потім легко зможете перейти
на інший, оскільки концепції скрізь однакові.
Припустимо, що ви вже вмієте писати "хелловорлд" на Java і знаєте всі базові
конструкції мови. Як почати робити чатбот?
1. Знайти існуючих ботів, подивитися, як вони працюють,...
Меня попросили предложить идею пет-проекта для портфолио джава джуна без опыта.
Такой, цитирую, "чтобы при подаче заявки в резюме прикладывать гитхаб и это
делало его интересным кандидатом?". Дальше буду говорить о веб-разработке, но
принципы применимы к чему угодно.
Я скептически отношусь к гитхабу в резюме [https://www.rozhkov.me/github-in-cv/]. Не
говорю за других нанимающих менеджеров, но я никогда не видел интересных
проектов—обычно...
Есть вид задач, суть которых заключается в том, что нужно кого-то переиграть.
Например, я много работал со скрапингом данных, это вообще популярная тема. Как
вы можете догадаться, не все ресурсы любят, когда их скрапят, и стараются
защититься—например ставят себе проверку на клиентский js, подключают сервисы
антискрапинга (incapcula), блокируют по IP (самое простое что может быть),
делают нечитаемые классы для стилей чтобы труднее было писать xpath...
Замечали ли вы когда-нибудь, насколько приятнее работать с банкоматами в который
установлен древний софт на ncurses? Они моментально срабатывают на любое нажатие
клавиши, не тупят при переходах между экранами. Новые терминалы, на которых
(вероятно) открывается что-то типа электрона нереально медленные по сравнению со
старыми. Как по мне интерфейсная отзывчивость сильно недооценена.
Впрочем я не о программах.
Большинство действительно нужной работы, которую я делаю, работается за очень...