OpenStreetBugs — лёгкий способ сообщить об ошибке в OpenStreetMap

OpenStreetBugs — лёгкий способ сообщить об ошибке в OpenStreetMap

Вы, конечно, знаете о свободной карте OpenStreetMap. Это настоящая народная карта, создаваемая такими же людьми как и вы! Это такой же opensource-проект как Linux и как Википедия. Конечно же, как и в других картах, в OpenStreetMap имеются ошибки, но в отличие от тех же Яндекс.Карт, где ошибки не исправляются годами из-за сложной бюрократической процедуры (я уже не говорю о намеренных ошибках), в OpenStreetMap всё гораздо проще и лучше для всех нас...
Подробнее..

CloudMade Navigation поддерживает ограничения манёвров

CloudMade Navigation поддерживает ограничения манёвров

Не так давно CloudMade выделил несколько приоритетных направлений, среди которых оказалась и навигация. Решено было создать специальный проект Navi Studio, который объединял бы в себе несколько более мелких сервисов и позволял пользоваться ими, для создания полноценного навигационного программного обеспечения. В Navi Studio вошли: Работа закипела и уже появилось несколько приложений использующих данный проект. Но полноценной навигации без соблюдения правил ПДД не существует, а потому данному вопросу было также уделено не мало времени...
Подробнее..

Удали себя из интернет-социума — «Web 2.0 Suicide Machine»

Удали себя из интернет-социума — «Web 2.0 Suicide Machine»

Недавно наткнулся в сети на один занимательный интернет-сервис, именующийся Web 2.0 Suicide machine . Предназначен он для того, чтобы позволить людям, обремененным «социальной жизнью в интернете», в пару кликов удалить свои аккаунты на Facebook (в данный момент сервис блокирован администрацией по IP), Twitter, Linkedin и Myspace. В общем-то судя по количеству положительных отзывов и «успешных очищений» — пипл хавает зависимые от социальных сетей успешно пользуются сервисом и довольны...
Подробнее..




10 правил PHP-мастеров

Веб разработка - Веб разработка

10 правил php-мастеров

1. Пользуйтесь PHP только тогда, когда это нужно – Расмус Лердорф (Rasmus Lerdorf)

Нет лучшего источника, чем сам создатель PHP, чтобы узнать, на что он способен. Расмус Лердорф создал PHP в 1995г. С тех пор язык распространился со сверхъестественной скоростью в сообществе разработчиков, попутно изменяя лицо Интернета. Однако Расмус создавал PHP не с этими намерениями. PHP создавался для потребностей веб-разработки.

Как и в случае со многими другими проектами с открытым исходным кодом, ставшими популярными, философия или даже самовлюбленность никогда не были движущей силой. Это был чистейший случай нужды в инструменте для решения глобальных проблем, связанных с Сетью. В 1994г., когда речь заходила об инструментах разработки Сети, выбор был весьма ограничен.

И все же вы не можете воспользоваться PHP для всего на свете. Лердорф первым отметил, что PHP в действительности просто еще один инструмент в арсенале разработчика, и даже у PHP есть ограничения.

Для работы пользуйтесь правильным инструментом. Я встречал компании, которые всецело уповали на PHP, употребляя его абсолютно везде, хотя он никогда не предназначался для того, чтобы быть языком общего назначения, подходящим для любой проблемы. Он наиболее приемлем как внешний скриптовый язык для Web.

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

2. Используйте множество таблиц в PHP и mySQL для масштабируемости – Мэтт Малленвег (Matt Mullenweg)

Нет нужды сомневаться в компетентности Мэтта Малленвега в PHP. Он (вместе с сообществом пользователей) разработал самую популярную блоговую систему на свете: Wordpress. После создания Wordpress’а Мэтт и компания запустили звездный Wordpress.com, бесплатный блоговый сайт, основанный на платфоме Wordpress MU для нескольких блогов. В данный момент Wordpress.com поддерживает более 4 миллионов блогов, а их пользователи сегодня написали более 140 000 постов.

Если кто и знает, как масштабируются вебсайты, то это Мэтт Малленвег. В 2006г. Мэтт предоставил возможность немного рассмотреть внутреннюю структуру баз данных Wordpress’а и объяснил, почему в Wordpress MU для каждого блога используется отдельная таблица mySQL, вместо применения одной гигантской общей таблицы для всех блогов.

Мы тестировали такой подход для MU, и обнаружили, что масштабирование становится слишком дорогим, начиная с некоторого момента. С монолитными структурами вы упираетесь в стену, построенную из возможностей оборудования. В MU пользователи разграничены и могут быть легко разделены, например, на WordPress.com пользователи распределяются по 4096 базам данных, что позволяет очень легко и рационально масштабировать сотни тысяч и даже миллионы пользователей, обеспечивая экстремально высокий уровень трафика.

