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

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

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

[Перевод] Магические методы в PHP

Время на прочтение10 мин
Количество просмотров94K
Если Вы когда-нибудь изучали PHP-код открытых проектов, то вы могли встречать методы, начинающиеся с двойного подчеркивания. Это и есть те самые магические методы, с помощью которых вы сможете определить поведение вашего объекта при различных манипуляциях с его экземпляром.

Предполагаю, что вы уже сталкивались с некоторыми из них, ведь существуют довольно распространенные методы, и тем не менее, я считаю, что компетентному программисту PHP необходимо уверенное владение всеми возможностями языка.
Я думаю, это можно считать, своего рода, отправной точкой в мир Магических методов.
Читать дальше →
Всего голосов 39: ↑16 и ↓23-7
Комментарии19

Зарплата по результатам собеседования — лучший способ сократить отклики на вакансию, а тестовые задания — избыточны

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

Почему ИТ специалисты на самом деле не любят выполнять тестовые задания? Почему меньше откликов на вакансии без указания зарплаты? Простые ответы на сложные вопросы.

Читать далее
Всего голосов 153: ↑128 и ↓25+103
Комментарии387

Тестирование PHP проектов на примере Symfony

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

Хочу описать свои наработки и устоявшиеся подходы к тестированию PHP проектов. Последние годы я работаю с Symfony и здесь будет достаточно моментов специфичных для этого фреймворка. Так же в этой статье термин функциональные тесты (functional) является синонимом End-to-End тестов. Статья рассчитана на разработчиков уже знакомых с PHPUnit и Symfony, структурой composer файла. Врочем, здесь есть и общеизвестные моменты, чтобы облегчить понимание тем, кто только начинает писать тесты. Статья призвана упорядочить знания и показать какие-то удобные подходы. Формат статьи не позволяет раскрыть все нюансы. Тем не менее, я постараюсь озвучить все основные моменты, применяемые в работе и которые лично мне помогают на практике. 

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии5

Понимание ООП в JavaScript [Часть 1]

Время на прочтение16 мин
Количество просмотров337K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Всего голосов 129: ↑119 и ↓10+109
Комментарии71

Маленькая компания на большом Хабре: как выжить среди акул?

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

Компании на Хабре не любят. Точнее, так: достойная публикация хороша как в корпоративном блоге, так и в частном, а вот так себе статья в блоге компании будет низвержена с особым пристрастием. Это вполне нормальная реакция аудитории на рекламный (хоть и нативный) контент: если делаешь, делай хорошо, мы сюда пришли не рекламные буклеты читать. А с другой стороны, это ещё и возможность прислушаться к отзывам читателей и стать лучше, серьёзнее, актуальнее и глубже. И если вы думаете, что на картинке к статье акула — это большие компании на Хабре, а рыбки — малые, вы ошибаетесь. Рыбки — это все компании, а акула — ироничная, умная и осторожная аудитория Хабра, с которой нужно ладить. Без обмана, навязчивости и непрофессионализма. Трудно, но надо. 

Читать далее
Всего голосов 76: ↑74 и ↓2+72
Комментарии43

Для чего вам нужен Terraform? Статья и обучающее видео

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

Всем большой привет. Меня зовут Виктор, и я DevOps-инженер в команде Nixys. Мы решили выложить обучающее видео, которое будет полезно новичкам в мире DevOps. Тема сегодняшнего туториала - “Знакомство с Terraform”. Также под ссылкой на видео мы поделимся наиболее важными, на наш взгляд, преимуществами этого инструмента.

Читать далее
Всего голосов 9: ↑6 и ↓3+3
Комментарии20

Как мы на React 16 переезжали

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

Facebook переписал большую часть React'а и выпустил 16 версию. React 16 был очень ожидаемым обновлением, особенно ввиду нового способа рендеринга Fiber, который сильно повышает производительность. Команда разработчиков React в последней версии усердно помечала методы и пакеты устаревшими (deprecated), и мы видели их предупреждения в консоли. В действительности же, миграция не так проста для большого проекта.

Мы в Discord только что запустили обновление нашего приложения на основе React 16 и хотим поделиться нашим опытом, который мы получили в ходе миграции.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии23

Ansible: 30 самых важных модулей для DevOps-профессионалов (часть 1)

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

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

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

В этой части мы рассмотрим модули проверки подключения хоста, а также целевого узла (модуль ping), модуль, который может извлекать информацию с целевого узла (модуль setup), модули управления существующим пакетом и установки новых пакетов (yum, apt, package, pip и npm модули), а также модуль запуска базовых команд и скриптов на целевых узлах (raw, command, shell и script модули).

Итак, начнём..

Читать далее
Всего голосов 29: ↑18 и ↓11+7
Комментарии5

React vs Vue vs Angular

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

React vs Vue vs Angular. Общее сравнение JavaScript фреймворков

В ходе развития веб-разработки 3 JavaScript-фреймворка стали хорошо известны всем front-end разработчикам: React, Vue и Angular.

React считается библиотекой пользовательского интерфейса, Angular - полномасштабным front-end фреймворком, предоставляющим собственные инструменты для всех связанных с разработкой веб-приложений функций, а Vue - прогрессивным фреймворком, реализованным как дополнительная разметка для HTML.

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

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

Читать далее
Всего голосов 13: ↑8 и ↓5+3
Комментарии37

Гладко было на бумаге, или почему не стоит чрезмерно доверять туториалам

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

Такая история всегда начинается одинаково. Вам показывают демку, в которой набор проблем, ранее казавшийся сложным, решается на раз — достаточно запустить некий Волшебный Инструмент. Зачастую такой инструмент рекомендуют Большие Тузы из отрасли, либо не только рекомендуют, но и сами поддерживают. У вас в организации отыскиваются коллеги, ратующие за то, чтобы немедленно взять эту технологию на вооружение. Буквально наутро этот новый инструмент приравнивается к «решению всех наших проблем».

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

К тому моменту, как его обсуждение доходит до руководителей высшего звена, инструмент уже раскручен в пресс-релизах. Вы видите статьи в духе «Технология X морально устарела, время обзаводиться Волшебным Инструментом». Те из вас, кто не так давно работает в технической отрасли, могут предположить, что, пожалуй, была сделана какая-то добросовестная оценка, призванная проверить, в самом ли деле Волшебный Инструмент так хорош, или безопасен, или уместен именно в вашем бизнесе. Нет, вы ошибаетесь. 

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

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно

Время на прочтение10 мин
Количество просмотров53K
Сколько в вашем проекте тестовых стендов — 5, 10 или больше 10? Навскидку, нужны стенды для каждой команды разработки, стенды для QA под каждый проект, менеджерам проектов тоже нужны стенды, а еще CI — трудно это все точно разграничить и не вызвать конфликтные ситуации. Одним словом, почему бы нам не делать тестовый стенд ровно тогда, когда он нужен? Нужен сейчас тестовый стенд — мы его сделали, не нужен — мы его удалили.

Именно такой подход предложил Александр Дубровин (adbrvn) на Highload++ 2017 в своем докладе, расшифровку которого вы найдете под катом.



О спикере: Александр Дубровин работает в Superjob. Известно, что проекты этой компании высоконагруженные. Но сегодня мы не будем говорить о том, сколько пользователей посещают портал, и сколько данных хранится на серверах, а затронем другие показатели.

Забегая вперед, скажем, что, на самом деле, Superjob не знают, сколько у них тестовых стендов. Но обо всем по порядку. Начнем с небольшой истории.
Всего голосов 28: ↑28 и ↓0+28
Комментарии3

6 устаревших команд Linux и инструменты, которые пришли им на замену

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

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

"Все новое — лучше, чем старое" — девиз, который не всегда применим для утилит в Linux. Но все же исключения есть.

В статье под катом разработчик Хосе Висенте Нуньес* рассказывает о нескольких устаревших инструментах, которые вы, возможно, все еще используете. А также о том, чем их можно заменить. Автор объясняет, почему вам следует переключиться на эти улучшенные альтернативы, которые обеспечивают ту же — а в некоторых случаях даже большую — функциональность. Список составлен в произвольном порядке.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 70: ↑59 и ↓11+48
Комментарии44

Что будет, если от разработчиков не отстать: умирающая команда

Время на прочтение11 мин
Количество просмотров60K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

Проект — внутренний банка, он нужен для улучшения работы внутри компании. Традиционных решений в кровавом энерпрайзе — два: нанять новую команду (но вгружать мидла на проект такой сложности — три-четыре месяца) или же оставить проект на поддержке, через два года найти ему замену, а команду тихо похоронить в подвале. Точнее, не так: те, кто плывет по течению и не заботится о карьере, остаются тихо сидеть «на пенсии», то есть в бесконечной поддержке проекта. А самые проактивные тут же перейдут в другие команды или другие компании.

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →
Всего голосов 213: ↑209 и ↓4+205
Комментарии74

React, я люблю тебя, но ты сводишь меня с ума

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


Привет, друзья!


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


Дорогой React, мы встречаемся уже почти 10 лет. Мы прошли долгий путь вместе. Но ситуация вышла из-под контроля. Нам нужно поговорить.

Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии35

Возможен ли двигатель — без двигателя?

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

Жизнь человечества невозможно представить без двигателей, которые сопровождают нас и применяются во множестве областей человеческой деятельности. Однако зададимся вопросом: а бывает ли «двигатель без двигателя»?

