Обновить
-2
@borshakread⁠-⁠only

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

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

Как я продавал свой маленький проект

Время на прочтение4 мин
Охват и читатели23K


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

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

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

В этом посте я расскажу, как продал свой последний проект Earlyname.
Читать дальше →

MySQL Query Cache

Время на прочтение5 мин
Охват и читатели114K
В MySQL есть очень полезная функциональность — кеш запросов. Кеш запросов доступен в MySQL начиная с версии 4.0.
Многие СУБД имеют подобную функциональность, но в отличие от MySQL они кешируют планы выполнения запросов, тогда как MySQL кеширует результаты запросов.
Дальше о том, как работает кеш запросов, как его настраивать и оптимально использовать.
Читать дальше →

Трёхпроходный алгоритм рефакторинга Front End

Время на прочтение4 мин
Охват и читатели8.5K

Попался мне достаточно крупного размера проект написанный на React + Typescript.
Покопался в коде. Всё круто, контейнеры, компоненты, типы везде стоят, линтер настроен, styled-components, даже storybook есть и некий react-query.

Ну просто счастье, а не проект!

Сажусь делать простую таску – какую-то страничку собрать из компонентов.
Пишу в коде But… и IDE мне предлагает 16 Button компонентов.

Блииин…

Дальше больше...

Как прорешать SICP: Отчёт о создании решебника для самого известного в мире задачника по программированию. Ботаны есть?

Время на прочтение45 мин
Охват и читатели20K

(Хабр-Статья представляет собой авторский перевод доклада, представленного автором на Scheme Workshop 2020, проводившегося в рамках Международной Конференции по Функциональному Программированию, 28 августа 2020 года)

Эта статья -- своего рода "отчёт" по самому большому проекту, который я сделал в своей жизни по собственной инициативе. Я сделал полное, исчерпывающее решение всех задач из одной из самых извесных книг по программированию в мире "Структура и Интерпретация Компьютерных Программ" (Structure and Interpretation of Computer Programs -- SICP), за авторством Абельсона, Сассмана и Сассман.

В ходе выполнения проекте я собрал довольно много данных о том, как решалось это задание в частности, и сформулировал несколько эвристик, помогающих выполнять проекты вообще, а именно:

Читать далее

Лучшие методики журналирования enterprise-приложений (с точки зрения инженера поддержки)

Время на прочтение15 мин
Охват и читатели14K

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

Давайте разберемся, как писать в журнал полезные сообщения, которые всем понравятся.
Читать дальше →

Книга: проектирование API

Время на прочтение1 мин
Охват и читатели24K

Приветики. Каждый из нас в этом этом чудесном году находит свой способ скоротать время. Я вот, например, пишу книгу. Книгу о том, что знаю и люблю — про API. (Кто я такой и какой опыт имею в разработке можно посмотреть здесь)

Пока что написал первую часть — о принципах проектирования API «сверху вниз»

PDF-версию можно скачать отсюда

Вопросы, пожелания и предложения принимаются. Книга распространяется бесплатно на условиях CC-BY-NC. You're welcome!

Читать далее

За что получает деньги наемный работник? Не понимаете? Сейчас поймете

Время на прочтение4 мин
Охват и читатели154K
«За что я плачу тебе деньги?» — обычный вопрос работодателя работнику, причем саркастический, как правило.

«За что я тут корячусь на тебя?» — столь же обычный вопрос работника к работодателю.
Разобраться, за что же действительно работодатель платит деньги наемному работнику, поможет моя собственная теория, закодированная в десять букв – «ПЗП – ПЗС – ПЗПИ»

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

Как проводить one-to-one встречи

Время на прочтение3 мин
Охват и читатели107K

Сегодня хочу поговорить о том, как проводить one-to-one встречи. 

Сначала о том, зачем они вообще нужны. One-to-one встречи – это один из инструментов развития команды. На этих встречах вы постепенно, планомерное выстраиваете отношения с сотрудником. Прозрачные, ясные отношения, в которых становится возможным сотруднику развиваться. В итоге эти встречи работают на адаптацию сотрудников, на их мотивацию и удержание. 

На встрече важно обсудить не только задачи. Вот примерная схема проведения one-to-one встречи.

 1. О сотруднике. С этого стоит начать. Спросите, как у него дела, что у него в жизни происходит.  

 2. Задачи. Какие сейчас у него задачи, какие у них сроки, какие есть проблемы. 

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

 4. Компания. Тут вы возвращаете сотрудника к тому, что он часть компании, что он приверженец определённой группы. Поделитесь с ним новостями компании и спросите, как это ему, поделитесь информацией про команду и тоже спросите, как это ему. Таким образом вы закрепляете за человеком его вовлечённость. 

 5. Работа с тимлидом. Самый неудобный вопрос) Можно задавать в лоб: «Как тебе работается со мной?» или окольными путями: «Что бы ты хотел в нашем взаимодействии улучшить, как тебе one-to-one, что бы ты хотел вынести на one-to-one», и т.д.

 6. Кризисы. Если в команде возник конфликт, пертурбация (например, когда из-за вируса все стали работать из дома), не старайтесь делать вид, что ничего не изменилось. Разъясните сотруднику происходящее, спросите, как он чувствует себя внутри всего этого. Вы таким образом можете снизить его тревогу. Сейчас достаточно много вызовов мира, которые заставляют сотрудников поступать по разному. И для нас важно понимать, не останется ли завтра проект без важного сотрудника, по его личным причинам.

На одном из потоков курса «PSYvIT для управленцев» меня спросили, надо ли на каждой встрече говорить про компанию. Разве может отношение к компании меняться раз в неделю? Нет, не обязательно каждый раз, но раз в 2-3 недели спросите. Вопросы могут меняться: держите в фокусе компанию, а спросите про продукт, про новый релиз. Компания – это вообще про окружение сотрудника, про команду. Опять же, многое зависит от того, что в вашей компании происходит сейчас. Кроме вопросов, рассказывайте об успехах и изменениях, которые происходят. Очень важно, чтобы новости компании сотрудники узнавали от вас, а не из новостной ленты социальных сетей.

Читать далее

Формальные грамматики на службе мобильного клиента

Время на прочтение11 мин
Охват и читатели3K
В повседневной жизни мы пользуемся готовыми интерпретаторами и компиляторами — и редко кому придёт в голову написать их самостоятельно. Во-первых, это же сложно, во-вторых — зачем.

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

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


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

Как я строил карьеру в Amazon, куда меня взяли по ошибке

Время на прочтение10 мин
Охват и читатели53K
Сегодня я праздную пять лет работы в Amazon. За это время я передал в продакшн боле 500 000 строк кода, проводил инспекцию чужого кода более 500 раз, проектировал, разрабатывал, развёртывал и поддерживал масштабные системы, которыми пользуются тысячи клиентов со всего света. Меня считают одним из ведущих технических лидеров в команде.

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

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Время на прочтение44 мин
Охват и читатели260K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →

Разбираемся с интерфейсами в Go

Время на прочтение10 мин
Охват и читатели181K

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

  1. Человеческим языком объяснить, что такое интерфейсы.
  2. Объяснить, чем они полезны и как вы можете использовать их в своём коде.
  3. Поговорить о том, что такое interface{} (пустой интерфейс).
  4. И пройтись по нескольким полезным типам интерфейсов, которые вы можете найти в стандартной библиотеке.
Читать дальше →

Я десять лет страдал от ужасных архитектур в C# приложениях — и вот нашел, как их исправить

Время на прочтение10 мин
Охват и читатели43K


Я второй десяток лет участвую в разработке приложений для бизнеса на .NET и каждый раз вижу одни и те же проблемы — быдлокод и беспорядок. Месиво из сервисов, UoW, DTO-шек, классов-хелперов. В иных местах и прямой доступ в базу данных руками, логика в статических классах, километровые портянки конфигурации IoC.


Когда я был молодым и резвым мидлом — я тоже так писал. Потом бил кулаком в стену с криками: "Хватит! В следующий раз сделаю по-другому". Следующий раз действительно начинался "по-другому" — с холодной головой и строгим подходом к архитектуре — а на выходе все равно получалась та же субстанция, лучше на пару миллиметров.


Однако, эволюция — беспощадная штука: моя последняя система показалась мне более-менее близкой к идеалу. Сложность не сильно росла, скорость разработки не падала довольно долго, в систему худо-бедно въезжают новые сотрудники. Эти результаты я взял за основу, улучшил и теперь анонсирую вам свою новую разработку: Reinforced.Tecture.

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

Параллели между Factorio и проектированием ПО

Время на прочтение5 мин
Охват и читатели21K

Я уже долгое время работаю проектировщиком ПО и могу с уверенностью сказать — это интересно. Это отличная работа, и я не променял бы её ни на что другое. Это настолько увлекательно, что некоторые люди стремятся передать самые интересные аспекты нашей работы и выразить их в играх.

Я играл в две такие игры. Первая — это Shenzhen.io. Она похожа на то, чем бы мог заниматься инженер, проектирующий встроенные устройства. Инженер решает головоломки путём писания ассемблерного кода для устройств с низким энергопотреблением. В этой игре здорово то, что её разработчики убрали из неё раздражающие аспекты написания кода и его ввода в эксплуатацию.

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