Возможность миграции таблиц позволяет коду и, в конечном итоге, блогам гораздо быстрее запускаться и проще масштабироваться. Совместив интенсивное кэширование и элегантное использование баз данных, Мэтт показал, что чрезвычайно популярные сайты вроде Facebook и Wordpress.com могут работать только на PHP и обрабатывать невероятное количество трафика.

3. Никогда-никогда не доверяйте своим пользователям – Дейв Чайлд (Dave Child)

Дейв Чайлд – выдумщик (хи-хи!), стоящий за недавно переименованным Added Bytes (бывший ilovejackdaniels.com), вебсайтом, который содержал в себе великолепные шпаргалки Дейва для множества языков программирования. Дейв работал на многие компании-разработчики в Великобритании и упрочил свое положение авторитета в мире программирования.

Дейв предлагает мудрый совет по поводу написания безопасного кода в PHP: Не доверяйте своим пользователям. Они могут вас огорчить.

Так что важнейшее правило всей веб-разработки, и я не могу не сделать на нем ударения, это: Никогда не доверяйте своим пользователям. Подразумевайте, что любой отрывок данных, получаемых сайтом от пользователя, содержит злонамеренный код. Всегда. Включая данные, которые как вы считаете, вы проверили на клиентской стороне, используя, например, JavaScript. Если сможете это сделать, окажетесь на верном пути. Если безопасность PHP важна для вас, этот единственный пункт окажется самым важным для изучения.

Дейв продолжает давать особенные примеры осуществления безопасности на практике в частях один, два и три своей серии публикаций ‘Написание безопасного PHP’. А его окончательный вердикт звучит так:

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

4. Уделите внимание PHP-кэшированию – Бен Больбо (Ben Balbo)

Бен Больбо писал для Site Point, очень уважаемого сайта-учебника для нашего брата – разработчика и дизайнера. Он состоит в комиссии как Мельбурнской группы пользователей PHP, так и Клуба разработчиков проектов с открытым исходным кодом, так что он кое-что знает о языке. Не удивительно, что опираясь на свое прошлое как разработчика PHP и инструктора, он рекомендует уделить немного больше внимания и подготовки PHP-кэшированию.

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

В PHP существует множество техник кэширования и Бен затрагивает в статье несколько самых крупных, таких как:

Кэширование вызовов функций

Установка заголовков expiry

Кэширование закачки файлов в IE (Internet Explorer)

Кэширование шаблонов

Cache_Lite

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

5. Ускоряйте разработку PHP при помощи IDE, шаблонов и фрагментов – Чед Киффер (Chad Kieffer)

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

Чед считает, что использование IDE вроде Eclipse PDT (пакета для разработки на PHP в Eclipse) со смесью шаблонов и фрагментов действительно может ускорить цикл разработки в проекте.

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

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

Используя IDE вроде Eclipse и пакет PDT, вы обнаружите, что время разработки определенно ускорится. IDE будет автоматически закрывать скобки, добавлять недостающие точки с запятыми, и даже позволит вам исправлять неполадки в текстовом редакторе, без необходимости выкладывания на сервер.

(У Чеда есть отличный учебник о начале работы с Eclipse PDT и преимуществах IDE в общем, если интересует.)

6. Улучшайте функции фильтрования PHP – Джоуи Сочеки(Joey Sochacki)

Так как Джоуи Сочеки, может быть, не такое великое имя, как Мэтт Малленвег (Matt Mullenweg) в сообществе PHP, он бывалый веб-разработчик и делится с нами советами, почерпнутыми на этом пути, в своем блоге Devolio.

Джоуи обнаружил, что хотя при написании кода PHP должна проводиться куча фильтрации, немногие программисты пользуются функциями фильтрации PHP.

Фильтрация данных. Нам всем приходится это делать. Большинство, если не все из нас, относятся к нему с презрением. Однако неведомыми большинству остаются функции фильтрации PHP, которые позволяют производить всякого рода фильтрацию и проверку правильности (validation). Пользуясь функциями PHP filter_*, можно проверять правильность и «стерилизовать» данные, URL’ы, адреса e-mail, IP-адреса, отсекать недопустимые символы и много другое, сравнительно легко.

Фильтрация может быть запутанной, но это руководство способно очень помочь. С помощью Джоуи вы узнаете, как установить фильтры и просеивать практически все, пользуясь преимуществами возможностей фильтрации предоставляемых PHP.

7. Пользуйтесь фреймворком PHP – Джош Шарп (Josh Sharp)

По поводу того, использовать ли фреймворк PHP типа Zend, CakePHP, Code Igniter, или любой другой, спорили всегда. В его использовании есть свои позитивные и негативные аспекты, и многие разработчики имеют собственное мнение о том, идти по этому пути или нет.

