Brandon Savage: Avoiding Setter Injection

Brandon Savage has a tutorial posted to his site covering the use of setter injection, some of the issues that can come with using it and how to avoid it.

PHP more or less has two kinds of dependency injection available: constructor injection, and setter injection. Constructor injection is the process of injecting dependencies through the constructor arguments. The dependencies are injected via the constructor, on object creation, and the object has them from the very beginning.

Setter injection is different; instead of providing the dependencies at construction time, the dependencies are provided via setter methods, once the object has been constructed. This allows the flexibility to configure the object during the runtime, rather than at construction.

He goes on to point out two flaws with setter injection: "half-baked" objects and the injection of potentially unused objects/resources. He spends the remainder of the post covering each of these topics more specifically and wraps it up with a recommendation to avoid it if possible and opt for useful, "fully baked" objects injected via the constructor instead.

from PHPDeveloper.org https://ift.tt/2pUGU1R
via IFTTT

Frederick Vanbrabant: The Integration Operation Segregation Principle

In a new post to his site Frederick Vanbrabant tackles the integration operation segregation principle. While the term sounds intimidating, it’s just a long way to say something you probably already do: refactor code into smaller testable chunks.

A few weeks ago I attended a DDDBelgium meetup where I was lucky to participate in a refactor workshop lead by Pim and Joop. After the incredible workshop Pim, Dries and me were discussing some code that we refactored earlier . Not so long in the conversation the words “Integration Operation Segregation Principle” casually got dropped by Pim.

Now I’m going, to be honest with you (as I was with them), I had no idea what the hell he was talking about. And maybe neither do you.

He starts with some simple code for a "calculator" class with a calculate method to handle the pricing of a rental car. He includes the test for the class/method as well, using a mock object and several expects calls to handle the method calls. The test ends up being larger than is probably good, so he looks into refactoring the original code to abstract out some of the functionality and make it more testable. In the process this also makes the code easier to follow and, while there is more of it, more maintainable and flexible in the end.

from PHPDeveloper.org https://ift.tt/2NJW43k
via IFTTT

Проект KDE получил пожертвование, размером 300 тысяч долларов

Разработчики KDE сообщили о получении в качестве подарка на 22 летие проекта пожертвования от сообщества Handshake.org. Из полученных 300 тысяч долларов 100 тысяч выделено на разработку свободного офисного пакета Calligra.

from OpenNews.opennet.ru: События https://ift.tt/2CKZWAa

На Яндекс.Музыке появились «умные» плей-листы

Сервис Яндекса для потокового прослушивания Яндекс.Музыка представил набор «умных» плей-листов, основанных на предпочтениях пользователей.  Теперь, к уже существовавшему «плей-листу дня» добавились плей-листы «дежавю» — для треков, которые могут понравиться пользователю, «премьера» — для новинок, а также «тайник» — треки из фонотеки, которые еще не были прослушаны пользователем. Плейлисты — удобный способ находить подходящую музыку и […]

Сообщение На Яндекс.Музыке появились «умные» плей-листы появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2yG854t
via IFTTT

Matt Glaman: Running Drupal’s PHPUnit test suites on DDEV

Matt Glaman has a new post to his site where he walks you through the setup and execution of Drupal’s unit tests in the DDEV platform (a Docker-based project that makes it easy to get an environment up quickly).

DDEV is a local development stack built on top of Docker. It gives you all of your environment needs without messy configured on your host machine, without needing to know Docker or configure your own containers. Which is great, and makes life easier. Instead of just using DDEV to develop your site or application locally, why not also run your tests within it?

I have had quite a few people ask me how I configure my setup for testing with Drupal’s PHPUnit test suites. […] All of these are the same reasons for using a virtual machine or containerized local development stack. So, it is fitting we run our tests within these local stacks as well!

In this article, part one of three, he assumes you already have a DDEV environment up and running with a Drupal application running inside (there’s a guide here). With that in place, he shows how to configure PHPUnit via the phpunit.xml file, changing the "SIMPLETEST_*" values for the localhost and local DB connections. He shows how to run the tests by SSHing into the web Docker container and pointing PHPUnit at the configuration file. The end result should look something like this in a terminal.

from PHPDeveloper.org https://ift.tt/2PAOb1K
via IFTTT

myTarget покажет данные об охвате аудитории с контекстным таргетингом

Рекламная платформа myTarget расширяет возможности контекстной рекламы и предоставляет рекламодателям доступ к данным об охвате аудитории с контекстным таргетингом. Контекстная реклама в myTarget учитывает большой объем информации о поисковых запросах, в том числе в социальных сетях и классифайдах Mail.Ru Group. Наличие точных данных об охвате позволит рекламодателям оптимизировать свои рекламные кампании с учетом прогнозов. Например, […]

Сообщение myTarget покажет данные об охвате аудитории с контекстным таргетингом появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2AbBju1
via IFTTT

Google снова тестирует фавиконки в поисковых сниппетах

Пользователи заметили, что Google снова тестирует показ фавиконок сайтов в поисковых сниппетах – рядом с заголовком. Выглядит это так: Согласно Search Engine Roundtable, Google уже несколько раз тестировал это обновление – в 2009, 2013 и 2017 годах, но пока так и не запустил его для всех пользователей. Текущий эксперимент заметил пользователь из Великобритании. Тестирование проводится […]

Сообщение Google снова тестирует фавиконки в поисковых сниппетах появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2QQKOUH
via IFTTT

Открытый проект Bro переименован в Zeek из-за негативной коннотации

Спустя 24 года c момента основания проекта разработчики открытой системы мониторинга трафика и выявления сетевых вторжений Bro приняли решение переименовать продукт. В качестве нового имени выбрано Zeek, так называлась учётная запись под которой запускались процессы Bro на раннем этапе развития проекта.

from OpenNews.opennet.ru: События https://ift.tt/2QTNEbL

Mail.Ru Group исполняется 20 лет

Сегодня компания Mail.ru Group празднует свое 20-тилетие. История компании началась в 1998 году, когда команда петербургских программистов создала почтовый сервис Mail.Ru и выложила его в интернет для тестирования. В мае 2005 года была основана компания Mail.Ru Group. Mail.Ru Group развивает единую интегрированную платформу коммуникационных и развлекательных интернет-сервисов. Компании принадлежат лидирующий почтовый сервис, один из самых […]

Сообщение Mail.Ru Group исполняется 20 лет появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2COBf5M
via IFTTT

Яндекс: Самые сильные изменения в выдаче за более чем 2 года

На минувшей неделе в Яндексе бушевал шторм. Выдачу лихорадило очень сильно, а показатель взвешенной степени изменения выдачи доходил до 30+ процентов, что является рекордом, как минимум, в два ближайших года. Ряд признаков, явно говорили о том, что «Не всё гладко в королевстве»: 1. Явное «выпадение» ряда метрик из общей динамики и картины, скажем: — падение […]

Сообщение Яндекс: Самые сильные изменения в выдаче за более чем 2 года появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2ROvCIW
via IFTTT

Google Ads улучшил атрибуцию для объявлений формата TrueView for action

Команда рекламного сервиса Google Ads объявила об обновлении атрибуции для объявлений формата TrueView for action. Теперь просмотр видеообъявления в течение 10 и более секунд учитывается как ведущий к конверсии, если конверсия происходит в течение трёх дней после взаимодействия. Ранее по умолчанию учитывались 30-секундные взаимодействия при периоде учёта конверсий в 30 дней. Что изменилось: Взаимодействия для […]

Сообщение Google Ads улучшил атрибуцию для объявлений формата TrueView for action появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2PxB69u
via IFTTT

Пользователи Google перешагнули 25% рубеж по количеству IPv6-соединений

Позавчера, 13 октября 2018 года, состоялось достаточно знаменательное событие. Согласно открытой статистике Google, общее количество IPv6-соединений с серверами компании превысило 25%. Сейчас эта цифра составляет 25,04%. Учитывая массовость Google и присутствие компании на всех крупных рынках кроме Китая, эту статистику можно назвать «умеренно релевантной» и на ее основе утверждать, что мир постепенно движется к переходу на прокол IPv6 с IPv4, адресов которого уже серьезно не хватает.


Карта распространенности IPv6-подключений

Самыми активными странами по использованию протокола IPv6 являются Германия (39,14%), Греция (36,53%) и США (34,23%). С небольшим отставанием за этой тройкой идут Индия (33,51%), Уругвай (32,45%) и Малайзия (28,89%). А вот очевидная для всех инноваторская Япония позади этих стран с показателем в ~26,72%. Еще можно выделить Канаду, Францию, Финляндию, Бразилию, Перу, Саудовскую Аравию и даже Эквадор. А вот на территориях за пределами Европы и обеих Америк дела обстоят значительно хуже. На территории СНГ IPv6 почти не используется (<1% соединений).
Читать дальше →

The following blog post Пользователи Google перешагнули 25% рубеж по количеству IPv6-соединений is available on Хабр / Посты с меткой «google»

DIGITAL Квартирник 2.0 – конференция по продвижению бизнеса в сети

5 декабря 2018 года в гостинице «Молодежная», представители разных направлений интернет-маркетинга соберутся на конференции DIGITAL КВАРТИРНИК 2.0, чтобы поделиться своими успехами, рабочими инструментами и ноу-хау в digital среде. Данное мероприятие проводится уже в 14 раз, и с каждым годом аудитория конференции растет, расширяется тематика и состав спикеров, повышается интерес профессионалов отрасли. В этот раз на […]

