На скорость работы программиста сильно влияет переключение контекста. То есть примерно так. Если выполнить две задачи последовательно — это займёт 2 дня. А если попытаться делать их параллельно — 3.
Старайтесь работать в один момент времени только над одним проектом и убежать менеджеров, которые требуют обратного.
#процесс #softskills
Старайтесь работать в один момент времени только над одним проектом и убежать менеджеров, которые требуют обратного.
#процесс #softskills
Очень давно не публиковал дайджестов 🤓
- Вопросы будущему работодателю — о важных вещах, которые лучше уточнить на собеседовании
- Будущее программирование — Никита Тонский рассуждает о будущем и ворчит на настоящее
- Разработчик, который не думает, а просто делает — не нужен? — о ценности разработчика для бизнеса и его задачах
- Мы написали самый полезный код в своей жизни, но его выкинули на помойку. Вместе с нами — программисты вместо работы делали произведение инженерного искусства и их уволили, поручительная история о бизнесе
- Десять вещей, которые можно делать с GraalVM — разбор областей применения и причин использования GraalVM (возможно, на этой штуке скоро будут работать все модные бекенды)
#дайджест
- Вопросы будущему работодателю — о важных вещах, которые лучше уточнить на собеседовании
- Будущее программирование — Никита Тонский рассуждает о будущем и ворчит на настоящее
- Разработчик, который не думает, а просто делает — не нужен? — о ценности разработчика для бизнеса и его задачах
- Мы написали самый полезный код в своей жизни, но его выкинули на помойку. Вместе с нами — программисты вместо работы делали произведение инженерного искусства и их уволили, поручительная история о бизнесе
- Десять вещей, которые можно делать с GraalVM — разбор областей применения и причин использования GraalVM (возможно, на этой штуке скоро будут работать все модные бекенды)
#дайджест
Under JS
Подкастов IT-тематики куча, но последнее время я почти перестал их слушать. Почти во всех обсуждают одни и те же темы. Причем волнами — на этой неделе модно говорить о доступности, на следующей об удаленной работе.
Недавно начал слушать UnderJS Podcast. И он совсем другой. В нем разбирают более глубокие темы, обсуждают разное и интересное. Недавно были выпуски про Haskell, про Dart, рассуждение на тему стейт-менеджеров. Если вам близок JS-мир, послушайте этот подкаст.
#языки #фронтенд
Подкастов IT-тематики куча, но последнее время я почти перестал их слушать. Почти во всех обсуждают одни и те же темы. Причем волнами — на этой неделе модно говорить о доступности, на следующей об удаленной работе.
Недавно начал слушать UnderJS Podcast. И он совсем другой. В нем разбирают более глубокие темы, обсуждают разное и интересное. Недавно были выпуски про Haskell, про Dart, рассуждение на тему стейт-менеджеров. Если вам близок JS-мир, послушайте этот подкаст.
#языки #фронтенд
UnderJS Podcast
UnderJS podcast – самый безызвестный подкаст во всём фронтенде. Underground уже тут.
Как правильно ездить в отпуск
Я боюсь отпусков. Просто потому что не люблю терять контроль над ситуацией. Но не отдыхать я тоже не могу. Вот что я делаю, чтобы не волноваться.
1. Чаще всего коллеги достаточно компетентны (если нет, надо с этим что-то делать) и они не сломают все за эти две-три-четыре недели. Нужно принять это и довериться им.
2. Перед отпуском важно довести все свои задачи до логического завершения или подробно рассказать кому-нибудь как их довести. Нельзя оставлять зависшие проблемы.
3. Не планировать по возвращении из отпуска сразу что-то выпустить — скорее всего не получиться, а стресс будет. Стоит признать, что первые два дня после отпуска будут потрачены на возвращение в рабочий ритм и разгребание накопившегося долга.
Эти правила звучат дофига банально, но я вижу, как многие программисты не соблюдают их и доставляют дискомфорт себе и команде. Отпуск — это важно и к нему нужно хорошо подготовиться.
#softskills
Я боюсь отпусков. Просто потому что не люблю терять контроль над ситуацией. Но не отдыхать я тоже не могу. Вот что я делаю, чтобы не волноваться.
1. Чаще всего коллеги достаточно компетентны (если нет, надо с этим что-то делать) и они не сломают все за эти две-три-четыре недели. Нужно принять это и довериться им.
2. Перед отпуском важно довести все свои задачи до логического завершения или подробно рассказать кому-нибудь как их довести. Нельзя оставлять зависшие проблемы.
3. Не планировать по возвращении из отпуска сразу что-то выпустить — скорее всего не получиться, а стресс будет. Стоит признать, что первые два дня после отпуска будут потрачены на возвращение в рабочий ритм и разгребание накопившегося долга.
Эти правила звучат дофига банально, но я вижу, как многие программисты не соблюдают их и доставляют дискомфорт себе и команде. Отпуск — это важно и к нему нужно хорошо подготовиться.
#softskills
Индивеб — это подход к поведению в интернете, при котором человек остается владельцем контента, который он производит. Например, можно выкладывать посты на личный сайт, а не в телеграм канал. Эта философия интересна не только с точки зрения независимости и безопасности, но и с технической стороны.
Весь декабрь Тим Маринин рассказывал о том как делать инди-сайты. Вчера вышел последний пост и теперь можно прочитать все скопом: 24 дня индивеба — адвент-календарь постов про Индивеб.
#общие_знания
Весь декабрь Тим Маринин рассказывал о том как делать инди-сайты. Вчера вышел последний пост и теперь можно прочитать все скопом: 24 дня индивеба — адвент-календарь постов про Индивеб.
#общие_знания
Решения для себя
Чем универсальней решение — тем хуже оно подходит для конкретной ситуации. Это работает для языков программирования, библиотек и фреймворков. Чаще всего, это неважно. Проще и дешевле взять готовое решение, пусть даже оно не идеально подходит к задаче.
Но иногда, это приводит к раздуванию кода, странным абстракциям и вообще сильно портит код. Нужно отслеживать такие ситуации и, когда придет время, писать свои велосипеды.
#общие_знания
Чем универсальней решение — тем хуже оно подходит для конкретной ситуации. Это работает для языков программирования, библиотек и фреймворков. Чаще всего, это неважно. Проще и дешевле взять готовое решение, пусть даже оно не идеально подходит к задаче.
Но иногда, это приводит к раздуванию кода, странным абстракциям и вообще сильно портит код. Нужно отслеживать такие ситуации и, когда придет время, писать свои велосипеды.
#общие_знания
Астрологи объявили неделю асинхронной коммуникации
- Работай асинхронно — простые правила эффективной (не)блокирующей работы
- Асинхронное общение — руководство по асинхронной коммуникации внутри команды, преимущества и недостатки (по версии автора, их нет)
- Взгляд со стороны EcmaScript на общую теорию ООП — отличный разбор объектно-ориентированного программирования в JavaScript, его отличий от других языков
- Сообщение об ошибке, от которого не горит — очередное размышление на тему хороших сообщений об ошибках
- Как организовать работу над библиотекой общих компонентов — опыт разработки UI-кита от Тинькофф
#дайджест
- Работай асинхронно — простые правила эффективной (не)блокирующей работы
- Асинхронное общение — руководство по асинхронной коммуникации внутри команды, преимущества и недостатки (по версии автора, их нет)
- Взгляд со стороны EcmaScript на общую теорию ООП — отличный разбор объектно-ориентированного программирования в JavaScript, его отличий от других языков
- Сообщение об ошибке, от которого не горит — очередное размышление на тему хороших сообщений об ошибках
- Как организовать работу над библиотекой общих компонентов — опыт разработки UI-кита от Тинькофф
#дайджест
Как делается заказная разработка
Лёня из @breadhead рассказал о заказной разработке в первой половине подкаста «Почему продукт важнее маркетинга?». Это совсем не про технологии, но очень интересно.
#softskills
Лёня из @breadhead рассказал о заказной разработке в первой половине подкаста «Почему продукт важнее маркетинга?». Это совсем не про технологии, но очень интересно.
#softskills
YouTube
Почему продукт важнее маркетинга? / "Сделано с нуля" подкаст 018
Если вам нравится, как я снимаю, то обратите внимание на мои фото и видео пресеты:
https://nickchernobaev.com/shop
Если вы хотите поддержать подкаст, то вы можете сделать это на моем boosty:
https://boosty.to/nickchernobaev
Слушайте "Сделано с нуля" на…
https://nickchernobaev.com/shop
Если вы хотите поддержать подкаст, то вы можете сделать это на моем boosty:
https://boosty.to/nickchernobaev
Слушайте "Сделано с нуля" на…
Сейчас читаю и конспектирую «Создание микросервисов». Вот вам конспект первой главы.
Идея микросервисной архитектуры базируется на нескольких понятиях: предметно ориентированное проектирование, непрерывная поставка, виртуализация по требованию, автоматизация инфраструктуры, небольшие автономные команды, масштабируемые системы. Микросервис — это небольшой (может быть полностью переписан за две недели), автономный, выполняющий только одну задачу сервис. При этом, границы микросервисов формируются на основе бизнес-границ.
Преимущества подхода:
- возможна технологическая разнородность;
- легко достигается изящная деградация;
- отдельные части системы независимо масштабируются;
- независимое развертывание сервисов;
- простое разделение отвественности между командами.
Казалось бы, можно заменить микросервисную архитектуру простым вынесением кода в библиотеки. Но это решает только часть проблем — невозможна техническая разнородность, простое масштабирование, независимое развёртывание. Плюс, остается проблема неконтролируемой связности.
Микросервисы — не серебряная пуля. Они подвержены всем проблемам распределённых систем. Важно научиться качественно развёртывать, тестировать и мониторить такую систему. Микросервисная архитектура подходит не всем компаниям.
#микросервисы
Преимущества подхода:
- возможна технологическая разнородность;
- легко достигается изящная деградация;
- отдельные части системы независимо масштабируются;
- независимое развертывание сервисов;
- простое разделение отвественности между командами.
Казалось бы, можно заменить микросервисную архитектуру простым вынесением кода в библиотеки. Но это решает только часть проблем — невозможна техническая разнородность, простое масштабирование, независимое развёртывание. Плюс, остается проблема неконтролируемой связности.
Микросервисы — не серебряная пуля. Они подвержены всем проблемам распределённых систем. Важно научиться качественно развёртывать, тестировать и мониторить такую систему. Микросервисная архитектура подходит не всем компаниям.
#микросервисы
Кстати, напоминаю, что микросервисы — это не только бекенд. Посмотрите хороший доклад про микро-фронтенды.
Forwarded from kamyshev.code
Микро-фронтенд
Все уже знают, что микро-сервисы на бэкенде — иногда хорошо помогают держать приложение в чистоте и порядке, быстрее выкатывать фичи и решать еше тысячу проблем.
Сейчас вокруг многие обсуждают микросервисы на фронтенде. Значит немного странно, но, вероятно, нам это нужно.
Тематический доклад — Разрываем монолит.
#фронтенд #архитектура
Все уже знают, что микро-сервисы на бэкенде — иногда хорошо помогают держать приложение в чистоте и порядке, быстрее выкатывать фичи и решать еше тысячу проблем.
Сейчас вокруг многие обсуждают микросервисы на фронтенде. Значит немного странно, но, вероятно, нам это нужно.
Тематический доклад — Разрываем монолит.
#фронтенд #архитектура
YouTube
004. Разрываем монолит - Андрей Мелихов, Роман Бабанов
В больших приложениях всё чаще поднимается вопрос синхронизации и раздельной доставки различных частей фронтенда. Как единовременно обновить часть фронтенда на множестве сервисов? Как не допустить рассинхронизации в дизайне и поведении?
Команды Bi.Zone и…
Команды Bi.Zone и…
Немножко статей для чтения на праздниках. Две софт-скиловые, одна совсем простая и одна очень серьезная.
+ Работа программистом, свой бар и квест-рум: последние полгода я совмещаю это всё — автор боится не выдержать конкуренции с молодыми специалистами через 10-20 лет и готовит запасные варианты, звучит как отличная идея
+ Good times create weak men — программисты теряют экспертизу, размышления о причинах и последствиях
+ Качество кода — довольно попсовая статья о способах сделать код лучше, очень базовая, но качественная
+ Функциональное программирование: дурацкая игрушка, которая убивает производительность труда (часть 1, часть 2) — ну тут все понятно, просто прочтите
#дайджест
+ Работа программистом, свой бар и квест-рум: последние полгода я совмещаю это всё — автор боится не выдержать конкуренции с молодыми специалистами через 10-20 лет и готовит запасные варианты, звучит как отличная идея
+ Good times create weak men — программисты теряют экспертизу, размышления о причинах и последствиях
+ Качество кода — довольно попсовая статья о способах сделать код лучше, очень базовая, но качественная
+ Функциональное программирование: дурацкая игрушка, которая убивает производительность труда (часть 1, часть 2) — ну тут все понятно, просто прочтите
#дайджест
Осознанная меркантильность
Можно сколько угодно говорить о внутренней мотивации, любви к продукту, сложным задачам или крутой команде, но в любом случае, за работу программисты получают деньги. И это одна из основных причин работать. Ответьте себе честно, если бы вам разрешили работать вдвое меньше за те же деньги, согласились бы вы?
Тематическая статья — Осознанная меркантильность.
#softskills
Можно сколько угодно говорить о внутренней мотивации, любви к продукту, сложным задачам или крутой команде, но в любом случае, за работу программисты получают деньги. И это одна из основных причин работать. Ответьте себе честно, если бы вам разрешили работать вдвое меньше за те же деньги, согласились бы вы?
Тематическая статья — Осознанная меркантильность.
#softskills
Архитектор развития
Наши системы постоянно меняются. Архитектор должен это понимать и не думать о создании конечного продукта. Вместо этого следует фокусироваться на создании структуры, внутри которой сожгут легко появляться новые системы, которые будут отвечать новым требованиям. Главная задача архитектора — сделать программу удобной. Для пользователей, для разработчиков, для тестировщиков, для отдела эксплуатации.
Работа архитектора в меньшей степени касается конкретных сервисов и в больше степени — их связей, пространства между микросервисами, способов их взаимодействия.
Основные отвественности архитектора:
• определение концептуального технического устройства системы;
• умение сотрудничать в лидерами отдельных команд для выработки архитектурных решений;
• коррекция уровня автономности команд.
#микросервисы
Наши системы постоянно меняются. Архитектор должен это понимать и не думать о создании конечного продукта. Вместо этого следует фокусироваться на создании структуры, внутри которой сожгут легко появляться новые системы, которые будут отвечать новым требованиям. Главная задача архитектора — сделать программу удобной. Для пользователей, для разработчиков, для тестировщиков, для отдела эксплуатации.
Работа архитектора в меньшей степени касается конкретных сервисов и в больше степени — их связей, пространства между микросервисами, способов их взаимодействия.
Основные отвественности архитектора:
• определение концептуального технического устройства системы;
• умение сотрудничать в лидерами отдельных команд для выработки архитектурных решений;
• коррекция уровня автономности команд.
#микросервисы
На Хекслете вышла статья «Преждевременная оптимизация: абсолютное зло или иногда полезная практика?», в которой кажется все специалисты выразили завидное единодушие. Почитайте.
#общие_знания
#общие_знания
ru.hexlet.io
Преждевременная оптимизация: абсолютное зло или иногда полезная практика?
Мы обратились к опытным программистам и попросили ответить на один вопрос: «Дональд Кнут называл преждевременную оптимизацию корнем всех зол. Но некоторые специалисты считают её полезной. А как вы относитесь к преждевременной оптимизации?»
Всех нас занимают вопросы: «Как стать лучшим инженером?», «Как расти профессионально?». На них в целом, похоже нет ответов. Зато можно попробовать изменить отдельные аспекты своей работы.
Хороший тематический доклад — Мерцание технологий, или Инжиниринг.
#softskills #рост
Хороший тематический доклад — Мерцание технологий, или Инжиниринг.
#softskills #рост
YouTube
Максим Юзва — Мерцание технологий, или Инжиниринг 21-го века
Подробнее о конференции HolyJS: https://jrg.su/EM4wwV
— —
. . В докладе Максим разберет ту часть нашей работы, которая находится вне холиваров о фреймворках, парадигмах и вне вечной фронтендерской суеты. Приоткроем завесу тайн рабочих процессов, мотивации…
— —
. . В докладе Максим разберет ту часть нашей работы, которая находится вне холиваров о фреймворках, парадигмах и вне вечной фронтендерской суеты. Приоткроем завесу тайн рабочих процессов, мотивации…
Зачитываюсь книгой про микросервисы, поэтому статей на этой неделе совсем мало 😢
+ Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен — архитектура ПО не то, чем кажется, отличный обзор от Гергелия Ороса (чувак из Uber)
+ Понимание брокеров сообщений — вообще-то это книга, но на Хабре сейчас выходит ее перевод по главам, первая глава — хорошее введение в тему
+ Метапрограммирование в JavaScript и TypeScript — немногие разработчики пользуются приемами метапрограммирования, а это мощная концепция, которая может сильно упросить код
#дайджест
+ Архитектура программного обеспечения переоценена, простой и понятный дизайн — недооценен — архитектура ПО не то, чем кажется, отличный обзор от Гергелия Ороса (чувак из Uber)
+ Понимание брокеров сообщений — вообще-то это книга, но на Хабре сейчас выходит ее перевод по главам, первая глава — хорошее введение в тему
+ Метапрограммирование в JavaScript и TypeScript — немногие разработчики пользуются приемами метапрограммирования, а это мощная концепция, которая может сильно упросить код
#дайджест
kamyshev.code via @vote
Я читаю много статей на английском, но почему-то не хотел их добавлять в дайджесты. Добавить?
anonymous poll
Да – 254
👍👍👍👍👍👍👍 92%
Нет – 21
👍 8%
👥 275 people voted so far. Poll closed.
anonymous poll
Да – 254
👍👍👍👍👍👍👍 92%
Нет – 21
👍 8%
👥 275 people voted so far. Poll closed.
Типизация
Я большой адепт ограничений. Люблю, когда инструмент заставляет меня писать лучший код. Строгая статическая типизация — это как раз такие ограничения. Да, нужно больше думать, тратить больше времени. Зато результат получается лучше.
Но, к сожалению, в JavaScript-мире я не могу получить желаемого. Самый популярный инструмент типизации TypeScript дает мне статическую слабую типизацию. Плюс в нем довольно плохо работает вывод типов, очень мягкие правила проверки типов по умолчанию. Этого мало. Поэтому, я с интересом смотрю на альтернативные решения. Elm, Scala.js, PureScript — это все очень весело, но абсолютно бессмысленно. Слишком непопулярные решения, которые требуют менять кодовую базу.
Недавно наткнулся на Hegel.js — это статический типизатор, которые переваривает аннотации типов от TypeScript, но лишен его проблем. Если этот проект дойдет до продакшн-реди состояния, я обязательно возьму его в пару проектов. Доклад автора на HolyJS — Как и зачем я пишу свой статический типизатор.
Что такое сильная/слабая и статическая/динамическая типизация рассказывал тут.
#языки
Я большой адепт ограничений. Люблю, когда инструмент заставляет меня писать лучший код. Строгая статическая типизация — это как раз такие ограничения. Да, нужно больше думать, тратить больше времени. Зато результат получается лучше.
Но, к сожалению, в JavaScript-мире я не могу получить желаемого. Самый популярный инструмент типизации TypeScript дает мне статическую слабую типизацию. Плюс в нем довольно плохо работает вывод типов, очень мягкие правила проверки типов по умолчанию. Этого мало. Поэтому, я с интересом смотрю на альтернативные решения. Elm, Scala.js, PureScript — это все очень весело, но абсолютно бессмысленно. Слишком непопулярные решения, которые требуют менять кодовую базу.
Недавно наткнулся на Hegel.js — это статический типизатор, которые переваривает аннотации типов от TypeScript, но лишен его проблем. Если этот проект дойдет до продакшн-реди состояния, я обязательно возьму его в пару проектов. Доклад автора на HolyJS — Как и зачем я пишу свой статический типизатор.
Что такое сильная/слабая и статическая/динамическая типизация рассказывал тут.
#языки
YouTube
Артём Кобзарь — Как и зачем я пишу свой статический типизатор
Ближайшая конференция: HolyJS 2023 Spring, 15–16 мая (Online), 21-22 мая (Offline)
Подробности и билеты: https://bit.ly/3A5ruLp
— —
. . Артём — приверженец следующего подхода: «Чтобы эффективно что-то использовать — нужно написать свой аналог». Он расскажет…
Подробности и билеты: https://bit.ly/3A5ruLp
— —
. . Артём — приверженец следующего подхода: «Чтобы эффективно что-то использовать — нужно написать свой аналог». Он расскажет…