Pull to refresh
7
0
Александр Никулин @Kommunikator

Инженер разработчик

Send message

Как не наступать на грабли в Go

Reading time10 min
Views89K

Этот пост является версией моей же англоязычной статьи "How to avoid gotchas in Go", но слово gotcha не переводится на русский, поэтому я буду использовать это слово как без перевода, так и немного непрямой вариант — "наступать на грабли".


Gotcha — корректная конструкция системы, программы или языка программирования, которая работает, как описано, но, при этом, контринтуитивна и является причиной ошибок, поскольку её легко использовать неверно.

В языке Go есть несколько таких gotchas и есть немало хороших статей, которые их подробно описывают и разъясняют. Я считаю, что эти статьи очень важны, особенно для новичков в Go, поскольку регулярно вижу людей, попадающихся на те же грабли.


Но один вопрос меня мучал долгое время — почему я сам никогда не делал этих ошибок? Серьезно, самые популярные из них, вроде путаницы с nil-интерфейсом или непонятного результата при append()-е слайса — в моей практике никогда не были проблемой. Каким-то образом мне повезло обойти эти подводные камни с первых дней своей работы с Go. Что же мне помогло?


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

Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments9

12 вопросов, которые стоит задать потенциальным работодателям

Reading time8 min
Views17K

Я только что завершил шестинедельный процесс трудоустройства на должность middle-senior разработчика на рынке, где сейчас ведется активная охота за талантами (Амстердам). Иными словами, я побывал на куче собеседований. Чтобы аккуратно разведать, какие компании мне больше всего подходят, я старался задавать побольше вопросов. Тут нужно найти правильный баланс, исходя из своих потребностей и того, кто с вами общается.

Если вы джуниор в поисках работы, то вы, возможно, придете к выводу, что вас на самом-то деле мало интересует, что вам ответят на все приведенные ниже вопросы — вам бы хоть куда-нибудь устроиться. Но даже в этом случае, решите для себя, какие моменты для вас будут стоп-сигналами и спрашивайте с расчетом на то, чтобы всплыла нужная информация. Если есть что-то, что может вас заставить отказаться от вакансии, лучше узнать об этом до того, как примете предложение о работе.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments10

Английский по-программистски

Reading time4 min
Views19K
Чуть менее года назад я всерьез решил подтянуть английский, изучая его самостоятельно всеми доступными методами: прослушивание новостей, подкастов и книг, чтение художественной литературы, в том числе и в слух, ведение дневника и, конечно же, с помощью различных программ. Столкнувшись с последними, я понял, что можно написать аналоги как минимум не хуже. Что у меня в итоге получилось — под котом.


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

Руководство пользователя Kibana. Визуализация. Часть 5

Reading time8 min
Views3.7K

Пятая часть перевода официальной документации по визуализации данных в Kibana.


Ссылка на оригинальный материал: Kibana User Guide [6.6] » Visualize


Ссылка на 1 часть: Руководство пользователя Kibana. Визуализация. Часть 1
Ссылка на 2 часть: Руководство пользователя Kibana. Визуализация. Часть 2
Ссылка на 3 часть: Руководство пользователя Kibana. Визуализация. Часть 3
Ссылка на 4 часть: Руководство пользователя Kibana. Визуализация. Часть 4


Содержание:


  1. Tag Clouds
  2. Heatmap Chart
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Карьерные стероиды. Путь Самурая

Reading time13 min
Views27K
Метод карьерного роста «Путь Самурая» как-то язык не поворачивается назвать стероидом, потому что он… Не знаю, правильный, что ли. Честный, настоящий, добрый и пушистый.

Потому в жизни встречается не очень часто. Я смог вспомнить только четыре примера, и не все они из моей личной практики, но эти истории я видел своими глазами. Разумеется, люди, о которых пойдет речь, никогда не читали «Хагакурэ» (кодекс самураев), но их истории, поведение, принципы и подходы лежат очень близко к философии древних японских воинов.



Для начала немного расскажу о самураях и их философии.
Читать дальше →
Total votes 56: ↑42 and ↓14+28
Comments81

Вся история Linux. Часть I: с чего все началось

Reading time7 min
Views42K
В этом году ядру Linux исполняется 27 лет. ОС на его базе используют многие корпорации, государственные, исследовательские учреждения и дата-центры по всему миру.

За более чем четверть века вышло немало статей (в том числе и на Хабре), рассказывающих о разных отрезках истории Linux. В этой серии материалов мы решили выделить наиболее значимые и интересные факты, связанные с этой операционной системой.

Начнем с разработок, которые предшествовали Linux, и истории появления первой версии ядра.

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

Симулятор

Reading time2 min
Views12K

— Сержант МакКормик, срочно зайдите ко мне!
— Что-о-о? Капитан, наш корабль в открытом космосе, откуда здесь гравитация?
— Не морочьте мне голову, живо ко мне!


