Search
Write a publication
Pull to refresh
4
0
anotherpit @anotherpit

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

Send message

Как сбежать из секты?

Reading time12 min
Views15K
Наш мир устроен очень странно. И чем дальше, тем становится страннее. И хрен поймешь, в чем дело.

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

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

Я говорю о «внедрении методик», «работе по фреймворку», «обязательном использовании всех артефактов». О сектах, короче.
Читать дальше →

Поймай меня, если сможешь. Версия менеджера

Reading time8 min
Views63K
Ты – программист. Я – эффективный менеджер. Ну, ты так считаешь. Может, даже статью про меня напишешь, наберешь кучу плюсов – тема-то благодатная. В статье обязательно слово «эффективный» в кавычки поставишь.

Я уже не работаю в вашей компании. Решил рассказать тебе, как всё было на самом деле. Скоро эта история тебе аукнется, что меня очень расстраивает, но будет лучше, если ты обо всём узнаешь от меня.
Читать дальше →

Как сделать из сайта приложение и выложить его в Google Play за несколько часов. Часть 1/2: Progressive Web App

Reading time8 min
Views106K


Наверное, все близкие к веб-разработке люди уже наслышаны о Progressive Web App. Ещё бы! Эта технология практически уравняла веб и мобильную разработку с точки зрения распространения продуктов и вовлечённости пользователей.

Да, современный фронтенд, написанный, например, на React, работает как приложение. Но вот только скачивается это приложение в браузер и запускается из него. В этом и заключается огромный гандикап, который всегда имела мобильная разработка. Давайте подумаем, чем с точки зрения обычного пользователя, «приложение» отличается от «сайта». Сразу в голову приходит, что приложение в телефоне, а сайт на компьютере. Но ведь есть мобильный браузер, так что сайт и в телефоне тоже. Тогда остаётся 3 существенных отличия:
Читать дальше →

Автоматизация библиотек на Typescript

Reading time5 min
Views3.4K
Хочу сразу оговориться: эта статья не дает готового к использованию рецепта. Это скорее моя история путешествия в мир Typescript и NodeJS, а также результаты моих экспериментов. Тем не менее, в конце статьи будет ссылка на GitLab репозиторий, который вы можете посмотреть, и может быть взять что то понравившееся себе на вооружение. Может быть даже по моему опыту создадите свое автоматизированное решение.
Читать дальше →

Прекратите использовать Ngrx/effects для этого

Reading time9 min
Views24K
перебор с эффектами

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

Тяп-ляп и в продакшн? Почему бы и нет

Reading time7 min
Views11K
Как происходит при обычной автоматизации? Составляется техническое задание, функциональные требования, архитектура, и куча других бумажек. Описываются все условия, ограничения, алгоритмы работы в зависимости от окружающей среды, внешний вид форм, проверки данных и т.д. Зачастую, оформление и согласование этих бумажек занимает больше времени, чем сама автоматизация.

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

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

Redux. Простой как грабли

Reading time5 min
Views197K
Мне уже доводилось заглядывать в репозиторий библиотеки redux, но откуда-то появилась мысль углубиться в его реализацию. Своим в некотором роде шокирующим или даже разочаровывающим открытием я хотел бы поделиться с сообществом.

TL;DR: базовая логика redux помещается в 7 строк JS кода.

О redux вкратце (вольный перевод заголовка на гитхабе):
Redux — библиотека управления состоянием для приложений, написанных на JavaScript.

Она помогает писать приложения, которые ведут себя стабильно/предсказуемо, работают на разных окружениях (клиент/сервер/нативный код) и легко тестируемы.
Я склонировал репозиторий redux, открыл в редакторе папку с исходниками (игнорируя docs, examples и прочее) и взялся за ножницы клавишу Delete:

  • Удалил все комментарии из кода
    Каждый метод библиотеки задокументирован с помощью JSDoc весьма подробно
  • Убрал валидацию и логирование ошибок
    В каждом методе жёстко контролируются входные параметры с выведением очень приятных глазу подробных комментариев в консоль
  • Убрал методы bindActionCreators, subscribe, replaceReducer и observable.

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

А теперь давайте разберём то, что осталось
Читать дальше →

NestJS - тот самый, настоящий бэкенд на nodejs

Reading time6 min
Views172K
image

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

Поэтому, NestJS- это не только фреимворк для бэкенда, но и возможность войти в мир передовых концепции, например таких как DDD, Event sourcing и микросервисной архитектуре. Все упаковано в простой и легкой форме, так что выбор за вами - решаете ли вы использовать всю платформу или просто использовать ее компоненты.
Читать дальше →

Как я год не работал в Сбербанке