Джош Шарп – веб-разработчик, который зарабатывает себе на хлеб с маслом, создавая вебсайты для клиентов. Вот почему вы должны ему верить, когда он говорит, что использование фреймворка PHP – отличный способ сэкономить время и устранить ошибки во время программирования. Почему? Джош считает, оттого, что PHP очень легко выучить.

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

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

8. Не пользуйтесь фреймворком PHP – Расмус Лердорф (Rasmus Lerdorf)

В противоположность мнению Джоша о том, что нужно использовать фреймворк PHP, Расмус Лердорф, сам крестный отец PHP, считает, что фреймворки не так уж хороши. Почему? Потому что они выполняют операции гораздо медленнее, чем простой PHP.

Во время своей презентации на Drupalcon 2008 Расмус сравнил время ответа на PHP-страницу при помощи простого примера “Hello World”, с несколькими фреймворками PHP (слайды 24-32) и показал, что фреймворки PHP гораздо медленнее, чем прямой PHP.

Можете прослушать или просмотреть презентацию целиком, где Расмус демонстрирует потери производительности фреймворков PHP. Вкратце, Расмус показывает, что производительность серьезно страдает, когда вы пользуетесь фреймворком PHP, в противоположность использованию чистого PHP.

9. Используйте пакетную обработку данных – Джек Д. Херрингтон (Jack D. Herrington)

Джек Херрингтон знаком с PHP и сферой разработки. Вслед за написанием более 30 статей для престижного IBM developerWorks, Джек также опубликовал книги по программированию, такие как «PHP Hacks». Джек – подлинный знаток.

Херрингтон рекомендует использовать пакетную обработку данных и cron (прим. перев. – планировщик задач), для сложных задач, которые могут обрабатываться в фоновом режиме. Пользователи сети не желают долго ожидать завершения заданий через веб-интерфейс. Работа, которая занимает много времени, больше подходит для выполнения в фоновом режиме.

Естественно, в ряде случаев немного легче запустить вспомогательный поток для обработки небольших задач. Но легко заметить, что при использовании традиционных инструментов – cron, MySQL, стандартный объектно-ориентированный PHP и Pear::DB – пакетные задания в приложениях PHP просто создавать, легко развертывать и несложно сопровождать.

Джек верит в простоту и, вместо использования организации поточной обработки на серверах, пользуется простой комбинацией крона, PHP и MySQL для обработки задач в фоновом режиме.

Я пробовал все и считаю, что крон имеет преимущество принципа “Keep It Simple, Stupid” (KISS) («Делай все просто, придурок»). Он делает фоновую обработку простой. Вместо многопоточного приложения обработки задач, которое выполняется постоянно и, таким образом, не должно иметь утечек памяти, у вас есть простой скрипт пакетной обработки данных, который запускает крон. Скрипт определяет, есть ли что-то, что нужно сделать, делает это и затем завершает работу. Не нужно волноваться об утечках памяти. Не нужно волноваться о «захлебывании» (stalling) потоков или возможности попадания в бесконечный цикл.

10. Немедленно включите оповещения об ошибках – Дэвид Каммингс (David Cummings)

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

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

Единственная самая важная вещь, о которой я говорю людям, использующим PHP, это включить оповещения об ошибках на максимальный уровень. Почему я хотел бы это сделать? Как правило, оповещение об ошибках установлено на уровень, который скрывает множество мелочей, таких как:

Преждевременное объявление переменной.

Обращение к переменной, недоступной в этом сегменте кода, или

Использование определения, которое не было установлено

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

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

 


Читайте:


Добавить комментарий


Защитный код
Обновить

News image

Новый JDBC-драйвер для СУБД SQL Server уже доступен в виде предварител

Компания Microsoft сделала еще один шаг к обеспечению совместимости своей флагманской СУБД SQL Server с промышленными Java-приложениями, выпустив оз...

News image

Новости для разработчиков

Microsoft выпустила обновленную версию своего набора вспомогательных инструментов разработчика под названием Visual Studio 2010 Productivity Power T...

News image

Gmail Labs: кто выйдет в свет, а кто уйдет в отставку

Мы запустили Gmail Labs более полутора лет назад. Это экспериментальная лаборатория, позволяющая разработчикам предлагать новые функции, а вам – реш...

News image

Microsoft Volta – еще один конкурент AJAX на платформе .NET

Microsoft анонсировала новый инструмент для Web-разработчиков: Microsoft Volta. Volta – это разработка Microsoft Live Labs, в настоящее время пре...

News image

Лабиринт технологий виртуализации Microsoft

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

Топ технологий:

News image

Оздана новая система беспроводной связи - она в 10

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

News image

Как взломали Twitter

В Интернетах, наряду с iPad, сканерами в аэропортах и войне между Google и Apple, уже второй день подряд активно обсуждается тема взлома и...