PHP и неизменяемость: экземпляры, которые могут быть изменены. Часть 2

Это перевод оригинальной статьи Саймона Холивелла PHP and Immutability. Продолжение — в другом посте. Начало — в этом посте.

В прошлой статье мы научились создавать неизменяемые структуры данных на PHP. Было несколько вещей, которые требовали доработки, но мы справились. Теперь приступим к улучшению неизменяемого класса, чтобы он был более полезным и давал бы проще созавать измененные копии. Заметьте, что это копии оригинального объекта, а не изменения в самом объекте.Продолжить чтение →

Рецензия на фильм «Рай» Кончаловского

«Рай», безусловно, понравился. Если рассматривать наставническую функцию фильма, то он бьёт в цель — эмоции вызывает «правильные». Если же его рассматривать, как философское высказывание, то, на мой взгляд, оно несколько плоское. Какова основная идея, заложенная в названии? Предсказуемо жертва и защитница угнетенных попадает в рай, а приспособленец и одурманенный злой идеей — нет. Это и так понятно. Добро — хорошо, зло — плохо.Продолжить чтение →

Глупые вопросы о русской революции 1917

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

Как учить новые слова — карточки со словами или список в блокноте

Я уже несколько лет учу новые слова при помощи карточек. Сначала это были бумажные карточки. на которых с одной стороны — слово на язычаемом языке, а с другой — перевод. Затем я перешел на программы с той же идеей. Сперва BXMemo, затем Anki (которую до сих пор считаю самой удобной), попутно перепробовал несколько других подобных приложений. Но вот как-то решил провести эксперимент и попробовать изучать слова списками с помощью обычного карманного блокнота. Это способ, которому всегда отдавалось предпочтение в школах — вы просто выписываете пары слово — перевод в виде сплошного списка. В итоге я решил вернуться к Anki, хотя способ со списком имеет ряд достоинств. Результаты сравнения я оформил в виде тезисов.

Продолжить чтение →

Челябинск, столица Южного Урала, в 2017

Каждый раз, когда я возвращаюсь в свой родной город, я пытаюсь увидеть изменения, которые его постигли за время расставания, а также сравнить его с другими городами. В этот раз я побывал в Челябинске в июле, в то самое время, когда Центральную Россию заливало дождями и сдувало ураганами. Здесь же лето гораздо более приятное и солнечное, несмотря на достаточно прохладный ветер и периодические небольшие дожди.Продолжить чтение →

Екатеринбург, главный город Урала

Исторический центр Екатеринбурга
Исторический центр Екатеринбурга

В этой статье я хочу поделиться впечатлениями от короткой поездки в столицу Уральского федерального округа Екатеринбург. До этого я был там несколько раз, так что имелась возможность увидеть развитие города в динамике.Продолжить чтение →

Как писать тестируемый код на PHP и не только

Всем известно, что чтобы успешно писать юнит-тесты, особенно, не применяя TDD, сам код должен быть написан в определенной манере, так, чтобы его было легко тестировать. По мотивам статьи Unit Testing – The Big Picture я составил/перевел краткую шпаргалку (или чек-лист), на что обратить внимание при нового написании кода (в первую очередь на PHP, но не только).

  • Принципы SOLID и DRY
  • Не использовать ключевое слово new в конструкторе
  • Не использовать циклы в конструкторе (а также switch и if)
  • Никаких статичечких методов, параметров, классов
  • Никаких методов setup() – объект должен быть полностью проинициализирован в конструкторе
  • Никаких синглтонов (глобальных состояний) и других нетестируемых антипаттернов
  • Никаких «всемогущих объектов» (God object)
  • Нет классам со смешанным предназначением
  • Никаких скрытых зависимостей

Загадочный MGTOW, или холостяцкая женоненавистническая лексика в Англии

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

  1. MGTOW (Men Going Their Own Way) — Мужчины идут своей дорогой. «Шапочный» термин, описывающий женоненавистническую философию мужчин, которые считают, что женщины в обществе обладают чрезмерными правами и имеют мало обязанностей. Подразумевается, что женщины используют мужчин в своих корыстных целях и разбивают им жизни в силу своей порочной природы. В связи с этим мужчины, считающие так, либо воздерживаются от долговременных романтических отношений, либо стремятся к таким отношениям, где статус женщины будет намного ниже мужского.
  2. Hypergamy — гипергамия — термин, описывающий женское поведение с точки зрения той же теории. Подразумевается, что женщины, даже имея постоянного партнера, всегда находятся в поисках нового, который был бы более выгодной партией, в первую очередь, для обеспечения ее детей.
  3. Monkey branching — женское поведение, заключающееся во флирте и налаживании контактов с представителями мужского пола с тем, чтобы всегда иметь резервный вариант на случай расставания с имеющимся партнером
  4. White knight — рыцарь в белых доспехах — мужчина, на словах выступающий за равенство полов, на деле же часто покровительствующий женщинам, уступающий им, в силу их пола. Обычно используется пренебрежительно
  5. Mangina = man + vagina 1. «Подкаблучник» — Мужчина, делающий чаще всего так, как ему скажет делать женщина, даже если это расходится с требованиями ситуации или с его желаниями 2. «Баба» — мужчина с женскими чертами характера
  6. Simp (Someone Idolizing Mediocre Pussy) — также «Подкаблучник» — Man, that dude’s girlfriend cheated on him twice and he’s still dating her. He’s a simp.
  7. Cock carousel — презрительное обозначение поискового сексуального поведения женщины. В рамках той же шовинистической философии женщина якобы выбирает мужчин с агрессивными, брутальными чертами характера, и стремится завести отношения с большим числом таких мужчин, тогда как в свои 30 остепеняется и выбирает мужчину с противоположными характеристиками в силу прагматических интересов.

PHP и неизменяемость. Часть 1

Это перевод оригинальной статьи Саймона Холивелла PHP and Immutability. Продолжение — в следующем посте.

Как у динамического языка со слабой типизацией, у PHP нет встроенной концепции неизменяемости (immutability). Конечно, все мы знаем заслуженные define()  и КОНСТАНТЫ, но они ограничены в функционале. Хоть PHP и поставляется с как минимум одним неизменяемым классом в своей стандартной библиотеке, DateTimeImmutable , но не существует какого-то внятного способа создавать собственные неизменяемые объекты.Продолжить чтение →

Сочи в конце апреля

Иногда хочется сменить картинку перед глазами, но много ресурсов тратить на это не хочется. И тогда на выручку приходят курорты Краснодарского края. Иногда отдых на них превосходит ожидания, но для этого должно быть несколько условий: отсутствие толп, особенно пьяных; нежаркая погода; заснеженные горы; комфотрное размещение; траспортная доступность; наличие интересных занятий. Все эти качества присущи Имеретинской бухте вполне. Сейчас это место все больше называют Олимпийским парком.Продолжить чтение →