Как стать автором
Обновить
0
0
Никита Киселев @FatalStrike

PHP Developer

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

7 распространенных ошибок в SQL-запросах, которые делал каждый (почти)

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

Сегодня SQL используют уже буквально все на свете: и аналитики, и программисты, и тестировщики, и т.д. Отчасти это связано с тем, что базовые возможности этого языка легко освоить. 

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

Кстати, иногда такая же участь постигает и специалистов более высокого полета. 

Сегодня мы решили собрать 7 таких ошибок в одном месте, чтобы как можно меньше людей их совершали.

Читать далее
Всего голосов 37: ↑31 и ↓6+32
Комментарии92

«Сгоревшие» сотрудники: есть ли выход?

Время на прочтение18 мин
Количество просмотров160K
Ты работаешь в хорошей компании. Вокруг тебя крутые профессионалы, получаешь достойную зарплату, каждый день делаешь важные и нужные вещи. Илон Маск запускает спутники, Сергей Семёнович улучшает и без того лучший город Земли. Погода отличная, солнце светит, деревья цветут — живи да радуйся!

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

Что же делать? Как работать с Игнатом? Добро пожаловать под кат!


Всего голосов 224: ↑210 и ↓14+196
Комментарии400

PHP: изменение стуктуры БД в командной разработке

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


В мире PHP хорошо известны инструменты миграций структуры БД — Doctrine, Phinx от CakePHP, от Laravel, от Yii — это то первое, что пришло в голову. Наверняка, есть еще с десяток. И большинство из них работают с миграциями — командами для внесения инкрементных изменений в схему базы данных.

Я не буду описывать зачем это, на хабре много постов на эту тему. Например:


Далее, развитие моего опыта работы в команде с постоянным изменением структуры БД в разных ветках.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии23

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

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

Третья часть перевода официальной документации по визуализации данных в Kibana.
Ссылка на оригинальный материал: Kibana User Guide [6.6] » Visualize
Ссылка на 1 часть: Руководство пользователя Kibana. Визуализация. Часть 1
Ссылка на 2 часть: Руководство пользователя Kibana. Визуализация. Часть 2


Содержание:


  1. Goal and Gauge
  2. Pie Charts
  3. Coordinate Maps
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии1

16 марта Вadoo PHP Meetup: тесты и качество кода. Регистрация открыта

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

UPD. Добавили еще мест! Будет тесновато, но переживем.

Всем привет!


Меня зовут Владимир Янц, я активно занимаюсь развитием инфраструктуры тестирования кода в Badoo. С PHP у нас давние и крепкие отношения, и мы с коллегами всячески поддерживаем сообщество.


Нас все спрашивали: “Когда же уже, когда?” — и вот оно.


16 марта приглашаем на весенний Badoo PHP Meetup!


Вторую встречу мы решили посвятить автотестам для PHP-разработчика. Тема будет интересна всем PHP-кам, которые самостоятельно тестируют свой код, и хотят максимально улучшить его качество. Опытным автотестировщикам тоже должно быть полезно, так что welcome!


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


Первый доклад в 12:00. Событие бесплатное, только пожалуйста, не забудьте зарегистрироваться здесь и дождаться подтверждения.


Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии8

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

Время на прочтение9 мин
Количество просмотров59K
Доброго времени суток. Всем пользователям ElasticStack рано или поздно нужно визуализировать данные. Большинство использует Kibana. Под катом перевод официальной документации для версии 6.6.

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

Содержание:

  1. Creating a Visualization
  2. Line, Area, and Bar charts

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

Полосы зебры это — бесполетная зона для мошек

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

В наш современный век бурного развития IT-технологий кажется, что мы уже знаем все и в мире не осталось ни одной тайны. Отчего дует ветер, почему колобок круглый, даже почему аборигены съели Кука — известно практически каждому человеку.


А вот почему зебры полосатые, наверно догадываются совсем не многие. Тем не менее и это УЖЕ выяснили...


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




Зебры славятся своими контрастными черно-белыми полосами – но до недавнего времени никто не знал, почему они носят свой необычный полосатый узор. Этот вопрос обсуждался еще 150 лет назад великими викторианскими биологами, такими как Чарльз Дарвин и Альфред Рассел Уоллес.


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


  • зебры полосатые, чтобы избежать захвата хищниками;
  • зебры полосатые по социальным причинам;
  • зебры полосатые, чтобы сохранить прохладу;
  • полосы помогают им избежать укусов мошкары.

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


