PHP-Дайджест № 64 – интересные новости, материалы и инструменты (1 – 14 июня 2015)

Автор: admin от 14-06-2015, 22:56, посмотрело: 543

PHP-Дайджест № 64 – интересные новости, материалы и инструменты (1 – 14 июня 2015)

Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!

Категория: Программирование / Веб-разработка

 

Семишаговый тест логотипа Пола Рэнда

Автор: admin от 14-06-2015, 21:40, посмотрело: 867

Вы обладаете сильным или слабым логотипом?

В то время как танцор может спросить себя «Интересно, что Майкл Джексон подумал бы о моих танцевальных движениях?» или боксер может спросить себя: «Интересно, что Мухаммед Али подумал бы о моем правом хуке?», дизайнер задастся вопросом: «Что Пол Рэнд подумал бы о моем логотипе?»

К концу чтения вы будете точно знать, одобрил или не одобрил бы Пол Рэнд ваш логотип.

Категория: Программирование / Веб-разработка

 

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №164 (8 — 14 июня 2015)

Автор: admin от 14-06-2015, 21:33, посмотрело: 413

Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №164 (8 — 14 июня 2015)

Категория: Программирование / Веб-разработка

 

LIVR — «независимые от языка правила валидации» или валидация данных без «проблем»

Автор: admin от 14-06-2015, 20:24, посмотрело: 1 105

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

Основные проблемы, которые встречаются в библиотеках валидации данных

Проблема №1. Многие валидаторы проверяют только те данные, для которых описаны правила проверки. Для меня важно, чтобы любой пользовательский ввод, который явно не разрешен, был проигнорирован. То есть, валидатор должен вырезать все данные для которых не описаны правила валидации. Это просто фундаментально требование.

Проблема №2. Процедурное описание правил валидации. Я не хочу каждый раз думать про алгоритм валидации, я просто хочу описать декларативно, как должны выглядеть правильные данные. По сути, я хочу задать схему данных (почему не «JSON Schema» — в конце поста).

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

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

Проблема №5. Нестандартизированные сообщения об ошибках. Например, «Field name is required». Такую ошибку я не могу показать пользователю по ряду причин:

  • поле в интерфейсе может называться совсем по другому

  • интерфейс может быть не на английском

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


То есть, нужно возвращать не сообщение об ошибках, а стандартизированные коды ошибок.

Проблема №6. Числовые коды ошибок. Это просто неудобно в использовании. Я хочу, чтобы коды ошибок были интуитивно понятны. Согласитесь, что код ошибки «REQUIRED» понятней, чем код «27». Логика аналогична работе с классами исключений.

Проблема №7. Нет возможности проверять иерархические структуры данных. Сегодня, во времена разных JSON API, без этого просто не обойтись. Кроме самой валидации иерархических данных, нужно предусмотреть и возврат кодов ошибок для каждого поля.

Проблема №8. Ограниченный набор правил. Стандартных правил всегда не хватает. Валидатор должен быть расширяемый и позволять добавлять в него правила любой сложности.

Проблема №9. Слишком широкая сфера ответственности. Валидатор не должен генерировать формы, не должен генерировать код, не должен делать ничего, кроме валидации.

Проблема №10. Невозможность провести дополнительную обработку данных. Практически всегда, где есть валидация, есть необходимость в какой-то дополнительной (часто предварительной) обработке данных: вырезать запрещенные символы, привести в нижний регистр, удалить лишние пробелы. Особенно актуально — это удаление пробелов в начале и в конце строки. В 99% случаев они там не нужны. Я знаю, что я до этого говорил, что валидатор не должен делать ничего кроме валидации.

3 года назад, было решено написать валидатор, который не будет иметь всех вышеописанных проблем. Так появился LIVR (Language Independent Validation Rules). Есть реализации на Perl, PHP, javascript, Python (мы на python не пишем — фидбек по ней дать не могу). Валидатор используется в продакшене уже несколько лет практически в каждом проекте компании. Валидатор работает, как на сервере, так и на клиенте.

Категория: Программирование / Веб-разработка

 

(Перевод) Введение в разработку C++ в UE4 Часть 2

Автор: admin от 14-06-2015, 18:58, посмотрело: 955

Часть 1. Введение. Создание класса и добавление свойств. Расширение класса С++ с помощью Blueprint.
Часть 2. Классы геймплея. Структуры. Отражение (reflection) в Unreal. Object/Actor итераторы. Менеджер памяти и сборщик мусора.
Часть 3. Префиксы в именах классов. Целочисленные типы. Типы контейнеров. Итераторы контейнеров. Цикл For-each, хеш-функции.
Часть 4. Unreal Engine 4 для Unity разработчиков.
Часть 5.…
(Перевод) Введение в разработку C++ в UE4 Часть 2

От Автора: Начало лето выдалось жарким на проекты, поэтому оформление перевода долго откладывал, дальше будет быстрее.

Эта статья является продолжением перевода части документации по UE4. Оригинальную статью вы можете найти пройдя по это ссылке.
Далее

Категория: Программирование / Game Development

 

Лекции Техносферы. 2 семестр. Методы обеспечения качества и тестирования web-приложений

Автор: admin от 14-06-2015, 17:13, посмотрело: 858

Лето только начинается, но это не повод прекращать учиться. Предлагаем вам ознакомиться с очередной порцией знаний в рамках проекта «Лекции Техносферы». Цель курса — ознакомить студентов с актуальными методологиями тестирования и обеспечения качества современных веб-приложений. Курс позволит слушателям получить достаточные знания для овладения и применения на практике эффективных приемов построения процесса тестирования и обеспечения качества.

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

Категория: Программирование / Веб-разработка

 

Дайджест интересных материалов для мобильного разработчика #107 (8-14 июня)

Автор: admin от 14-06-2015, 15:32, посмотрело: 423

На WWDC, которая шла всю неделю, Apple представила Xcode 7, сделала Swift open source, унифицировала программы для разработчиков. Но и за пределами конференции было много интересного – «уязвимость» во ВКонтакте, прием платежей в приложениях, новые Unity и Unreal.

Дайджест интересных материалов для мобильного разработчика #107 (8-14 июня)

Категория: Веб-разработка / Game Development / Android / Windows / iOS

 

Интеграция Symfony 2 и Google Calendar

Автор: admin от 14-06-2015, 13:23, посмотрело: 569

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

Категория: Программирование / Google

 

Семь смертных грехов разработки ПО

Автор: admin от 14-06-2015, 12:27, посмотрело: 414

Перевод статьи Seven Deadly Sins of a Software Project автора Yegor Bugayenko.

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

Категория: Программирование / Веб-разработка

 

Когда не помогает ЦАП. Цифровые потенциометры в деталях. Часть первая

Автор: admin от 14-06-2015, 02:57, посмотрело: 1 434

Когда не помогает ЦАП. Цифровые потенциометры в деталях. Часть первая
Прогресс не обошёл стороной не только велосипед. Сегодня традиционные переменные и подстроечные резисторы в очень многих приложениях уступают место цифровым сопротивлениям. В англоязычных источниках их называют digital potentiometer, RDAC или digiPOT. Область применения этих устройств гораздо шире регулировки уровня звукового сигнала. В частности они приходят на помощь в очень многих случаях, когда требуется изменять параметры обратной связи, что трудно реализовать с помощью традиционных ЦАП.
Особенно эффективно их применение в связке с операционными усилителями. Так можно получить регулируемые усилительные каскады, преобразователи разного рода величин, фильтры, интеграторы, источники напряжения и тока и многое многое другое. Словом эти очень недорогие и компактные устройства могут быть полезными каждому разработчику электроники и радиолюбителю…
Изначально я хотел написать краткую статью, но в результате углубленного изучения темы материал с трудом уместился в две части. Сегодня я постараюсь рассказать об архитектуре данных устройств, их возможностях, ограничениях использования и тенденциях развития. В заключении вскользь затрону тему областей применения, поскольку конкретные примеры практической реализации схем на их основе будут рассмотрены во второй части. МНОГО примеров!
Лично я за последние пять лет с успехом применял цифровые сопротивления в нескольких своих разработках, надеюсь что данный цикл статей окажется полезным для многих и поможет вам решать многие задачи более изящно и просто, чем сегодня. Людям, далёким от разработки электроники данная статья может просто расширить кругозор, показав как эволюционируют под натиском цифровых технологий даже такие простейшие вещи, как переменные резисторы.

Категория: Программирование / Веб-разработка