Сообщение DIGITAL Квартирник 2.0 – конференция по продвижению бизнеса в сети появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2IWahth
via IFTTT

Google провёл ребрендинг Программы для ведущих участников

Google объявил о ребрендинге Программы для ведущих участников. Теперь этот проект будет называться Программа экспертов по продуктам Google. Google также сообщил, что эта программа скоро переедет на другой сайт – productexperts.withgoogle.com. Новый ресурс пока доступен только на английском, но в ближайшее время будут добавлены и другие языки. На днях Google также обновит бейджи, действующие в […]

Сообщение Google провёл ребрендинг Программы для ведущих участников появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2PzIxgu
via IFTTT

АКИТ пытается ускорить принятие законов об онлайн-торговле лекарствами а алкоголем

Ассоциация компаний интернет-торговли (АКИТ) обратилась в комитет по экономической политике Госдумы с просьбой ускорить работу над законопроектами, легализующими онлайн-торговлю безрецептурными лекарствами и алкоголем. Несмотря на прямой запрет дистанционной продажи, в интернете на лекарства есть постоянный спрос. По данным АКИТ, на онлайн-торговлю сейчас приходится до 5% (73 млрд руб.) розничного сегмента российского фармрынка (1,5 трлн руб.). А продажи спиртного в интернете без учета пива и пивных напитков в натуральном выражении […]

Сообщение АКИТ пытается ускорить принятие законов об онлайн-торговле лекарствами а алкоголем появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2Ejs2np
via IFTTT

Facebook сообщил об утечке данных 30 млн пользователей в результате недавнего взлома

Facebook раскрыл подробности хакерской атаки, связанной с уязвимостью, обнаружённой в конце сентября. По данным компании, хакеры завладели токенами доступа к аккаунтам 30 млн пользователей (изначально говорилось о 50 млн). Что получили злоумышленники: для 15 млн пользователей – имена и контактные данные (номер телефона и/или адрес электронной почты); для 14 млн – имена, контактные данные, а также […]

Сообщение Facebook сообщил об утечке данных 30 млн пользователей в результате недавнего взлома появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2P40B5y
via IFTTT

SEO сегодня: Инструкция для успешного старта

На что следует ориентироваться в SEO сегодня? Какие факторы учитывать? Чем усилить полезный эффект? Как выбрать нужного SEO-подрядчика? Что говорит статистика и какое будущее у SEO-сферы для бизнеса.

Сообщение SEO сегодня: Инструкция для успешного старта появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2Or7sq6
via IFTTT

[Перевод] Перегрузка, которая запрещена, или bridge-методы в Java

В большинстве моих собеседований на технические позиции есть задача, в которой кандидату необходимо реализовать 2 очень похожих интерфейса в одном классе:

Реализуйте оба интерфейса одним классом если это возможно. Объясните почему это возможно или нет.

interface WithPrimitiveInt {
  void m(int i);
}

interface WithInteger {
  void m(Integer i);
}

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

Читать дальше →

from Хабр / Java – объектно-ориентированный язык программирования https://ift.tt/2CgG5rp

Нестыдные вопросы про жизненный цикл

Каждый разработчик сталкивался с вопросами про жизненный цикл Activity: что такое bind-сервис, как сохранить состояние интерфейса при повороте экрана и чем Fragment отличается от Activity.
У нас в FunCorp накопился список вопросов на похожие темы, но с определёнными нюансами. Некоторыми из них я и хочу с вами поделиться.

Читать дальше →

from Хабр / Java – объектно-ориентированный язык программирования https://ift.tt/2Ce5hyN

Книгоиздатели требуют оштрафовать Яндекс за ссылки на пиратские сайты

Ассоциация по защите авторских прав в интернете (АЗАПИ), представляющая интересы книжных издательств, попросила Роскомнадзор оштрафовать Яндекс за выдачу ссылок на два заблокированных сайта — RuTracker и Либрусек. 12 октября АЗАПИ направила в Роскомнадзор жалобу на нарушение Яндексом антипиратского законодательства, в которой указано, что при поиске зеркал заблокированных сайтов RuTracker и Либрусек, поисковик в числе рекомендуемых ресурсов выдает ссылку и на оригинальные сайты. По словам директора АЗАПИ Максима Рябыко, […]

Сообщение Книгоиздатели требуют оштрафовать Яндекс за ссылки на пиратские сайты появились сначала на Searchengines.ru.

from Searchengines.ru https://ift.tt/2pTY6oc
via IFTTT