Pull to refresh
41
0
Вилен Т @XuMiX

User

Send message

Eval или include?

Reading time3 min
Views9.5K
Один из текущих проектов разрабатываю на собственном фреймворке, параллельно его обкатывая и дописывая. Зачем мне понадобилось изобретать велосипед, и чем он отличается от существующих, напишу когда буду представлять его общественности. Сейчас же хочется поделиться некоторыми мыслями по поводу производительности и заодно выслушать мнения коллег. Возможно, мои наблюдения будут полезны и тем, кто не использует фреймфорки.

Когда пришлось реализовывать дерево комментариев, столкнулся с необходимостью рекурсивного вызова представления (view в MVC). Так как представления у меня, да и практически везде, — это обычные файлы с кусками HTML-кода и возможностью вставки PHP, то подключаются они с помощью include. Мне стало не по себе, когда представил как этот include вызывается рекурсивно сотни раз. Первая мысль — засунуть файл представления при первом запросе в память и потом выполнять его через eval. Такой подход позволит кешировать код представлений, и даже хранить его в БД. Так как eval кушает только PHP, а представления у нас чистым PHP-кодом не являются, то обрамляем содержимое в '?>' и '<?php'.

Тесты и выводы
Total votes 41: ↑27 and ↓14+13
Comments155

Раскладки в Silverlight2

Reading time5 min
Views876
Добро пожаловать в мой уютный бложек свежесозданный блог, посвященый технологии Silverlight.

Эта статья является 3 в цикле. Вот тут есть начало и продолжение.

При построении любого GUI-приложения, содержащего более 5-6 элементов управления, резко встает вопрос их корректного позиционирования и управления их размещением в пределах родительского элемента управления.
Для решения данной проблемы существует несколько подходов. Silverlight унаследовал от WPF вариант с использованием layout-ов (иногда их называют раскладками, иногда и еще хуже). Гибкость системы раскладок позволяет создавать причудливые комбинации элементов управления, комбинируя как абсолютные, так и относительные методы позиционирования и управления размерами компонентов.
Читать дальше →
Total votes 38: ↑31 and ↓7+24
Comments19

Многоуровневая абстракция

Reading time3 min
Views16K
В предыдущей статье мы рассмотрели некоторые подходы к кодогенерации, теперь я хочу взглянуть на многоуровневую абстракцию и произвести некоторый анализ.

Данная статья содержит лишь теорию. Практической будет следующая статья (постараюсь чередовать).
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments20

Blueprint

Reading time4 min
Views27K
Blueprint — довольно интересный фреймворк для верстки сеткой, который я лично считаю удобным, потому как он позволяет довольно просто создавать весьма сложные страницы, при этом не думая об IE.

Со страницы проекта на Google Code скачиваем архив.

В архиве будет папка blueprint/ там и содержатся основные файлы фреймворка, их и подключаем к странице:

<link rel="stylesheet" href="css/blueprint/screen.css" type="text/css" media="screen, projection">
<link rel="stylesheet" href="css/blueprint/print.css" type="text/css" media="print"> 
<!--[if IE]><link rel="stylesheet" href="css/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->

Читать дальше →
Total votes 54: ↑50 and ↓4+46
Comments73

Верстка без float'ов

Reading time2 min
Views8.7K
Существует много разных способов css разметки. Некоторые базируются на абсолютном позиционировании, другие используют float'ы. Первый метод плохо поддерживает «резиновость» макета, тогда как второй это неплохой способ разметки.

Но, как и многие мощные инструменты, float'ы имеют свои изъяны. Для начала, верстка на основе float'ов не такая простая к пониманию, а также float'ы есть источником многих багов (в основном в ИЕ), что делает их не идеальным вариантом в погоне за кроссбраузерностью.

Итак, речь далее пойдет о
семантически корректном методе верстки
Total votes 77: ↑61 and ↓16+45
Comments174

Конструирование ПО, метафоры, предварительные требования

Reading time15 min
Views9.9K

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

Почему именно абзацы из книги, а не своими словами? Потому что во многих случаях сказать лучше очень сложно. И потом, чистые тезисы читать скучно — надоедает на второй странице.
Если топик понравится — готов стараться описать в статьях всю книгу, с каждым разом все уменьшая объем и увеличивая плотность информации.

Конструирование ПО


Что такое конструирование ПО?


Разработка ПО — непростой процесс, который может включать множество компонентов. Вот какие составляющие разработки ПО определили ученые за последние 25 лет:
— определение проблемы;
— выработка требований;
— создание плана конструирования;
— разработка архитектуры ПО, или высокоуровневое проектирование;
— детальное проектирование;
— кодирование и отладка;
— блочное тестирование;
— интеграционное тестирование;
— интеграция;
— тестирование системы;
— корректирующее сопровождение.

Иногда конструирование называют «кодированием» или «программированием».
«Кодирование» кажется мне в данном случае не лучшим термином, так как он
подразумевает механическую трансляцию разработанного плана в команды языка программирования, тогда как конструирование вовсе не механический процесс и часто связано с творчеством и анализом. Смысл слов «программирование» и «конструирование» кажется мне похожим, и я буду использовать их как равноправные.
Читать дальше →
Total votes 38: ↑27 and ↓11+16
Comments21

