Pull to refresh
76
Karma
0
Rating
Сергей Лебедев @sunman

Web-разработчик

Как в PHP улучшить читаемость регулярных выражений

VK corporate blog PHP *Algorithms *Regular expressions *
Translation
Tutorial

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

PHP использует диалект регулярных выражений PCRE — до версии PHP 7.3, и PCRE2 — в более новых версиях. Поэтому в PHP можно использовать различные продвинутые приемы, помогающие писать читаемые, самодокументируемые и поддерживаемые регулярные выражения. При этом не надо также забывать и о наличии в PHP функций фильтрации переменных, а также семейства функций ctype*, позволяющих валидировать такие распространенные значения как url-ссылки, адреса электронной почты и строки из букв и цифр — вообще без использований регулярный выражений. Во многих IDE есть подсветка регулярных выражений, помогающая их читать, а иногда даже и проверка выражений, с подсказками по их улучшению.

Читать далее
Total votes 39: ↑37 and ↓2 +35
Views 6.1K
Comments 14

Корзинка с сюрпризами — cпасите наши push'и

Git *Mercurial *Atlassian *
TLDR: Сделал набор скриптов автоматизации миграции Bitbucket репозиториев с Mercurial на Git.

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

image
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 2.3K
Comments 10

Львы в пустыне и интроспекция

PHP *Laravel *
Наверное, практически все обитатели Хабра знают что такое дихотомия и как с ее помощью поймать льва в пустыне. Ошибки в программах тоже можно ловить дихотомией, особенно, при отсутствии вменяемой диагностической информации.

image

Однажды отлаживая свой проект на PHP/Laravel, я увидел в браузере вот такую ошибку:
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 6.2K
Comments 17

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 28, заключительная

Professional literature

Кто будет сторожить сторожей?


Это латинское изречение показывает, что древние римляне кое-что понимали в политической жизни. Сами римляне так отвечали на этот вопрос: «Никто». И именно поэтому их верховные политики со временем стали называть себя цезарями, а их республика, в конце концов, превратилась в монархию.

Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 14K
Comments 19

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 27

Professional literature

Глава 11


Заметки о демократии


«К чему стремимся, для кого,
Приобретая и теряя?
Для тех обычнейших людей,
Кого дурачат раз за разом.
Добро, достоинство и разум,
Неторопливо вкруг посей
// американский поэт Карл Сэндберг


«Когда вы собираете группу людей, чтобы сконцентрировать их объединенную мудрость, вместе с ними вы неизбежно собираете все их страсти, предрассудки, заблуждения, эгоизм и недальновидность. Как от таких собраний можно ожидать совершенства в решениях и поступках?
И, тем не менее, меня изумляет, насколько близка к совершенству работа этой системы».
//
из речи Бенджамина Франклина на Конституционном Конвенте

Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 3.7K
Comments 3

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 26

Professional literature

Как работать наблюдателем на выборах


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

Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 3.1K
Comments 11

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 25

Professional literature

Глава 10 Как выиграть выборы: заключение


Финишная прямая


Рассылка напоминаний в последнюю неделю перед выборами


За время кампании ваш кандидат посетил дома более 3 000 избирателей, а, возможно даже до 5 000.

Читать дальше →
Total votes 8: ↑5 and ↓3 +2
Views 3.2K
Comments 0

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 24

Professional literature

Анализ предвыборной ситуации в округе


И вот кампания мистера Честняги на выдвижение кандидатом от партии достигла стадии последнего предвыборного месяца. Вы славно поработали, и теперь хотели бы узнать, какие результаты принесла ваша работа. Нужно ли сейчас потрудиться интенсивнее, или игра уже проиграна, и вам пора сворачивать лавочку?
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 2.4K
Comments 1

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 23

Professional literature

Как составить список тех избирателей, которых нужно посетить обязательно.


Предположим, в вашем избирательном округе живет 320 000 постоянных жителей в 100 000 домах. Сомневаюсь, что у вас достаточно волонтеров, чтобы зайти в каждый из этих домов. К тому же, только 70 000 из всех этих жителей – члены вашей партии, и только от 25 000 из них можно ожидать голосования на праймериз. Эти 25 000 живут примерно в 15 000 отдельных домах (цифры не высосаны из пальца, а основаны на статистических исследованиях). Имеющиеся у вас 100 волонтеров и один неутомимый кандидат смогут обойти эти 15 000 домов только в том случае, если будут знать точно, какие дома нужно посетить обязательно. К счастью, существуют способы, позволяющие это узнать.

Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 2.9K
Comments 0

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 22

Professional literature

Штаб-квартира предвыборной кампании


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

Читать дальше →
Total votes 15: ↑11 and ↓4 +7
Views 3.2K
Comments 0

Поэтический дискурс с привкусом реверс-инжиниринга

Programming *Reverse engineering *

«Старик Ассемблер нас заметил,
И в гроб сходя, благословил»


image

Однажды я решил написать программу, сочиняющую стихи. Алгоритм придумался быстро – в конце сочиняемых строф ставить рифмующиеся слова, а остальную часть строфы заполнять словами с учетом рифмы, ритма, и вероятности их нахождения рядом с другими словами, взятыми из готовых связных текстов. Эдакие марковские цепи с прикрученными к ним рифмами.

Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Views 13K
Comments 23

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 21

Professional literature

Условно-эффективные методы ведения кампании


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

Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 3K
Comments 1

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 20

Professional literature

Глава 8 Как выиграть выборы: продолжение. Предвыборная кампания на местах: обход домов избирателей


Когда вы приступаете к ведению предвыборной кампании, перед вами открывается широчайшее поле различных видов деятельности, по-видимому, полезных для успеха на выборах, и каждый вид деятельности какой-нибудь ваш соратник будет ревностно защищать как «Как раз то, что нам нужно!». Если вы не будете самостоятельно тщательно оценивать, чем заниматься нужно, а чем – нет, вы растратите все ваши силы на бессмысленную деятельность, и вдобавок получите нервное истощение.
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Views 7K
Comments 0

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 19

Professional literature
Конечно, вы можете не заниматься всеми этими связанными с кокусом хлопотами, а просто собрать вместе сторонников мистера Честняги, сформировать из них предвыборный комитет, и выдвинуть кандидатуру. Но так у вас не очень много шансов выиграть выборы.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 4.2K
Comments 3

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 18

Professional literature
А теперь – рассмотрим типичный кокус, так как процедура кокуса – одна из самых недопонимаемых, и вместе с тем, одна из самых необходимых процедур в демократии
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Views 5.4K
Comments 14

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 17

Professional literature

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


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

Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 4.6K
Comments 2

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 16

Professional literature

Глава 7 Как выиграть выборы


Выборы в парламент в Интенсуилле

«На улице у двери находятся двадцать человек, хорошо вымытых, вы им пожмете руки, и шестеро грудных младенцев — вы их погладите по головке и спросите, сколько каждому из них месяцев. Будьте особенно внимательны к детям, уважаемый сэр, не забывайте, что это всегда производит огромное впечатление.
Читать дальше →
Total votes 33: ↑28 and ↓5 +23
Views 9.6K
Comments 2

Android до Госдумы доведет или Мобилизация гражданской сознательности

Development for Android *


Как завсегдатаи Хабра наверное знают, я интересуюсь книгами о политике. А еще я интересуюсь программированием, особенно на тех платформах, на которых раньше не программировал
Читать дальше →
Total votes 36: ↑31 and ↓5 +26
Views 17K
Comments 47

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 15

Professional literature

Как отличить политическую партию от Троянского коня


В любом городе или поселении, где уже много лет без перерыва правит укоренившаяся политическая мафия
Читать дальше →
Total votes 14: ↑9 and ↓5 +4
Views 3K
Comments 0

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 14

Professional literature

Как голосовать в условиях нехватки времени на изучение кандидатов


Иногда может получиться так, что состояние здоровья, или длительные командировки, не оставят вам сил и времени на детальное знакомство с кандидатами и их программами.
Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Views 8K
Comments 21
1

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Works in
Registered
Activity