Выкладываем основную часть стандартов кодирования, которые выработала наша команда на ретроспективах.
База данных
Именование полей
для полей с датами используем окончание _at, например: last_checked_at
для логических полей (boolean: true/false) исползуем приставку is_, например is_active
при использовании составных имен в начале указываем «главную сущность», затем ее характеристику. По сути аналогичное правило применяется и для названия переменных, классов, файлов и т.п. Такое правило упрощает читабельность и сортировку. Т.к. схожие сущности группируются вместе
Жил себе жил и тут вот резко захотелось прикрутить такую модно-прогрессивную штуку к нам в проект, как Autocomplete. И все бы хорошо, да вот есть у нас под строкой ввода поискослов два волшебных радиобатона. А переключают эти радиобатоны разные типы поиска. То-есть нажал на один, вводишь слово – выводится список слов выбранных с помощью одного скрипта, нажал другой и, о чудо, запрос убежал умчался к другому скрипту. Волшебство, магия и страшное колдунство, а делать-то надо, иначе не интересно жить:) (далее…)
Функциональная спецификация описывает, как в целом будет работать продукт с точки зрения пользователя. Не имеет значения, каким способом штуковина сделана. Она говорит об особенностях. Она определяет экраны, меню и т.д.
Техническая спецификация описывает внутреннее исполнение программы. Она говорит о структурах данных, моделях реляционной базы данных, выборе языков программирования и инструментариев, алгоритмах и пр.
Прежде всего, отказ от написания спецификаций – это ваш самый большой ненужный риск при разработке программного продукта. Это так же глупо, как намерение перейти пустыню Мохаве, взяв с собой в рюкзаке только постельное белье, и в надежде импровизировать по пути.
Наиболее важная функция спецификации –проектирование программы (design the program). Даже если вы работаете один, и пишете спецификацию исключительно для себя, процесс ее написания – описание того, как работает программа до мельчайших подробностей – заставит вас непосредственно проектировать программу.
Иногда DQL подкидывает замечательные сюрпризы в генерируемых SQL запросах. В такие моменты начинаешь жалеть, что не прочитал доки от корки до корки)) (далее…)
Вопрос на который я наткнулся в почтовой рассылке предоставил отличный случай для демонстрации гибкости маршрутизации в symfony 1.2
Иверт Хармлинг (Evert Harmeling) спросил следующее:
«Как я могу направить sub1.domain.com/test на роут отличный от sub2.domain.com/test в пределах одного приложения (application)?»
Это не поддерживается прямо ядром симфонии, но функциональность компонента маршрутизации может быть легко расширена до необходимой Иверту. (далее…)
Регистрируясь в нашей системе пользователь должен подтвердить свой email. Как только пользователь подтверждает свой email его с чистой совестью можно добавить в группу «client» и разрешить использовать все возможности нашей системы не требуя перелогиниться.
И вот вчера, решая эту простую задачу я столкнулся с очень любопытным явлением, о котором я бы хотел рассказать.
Обыграли с помощью Gource парочку своих репозиториев. Как уже упоминалось в прошлой статье, Gource – программа для визуализации активности (коммитов) репозитория. Она строит анимированное дерево по структуре репозитория, с корневой директорией проекта в качестве центра. Директории отбражаются как ветки, а файлы проекта – как листья дерева. Разработчики очень похожи на пчел, которые летают и опыляют дерево…
Gource хорошо показывает степень совместного владения кода.