Предисловие

Reading time4 min
Views1.4K
Не знаю почему, но на эту важнейшую технологию обращают так мало внимания. Я хочу несколько исправить положение, поэтому это — первая статья в цикле «Кодогенерация». При рассмотрении данной темы будет использован язык PHP и БД MySQL, но кодогенерация сама по себе возможна на любом языке и с использованием любой БД, просто на PHP мне будет проще объяснять некоторые важные моменты. Так же я буду обращать внимание на состояние дел в других системах и языках.

Данная статья посвящена одному вопросу: какие проблемы присутствуют в современном программировании.
Читать дальше →
Total votes 60: ↑45 and ↓15+30
Comments101

Высшее образование по-русски

Reading time2 min
Views3.1K
Прочитав топик про некачественную учебную литературу, решил выложить на суд общественности некоторые вопросы из тестов по информатике для первокурсников инженерно-экономического факультета РЭА им. Плеханова (Москва).
Поверьте, когда я увидел это, у меня отвисла челюсть — такого принебрежения к предмету со стороны преподавателей я не видел ни разу. Орфография, пунктуация, и также варианты ответов сохранены в полном объеме.
Что такое DOS?
  • плата в компьютере;
  • фирма, выпускающая компьютеры;
  • марка компьютера;
  • программа;
  • тип процессора.
Варианта «операционная система» не предусмотрено. Вообще. Отвечай, как хочешь, все равно ошибешься.
Читать дальше →
Total votes 128: ↑127 and ↓1+126
Comments291

PHP — ООП или процедурный подход

Reading time5 min
Views98K
PHP один из самых популярных скриптовых языков программирования. Почти 60% веб серверов используют PHP.Миллионы веб-сайтов и веб-приложений разрабатываются на PHP каждый месяц.

PHP изначально разрабатывался как простая замена языку Perl, и уже спустя пару лет он стал чрезвычайно мощным и популярным. Язык PHP, сам по себе очень похож на ANSI C.
Одна из причин почему PHP стал таким популярным это его короткий период обучения.

Изучение PHP абсолютно не тяжёлое занятие, особенно если вы хорошо знакомы с синтаксисом Java или C.

Так как писать PHP скрипты достаточно просто, любой может написать PHP код без соблюдения каких-либо соглашений и смешивая уровень представления с бизнес логикой (это одна из основных причин существования большого количества неуправляемых проектов). Потому что в PHP не обязательно строгое соответствие соглашений написания кода, с годами когда проект становится всё больше и больше, он превращается в громадное неуправляемое приложение.
Читать дальше →
Total votes 72: ↑49 and ↓23+26
Comments127

Книжки для стартаперов

Reading time2 min
Views885
Очень часто задают вопрос о том, где можно почитать по стартапам.

Могу порекомендовать три книжки:

High Tech Start Up, Revised and Updated: The Complete Handbook For Creating Successful New High Tech Companies, John L. Nesheim

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

Founders at Work: Stories of Startups' Early Days, Jessica Livingston

Книга содержит интервью с основателями известных стартапов, хорошо раскрывает проблемы, которые стояли перед ними, и как они достигли успеха, преодолев их. Кстати, первое интервью с создателем PayPal – Максом
Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments47

Мотивация IT специалистов

Reading time5 min
Views18K
В предыдущей статье о моём методе оценки эффективности сотрудников я отвечал на письмо уважаемого мной человека. Признаюсь, я немного слукавил :). Если быть точным, Subject письма был: «мотивация ИТ». Далее в письме вопросы ставились иначе, речь шла о KPI, на мой взгляд, это совершенно разные вещи. То есть я отличаю понятие Мотивация и Критерии эффективности.
Далее о мотивации в ИТ
Total votes 21: ↑16 and ↓5+11
Comments30

Позднее статическое связывание в PHP (Часть II: Практика)

Reading time3 min
Views10K
phpПервую часть читайте здесь.

Теперь приступим к практике. Наиболее показательным примером использования LSB, по-моему, является случай, когда у вас есть набор классов выполняющих похожие действия. В терминах веб-разработки мы часто встречаемся с такими задачами при обращениях к таблицам базы данных, особенно в ORM системах. Все ваши объекты для работы с таблицами будут похожи по сути, но при этом будут иметь собственный функционал ( и, соответственно, свои подклассы).
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments4

«Вредные» клиенты

Reading time3 min
Views1.8K
Тем, кто занимается бизнесом, в частности веб-разработкой, не надо рассказывать о «вредных» клиентах. Мой комментарий на эту тему в одном из топиков вызвал положительные отклики, поэтому расскажу, что я думаю по этому поводу. А именно: как дифференцировать клиентов по «вредности»; как (и стоит ли) работать с «вредными клиентами».

Читать дальше →
Total votes 48: ↑45 and ↓3+42
Comments108