Камуфляж? Идентификация? Натуральный кондиционер? Нет, нет и нет
Рис_1. Камуфляж? Идентификация? Натуральный кондиционер? Нет, нет и нет.

Читать дальше →
Всего голосов 105: ↑100 и ↓5+95
Комментарии174

Искусственный интеллект Horizon Zero Dawn

Время на прочтение10 мин
Количество просмотров27K
Horizon Zero Dawn находится в списке одних из лучших эксклюзивов для Playstation 4. В роли охотницы Элой игроки путешествуют по постапокалиптическим ландшафтам будущего, чтобы раскрыть тайны её прошлого и узнать о причинах разрушения мира. Упадок человечества привёл к расцвету «машин» — роботов разных форм и размеров, свободно живущих повсюду. Эти животные-роботы умны, скоординированы и смертельно опасны: чтобы выжить, нужно быстро думать, чтобы уничтожить их — тщательно готовиться и планировать.


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

Предупреждение: в статье присутствуют спойлеры сюжета Horizon Zero Dawn.
Всего голосов 38: ↑37 и ↓1+36
Комментарии25

Приведение типов в PHP == табурет о двух ножках?

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

— В PHP приведение типов работает нормально, надо только включать здравый смысл.
— А чего там, просто сравниваешь и все…
— Ого, глюк какой-то в PHP, смотри, сравниваю два флоата, они должны быть одинаковые, а он мне говорит, что они не равны.
— А, ну когда число со строкой сравниваешь, перебирать надо, что сработает.

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

Буду краток, дальше будут только примерчики. А к тебе, дорогой читатель, просьба. Некоторые ответы спрятаны под спойлер. Перед тем, как заглянуть в ответ под спойлером, попробуй ответить сам. За каждый правильный ответ заслуженно прибавляй себе по баллу. В конце поста в опросе не забудь проставить свой результат. Договорились?
Тогда поехали
Всего голосов 49: ↑39 и ↓10+29
Комментарии81

Основы Kubernetes

Время на прочтение13 мин
Количество просмотров875K
В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

image

Что такое Kubernetes?


Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии86

Vue.js tutorial: от jQuery к Vue.js

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

Привет, Хабр! Представляю вашему вниманию перевод статьи Vue.js Tutorial: From jQuery to Vue.js автора Paul Redmond.


Что касается библиотек JavaScript, то никогда не было более популярной библиотеки, чем jQuery. Она создавалась для обхода DOM элементов с использованием CSS селекторов в то время, когда совместимость браузеров была важной проблемой для разработчиков.


Фактически jQuery настолько универсален, что я подумал что он отлично передаст то, почему я люблю писать UI с Vue, используя компонентный JavaScript. В этом руководстве мы сначала рассмотрим создание пользовательского интерфейса с jQuery, а затем перепишем его с помощью Vue.

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

Инверсия зависимостей в мире фронтенда. Лекция Яндекса

Время на прочтение9 мин
Количество просмотров45K
Паттерны инверсии контроля (dependency inversion, DI) известны уже давно, но пока не нашли широкого распространения в мире фронтенда. Этот доклад отвечает на вопрос о том, как за счет возможностей JS построить надежную архитектуру на основе DI-контейнера. Автор доклада — Евгений ftdebugger Шпилевский, руководитель группы разработки интерфейсов в Яндекс.Коллекциях.


— Насколько мне известно, инверсия зависимостей, DI-контейнеры и прочие паттерны, придуманные еще в 70-е годы, не очень плотно вошли в мир разработки фронтенда. На это наверняка есть причина. Отчасти дело в том, что многим людям непонятно, зачем они вообще нужны.
Всего голосов 47: ↑41 и ↓6+35
Комментарии8

Добавление рекордов с OAuth 2: Laravel Passport + Unity. Часть 1

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


В конце прошлого лета я задумался над простым способом авторизации пользователей форума в мобильном приложении. Как раз в это время вышла версия Laravel 5.3 вместе с пакетом Laravel Passport, где подобное предлагалось из коробки. Раньше я не работал с OAuth 2, так что начал не спеша разбираться. Решил испытать механизм на крысах, в небольшой игре на Unity про Крысу на Стене. Сама игра — простейший раннер, но механизм авторизации может представлять некоторый интерес, если ранее не сталкивался с этим. Я пользовался официальной документацией и статьей про Passport. На хабре подходящей статьи до сих пор не появилось, поэтому решил сам скомпоновать материал, реализовав для интереса добавление рекордов и базовое взаимодействие с клиентом на Unity. Ввиду моей неторопливости это растянулось почти на год, так что сейчас в примерах используются уже Laravel 5.5 и Unity 2017.1.