Брайан МакКормик вошёл в капитанскую рубку.
— У нас на видеосвязи сенатор Дориган с важным сообщением.
— Но ведь до планеты, где находится сенатор, более 400 световых лет, как сигнал приходит без задержек?


Внезапно за обшивкой послышались взрывы. Брайан, стоявший ближе всех к иллюминаторам, увидел, как один из сопровождавших их кораблей превратился в огненный шар. "С каких это пор в вакууме стали распространяться звуки?" — недоумённо подумал пилот.

Читать дальше →
Total votes 66: ↑51 and ↓15+36
Comments65

Точная копия

Reading time5 min
Views12K

Персонал космической станции готовился к прибытию экспериментального космического корабля «Пилигрим». Об этом событии не стоило бы даже упоминать, если бы не одно «но» – корабль возвращался из полёта, который проходил со сверхсветовой скоростью. Такая скорость позволила бы достичь Альфы Центавра за два месяца, но сейчас главной задачей было убедиться, что такие полёты опасны для человека не более, чем полёт до Луны.


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


— Зафиксирован фотонный след. Начата процедура проявления – зазвучал в динамиках приятный женский голос.


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


Со стороны зрелище было величественным – корабль-призрак медленно возникал ниоткуда.

Читать дальше →
Total votes 63: ↑48 and ↓15+33
Comments32

Больше позитива

Reading time3 min
Views3.9K

Объяснительная диспетчера фабрики горячего синтеза Дэвида Трэмпла


Я, Дэвид Трэмпл, 15 декабря 2547 года столкнулся с критической ситуацией на рабочем месте. Из-за бурана вышли из строя три из четырёх энергоблока, что повлекло за собой падение мощности на генераторах магнитного поля, которые удерживали горячую плазму в пределах реактора. Автоматическое отключение генераторов не сработало, поэтому возникла угроза взрыва всего энергокомплекса. Мной было принято решение обесточить главный распределительный щит. Отключение щита привело к прекращению подачи электричества в штат Техас. Несмотря на это, разрушение фабрики было остановлено, так как в противном случае взрыв мощностью около 700 мегатонн сделал бы штат Техас непригодным к проживанию любых форм жизни в течение следующих 3 000 лет.


Объяснительная начальника отдела


Вследствие героических действий моего подчинённого Трэмпла Д. 15 декабря 2547 отдел недовыполнил месячный план по синтезу ферродиевых зарядов для торпед ближнего радиуса действия (1 000 — 10 000 км) на 6%. Тем не менее, отдел смог перевыполнить план синтеза тритиумных зарядов для торпед среднего (10 000 – 100 000 км) и дальнего (100 000 – 1 000 000 км) радиуса действия на 9% и 14% соответственно, что обеспечило полную загрузку логистических кораблей, а также создало профицит боеприпасов на складе в количестве 2.2 млн снарядов.

Читать дальше →
Total votes 34: ↑15 and ↓19-4
Comments11

Исказитель будущего

Reading time5 min
Views6.5K

Роберт подошёл к двери. Обычная офисная дверь, без таблички, только с номером. По её внешнему виду невозможно догадаться, кто ждёт его внутри. Чуть помедлив, Роберт открыл дверь и вошёл.


— Доктор Греттинг! Прошу, мы вас с нетерпением ждем, — произнёс человек в дорогом костюме. — Меня зовут Альберт Монтье, я председатель совета по контролю за вашим изобретением — тахионным реактором.
— Контролю? Но ведь моё изобретение является общественным достоянием.
— Конечно, но мы были бы последними идиотами, если бы не пытались контролировать такое стратегически важное устройство, в первую очередь, из соображений национальной безопасности.
— Понимаю. Но мне всё ещё непонятна причина, по которой я здесь нахожусь.

Читать дальше →
Total votes 68: ↑53 and ↓15+38
Comments19

Как писать хороший и понятный код: 3 простых способа для программиста

Reading time4 min
Views11K


От переводчика: сегодня публикуем для вас статью разработчика из Индии Рави Шанкара Рахана. Он рассказывает о том, что стоит делать, если вы хотите научиться писать простой и понятный код. Статья рекомендуется всем начинающим программистам.

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

Разработчику необходимо создавать код, который может использовать любой его коллега из любой страны мира. Так он становится чем-то вроде его «наследия». Все это хорошо и складно звучит, но реальность несколько иная…
Читать дальше →
Total votes 27: ↑16 and ↓11+5
Comments22

Собираем полную колоду

Reading time12 min
Views15K
Колодой, если верить писателям, раньше называлась «команда», которую набирал себе вор. У каждого человека в команде была своя «масть» — специализация и назначение. Вот что пишет об этом Борис Акунин в книге «Любовник смерти»:

«Пацаны рассказывали, что у настоящих деловых, кто по законам живет, шайка „колодой“ называется, и в каждой колоде свой кумплект. Кумплект — это восемь фартовых, каждый при своем положении. Главный — »король"; при нем маруха, по-деловому «дама»; потом «валет» — вроде как главный помощник; ну и прочие бойцы, от десятки до шестерки. А больше восьми человек в шайке не держат, так уж исстари заведено."