Позднее статическое связывание в PHP (Часть I)

Reading time2 min
Views35K
phpПозднее Статическое Связывание (Late Static Binding, LSB) является бурно темой обсуждений последние три года в кругах разработчиков PHP (и наконец мы его получили в PHP 5.3). Но зачем оно нужно? В данной статье, как раз и будет рассматриваться, как позднее статическое связывание может значительно упростить ваш код.

На встрече разработчиков PHP, которая проходила в Париже в ноябре 2005 года, тема позднего статического связывания официально обсуждалась основной командой разработчиков. Они согласились реализовать его, наряду со многими другими темами, которые стояли на повестке дня. Детали должны были быть согласованы в ходе открытых дискуссий.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments53

Страшные сказки про PHP5, рассказанные на ночь…

Reading time3 min
Views2.7K
1) Какой бы ерундой вы не занимались с PHP, узкое место _всегда_ — БД. PHP — он как Буратино — тупОЙКАк… дрова. Lighttpd и Nginx позволяют разнести его по множеству физических серверов на раз без шума и пыли. Зарплата адекватного спеца по PHP в Москве — 30-45 тыс. рублей в месяц, стоимость аренды нормального сервера — от 3 тыс. рублей в месяц. А вы не знали ;)?

2) Какой бы ерундой вы не занимались — 30-60% производительности (возможно и больше) PHP-кода решит правильно выбранный и настроенный акселератор.

3) Серебряной пули нет. Не важно, какой концепт вы применяете — строгое ООП (в стиле Zend Framework), функции в стиле PHP4 (или ограниченное ООП) или вообще лапшу в стиле «PHP для чайников» — ни одна из этих парадигм не даст ощутимый прирост производительности, если конечно ваши программисты не выше как минимум на голову.
Читать дальше →
Total votes 182: ↑154 and ↓28+126
Comments287

Способы «завлечения» пользователей на ресурс.

Reading time3 min
Views1.1K
Проблема «раскрутки» заставляет болеть головы владельцев проектов не один десяток лет. Однако, в последнее время понятие «раскрутки» стало приближаться к понятию «накрутки», практически любой новый проект основную массу посетителей тащит с поиска. На самом деле это не так и плохо, тем более если представляется интересный продукт. Но как удержать пользователей и заставить их «работать»? Давайте рассмотрим несколько способов, если что не так — пишите комменты, поправим.

1. Деньги.


Первым вариантом ставлю деньги, завлечение деньгами. Это, наверно, самый логичный но наименее распространенный вариант. Во-первых, не каждый «зеленый» проект сможет платить нормальные деньги, ибо нужен не плохой буфер. Зачастую владельцы проектов — свободные разработчики, у которых нет лишних 2-3 тыщ зеленых в месяц на свой зеленый проект. Во-вторых, я лично не видел еще ни одной нормальной компенсационной программы, точнее её реализации для сети. Идеальная — установка AdSense от гугля. В идеале — пользователь ставит свой AdSense код в свой контент (блог, новости) и получает 100%, оставляет AdSense проекта и получает 50% (скажите, стали бы вы больше писать, если бы за каждый просмотр вашей новости на хабре вам капала копеечка?)
Читать дальше →
Total votes 47: ↑39 and ↓8+31
Comments50

Практический XSLT. Использование в качестве шаблонизатора. Часть 2

Reading time7 min
Views17K
В предыдущей статье мы разобрали основные аспекты построения шаблона с помощью XSLT. Однако, для полноценного шаблона нужно не только выводить меню сайта, но также и текстовый материал документа.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments37

7 критических ошибок при приеме заказа на изготовление сайта (личный опыт клиента)

Reading time3 min
Views6.5K
Мой клиент и хороший друг Александр Успенский, прочитав статью 7 критических ошибок при заказе сайта, написал своего рода ответ (или даже пародию) на нее. Некоторые моменты спорные, но в целом статья, на мой взгляд, полезна разработчикам как адекватная обратная связь раздраженного клиента на работу не слишком профессиональной веб-студии :)

Первая и самая большая ошибка изготовителей сайтов состоит в том, что они сосредотачивают свои усилия на угождении клиенту, а не на предложении дополнительных (я уже молчу об уникальных) возможностей, которые он получит, создавая сайт именно в этой студии.
Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments31

Практический XSLT. Использование в качестве шаблонизатора

Reading time10 min
Views54K
В сети доступно масса документации по языку XSL. Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон.

Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать.
Читать дальше →
Total votes 67: ↑61 and ↓6+55
Comments101

MoreCSS — Сделаем css полноценным!

Reading time1 min
Views813
morecss-logo.png

MoreCSS — небольшая библиотека JavaScript, весом всего 14кб, для решения повседневных задач, таких как создать всплывающие окна, сделать вкладки меню, таблицы и списки с оформлением «зебра»-стиль… и т.д. С помощью этой библиотеки Вы сможете это делать средствами обычного css.
Читать дальше
Total votes 54: ↑51 and ↓3+48
Comments29

Information

Rating
4,653-rd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Lead