Reading time12 min
Views465K
Доброго времени суток, хабровчане!

Про эту компанию знают все. Кто-то в ней даже работал или продолжает работать. Я думаю, сложно найти в РФ, да и на территории СНГ, человека который не слышал о холдинге Сбербанка. Именно холдинг, так как очень много компаний которые обслуживают Сбербанк и контролируются им же. Так вот я поработал в двух таких компаниях за один год — это Сбербанк-Технологии (далее СБТ) и Сбербанк.
Читать дальше →

Стратегический эквалайзер

Reading time7 min
Views9.3K
Система поддержки принятия решений в реальном времени. Ничего круче на свете еще не было.

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



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

Если же возможность выбора у вас есть, и вы хотите сделать этот выбор научно обоснованным, то стратегический эквалайзер – для вас.
Читать дальше →

devleads — поговорим о профессиональном выгорании

Reading time13 min
Views28K
Привет! В рамках проекта devleads мы с ребятами решили сделать подкаст для всех неравнодушных к менеджменту в IT-сфере — тимлидов, руководителей разработки и им подобных.

Кто мы:

  • Я, Илья Царев, руководитель мобильной разработки Альфа-Банка.
  • Илья Кузнецов, imJustik, iOS-тимлид Альфа-Банка.
  • Никита Майданов, NikoGenn, руководитель мобильной разработки в Welps.


В этом выпуске мы затронем тему профессионального выгорания (в частности — выгорания тимлида) и связанных с ним мифов. А поможет нам в этом психолог Анастасия Калашникова.

Мы поговорим о профилактике выгорания, о том, почему нормально говорить коллегам «Нет», что делать, если шеф сидит на работе по 10 часов, а вам неудобно из-за этого уходить вовремя, и о многом другом.

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

— Расскажи, пожалуйста, что такое вообще «выгорание».
Читать дальше →

Introscope: ну очень ленивое unit-тестирование

Reading time2 min
Views3.3K

Мы на работе пишем много часто меняющейся бизнес-логики на JS (стартап же). Даже слишком много. И всё это хочется по старой привычке тестировать, но как-нибудь побыстрее, чтобы тесты особо не мешали говнокодить, когда это нужно, и не подгонять под тесты особенно сильно структуру модулей. В какой-то момент пришла мысль, что можно это еще и автоматизировать как-то с помощью простенького babel-плагина, чтобы он для начала все приватные переменные и методы выворачивал в тестовой среде, а в продакшене не трогал. Это оказалось довольно просто и увлекательно. Так появился Introscope, которым мы теперь тестируем всё более-менее сложное.

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

Иди-ка ты на !@# со своей «токсичностью»

Reading time5 min
Views215K
IT — не детский садик. Это место для взрослых, руководствующихся логикой и здравым смыслом. Их не надо опекать, не надо следить за словами, не надо переживать, что у них сформируются комплексы. Если человек некомпетентен, надо дать ему об этом явно понять, а не беречь его нежные чувства в ущерб всем остальным.

Так какого же чёрта моё прекрасное IT превращается в детский сад «Весёлый Програм-Мишка»?
Читать дальше →

Эффект акрасии: почему мы не выполняем своих планов, и что с этим делать

Reading time5 min
Views32K

Виктор Гюго; фотографию сделал Этьен Карьят в 1876

К лету 1830 года Виктор Гюго столкнулся с невозможным дедлайном. За двенадцать месяцев до этого знаменитый французский автор договорился со своим издателем, что напишет для него новую книгу, "Собор Парижской Богоматери".

Но вместо работы над книгой, весь год Гюго занимался другими проектами, развлекал гостей, и откладывал работу с текстом. Его издатель всё больше раздражался из-за продолжавшейся прокрастинации автора, и среагировал, установив пугающий крайний срок для сдачи книги. Он потребовал, чтобы Гюго закончил книгу к февралю 1831 – то есть, менее, чем за шесть месяцев.

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

Где Agile ужасен, особенно Scrum

Reading time15 min
Views96K
Гибкость — без сомнения хорошая вещь, и в манифесте Agile есть смысл. По сравнению с хрупкой практикой под названием «водопад», Agile заметно лучше. Тем не менее, на практике гибкие подходы часто наносят глубокий вред, и в действительности вряд ли здесь уместна дихотомия Agile/Waterfall.

Я видел, как множество вариантов Agile, называемых Scrum, реально убивают компанию. Под «убивают» я имею в виду не «ухудшение культуры», а скорее когда акции компании падают почти на 90% за два года.

Что такое Agile?


