Месяц: Ноябрь 2014

  • php шное

    Хоть формат блога — заработок в интернете, но кодингом я заработал не меньше, чем на всем остальном. У меня даже свой спамер написан на php (enginexsub), причем мне тогда лет 18-19 было. Так что пох, буду писать про код и дальше.

    На чем лучше писать сайт? CodeInteger, Yii или другом фреймворке (далее Ф)? Мой ответ до этого был, однозначно на чистом пхп без фреймворка, но сейчас я понял- бесмысленно боротся с пропагандой вещающей, что «хороший продукт» должен быть написан не с нуля. Поэтому вот анонсирую свой фреймворк, название еще не придумал. Основные отличия по традиции: простота, много готовых модулей (галереи, блог, магазин, новости, доска обьявлений, переписка, поиск, социальная сеть, билинг, модули оплаты, crm, кэширование, интеграция с социалками — все это сам написал), высокая скорость работы. Я ориентируюсь на бизнес, с их KPI, GTD, немного на маректологов с их SEO, SMM, но при этом хотелки программистов с их ООП, MVC будут рассматриваться в последнюю очередь.

    типичные проблемы популярных фреймворков (по материалам http://we-love-php.blogspot.ru/2012/10/php-framework-comparison.html статья хоть и старая, но сейчас это уже статус кво):

    Typical problems in frameworks

    • необходимо писать много кода который просто ничего не делает, но «нужен» (example)
    • Слишком много абстракций (example)
    • Невероятно огромное количество строк кода (e.g. ZF1 260,000, ZF2 146,000 loc, Symfony2 173,000 loc, Doctrine2 70,000 loc), очень сложно оптимизировать, сложно поддерживать
    • Осень много различных функций (e.g. ZF1 13,000, ZF2 7,800, Symfony2 9,500, Doctrine2 4,400), сложно для обучения (у php я использую не более 500).
    • Огромное количество переопределений переменных (когда одни и те же данные просто перемещаются в памяти) (e.g. ZF2 4,080, Symfony2 3,800 (analysis from nikic))
    • Тяжелая документация (e.g. ZF2 1000 pages and 500 examples)
    • Очень много include (example)
    • плохое форматирование кода (e.g. ZF2 echo StaticFilter::execute($str, «HtmlEntities», array(«quotestyle»=>ENT_QUOTES)); echo (new ZendFilterHtmlEntities(array(«quotestyle» => ENT_QUOTES)))->filter($str);
    • навороченный код (например, чтоб сделать запрос к базе нужно писать несколько строк кода, хотя это делается одной функцией)
    • несовместимость различных версий одного Ф, если вы написали сайт знакомств на yii 1+, то уже сейчас вышла версия 2 
    • постоянное желание разработчиков «написать все с нуля» или выпустить «другой более легкий фреймворк»

    Тесты показывают, что тот же YII в самом базовом варианте потребялет (за один заход посетителя) не менее 3 мб. оперативной памяти, когда например сайт знакомств на чистом пхп 0.5 мб. Это значит, что где обычному пхп понадобится один сервер, фреймворк затребует не менее 6ти. Конечно можно и нужно использовать кэширование и оптимизацию, но и для фремйворка и для чистого пхп это будет внешнее решение, например memcache и nginx

    Существует так же большое заблуждение, что большой плюс Ф уже сразу идет с валидацией форм, проверкой входящих данных, автоматически подключает jquery. jQuery уже давно подключают верстальщики прямо в верстку одной строчкой (о боже, верстальщики делают то, для чего программистам нужен фреймворк! я сваливаю). Валидация форм так же подключается одной строкой, а проверка на заполненность форм по стандарту HTML 5 уже давно выполняется самим браузером (то есть вообще ничего кодить не надо). Остается проверка входящих данных и прочая безопастность и защита.

    Почему же Ф так популярны? Основная причина, в том, что люди ищут «золотую пулю», одним выстрелом убить всех зайцев и ускорить разработку, мой личный опыт говорит ровно об обратном. Кодер тратит в 5-10 раз больше времени на исправление глюков, 90% из которого вслепую блуждая по файлам Ф и документации пытаясь понять «почему он работает не так».

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

    Сейчас у меня уже сформировался дизайн собственного фреймворка, началось все с того, что два файла кочевали у меня из проекта в проект это
    db.php — подключение к базе, позже туда добавились две основный функции работы с базой «q»  (выполнить запрос) и «r» (получить данные)
    func.php — рабочие функции, а именно
    -dod($unixtime) время между датами со склонениями числительных
    -pager($sql) функция генерации «пагинатора» который анализируя sql запрос на его основе выдает постраничную навигацию
    -me($txt) функция делает данные «безопастными», ну там кавычки и прочее.
    -sendmail отправка html сообщения на почту
    -getsitebyid($id) получить пользователя по id
    -balance_change($user,$summ,$descr,) изменить баланс пользователя с сохранением лога транзакции (незаменима для проектов пропускающих бабки)
    -cache($src,$w,$h) выдает уменьшенную картинку заданного размера, правильно закешированную
    -getk,setv функции для работы с key-value хранилищем, проще говоря кэширование
    -declination склонение числительных

    Остальные функции дописываются и удаляются, но эти используются почти всегда.

    Структура базы данных так же практически всегда одинаковая, есть одна основная таблица users с полями id,email,fio,pass,datareg,balance
    Если работаем с баблом то еще обязательно transactions

    Так как большинство моих проектов коммерческие, цикл их следующий:
    1. прототип + одновременно работа дизайнера
    2. завершение прототипа + верстка дизайна
    3. натягивание верстки
    4. плотное тестирование
    5. запуск
    6. отладка и оптимизация

    Далее если проект по фрилансу ищется начинающий php’ник для поддержки и мелких улучшений. Спасибо, что мой фреймворк очень прост и не нужно читать 2000 страниц документации, чтоб что то исправить.

    Стоимость фреймворка $10 000, шучу. Не спешно ищется сильный менеджер, для доведения продукта до коробочной версии, пиара и зарабатывания миллионов.

    PS: Я  в 

  • блоговое

    Нахожусь в городе Гатчина, неистово кодю. Есть знакомые местные блоггеры? В Питере из интересного только Хабаровский, который перехал сюда на пмж из Москвы 🙂 Но тот чето не отвечает, бизнес делает

    Еще пытался связатся с безколесным, тоже глухо)) Зато спрутэ радуе умотал аж в южную америку (этож дальше чем США даже).

    Мне кажется, что любой блоггер если не путешествует то просто становится не интересно.