Согласно Теории Решения Изобретательских Задач (ТРИЗ) — «самый лучший механизм, это тот, который отсутствует, но, тем не менее, его функция выполняется».

Если бы подобный двигатель существовал, то он был бы идеальным устройством в своём классе! Как ни странно, подобный двигатель существует и называется «магнитогидродинамическим двигателем» (МГД), и именно об этом мы и поговорим в нашей статье.

Читать дальше →
Всего голосов 90: ↑86 и ↓4+82
Комментарии73

Как прокачаться в PHP: 70 ресурсов из опроса русскоязычного сообщества

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

В чаты по PHP часто приходят с вопросами про развитие: какие книги стоит прочитать в первую очередь, на какие каналы подписаться, какие курсы хороши. Если повезет, в ответ чат поделится парой рекомендаций. Мы решили агрегировать их в список и собрали 150+ мнений по актуальным ресурсам для PHP-разработчика. 

Без длинных интро. Самые упоминаемые ресурсы идут первыми в разделах, а те, которые советовали новичкам, отмечены флажком 🚩. 

Читать далее
Всего голосов 35: ↑32 и ↓3+29
Комментарии5

Семь раз отмерь, а SOLID все равно не про ООП. Монолог об архитектуре

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

Каждые 5 лет количество программистов увеличивается в два раза. И об этом знают уже все, кто хотя бы раз смотрел или читал Боба Мартина. Программное обеспечение есть повсюду. Вы не можете найти в мире такое место, где в радиусе трёх метров от вас не было бы программного обеспечения (на самом деле это про пауков, кажется, но я же просто шучу). И вот если обратить внимание, то окажется, что в ваших часах есть ПО, в вашем телефоне очень много ПО, в холодильниках у некоторых есть ПО, во всех современных автомобилях есть ПО, даже в некоторых собаках (не шутка) уже есть ПО и этот список можно долго продолжать.

Разработчик программного обеспечения в нашем современном мире имеет самое большое влияние. Буквально нет ни одного уголка человеческой жизни на этой планете, на который не повлияло бы качество нашего программного обеспечения Composing Software Eric Elliott. Но вместе с ростом количества разработчиков в современном мире растёт ли качество программного обеспечения? Да, количество разработчиков растёт, но растёт ли количество хороших разработчиков?

Знаете, если бы кто-то в прошлом (с десяток лет назад) мне сказал, что есть такие гайдлайны, от которых мой код изменится к лучшему, то я обязательно бы ознакомился с ними. Но к тому времени, как я понял, что мне нужно знать на самом деле, чтобы стать хорошим программистом, я успел написать уже очень много плохого кода. Надеюсь, что эта статья поможет некоторым изменить своё отношение к архитектуре.
Читать дальше →
Всего голосов 70: ↑60 и ↓10+50
Комментарии24

Как я сделал полноценное приложение, не прикасаясь к JavaScript

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров11K

Я всегда скептически относился к чат-ботам. Когда-то они были на хайпе. Говорили, что это новый UI – он же No UI. Но я всегда утверждал, что пользователю проще и быстрее все действия сделать через сайт, а не играть с ботом в вопрос-ответ. Каково же было моё удивление, когда через несколько лет я сам буду пропагандировать чат-ботов всем моим друзьям - backend-разработчикам? В данной статье расскажу, как я до этого дошел.

Читать далее
Всего голосов 19: ↑17 и ↓2+15
Комментарии17

Рейтинг языков программирования 2022. C# обошел Java, TypeScript сравнялся с PHP, а Dart – наиболее комфортный язык

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

Украинский профильный ресурс DOU.UA провел очередной ежегодный опрос о языках программирования.

Python уже второй год подряд демонстрирует негативную динамику. Java тоже теряет позиции – в этом году она на третьем месте по популярности. На второе место поднялся язык C#. Доля JavaScript после небольшого падения в 2021 году снова растет. Но самая лучшая динамика у TypeScript (уже более 10% и прирост увеличился почти вдвое).

Читать далее
Всего голосов 24: ↑22 и ↓2+20
Комментарии79

Простые инкрементальные бэкапы в Linux с помощью TAR и GPG

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

Мой скрипт, с помощью которого я делаю бэкапы в Linux

Обожаю UNIX-way, тут бэкапы можно делать значительно более гибкими.

Для бэкапа home директории я использую обычный tar с инкрементацией и шифрую его своим gpg ключом.

Для других файлов, например, для бэкапов моих видео, которые я записываю для ютуба я использую rsync. RSYNC более рационально использовать, когда не критична синхронизация большого количества файлов

Читать далее
Всего голосов 7: ↑4 и ↓3+1
Комментарии28
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность