Pull to refresh
10
0
Игорь @peacecoder85

Backend Engineer

Send message

Заметки по книге «Философия разработки ПО»

Reading time11 min
Views13K


Возможно, вы понимаете как писать хороший код, как придерживаться хорошего дизайна. Но структурировать эти знания не получается. Книга Джона Оустерхаута “A philosophy of software design” может помочь исправить это.


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


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

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments42

Ты решил написать свой фреймворк. Стоило оно того?

Reading time9 min
Views9.3K


Как говорили классики, «я знал, что рано или поздно мы дойдем и до этого». Вот и я спустя много лет спокойной жизни с Symfony в рабочих и ReactPHP в пет-проектах вписался в создание своего фреймворка.

Но его история только начинается. А как было у тех, чье детище доросло до продакшн-уровня, но так и осталось нишевым решением? Я нашел человека, который знает ответ на этот вопрос — автора и ведущего разработчика аспектно-ориентированного фреймворка.
Читать дальше →
Total votes 19: ↑17 and ↓2+23
Comments4

ВОЗ считает, что выгорание на работе стало большой проблемой

Reading time4 min
Views28K

Всемирная организация здравоохранения недавно обновила определение профессионального выгорания в своем справочнике медицинских диагнозов. На фоне развития удаленной работы из-за коронавируса симптомы заболевания стали появляться всё чаще. Раньше выгорание характеризовали как «синдром общего стресса». Теперь — как «синдром… возникающий в результате хронического стресса на рабочим месте, с которым не удалось успешно справиться». ВОЗ описывает три симптома выгорания на работе:

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments92

Малый ядерный реактор NuScale Power получил одобрение регулятора США

Reading time3 min
Views26K

28 августа американская компания NuScale Power получила одобрение Комиссии по ядерному регулированию США на конструкцию первого малого модульного реактора. Текущая модель рассчитана на 50 мегаватт энергии, а уже в 2022 году будет рассмотрена заявка на реактор мощностью в 60 мегаватт.

Стартап NuScale Power призывает отказаться от больших реакторов, основы современных АЭС. Вместо этого разработчики предлагают небольшие модульные реакторы, которые можно производить на заводе, а потом транспортировать на место строительство электростанции. Стандартная АЭС такого типа будет состоять из 12 малых реакторов. По словам разработчиков, малые реакторы гораздо безопаснее обычных. Кроме того, они могут использоваться в небольших городах, на промышленных объектах и подводных лодках.
Total votes 33: ↑33 and ↓0+33
Comments94

Вредные советы: как заставить программиста работать лучше

Reading time5 min
Views35K

Каждый из нас хотя бы раз в жизни видел программиста (сами себя они предпочитают называть разработчиками). Как правило, программисты довольно замкнутые, очень пугливые и любят подолгу смотреть в монитор. Они – либо следующая ступень эволюции человечества, либо предыдущая. Они плохо умеют разговаривать, но очень хорошо понимают человеческую речь и компьютерные сигналы. В этой статье я хочу рассказать, как заставить ваших разработчиков работать лучше, при этом не доставляя им никакого дискомфорта и не пугая их. А для этого вам необходимо будет запомнить несколько правил.

Узнать правила
Total votes 46: ↑32 and ↓14+25
Comments72

Полку ARM прибыло: представлен первый 64-битный процессор ARM Cortex-R82

Reading time2 min
Views15K

ARM-процессоры занимают новые для себя ниши. Это уже давно не только маломощные чипы с минимальным энергопотреблением. Недавно анонсировано третье поколение ARM-процессоров Thunder-X, о чем мы уже рассказывали. Теперь представлен процессор, который превосходит все предыдущие решения в серии R.

Он предназначен для работы в real-time системах, которые должны быть крайне надежными. Т.е. речь идет про оборудование, которое эксплуатируется в экстремальных условиях. Это промышленность, медицина, службы спасения и т.п.
Читать дальше →
Total votes 24: ↑23 and ↓1+27
Comments6

Тимлидство — роль, которая может стать ловушкой для разработчика, а может дать огромные возможности для создания ПО

Reading time7 min
Views26K
Вернёмся года на два назад, когда я был разработчиком. Что я думал? «Хочу стать тимлидом. Это круто, он решает все вопросы, получает больше денег, им становятся после сеньора». Тогда не было никого, кто сказал бы мне: это вообще про другое. Пришлось учиться на своих ошибках.



Я дважды становился тимлидом