Agile вырос из среды веб-консалтинга, где он приносил определённую пользу: при работе с привередливыми клиентами, которые не знают, чего они хотят, обычно приходится выбирать из двух вариантов. Или одолеть клиента: установить ожидания, соответствующую оплату за переделки и поддерживать отношения равенства, а не подчинения. Или принять некорректное поведение клиента (как, скажем, приходится многим дизайнерам) и ориентировать рабочий поток вокруг клиентской дисфункции.
Читать дальше →

Оцениваем процессы в команде разработки на основе объективных данных

Reading time24 min
Views25K
Разработка софта считается плохо измеримым процессом, и кажется что, чтобы ей эффективно управлять, нужно особое чутье. А если интуиция с эмоциональным интеллектом развиты не очень, то неизбежно будут сдвигаться сроки, проседать качество продукта и падать скорость поставки.

Сергей Семёнов считает, что это происходит в основном по двум причинам.

  • Нет инструментов и стандартов для оценки работы программистов. Менеджерам приходится прибегать к субъективной оценке, что в свою очередь приводит к ошибкам.
  • Не используются средства автоматического контроля за процессами в команде. Без должного контроля процессы в командах разработки перестают выполнять свои функции, так как начинают исполняться частично или попросту игнорироваться.

И предлагает подход к оценке и контролю процессов на основе объективных данных.

Ниже видео и текстовая версия доклада Сергея, который по результатам зрительского голосования занял второе место на Saint TeamLead Conf.

Трудоголизм — болезненное состояние, о котором не принято говорить

Reading time5 min
Views42K
Тему профессионального выгорания не пинал на Хабре только ленивый. Были истории и о том, как с этим бороться, и рассказы людей, которые лично столкнулись с этой проблемой, и статьи вида «как избежать выгорания». На самом деле тема важная и нужная. Для многих разработчиков их профессия выливается не только в способ заработка, но и в личные увлечения. Люди получают реальное удовольствие от того, что они делают, а выходя вечером из офиса возвращаются домой и ковыряют собственные pet-projects.

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



Трудоголизм принято хвалить, но это монстр


Я не просто так упомянул профессиональное выгорание. Все мы знаем его основные признаки: отвращение к работе, снижение концентрации, апатия. Короче, человек становится скучным, вялым и ему ничего не надо от жизни. К клавиатуре подходит неохотно и только от очень большой нужды. Говорить о каком-то удовлетворении от своей деятельности вовсе не приходится. И всех это очень и очень сильно пугает, потому что в IT-кругах большинству людей на самом деле нравится то, что они делают.
Читать дальше →

8 простых шагов к провалу начинающего менеджера по разработке

Reading time9 min
Views14K


Поздравляю — вы новый менеджер! Нет, честно, от всей души. Слышите сарказм в голосе? Ну извините, я пытался как мог, но конечно, вместе с волнением есть доля сомнений и грусти. Наверное, вам придётся пройти через всё то, через что прошёл я и многие другие. Вы много лет работали инженером-программистом (или вставьте тут другую профессию), хорошо себя проявили, заслужили титул «сеньора» и вас считали неформальным лидером в коллективе. Вероятно, до настоящего момента были тимлидом. Возможно, какое-то время даже сопротивлялись этому «повышению», не хотели уходить из программирования, терять навыки. Но на самом деле боялись, что не справитесь. Наконец, каким-то образом вас уговорили рискнуть — и вот вы здесь. От ведущего инженера к начинающему менеджеру.

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

Работа тимлидом в 2018-ом году

Reading time17 min
Views55K

В статье я расскажу о моём опыте работы на должности тимлида в компании по разработке сайтов. Чтобы всем было полезнее и проще читать, статья разбита на главы, каждая из которых рассказывает об одной отдельной проблеме и её решению. Хотя по возможности будет сохранена хронология событий.


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


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

Борьба с грязными побочными эффектами в чистом функциональном JavaScript-коде

Reading time25 min
Views23K
Если вы пробуете свои силы в функциональном программировании, то это значит, что вы довольно скоро столкнётесь с концепцией чистых функций. Продолжая занятия, вы обнаружите, что программисты, предпочитающие функциональный стиль, похоже, прямо-таки одержимы этими функциями. Они говорят о том, что чистые функции позволяют рассуждать о коде. Они говорят, что чистые функции — это сущности, которые вряд ли будут работать настолько непредсказуемо, что приведут к термоядерной войне. Ещё вы можете узнать от таких программистов, что чистые функции обеспечивают ссылочную прозрачность. И так — до бесконечности.

Кстати, функциональные программисты правы. Чистые функции — это хорошо. Но есть одна проблема…


Автор материала, перевод которого мы представляем вашему вниманию, хочет рассказать о том, как бороться с побочными эффектами в чистых функциях.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity