Писать меньше кода

В одноименном посте Mike Grouchy призывает к максимальному уменьшению объемов кодирования. Многие заблуждаются, приравнивая программирование к кодированию. А ведь это не так. Задача программиста решить какую то проблему. И чем элегантнее и проще будет решение тем лучше. Куча инструментов и фреймворков призваны уменьшить кол-во кода. Пользуйтесь этим. Еще одна великая штука – это рефакторинг, позволяющий делать код чище.

Технологии

  • Ухты, ухты, ухты. Выбор из списка с подсказками на чистом HTML5
  • JavaScript Garden – это постоянно пополняемая коллекции документации о самых необычных частях JavaScript. Здесь собраны советы, как избежать распространенных ошибок, а также проблем с производительностью.
  • Принято считать, что php – отстой. Почему? Ну просто принято и все. Посмотрите на современное состояние PHP. Сейчас это самый развивающийся язык программирования. Посмотрите на версию 5.4. Сколько там нововведений и вкусностей. В статье “PHP is much better than you think” приведено много доводов в поддержку PHP
  • Хорошо разжеванный способ защиты формы с помощью проверочного параметра(на PHP)
  • MVC is dead, it’s time to MOVE on. MOVE: Models, Operations, Views, and Events. Сравнение этих двух методологий, с перекосом в сторону MOVE
  • 5 простых мер для повышения безопасности в PHP-скриптах:управляйте сценариями установки(установили, удалили/закрыли доступ), инклюдьте только файлы с расширением “php”(не “inc”,…), обязательно шифруйте пароли и другую “интимную” информацию, отключите глобальные переменные, обязательно инициализируйте переменные и их значения.
  • Google JavaScript Style Guide – вроде бы и так все понятно

Разное

Аспектно-ориентированное программирование в PHP

Обычно, чтобы было понятнее, что такое аспектно-ориентированное программирование, приводят пример с логированием. Допустим нам нужно веси лог удалений. Причем, удалений всего и вся. Самый простой способ  это добавить вызов логирующего метода в тех местах где происходит удаление сущности, например, в методе deleteUser(). Разумеется логирование придется добавить во все подобные методы всех сущностей. Во первых это муторно, во вторых нарушает четкое предназначение класса(метод не только удаляет, но еще и записывает лог). Еще один способ этот использование паттерна наблюдателя.

АОП придумана как раз таки для реализации такой сквозной функциональности. Как это реализовать в PHP с помощью фреймворка FLOW3 читайте в статье Aspect-Oriented Programming in PHP .

В двух словах это работает так: при написании метода логирования вы даете указание в какик методах он должен вызываться. Примерно вот так:

1
2
3
4
5
6
7
8
/**
* An aspect that is executed on all methods that start with "delete".
*
* @FLOW3\Before("method(.*->delete.*())")
*/

public function logginMethod() {
// Do some logging here.
}

Ну а фреймворк уже сам позаботится о вставке вашего метода в нужные места.

 
Технологии

  • OAuth 2.0 простым и понятным языком – не свежий, но полезный пост про OAuth 2.0
  • Помните отличную презентацию про HTML5? Можно забабахать презентацию не хуже с помощью LakTEK. На первый взгляд всё просто.
  • В хроме появился новый атрибут download у тега A. Атрибут указывает на то, что ресурс указанный в ссылке нужно предложить скачать, а не пытаться открыть его в браузере
  • HTML5 Audio — The State of Play -подробный разбор: методы, атрибуты, события…вплоть до настройки Апача, для корректной отдачи аудио-файлов.

PHP

  • XDebug исполнилось 10 лет! Этому событию посвящен новый релиз 2.2.0.
  • Если вы переживаете за качество вашего php-кода, обратите внимание на инструменты и представленные на сайте The PHP Quality Assurance Toolchain
  • Mobile_Detect – облегченный класс для обнаружения мобильных устройств.

Разное

Библиотечки на HTML5

Технологии

  • JS1K – Много демок на JS. Главная цель уместится в 1024 байта. Посмотрите в код )))
  • Backbone.js предоставляет чрезвычайно простые способы для создания модели и представления(MVC) для организации вашего кода логичным образом. Хотя тут нет контролера, что требует MVС-фреймворк. Контролер нужен когда есть взаимодействия клиента и сервера. Когда же нет такого взаимодействия, можно обойтись и без контролера. В Backbone.js реалезован паттерн наблюдателя, что позволяет измененять представления при любых изменениях в модели.
  • Envision.js – библиотека для построения графики и подобной визуализаций. Самом собой на HTML5
  • Rust -новый язык от Mozilla.Визуально похож на языки семейства С, хотя сильно отличается в плане семантики и синтаксиса.
Сервисы
  • Ping Pong Spider Mother – очень забавная игрушка написанная на HTML5
  • Picozu Editor – онлайн графический редактор, апять таки написанный на HTML5
  • Яндекс.Диск — файловое хранилище от Яндекса. До 10 Гбайт бесплатно. Пока, что вход по приглашениям.

Разное

Привет лунатикам!

Сервисы

  • Notey – микросервис для расшаривания супер-секретных заметок ))). Например, зайдите вот по этой ссылке и введите пароль “danilovonline”. Ну как? Чтобы оставить свое сообщение, заходите на notey.org, вводите текст заметки и пароль. Вам выдается ссылка. Теперь можно кому-нить дать эту ссылку и пароль. Сообщение будет удалено через 30 дней.

Технологии

  • Javascript в декларативном стиле – пример навешивания триггеров на элементы страницы
  • Несколько популярных мифов о HTML5
  • Архитектура Android-приложений. Часть II — архитектурные стили и шаблоны. Такая же интересная статья как и первая
  • Foamicate – система авторизация пользователей без использования паролей. Вместо этого используется открытый ключ и RSA алгоритм. Эта технология позволяет пользователям надежно авторизовываться и намного проще, чем используя традиционный метод авторизации с паролем. Сервер проверяет подлинность клиента и использует открытый ключ для связи клиента с учетной записью. Серверная часть реализована на PHP, а клиентская – аддон для браузера
  • pdf.js – просмоторщик PDF-файлов, полностью написанный на JS. Впечатляет.

Разное

  • The Magic of Editable PDFs. Прекратите слать в письмах вложения .doc-файлы. Не всегда получатель может открыть полученный документ, особенно если почта принимается мобильным устройством. Шлите документы в формате PDF. Вспомните как расшифровывается эта аббревиатура. Большинство мобильных устройств поддерживает просмотра PDF-файлов сразу “из коробки”. А если нужно оставить возможность отредактировать файл, шлите документ в формате Hybrid PDF.