Первые шаги в Django

Уже несколько месяцев пишу на python и Django один крупный проект.

Базовые знания python были давно, что сильно сократило начальный период восприятия — «мама! где я?» (:. Спасибо разработчикам за хорошую(но в php лучше) документацию и уроки. Наличие class-mixin и method-decorator в python сильно поменяли мои подходы к организации кода и наследования классов, когда переключаюсь на php/javascript немного путаюсь.

Порадовал ORM, автоматическая админка и south-миграции, однако ORM раздражает в сложных join-ах, groupby…

Стандартные Django Templates хороши, однако после Twig смотрится его жалкой тенью (кстати синтаксис Twig основан на Django Templates и обильно приправлен синтаксическим сахаром). Коллега рекомендует Jinja, как замену Django Templates — надо попробовать.

Формы местами не идеальны, часто приходится писать обвязку виджетов или использовать сторонние библиотеки, коих есть в большом количестве.

Про контролеры(они же view в терминологии django): проект начал делать на версии 1.4 не вольно приучил себя к Class-based views. Не понимаю, как другие обходятся простыми fucntion view.

Рубрика: Без рубрики | Метки: | 1 комментарий

Простая обработка больших XML файлов

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

SimpleXML
Первая мысль воспользоваться SimpleXML, однако её принцип работы основан на чтении всего файла целиком и разворачивании DOM-дерева в памяти. Очевидно такой код упрется в memory_limit.

DOM
Ситуация по использованию памяти такая же как и SimpleXML.

XML-анализатор
Это SAX-парсер — работает очень быстро, принцип прост и основан на «событиях», анализатор лишь сообщает «открылся элемент» либо «закрылся элемент». Однако за это придется платить, например для моей задачи пришлось бы написать некий стек, т.е. следить за вложенностью элементов, открытием/закрытием узлов и атрибутов. Из минусов еще библиотека достаточно старая и написана в процедурном стиле, также данное pecl-расширение редко встречается на хостингах.

XMLReader
Аналогично SAX-парсер, однако API удобнее и проще чем у XML-анализатора, вся логика сконцентрирована в одном классе. Расширение входит в стандартную поставку PHP и часто встречается на хостингах.

В итоге скрестил XMLReader и SimpleXML — получился SimpleXMLReader: репозиторий на github, пример использования.

Рубрика: Без рубрики | Метки: | 24 комментария

Шаблон верстальщика Intecmedia.HTMLReset

Update репозиторий больше не поддерживается, правоприменик https://github.com/Intecmedia/Intecmedia.Bootstrap

Думаю многие программисты точат зуб на верстальщиков, в частности — на типичные и повторяющиейся баги. (:

Большинство css-фреймворков только от части соответствовало нашим корпоративным особенностям разработки. И как концентрация боли за проекты, я решил набросать корпоративный шаблон верстки — Intecmedia.HTMLReset.

За основы были взяты идеи из Normalize.css и HTML5 Boilerplate.

Особенности:

  • сбрасывает стандартные стили браузера
  • совсместимо со всеми современны браузерами (для IE6 используются фиксы)
  • готово к использованию HTML5 разметки
  • содержит базовую типографику текста, форм, таблиц, списков, заголовков
Рубрика: Без рубрики | Метки: | 3 комментария

Hello there!

Это первая запись, почитать про меня можно тут.

Тематика блога будет преимущественно касаться веб-разработки: для начала это будет серия постов о client-side.

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

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

Рубрика: Без рубрики | Оставить комментарий