В первой части статьи разберёмся, как с помощью токена авторизации добавить рекорд пользователя на сайт.
На стену с крысом
Всего голосов 6: ↑5 и ↓1+4
Комментарии2

Doctrine Specification Pattern или ваш реюзабельный QueryBuilder

Время на прочтение5 мин
Количество просмотров18K
Я постараюсь максимально коротко рассказать о том, как можно использовать этот паттерн с нашей любимой Doctrine на примерах и почему так делать — true.

Давайте представим себе базовый кейс:

  1. У нас есть: сущность «Дом», сущность «Квартира в доме», сущность «Застройщик», сущность «Регион».
  2. У нас есть задача: иметь возможность получить всех застройщиков, иметь возможность получить все занятые регионы застройщиком, уметь возможность получить все дома, которые принадлежат застройщику и все доступные регионы вообще в принципе, где ведутся продажи домов.
  3. У нас есть правила от бизнеса:
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии90

Notyjs — шикарная javascript библиотека для создания уведомлений. А также готовый плагин для Vuejs

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

image


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

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии13

Написание современного JavaScript кода

Время на прочтение4 мин
Количество просмотров3.9K
JavaScript-разработчик из Франции, Себастьян Кастель, поделился мыслями о том, как на его взгляд должен выглядеть JavaScript код в 2017 году.

А вы помните те времена, когда JavaScript был языком, который использовали только для оживления страниц сайта? Это время уже прошло, так как, языки программирования развиваются вместе с методами их использования. Посмотрите на код, который вы написали один, два года назад: он вас смущает? Если да, этот пост для вас.



Ниже вы найдете мой список из хороших практик, которые помогут сделать ваш JavaScript код проще в написании, чтении и поддержке.
Читать дальше →
Всего голосов 22: ↑9 и ↓13-4
Комментарии7

Работа в команде. Как помирить дизайнера и верстальщика

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

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

Эти жалобы взаимодополняемы. Если начать разбираться в корне проблемы, то виноватыми окажутся оба. Как помирить этих двух работников фронта?
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии32

Перевод статьи: Лучшая практика создания Git Commit'ов от OpenStack

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

Предлагаю читателям "Хабрахабра" перевод статьи "Хорошая практика в сообщении коммитов от OpenStack".


1 Git Commit Лучшая практика


Следующий документ основан на опыте разработки кода, устранении ошибок и просмотре кода в ряде проектов, использующих Git, включая libvirt, QEMU и OpenStack Nova. Рассмотрение других проектов с открытым исходным кодом, таких как Kernel, CoreUtils, GNULIB а также других, предполагает, что все они следуют достаточно распространенной практике. Это мотивировано желанием улучшить качество истории Git проекта Nova. Качество — это абстрактный термин для определения в разработке; когда для одного человека некий код «Красивый» (Thing of Beauty) — то для другого это «Костыль» (Evil Hack). Тем не менее мы можем сформулировать некоторые общие рекомендации о том, как и что делать, или, наоборот, чего не делать, когда отправляют Git коммиты для слияния с проектами в OpenStack.


Эта тема может быть разделена на две области:


  1. Порядок объединения или разбиения на несколько коммитов
  2. Информация в сообщениях коммитов
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии3

Тестирование с Сodeception для чайников: 3 вида тестов

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

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


Мы рассмотрим приемочные (Acceptance), функциональные (Functional) и юнит-тесты или модульные тесты (Unit-Tests).

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

Решение проблем организации бизнес-логики в PHP или как пойти своим путем

Время на прочтение12 мин
Количество просмотров17K
image Привет, Хабр! Не первый раз я пытаюсь написать эту статью, но давно уже есть желание поделиться опытом и люди просят.

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

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

Тут будет изложено как уйти от проблем PHP фреймворков, связанных с размазыванием предметной логики по слою контроллеров.

Не буду гарантировать что изложенные решения это какая-то серебряная пуля, все нижеследующее всего лишь один из вариантов подхода к решению общих проблем. В нем есть и плюсы и минусы и со своей основной задачей этот подход справляется.
За подробностями прошу под кат.
Всего голосов 11: ↑9 и ↓2+7
Комментарии71
1
23 ...

Информация

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

Специализация

Backend Developer
Senior
От 30 000 $
Linux
PHP
Laravel
SQL