Меньше восьми людей брать смысла нет, будут пробелы в «компетенциях». Больше — нельзя, будет дублирование и потеря управляемости.



Как ни странно, тот же Джефф Сазерленд, один из авторов скрама, называл похожие цифры — от 5 до 9 человек. Хотя и не уточнял специализацию.

Ну да ладно. А мы продолжаем тему построения команд по ролям, на основе тестов Белбина.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments18

Шесть бесплатных автоматизированных платформ для изучения программирования

Reading time3 min
Views106K

Привет, сообщество! Мы в Хекслете составили список из пяти бесплатных автоматизированных онлайн-платформ для новичков.


На русском:


HTML Academy
«Академия» учит верстать сайты. Основной контент в формате подписки (390 рублей в месяц) и интенсивов (от 12500 рублей), но есть несколько бесплатных автоматизированных курсов по основам HTML, CSS и JavaScript.


В HTML Academy не столько задания для прокачки в программировании, сколько для знакомства с основами веб-разработки. Но это идеальный формат для тех, кто никогда не писал код и хочет попробовать. Большое количество веб-разработчиков начинало путь именно здесь.


Code Basics
Это новый бесплатный сервис от Хекслета. Его основная идея — через решение простых заданий прямо в браузере погружать новичков в основы программирования. Сейчас есть уроки по PHP, JavaScript и Python, ближайшее время появятся — новые. Платформа подойдет лучше всего для изучения основ синтаксиса, и меньше — для прокачки алгоритмов.


Обучение построено вокруг чередования небольших порций теории (3-4 абзаца) и закрепления практики в тренажере. У каждого практического задания есть решение учителя, которое можно сравнить со своим после успешного прохождения и раздел для обсуждения задания.

Читать дальше →
Total votes 45: ↑44 and ↓1+43
Comments52

Формула Е. Презентация гоночного болида Spark-Renault SRT 01E во Франкфурте

Reading time2 min
Views30K
10-го сентября 2013 года во Франкфурте прошла официальная презентация болида Формулы Е — Spark-Renault SRT 01E.
Формула E является новым чемпионатом FIA с участием автомобилей, работающих исключительно от электрической энергии. Она представляет собой видение будущего автомобилестроения в ближайшие десятилетия, выступая в качестве основы для исследования и развития для всех электрических транспортных средств.
Формула Е – это синтез последних технологий, спорта, науки и дизайна.



В разработке приняли участие: Dallara, Renault, McLaren, Williams и Michelin.
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments63

GifCam — анимированный скриншот в два клика

Reading time3 min
Views81K
Не знаю как у вас, а у меня необходимость сделать анимированный скриншот иногда появляется. Например, чтобы передать как выглядит анимированное изображение на странице сайта. Или, чтобы доказать, что добавить анимацию в принципе возможно, например, в ленту новостей группы на mail.ru (считается, что анимация там не добавляется).
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments26

Выразительный JavaScript: Структура программ

Reading time15 min
Views140K

Содержание




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

_why, Why's (Poignant) Guide to Ruby


В этой главе мы начнём заниматься тем, что уже можно назвать программированием. Мы расширим использование языка JavaScript за пределы существительных и фрагментов предложений к более-менее осмысленной прозе.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments20

Обзор бесплатных сервисов для веб-разработки

Reading time4 min
Views143K
Пост является личной подборкой полезных и нужных онлайн сервисов, которые позволяют бесплатно (или условно бесплатно) создавать действительно крутые вещи и разворачивать их в Сети. Не претендую на новизну или на полноту, но буду счастлив, если кому пригодится.

Всем нам иногда хочется попробовать новую идею, запилить какой-нибудь сайтик про манулов, но чтоб обязательно на node.js, хайлоад реди, с мемкешем, монго, фейловером и с претензией на мировое господство. У меня для Вас хорошие новости: благодаря щедрости проклятых западных капиталистов всё это можно получить совершенно бесплатно.
Читать дальше →
Total votes 157: ↑136 and ↓21+115
Comments113

Видео-курс по JavaScript на русском языке

Reading time1 min
Views218K
Здравствуй, Хабр!

Представляю вам свой курс по JavaScript, недавно прошедний на Хекслете. Курс состоит из семи лекций общей продолжительностью около четырех часов.



Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



Остальное – под катом.
Читать дальше →
Total votes 135: ↑127 and ↓8+119
Comments23

SuperHot — новое слово в инди-играх, slow-mo и управлении временем

Reading time1 min
Views34K
Трейлер игры скажет все за себя сам.



В двух словах: время идет только, пока вы двигаетесь. Braid-стайл, да. Разработчиков можно поддержать и проголосовать за их игру в Steam Greenlight. Чтобы сыграть в демо-версию, нужно установить Unity Web Player.
Total votes 83: ↑76 and ↓7+69
Comments48

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity