Готовый перевод Two Scoops of Django / Двойное мороженное из Django: Введение
Наша цель при написании этой книги в том, чтобы записать все неписаные советы, приемы и общепринятую практику, которой мы научились за все годы работы с Django.
Когда писалась книга, мы думали о себе как о писателях, представляя как люди воспринимают обычные знания и записывали их с помощью простых примеров.
Слово о наших рекомендациях.
Как и в официальной документации Django, в этой книге рассказывается, как сделать что-то в Django, показаны различные сценарии и примеры кода.
Но в отличие от документации Django, эта книга рекомендует определенный стиль кода, паттерны проектирования и выбор библиотек. Хотя разработчики ядра Django могут согласиться с некоторыми или многими из этих вариантов, имейте в виду, что наши рекомендации являются лишь личным мнением, сформированным годами работы с Django.
На протяжении этой книги мы пропагандируем определенные методы и подходы, которые мы считаем лучшими. Мы также выражаем наши личные предпочтения к определенным инструментам и библиотекам.
Иногда мы отклоняемся от общей практики, если считаем считаем что-то не оптимальным (антипатерном). В большинстве случаев, когда такое случается, мы стараемся быть вежливым и уважать труд авторов.Но есть немногие случаи, когда это нам не удается Все это сделано в интересах того, чтобы помочь вам избежать опасных подводных камней.
Мы приложили все усилия, чтобы дать продуманные рекомендации и убедиться в том, что наши методы качественные. Мы подвергли себя суровой и нервной критике разработчиков ядра Django, которых мы очень уважаем. Эту книгу проверили больше рецензентов чем обычную среднестатистическую книгу, потратив бесчисленное количество часов. Но, как говорится, всегда есть возможность ошибки или неточности. Также существует возможность того, что возникнут лучшие практики, чем те, что описаны здесь.
Мы полны решимости развивать и улучшать эту книгу. Если вы видите какой-либо прием, с которым вы не согласны или что-нибудь, что можно сделать лучше, мы смиренно просим вас выслать нам ваши предложения, как сделать это лучше.
Пожалуйста, не стесняйтесь сообщить нам, что можно улучшить. Мы примем ваши отзывы конструктивно. Если это не критично, мы будем посылать сообщения об опечатках или обновленную версию читателям как можно скорее и без затрат.
Почему Двойное мороженное из Django?
Как и большинство людей, мы, авторы этой книги, любим мороженое. Каждым субботним вечером мы забываем о правильном питании и балуем себя мороженым. Никому не говорите, но иногда это случается не в субботние вечера
Нам нравится пробовать новые вкусы и сравнивать их с нашими любимыми. Отслеживание этого вкусового прогресса и, возможно, создание клуба вокруг него, является отличной метафорой проекта Django.
Когда нам действительно нравится вкус, это вызывает улыбку на лице, как когда мы находим большой лакомые куски кода или рекомендаций в технической книге. Одной из задач этой книги - написать такую техническую книгу, которая заставит улыбнуться читателя, словно он ест мороженное.
Круче всего, что используя аналогию c мороженным, это позволило нам прийти к еще более ярким примерам кода. Мы получили много удовольствия, работая над книгой. А если вы увидите, что мы переусердствовали с мороженым и здесь и там, пожалуйста, прости нас.
Перед тем, как начать
Если вы новичок в Django, эта книга будет полезна, но и большая часть будет сложной для вас. Для использования этой книги в полной мере, вы должны иметь представление о языке программирования Python и, как минимум, пройти через 5 стр. Django учебника: https://docs.djangoproject.com/en/1.5/intro/tutorial01/.
Опыт работы с объектно-ориентированное программирование тоже пригодится.
Книга предназначена для Django 1.5 и Python 2.7.x
Также эта книга должна быть актуально для Django 1.4 версии, и в меньшей степени для Django 1.3, и так далее. Хотя мы не даем никаких обещаний в отношении функциональной совместимости, но по крайней мере, общие подходы из примеров этой книги подойдут для каждой версии Django выше 1.0.
Что касается версии Python, эта книга опирается на Python 2.7.x. Мы надеемся выпустить обновленную редакцию еще раз, как только Django сообщество начинает двигаться в сторону Python 3.3 (или выше).
Ничто в этой книге, включая нашу практику, примеры кода и библиотек не относятся к Google App Engine (GAE). Если вы пытаетесь использовать эту книгу как справочник для разработки в GAE, вы, возможно, столкнетесь с проблемами.
Каждая глава не связанна с другими
В отличие от учебников и практичных книг, где каждая глава основывается на предыдущей главе проекта, мы написали эту книгу таким образом, что каждая глава намеренно стоит особняком.
Мы сделали это для того, чтобы было просто открыть главу, посвященную конкретной теме при необходимости, когда вы работаете над проектом.
Примеры, приведенные в каждой главе, являются полностью независимыми. Они не должны быть объединены в один проект. Считаются полезными изолированные фрагменты, которые иллюстрируют и помогают при различных сценариях написания кода.
Условные обозначения, используемые в этой книге.
Блоки кода, как в следующий, используются на протяжении всей книги:
Exemple 0.1
class Scoop(object):
def __init__(self):
self._is_yummy = True
Чтобы сохранить компактность этих фрагментов, мы иногда нарушают соглашение PEP8 о комментариях и межстрочный интервал.
Специальные “НЕ ДЕЛАЙ ТАК!” блоки кода, как указывают следующие примеры плохой код, который вы должны избегать:
Bad Exemple 0.1
# DON'T DO THIS!
from rotten_ice_cream import something_bad
Мы будем использовать следующие условные обозначения на протяжении всей книги:
Моноширинный шрифт для фрагмента кода или команд.
<i>Курсив</i< для названия файлов.
<b>Полужирным шрифтом</b>, если вводить новый термин или важное слово.
Блок, содержащий заметки, предупреждения, советы и небольшие анекдоты, которые тоже содержатся в этой книге
СОВЕТ: То, Что Вы Должны Знать
В блоке советов находятся полезные советы
ВНИМАНИЕ: Какие-то опасные подводные камни
СОВЕТ О ПАКЕТАХ: Некоторые Полезные Рекоомендации о Пакетах Django
Указывает заметки о полезных сторонних пакетах, относящиеся к текущей главе, и общие примечания об использовании различных Django пакетов.
Мы предоставляем полный список пакетов, рекомендуемый на протяжении всей книги в приложении A: Пакеты,упомянутых в этой книге.
Блоки предупреждений, поможет вам избежать типичных ошибок и подводных камней.
#Тут не возможно отредактировать это таблицей, поэтому не знаю что #делать. даже не буду редактировать написанное.
Мы также использование таблиц для обобщения информации в удобной, лаконичным образом:
Даниэль Гринфельд Одри Рой
Можно кормить кокосовое мороженое Нет да
Любимых вкусов мороженого Рождения Кекс, Экстремальных Лося Треки,
момент и что-нибудь с Шоколадом
арахисовое масло
Авторы " Мороженое Предпочтения
Основные Понятия
Когда мы создаем проекты на Django, мы придерживаемся следующей позиции:
Keep It Simple, Stupid (KISS)/(не усложняй, тупица)
Келли Джонсон, один из самых известных и результативных конструкторов самолетов в истории авиации, сказал это примерно 50 лет назад. Столетиями ранее, Леонардо да Винчи имел в виду то же самое, когда он сказал : “Простота-это предел совершенства.”
При построении программных проектов, каждый кусок ненужной сложности затрудняет процесс добавления новых функций и сохранения старых. Пробуйте найти самое простое решение, но позаботьтесь о том, чтобы не осуществлять чрезмерно простых решений, в результате неверные предположений.
Толстые Модели, Вспомогательные Модули, Тонкие Отображение, Тупые Шаблоны.
Когда решаете куда вставить кусок кода, мы следуем подходу "Толстые Модели, Вспомогательные Модули, Тонкие Отображение, Тупые Шаблоны."
Мы рекомендуем, чтобы ваши ошибки были в чем угодно, но только не в представлениях и шаблонах. Результаты радуют. Код становится более ясной, самодокументируемый, менее дублирующийся, и позволяет использовать его в разных проектах.
Что касается шаблонных тегов и фильтров, они должны содержать так мало логики как только возможно. Мы рассмотрим это более подробно в главе 13, "Шаблоные Теги и Фильтры’.
Стандартное начало с Django
Прежде чем мы рассмотрим альтернативы для таких основных Django компонентов, как система шаблоны, различные ORM, или нереляционные базы данные, мы сначала попробуем писать с помощью Django, используя стандартные компоненты. Если мы сталкиваемся с препятствиями, мы исследуем все возможности, прежде чем менять компоненты ядра Django.
См. главу 14, ‘Компромиссы замены компонентов ядра" для более подробной информации.
Стоя на плечах гигантов
Хотя мы берем всю ответственность за нашу работу, мы не смеем утверждать, что практики, описанные в книге наши собственные.
Без всех талантливых, творческих и щедрых разработчиков, которые создают Django на Python, и лидеров open-source сообщества, эта книга не могла бы существовать. Мы очень признательны людям, которые выступали в роли наших наставников и источников информации, и мы сделали все возможное, чтобы передать ее вам. (ТУТ Я НЕ ПОНЯЛ ВООБЩЕ)
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется
Переведено на Нотабеноиде
http://notabenoid.org/book/41430/157400
Переводчики: lirikne
Настройки
Готово:
