Как стать автором
Обновить
0
0

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

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

Контекст выполнения и стек вызовов в JavaScript

Время на прочтение7 мин
Количество просмотров116K
Если вы — JavaScript-разработчик или хотите им стать, это значит, что вам нужно разбираться во внутренних механизмах выполнения JS-кода. В частности, понимание того, что такое контекст выполнения и стек вызовов, совершенно необходимо для освоения других концепций JavaScript, таких, как поднятие переменных, области видимости, замыкания. Материал, перевод которого мы сегодня публикуем, посвящён контексту выполнения и стеку вызовов в JavaScript.


Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии7

Что должен знать о поиске каждый разработчик

Время на прочтение18 мин
Количество просмотров25K

Хотите внедрить или доработать функцию поиска? Вам сюда.



Спросите разработчика: «Как бы вы реализовали функцию поиска в своем продукте?» или «Как создать поисковую систему?». Вероятно, в ответ вы услышите что-нибудь такое: «Ну, мы просто запустим кластер Elasticsearch: с поиском сегодня всё просто».

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

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

Цель статьи


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

Основываясь на опыте работы с универсальными решениями и узкоспециализированными проектами самого разного масштаба (в компаниях Google, Airbnb и нескольких стартапах), я расскажу о некоторых популярных подходах, алгоритмах, методах и инструментах.

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

Переведено в Alconost
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Как быстро и эффективно работать с приоритетами по методу Lean Prioritization?

Время на прочтение6 мин
Количество просмотров15K
Постоянная работа с приоритетами является необходимостью в управлении продуктами, неотъемлемой частью процесса разработки. Если хватает времени, можно изучить и попробовать использовать сложные и интересные методы для определения приоритетов. Техника Lean Prioritization — один из простых и доступных подходов, который помогает менеджерам продуктов управлять бэклогом задач, особенно, когда нужно это сделать быстро и эффективно.

image
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Игры для программистов, часть вторая

Время на прочтение5 мин
Количество просмотров82K
Прошло четыре с половиной года с тех пор, как я, пользуясь свежеполученным инвайтом, написал предыдущий хабрапост с подобным заголовком. Большой срок для игровой индустрии. Успело появиться много новых хороших игр, и недавно я ощутил настоятельную необходимость поделиться знанием о них с широкой общественностью.

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

Infinifactory


image
И что же это за майнкрафт такой?
Всего голосов 58: ↑57 и ↓1+56
Комментарии74

Как работают рекомендательные системы. Лекция в Яндексе

Время на прочтение11 мин
Количество просмотров139K

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





План лекции:


  1. Виды и области применения рекомендательных систем.
  2. Простейшие алгоритмы.
  3. Введение в линейную алгебру.
  4. Алгоритм SVD.
  5. Измерение качества рекомендаций.
  6. Направление развития.

Под катом вы найдете конспект лекции и презентацию
Всего голосов 63: ↑56 и ↓7+49
Комментарии42

Шаблоны проектирования с человеческим лицом

Время на прочтение32 мин
Количество просмотров502K

image


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


Как сказано в Википедии:


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

image Будьте осторожны


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

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

Читать дальше →
Всего голосов 148: ↑134 и ↓14+120
Комментарии98

Давайте разберём, почему покупатели задают «тупые» вопросы

Время на прочтение4 мин
Количество просмотров71K


— Добрый день! Почём мороженое?
— Вот же ценник!

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

Очень много явно странных вопросов имеют совсем не то значение, которое озвучивается. Это касается и продаж, и обычной жизни. Давайте разберём ещё пару примеров. Начнём с риторических вопросов в духе «А этот пазл точно собирается? Там все детали внутри?».
Читать дальше →
Всего голосов 182: ↑175 и ↓7+168
Комментарии386

Курс «Grant Proposal»: как найти правильные слова, чтобы привлечь внимание и деньги к вашей разработке

Время на прочтение2 мин
Количество просмотров2.7K


Мы уже рассказывали о стартовавшей осенью прошлого года специализации «English for Research Publication Purposes», которая помогает не просто развить навыки академического письма на английском языке, но и детально рассматривает и помогает отработать вполне прикладные кейсы.

Третий курс специализации «Grant proposal» стоит, в некотором смысле, особняком. Этот курс — руководство по созданию заявки на грант так, чтобы рецензенты смогли высоко оценить достоинства вашей работы. Проще говоря, в этом курсе вы узнаете, как получить деньги на вашу разработку или, как минимум, заинтересовать потенциального инвестора.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

A/B тестирование: 70 ресурсов, которые послужат хорошим стартом для начинающих

Время на прочтение10 мин
Количество просмотров119K
Сделать веб-сайт доходным можно двумя способами. Первый – привлекать больше трафика, второй – повышать конверсию, т.е. побуждать большее количество посетителей становиться покупателями. Скорее всего, вы уже слышали о том, что трафик можно просто купить – сотни интернет-ресурсов предлагают эту услугу. А не лучше ли оптимизировать конверсию? Как узнать, что именно нужно проверить, и как провести A/B тестирование?

А/В тестированию и оптимизации уровня конверсии посвящено бесчисленное количество ресурсов. Однако, очень редко на сайтах подробно разбирается весь этот процесс целиком от самого начала («Что и как тестировать?») и до конца («Как улучшить конверсию?»).
Читать дальше →
Всего голосов 62: ↑53 и ↓9+44
Комментарии5

Консоль разработчика Google Chrome: десять неочевидных полезностей

Время на прочтение6 мин
Количество просмотров230K
Как с помощью консоли разработчика превратить Google Chrome в подобие текстового редактора? Какой смысл в ней приобретает знакомый многим по jQuery значок $? Как вывести в консоль набор значений, оформленный в виде вполне приличной таблицы? Если сходу ответы на эти вопросы в голову не приходят, значит вкладка Console из инструментов разработчика Chrome ещё не раскрылась перед вами во всей красе.

image

На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
Читать дальше →
Всего голосов 88: ↑83 и ↓5+78
Комментарии62

Алистер Коберн: Командная разработка и agile

Время на прочтение8 мин
Количество просмотров17K
Сегодня день рождения одного из отцов-основателей Agile-манифестаАлистера Коберна. Предлагаю вашему вниманию перевод его выступления на TED про командную разработку.

image

Давайте посмотрим на группу людей, занимающихся дизайном. Мы видим, как они что-то изобретают, общаются и принимают решения. Они решают проблему, которую ещё не до конца понимают, потому что это только начало и она изменяется. Они создают решение, которое, конечно, не понимают, потому что только начали, и оно изменяется. Они выражают свои идеи с помощью разновидностей языка, которые часто тоже не понимают, и угадайте, что? Те изменяются.

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

Всего голосов 14: ↑14 и ↓0+14
Комментарии2

10 ошибок, приводящих к оверинжинирингу ПО

Время на прочтение9 мин
Количество просмотров54K
Несколько вещей гарантированно будут увеличиваться со временем: расстояния между звёздами, энтропия вселенной и бизнес-требования к ПО. Многие статьи пишут «Не усложняйте!», но не пишут почему или как это сделать. Вот вам 10 ясных примеров.

1. Инженерам виднее

Мы, инженеры, считаем себя умнейшими людьми. Ну, поскольку мы создаём разные штуки. И эта ошибка часто приводит к оверинжинирингу. Если вы спланировали и построили 100 модулей — Бизнес всегда попросит у вас 101-ый, о котором вы никогда не задумывались. Если вы соберётесь с силами и решите 1000 проблем — они придут к вам и выложат на стол 10 000 новых. Вы считаете, что у вас всё под контролем, а на самом деле вы даже не представляете, в каком направлении вас завтра поведёт дорога.

image

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

Мораль: Казино (бизнес) всегда побеждает.
Читать дальше →
Всего голосов 127: ↑109 и ↓18+91
Комментарии84

Почему «мотивирующие» статьи не работают, не сработают и как устроена мотивация на самом деле

Время на прочтение3 мин
Количество просмотров51K
Многие любят читать мотивирующие статьи типа «30 способов заставить себя работать». Да и писать многие любят. Но что многие не любят — так это писать о том, что советы, изложенные в этих статьях, у них не сработали. То есть советы-то разумные. И применить их часто пытаются. Но есть одна проблема — стоит начать их применять, как возникает огромное внутреннее сопротивление. Настолько огромное, что применить советы не получается. Так в чем же дело?

Ответ, на самом деле, является сколь простым, столь и ошеломляющим — причина в том, что мы сами не знаем, чего хотим.

Читать дальше →
Всего голосов 68: ↑62 и ↓6+56
Комментарии361

Пока китайский ИТ-рынок труда еще перенимает американскую практику, в США нанимают программистов «играючи»

Время на прочтение7 мин
Количество просмотров17K
image

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

«Хороших» компаний не так уж много. Поэтому в попытке трудоустроиться туда соискатели готовы пойти на многое: переехать в другой район, город, и даже в другую страну.

Несмотря на встряску и стагнацию экономики Китая, за последние шесть лет она демонстрирует рост порядка 6,5%. Наибольший клад в этот процесс вносит китайская ИТ-индустрия. Более того, многие стартапы из этой страны (включая Baidu, Alibaba и Tencent) на слуху в Кремниевой долине.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии0

