this
, вокруг особенностей поведения которого собрано много такого, что способно запутать программиста.SE
Шпаргалка по структурам данных в Go
Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею. Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
N+7 полезных книг
Думай медленно, решай быстро — Даниэль Канеман
Это самое волшебное, что случалось за последние годы в плане гиковой литературы. Эта штука последовательно открывает когнитивные искажения и учит настраивать мышление. При этом увлекательно. Вообще, подход к тому, что мышление — это набор техник, которые можно тренировать и оттачивать, он, наверное, правильнее подхода «это шаманство». Канеман в отличие от следующей в списке книги, показывающей особенности реверсивного мышления, не даёт новых техник — но показывает, где и какие ошибки мы совершаем при обычных процессах. Такой серьёзный дебаг мозга.
Используем Yii2. Пишем очередную CMS или попытка значительно ускорить разработку при минимальных накладных расходах
Идея проекта yicms заключалась в том, чтобы собрать все наработки для фреймворка Yii2, которые казались удобными в некую систему, во главе угла которой должно ставиться удобство использования, гибкость и возможность с помощью ее инструментов значительно ускорить разработку типовых сайтов. Данный проект разрабатывался мной для «души», однако в настоящий момент он уже находится в стадии беты.
Лучшие практики Node.js — советы по структуре проектов
Привет, Хабр! Представляю вашему вниманию адаптированный перевод первой главы "Node.js Best Practices" автора Yoni Goldberg. Подборка рекомендаций по Node.js размещена на github, имеет почти 30 т. звезд, но до сих пор никак не упоминалась на Хабре. Предполагаю, что эта информация будет полезна, как минимум, для новичков.
Node.js для начинающих: основы работы с файлами
- Создание файла
- Чтение файла
- Запись данных в файл
- Удаление файла
- Переименование файла
Необходимость в выполнении подобных операций возникает в самых разных ситуациях.
Асинхронный PHP и история одного велосипеда
После выхода PHP7 появилась возможность сравнительно небольшой ценой писать долгоживущие приложения. Для программистов стали доступны такие проекты, как prooph
, broadway
, tactician
, messenger
, авторы которых берут на себя решение наиболее частых проблем. Но что если сделать небольшой шаг вперёд, углубившись в вопрос?
Попробуем разобрать судьбу ещё одного велосипеда, который позволяет реализовать Publish/Subscribe приложение.
О простых вещах-сложно. Возвращаем девочке птицелет или RTFM по определению пластмасс в домашних условиях
Посвящается моей дорогой маме, по совместительству лучшему эксперту в раздельной сортировке пластмасс...
Если, дорогой читатель, у тебя никогда в жизни не возникал вопрос "что, черт побери, это за пластмасса такая?", то можешь статью не читать :) Вниманию же всех остальных — очередная статья из серии "положи в закладки!". Сегодня у нас тема — "Определение пластмасс в домашних условиях" и я продолжаю wikipedia-ровать Хабр полезной информацией, которая осталась у меня после выполнения моих научно-технических проектов. Сегодня под кат смело могут идти экологи, биотехнологи, мастера полимерных производств, инженеры по переработке пластмасс и все, кому приходилось сортировать пластики, клеить пластики, паять пластики — автолюбители, самодельщики и прочие заинтересованные лица. Традиционно — минимум FUN-а, максимум информации, полнее русскоязычную мануалку по пластикам просто не найти, "я гарантирую это" :)
… И наконец-то руки дошли вспомнить советский детский роман 1966 года, в котором практических рекомендаций ребенку "которому нравится химия" гораздо больше чем в современных белорусских учебниках химии вместе взятых.
Игра фреймворков: тренды JavaScript в 2019
Наш анализатор резюме CV Compiler еженедельно обрабатывает десятки резюме JS-разработчиков. Поэтому мы тоже следим за «Игрой фреймворков», регулярно анализируя требования работодателей. Эта статья основана на одном из таких анализов, и посвящена трендам в языке JavaScript в 2019 году.
FAQ по архитектуре и работе ВКонтакте
Алексей Акулович (AterCattus) бэкенд-разработчик в команде ВКонтакте. Расшифровка этого доклада — собирательный ответ на часто задаваемые вопросы про работу платформы, инфраструктуры, серверов и взаимодействия между ними, но не про разработку, а именно про железо. Отдельно — про базы данных и то, что вместо них у ВК, про сбор логов и мониторинг всего проекта в целом. Подробности под катом.
Псевдослучайность нам поможет: подборка инструментов генерации ассетов для игры
Отгремели выстрелы минувшего Ludum Dare 44
, но тяга делать игры, оттачивать свое мастерство ещё не покидает меня, да и думаю многих. Проглядывая главную страницу онлайн-мероприятия, я наткнулся на интереснейший пост, где автор задался вопросом составления инструментария, помогающего разработчикам (командам) создавать свои игровые шедевры. В статье автор задался целью собрать в один список набор инструментов, псевдо-случайным образом генерирующих различные ресурсы для вашей игры, начиная от фиксированной палитры цветов, заканчивая простейшей chiptune-like фоновой музыкой и спрайтами персонажей.
Под катом перевод данной заметки, с небольшими комментариями и примечаниями от себя.
Генератор CRUD-виджета для Yii
С точки зрения моделирования данных, и то, и другое — “вложенные” сущности, которые не имеют самостоятельного значения в отрыве от родительского объекта.
В Yii (php framework) есть Gii — встроенный генератор кода, который позволяет в несколько кликов мышкой создавать базовые CRUD-интерфейсы по модели данных, которые значительно ускоряют разработку, но применимы только для самостоятельных сущностей, как статья или машина в примерах выше.
Было бы здорово, чтобы можно было сгенерировать что-то подобное для “вложенных” объектов данных, верно? Теперь — можно, добро пожаловать под кат за подробностями.
Фибоначчи на собеседовании
fib(n)
, возвращающую энное число Фибоначчи. Считаем, что нулевое число Фибоначчи — это нуль. Проверка корректности аргумента не требуется. Какие у вас есть варианты?Как реализовать язык программирования на JavaScript. Часть 1: Парсер
Здравствуйте! Представляю вам любительский перевод руководства реализации своего языка программирования на JavaScript — PL Tutorial.
От переводчика
Мы создадим свой язык программирования — λзык (в оригинале — λanguage). В процессе создания мы будем использовать достаточно много интересных техник, таких как рекурсивный спуск, стиль передачи управления, базовые техники оптимизации. Будет создано две версии интерпретатора — обычный и CPS-интерпретатор, транс-компилятор в JavaScript.
Автор оригинала — Mihai Bazon, автор известной библиотеки UglifyJS (инструмент для минимизации и форматирования JS-кода).
Теория относительности в картинках
Под катом много картинок (и ни одной формулы).
Стажёр Вася и его истории об идемпотентности API
Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе.
Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.
Король разработки
Я знаю одного человека — он хороший разработчик, но полнейшая скотина. Когда он начинает говорить, хочется набить ему морду, заткнуть как угодно, лишь бы не слышать, насколько он прав. И эту сумасбродную самоуверенную сволочь еще кто-то слушает, ему поддакивают. Видимо, люди любят сволочей, и им стоит как следует поразмыслить почему.
Полбеды, если он просто шутит, вроде, «разработка приносит мне столько бабок, что поработаю два часа и найму трех нищих врачей стричь мне лужайку». Хуже, когда говорит серьезно: «Ты зря стал писать код. Вся ирония этой индустрии в том, что став хорошим разработчиком, ты обретаешь навыки, которые приводят тебя к выводу, что разработчиком быть плохо».
Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
Пишем высокопроизводительный http клиент на примере fasthttp. Александр Валялкин (VertaMedia)
Библиотека Fasthttp — ускоренная альтернатива net/http из стандартных пакетов Golang.
Как она устроена? Почему она такая быстрая?
Предлагаю вашему вниманию расшифровку доклада Александра Валялкина Fasthttp client internals.
Паттерны из Fasthttp можно использовать для ускорения ваших приложений, вашего кода.
Кому интересно, добро пожаловать под кат.
MySQL — Использование переменных в запросе
Для замены аналитических функций часто используют запросы с самосоединением, сложные подзапросы и прочее. Большинство таких решений оказываются неэффективными с точки зрения производительности.
Также в MySQL нет рекурсии. Однако с некоторой частью задач, которые обычно решаются аналитическими функциями или рекурсией, можно справиться и средствами MySQL.
Одним из этих средств является уникальный, нехарактерный для прочих СУБД механизм работы с переменными внутри запроса SQL. Мы можем объявить переменную внутри запроса, менять ей значение и подставлять в SELECT для вывода. Причем порядок обработки строк в запросе и, как следствие, порядок присвоения значений переменным можно задать в пользовательской сортировке!
Предупреждение. В статье подразумевается, что обработка выражений в предложении SELECT осуществляется слева направо, однако официального подтверждения такого порядка обработки в документации MySQL нет. Это необходимо иметь в виду при смене версии сервера. Для гарантии последовательности вычисления можно использовать фиктивный оператор CASE или IF.
Аналог рекурсии
Рассмотрим простой пример, который генерирует последовательность Фибоначчи (в последовательности Фибоначчи каждый член равен сумме двух предыдущих, а первые 2 равны единице):
Шпаргалка для технического собеседования
Эта шпаргалка поможет вам подготовиться к техническому собеседованию, чтобы вы могли освежить в памяти ключевые вещи. По сути, это содержание курса по информатике безо всяких подробностей.
Information
- Rating
- 3,175-th
- Registered
- Activity