Должен ли проектировщик ПО сыграть в Shenzhen.io? Геймплей этой игры не для каждого. Некоторым он «слишком напоминает работу». В конце концов, играя, хочешь расслабиться, а не работать над задачами, которые уже выполняешь по восемь часов в день. Несмотря на это, я считаю, что стоит сыграть, просто чтобы понять, насколько интересной становится задача, когда требования понятны, а средства разработки — быстры. Все знают, что инвестирование в развитие и инструменты оправдывает себя, но удовольствие от игры подкрепляет это ощущение.

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

Саморазвитие: как я не усидел на двух стульях и нашел третий

Время на прочтение19 мин
Охват и читатели42K


Всем привет! Я руковожу командой антиспама в Mail.ru Group, а также несколькими группами по машинному обучению. Тема этой статьи — саморазвитие для тимлидов/руководителей, но на самом деле многие техники и рецепты совершенно не зависят от роли. Для меня этот вопрос очень актуален, так как машинное обучение развивается крайне стремительно, и чтобы хотя бы быть в теме, надо потратить уйму времени. Поэтому вопрос, как и на что тратить время для развития, стоит достаточно остро.

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

Использование Typescript с React – руководство для новичков

Время на прочтение6 мин
Охват и читатели197K
Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript».



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

Стоит ли изучать Typescript для разработки приложений на React? Стоит, еще как стоит! Для себя я осознал на практике, что строгая типизация приводит к написанию гораздо более надежного кода, быстрой разработке, особенно в крупных проектах. Сначала вы, вероятно, будете разочарованы, но по мере работы вы обнаружите, что хотя бы минимальный шаблон действительно будет очень кстати.

И если вы застряли на чем-то, помните, что вы всегда можете типизировать что- нибудь как any. Any – ваш новый друг. А теперь перейдем непосредственно к примерам.
Читать дальше →

Что же такое «Модель предметной области»?

Время на прочтение5 мин
Охват и читатели42K
Привет, Хабр.

Сегодня зашел в канал #school в русскоязычном GoCommunity в Slack и обнаружил там один интересный диалог. Данный диалог навел меня на некоторые мысли относительно того, как коллеги интерпретируют понятие “модель предметной области (домена)”.

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

Как DNSCrypt решил проблему просроченных сертификатов, введя срок действия 24 часа

Время на прочтение4 мин
Охват и читатели9.1K


Раньше сертификаты часто истекали из-за того, что их нужно было обновлять вручную. Люди просто забывали это сделать. С появлением Let’s Encrypt и автоматической процедуры обновления вроде бы проблема должна быть решена. Но недавняя история с Firefox показывает, что на самом деле она по-прежнему актуальна. К сожалению, сертификаты продолжают истекать.

Если кто-то пропустил эту историю, в полночь 4 мая 2019 года внезапно прекратили работать почти все расширения Firefox.
Читать дальше →

[спойлеры] Фильм Wandering Earth: Солнцу кранты. Всех спасут китайцы и один русский космонавт с флягой водки

Время на прочтение2 мин
Охват и читатели25K
«Сначала неизбежно идут мысль, фантазия, сказка; за ними шествует научный расчет и, в конце концов, исполнение венчает мысль.»
— К.Э. Циолковский


Китайцы сняли научно-фантастический фильм по роману автора, который написал "Задачу трёх тел". И собираются рвать мировой прокат.

image

В Интрестелларе «план А» по спасению человечества (перемещение планеты) был уткой, а для китайцев — руководством к действию. Построили 10 000 движков высотой 11 км каждый, общей тягой 150 триллионов чего-то там, и начали разбег. Но во время гравитационного маневра вокруг Юпитера что-то пошло не так…

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

Кто смотрел/читал — дополняйте и подключайтесь к обсуждению.

image

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта

Время на прочтение19 мин
Охват и читатели25K

Сегодня у нас в виртуальной студии самый известный в мире докладчик по Spring — Джош Лонг.


Именно его докладами открываются Java-конференции по всему миру. Именно он отвечает на вопросы сообщества, делает Spring Tips на YouTube, именно его «This week in Spring» мы читаем каждую неделю и многое другое.


Кстати, Джош разрешил использовать все материалы в нашем собственном «This week in Java», но он делает их в таком объеме и глубине, что эти данные ни разу не получилось сжать до формата «дайджеста на 15 минут».


Иногда кажется, что он находится во всех городах одновременно, читает доклады и пишет статьи в один момент. Сегодня мы будем разбираться, как это у него получается. Узнаем про «юргенизацию кода», причины удивительной живучести Spring и то, как он умудрился прожить столько лет без глобальных переписываний всего с нуля и другие интересные фишки.




Участники


Josh Long, Spring Developer Advocate at Pivotal


Евгений Трифонов, Олег Чирухин — редакция JUG.ru Group

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

Информация

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