Полное практическое руководство по Docker: с нуля до кластера на AWS

Время на прочтение39 мин
Количество просмотров1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Всего голосов 125: ↑124 и ↓1+123
Комментарии44

«Эволюция музыки»: Пара слов о рекомендательных алгоритмах стриминговых сервисов

Время на прочтение4 мин
Количество просмотров6K
Миллионы людей по всему миру пользуются музыкальными стриминговыми сервисами, то есть слушают песни, не скачивая их на устройства. Сегодня этот рынок обладает огромным потенциалом. За первую половину 2016 года количество аудиостримов в США удвоилось, по сравнению с 2015 годом.

Более того, к концу 2015 года количество подписчиков музыкальных стриминговых сервисов составило 68 миллионов по всему земному шару, и эта цифра продолжает расти. Сегодня на этом рынке работает множество популярных компаний начиная с зарубежных Spotify, Pandora, 8tracks и заканчивая российскими Яндекс.Музыка и Zvooq.

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



/ фото Patrik Nygren CC
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Как мы сделали ровную балансировку нагрузки на фронтенд-кластере

Время на прочтение10 мин
Количество просмотров20K

Юрий Насретдинов (youROCK, Badoo)


Юрий Насретдинов

Расшифровка доклада Юрия Насретдинова на конференции HighLoad++ 2015. Юрий расскажет про то, как Badoo (крупнейшая социальная сеть для знакомств с новыми людьми) сделали практически идеально ровную балансировку нагрузки на нашем кластере. Передаём ему слово...

Чтобы обслуживать то количество пользователей, то количество реквестов в секунду, которые мы получаем, у нас около трех тысяч серверов, и на PHP-FPM конкретно приходится 70 тысяч в пике.

О том, как мы эти запросы распределяем по нашему кластеру, я расскажу.



Кратко — о чем я буду рассказывать. Во-первых, я расскажу, как «с высоты птичьего полета» устроен роутинг запросов на нашем сайте. Потом расскажу, какие, вообще, существуют алгоритмы балансировки; про то, как мы делали балансировку до того, как мы сделали автоматическую систему. Расскажу про эту автоматическую систему, ну и будут кое-какие выводы. Также хотел сказать, что эта система будет выложена в open-source после этого доклада.
Всего голосов 35: ↑31 и ↓4+27
Комментарии15

Проблемы при внедрении Agile

Время на прочтение5 мин
Количество просмотров6.9K
Как и многие сейчас, мы решили попробовать внедрить agile для развития одного из наших решений. Точнее, поскольку в мире разработки ПО нет «черного» и «белого», мы решили «не внедрить agile», а перейти от использования менее гибких подходов к использованию более гибких.

В данном топике я хотел бы описать проблемы, с которыми мы столкнулись, а также привести соображения, как некоторых из этих проблем можно было бы избежать. Написание топика продиктовано желанием способствовать переводу дискуссии про agile из плоскости «как наконец заставить этих старомодных менеджеров перейти к прогрессивным методологиям» в плоскость «как работать по agile наиболее эффективно».
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии7

Плакаты на IT тематику

Время на прочтение1 мин
Количество просмотров29K
Почитывая «Банду четырех», всё чаще думаю как хорошо было бы иметь отдельный плакат на стену в офисе, резюмирующий и объясняющий шаблоны проектирования. Как здорово было бы не держать все их в голове, а имея проблему, взглянуть и найти подходящее решение. Но найти подходящий постер оказалось не так то просто, да и тот оказался не идеальным.
Читать дальше →
Всего голосов 69: ↑57 и ↓12+45
Комментарии38

Анатомия науки: преемственность, которой уже нет

Время на прочтение5 мин
Количество просмотров1.7K
image


Данная статья опубликована мной по просьбе Hemdall, который в силу некоторых особенностей Хабра не может пока сделать это собственноручно. Но делаю я это не просто по доброте душевной — с изложенным ниже я лично согласен на 100%, за исключением того, что, на мой взгляд, выводы автор делает слишком оптимистичные. Впрочем — судить вам.

Доброго всем времени суток!

Жаркая дискуссия по поводу Как «Фобос-Грунт» строился со всей очевидностью показывает, что большинство читателей просто не понимает, как устроены передача и развитие знаний в науке и что из того следует. А поскольку большая часть Хабра, как я наблюдаю, очень молодые читатели, не обладающие в необходимом объёме пониманием, как все устроено, позволю небольшое напоминание.

Сначала опишу простые, но, как правило, не очень понятные многим условия в науке:
Читать дальше
Всего голосов 153: ↑144 и ↓9+135
Комментарии238
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Одесса, Одесская обл., Украина
Зарегистрирован
Активность