У меня есть такая черта: стараться во всем наводить идеальный порядок, систематизировать, выстраивать процессы. Поэтому меня всегда тянуло брать на себя больше, чем просто написание кода. В моём первом стартапе, назовем его «T», был полный хаос в процессах разработки.
Total votes 37: ↑37 and ↓0+37
Comments39

Нам надо создать веб с чистого листа

Reading time11 min
Views27K
image


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

Этот кризис влияет на платформы, творцов и потребителей.
Читать дальше →
Total votes 47: ↑43 and ↓4+51
Comments112

Представлена «вечная» батарейка на радиоактивных элементах

Reading time2 min
Views80K


Американский стартап Nano Diamond Battery представил прототип бета-гальванической батареи, которая способна проработать тысячи лет. Это не теория, сейчас разработку переводят на коммерческую основу. Несколько недель назад разработчик завершил тестирование, убедившись в работоспособности системы. Первые батареи такого типа появятся в продаже в конце этого года. Инвестором разработчиков выступил стартап-инкубатор Volkswagen Future Mobility.

Разработка представляет собой специальный корпус из синтетических алмазов, внутрь которого помещен радиоактивный сердечник. В процессе неупругого рассеивания бета-излучение изотопов преобразуется в электрический ток. В качестве топлива используются переработанные ядерные отходы углерода-14. Этот изотоп применяется для радиоизотопного датирования и диагностики некоторых заболеваний желудочно-кишечного тракта. Он также накапливается в графитовых деталях ядерных реакторов, которые поглощают излучение ядерных топливных стержней. Хранить такие отходы опасно, дорого и трудно. Батареи на углероде-14 решают сразу две проблемы — недолговечность обычных элементов питания и переработки радиоактивных отходов.
Читать дальше →
Total votes 127: ↑111 and ↓16+137
Comments286

Железо проекта: как мы строили комнату с хакерским квестом

Reading time10 min
Views7.3K

Пару недель назад мы провели онлайн-квест для хакеров: построили комнату, которую заполнили умными устройствами и запустили из нее YouTube-трансляцию. Игроки могли управлять IoT-девайсами с сайта игры; целью было найти запрятанное в комнате оружие (мощную лазерную указку), хакнуть его и устроить в комнате короткое замыкание.

Чтобы добавить остросюжетности, мы поставили в комнате шредер, в который загрузили 200 000 рублей: шредер съедал по купюре в час. Выиграв игру, можно было остановить шредер и забрать все оставшиеся деньги.

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


Было очень много запросов показать момент уборки комнаты — показываем, как мы ее разбираем
Total votes 40: ↑39 and ↓1+63
Comments33

Как заставить код выполняться за одинаковое время? Способы от Яндекс.Контеста

Reading time5 min
Views12K
Недавно мы объявили на Хабре, что начинаем принимать заявки на Яндекс.Алгоритм и другие треки чемпионата по программированию Yandex Cup. Уже много лет онлайн-соревнования Яндекса и других компаний проходят на платформе Контест. Меня зовут Павел Тыквин, я один из разработчиков Контеста. Основная задача нашей платформы — получить от участника чемпионата исходный код решения, скомпилировать и запустить этот код, прогнать тесты и вернуть результат. Звучит не очень сложно. Давайте попробуем.

int main()
{
	int n = 500000000;
	int *a = new int[n + 1];
	for (int i = 0; i <= n; i++)
		a[i] = i;
	for (int i = 2; i * i <= n; i++)
	{
		if (a[i]) {
			for (int j = i*i; j <= n; j += i) {
				a[j] = 0;
			}
		}		
	}
	delete[] a;
	return 0;
}
Читать дальше →
Total votes 51: ↑49 and ↓2+68
Comments48

Rust vs. State

Reading time5 min
Views5.1K

Важно: для комфортного прочтения статьи нужно уметь читать исходный код на Rust и понимать, почему оборачивать всё в Rc<RefCell<...>> — плохо.


Введение


Rust не принято считать объектно-ориентированным языком: в нём нет наследования реализации; инкапсуляции на первый взгляд тоже нет; наконец, столь привычные ООП-адептам графы зависимостей мутабельных объектов здесь выглядят максимально уродливо (вы только посмотрите на все эти Rc<RefCell<...>> и Arc<Mutex<...>>!)


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


Первым подопытным кроликом станет паттерн State, чистой реализации которого и посвящена эта статья.

Начать опыт
Total votes 14: ↑14 and ↓0+14
Comments28

Что такое soft skills для инженера в 2020 году, зачем и как компании их проверяют на собеседованиях

Reading time6 min
Views37K


Недавно один из моих знакомых инженеров устраивался на работу в Facebook. Он успешно прошел несколько кругов собеседований, его позвали на собеседование в офис, и уже там на этапе leadership and drive что-то пошло не так. Как признавался знакомый позднее, отвечать на вопросы в виде «как вы сработались со сложным коллегой» или «как вы добивались целей в токсичной обстановке» он был не очень готов.

Именно подобные вопросы позволяют оценить так называемые гибкие навыки (soft skills) инженеров. История собеседования в Facebook меня сильно заинтересовала, поэтому я решил изучить тему soft skills, их проверки и тренировки поподробнее. Бонусом прикладываю список полезных ресурсов и статей, на которые наткнулся в процессе подготовки материала. Поехали!
Читать дальше →
Total votes 24: ↑14 and ↓10+7
Comments141

Кто там выше тимлида?

Reading time8 min
Views16K
image

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

Стоит отметить, что для разработчика существует несколько векторов развития, которые хорошо описаны в статье Три дороги для программиста: эксперт, руководитель, основатель. Я же сосредоточусь на втором направлении — руководителе.
Читать дальше →
Total votes 22: ↑21 and ↓1+26
Comments11

Позиционирование продукта: Курс «Создание программного продукта и управление его развитием»

Reading time6 min
Views6.4K
Привет Хабр! Сегодня в рамках курса продакт-менеджмента от Acronis мы поговорим о том, как нужно позиционировать продукт, и чем это отличается от позиционирования бренда. Кроме этого, речь пойдет об уникальных компетенциях, конкурентных преимуществах и о том, что является самой большой ценностью для бизнеса на высококонкурентных рынках. Всех заинтересованных приглашаю под кат!

image
Total votes 20: ↑20 and ↓0+20
Comments0

Clickhouse — оконные функции, которых нет…

Reading time5 min
Views27K
Работу с колоночными базами данных я начал с BigQuery. Когда пришлось “переехать” на Clickhouse я был неприятно удивлен фактом отсутствия полноценных оконных функций. Есть, конечно, множество функций по работе с массивами, функций высшего порядка и прочие функции (одна функция runningDifferenceStartingWithFirstValue чего стоит). Сразу на ум приходит победитель 1999 года на звание самого длинного слова Donaudampfschifffahrtsgesellschaftskapitänswitwe. Что в переводе с немецкого означает «вдова капитана пароходного общества на Дунае».

Поиск по словосочетанию “оконные функции в Clickhouse” не дает вразумительных результатов. Эта статья является попыткой обобщить разрозненные данные из интернета, примеры с ClickHouseMeetup и собственный опыт.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments9

Проектные решения: игра по твоим правилам

Reading time27 min
Views23K
Не секрет, что чем крупнее программный проект, тем больше его успех зависит от результатов работы аналитиков, в частности, от выбора правильной стратегии составления и согласования проектных решений. Однако как организовать работу этих творческих сотрудников? И как сделать так, чтобы результаты их деятельности были одинаково понятны как  представителям заказчика, так и программистам? Как оценить возможные сроки выполнения и значимость этой работы для проекта? В этой статье я попытался сформулировать свои рецепты оптимизации управления аналитической работой на проектах по созданию программного обеспечения для государственных заказчиков. Приветствуется любая критика.

Источник
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments3

Фольклор программистов и инженеров (часть 1)

Reading time29 min
Views73K


Это подборка историй из интернета о том, как у багов иногда бывают совершенно невероятные проявления. Возможно, вам тоже есть что рассказать.
Total votes 103: ↑95 and ↓8+107
Comments247

5 публикаций, изменивших мир

Reading time12 min
Views29K
image

«Чего рассуждать, делать надо!», «Нечего бумагу марать», «Это всё хорошо только на словах» – многим пишущим людям не раз приходилось сталкиваться с таким пренебрежительным отношением к своему труду. А зря. Порой слово – это вполне себе действие, а точнее импульс к тому, чтобы в реальной жизни произошли значительные изменения. Печатные статьи действительно могут спасать или губить жизни людей и корпораций, и сегодня мы хотим поделиться с вами топовыми историями о том, как публицисты с 1850-х до 2000-х меняли мир с помощью своего пера.
Читать дальше →
Total votes 53: ↑44 and ↓9+62
Comments30

Эффективное использование ClickHouse. Алексей Миловидов (Яндекс)

Reading time24 min
Views27K


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

Total votes 19: ↑17 and ↓2+21
Comments4

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
From 4,000 $