romikchef: (Default)
[personal profile] romikchef
Охохох. Что ж меня так мотает-то.
Еще год на зад радовался админству, как спасению от программизма.
Теперь вот пишу в охотку, наваял первый в жизни ебутик (при этом уже лет 6 как поучая других. помогло, кстати - писалось как по писаному).
Еще статею бы дописать, по одному из основополагающих понятий в веб-программировании. Последнему, кстати, из не охваченных (базовых. о других я не дорос и врядли когда-нибудь).

Date: 2009-01-15 03:00 pm (UTC)
From: [identity profile] david-m.livejournal.com
Неужто про goto?

Date: 2009-01-15 03:19 pm (UTC)
From: [identity profile] david-m.livejournal.com
А… опять небось скажешь, что лучший шаблон — это <?=$var?> ?:)

Date: 2009-01-15 03:39 pm (UTC)
From: [identity profile] david-m.livejournal.com
А я сам всё-таки втянулся в шаблоны. Я для себя портанул джанговские шаблоны на PHP и юзаю вовсю. Там система наследования хорошая.

Date: 2009-01-15 03:43 pm (UTC)
From: [identity profile] helxen.livejournal.com
Ром, то что ты первый в жизни наваял - там ударение куда?

Date: 2009-01-15 05:46 pm (UTC)
From: [identity profile] david-m.livejournal.com
Я, по-моему, как-то писал уже, и чуть ли не в разговоре с тобой…

Мне нравится/удобно, что разные задачи — серверная логика и html-рендеринг — описываются на разных языках. Потому что они по сути разные. HTML не надо _программировать_ (js в расчёт не берём), а в коде не надо задавать разметку страницы. И это удобно, когда у них свои собственные синтаксисы и понятия — не возникает путаницы в голове, каждую задачу ты описываешь на том языке, который этой задаче больше подходит. Код — ООП/процедурный, шаблон — декларативный…

В джанговских шаблонах, например, никаких вычислений сделать нельзя — это там принципиальная позиция. Такое насильное отделение логики от шаблона. Подразумевается, что шаблон не должен брать на себя никаких функций модели — от модели можно брать только значения. Если хочется в шаблоне написать {% if body.temperature > 37 %}, то это идеологически неверно, надо писать {% if body.high_temperature %}, а уже “body” сам решит, какая температура для него высокая.

Это _кажется_ сильно ограничивающим, но немного так поработав, понимаешь, насколько же меньше всяких потрохов модели в результате попадает в шаблон. И код становится более логичным и инкапсулированным, потому что ту же high_temperature() можно, оказывается, использовать ещё в куче мест и внутри модели и вне. А иначе (если шаблон позволяет делать вычисления) соблазн по-быстрому всё набросать прямо между html-тегами оказывается слишком велик.

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

УсмотрЪніе

Date: 2009-01-15 07:35 pm (UTC)
From: [identity profile] vitjko.livejournal.com
Читателю хочецца ударить на Г.

Date: 2009-01-16 12:51 pm (UTC)
From: [identity profile] akka-knebekaise.livejournal.com
17 января буду рада увидеться на концерте в честь моего ДР. Альпийская галка, пр-т Мира, 100 (м.Алексеевская)
начало в 18.00, вход - свободный
жду!:)

Profile

romikchef: (Default)
(P) All pun intended

February 2026

S M T W T F S
1234567
891011121314
151617181920 21
22232425262728

Style Credit

Page generated Feb. 25th, 2026 03:24 pm
Powered by Dreamwidth Studios

Expand Cut Tags

No cut tags