Требования к разработке модели базы данных и оформлению кода
Модератор: immortal
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Требования к разработке модели базы данных и оформлению кода
Предлагаю к обсуждению документ в котором перечислены требования к оформлению кода, структуре каталогов и правилам создания модели базы данных. То есть это тот документ, который позволит повысить читаемость кода, а также навести порядок в коде и структуре каталогов проекта.
MajorDoMo style Guide
p.s. Документ выложил в виде pdf.
По итогам обсуждения и принятия данного документа как стандарта для нашего проекта, содержимое лучше выложить на гитхабе проекта с примерами правильного и неправильного оформления кода.
Каждую пятницу я буду перечитывать эту ветку форума и создавать пост с промежуточными итогами.
MajorDoMo style Guide
p.s. Документ выложил в виде pdf.
По итогам обсуждения и принятия данного документа как стандарта для нашего проекта, содержимое лучше выложить на гитхабе проекта с примерами правильного и неправильного оформления кода.
Каждую пятницу я буду перечитывать эту ветку форума и создавать пост с промежуточными итогами.
Последний раз редактировалось LutsenkoDenis Пт май 29, 2015 4:44 pm, всего редактировалось 2 раза.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Требования к разработке модели базы данных и оформлению
Отлично!!! Давно пора реализовывать.
Хотелось бы настоять на Tab = 4 пробела.
Или я невнимательно прочитал.
Ну и не критично но, перед "(" пробел не ставим? При использовании функций и всяких for...
Надо еще несколько раз перечитать.
Хотелось бы настоять на Tab = 4 пробела.
то есть в начале файла "<?php", а в конце не закрываем?3.Закрывающий тэг «?>» необходимо удалять из файлов содержащих только PHP
Или я невнимательно прочитал.
Ну и не критично но, перед "(" пробел не ставим? При использовании функций и всяких for...
Надо еще несколько раз перечитать.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
Завершающий тэг PHP ?> не обязателен и для улучшения совместимости с некоторыми системами может быть опущен.
Ну я поэтому и написал что подготовил документ для обсуждения, т.к. стиль кодирования у всех разный
Я использую 3 пробела, Вы используете 4, кто-то 2, а кому-то вообще без разницы сколько
.
Напишите почему хотите именно 4 а не 2 или 3.
При подведении промежуточных итогов, скажем через месяц. Посчитаем количество за то или иное кол-во символов и аргументацию за них. Ну и установим окончательное количество.
В моем случае, 4 слишком много, а 2 мало(при описании метода с параметрами начинающимися с новой строки(не на php) параметры сливаются с именем метода.).

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

Я использую 3 пробела, Вы используете 4, кто-то 2, а кому-то вообще без разницы сколько

Напишите почему хотите именно 4 а не 2 или 3.
При подведении промежуточных итогов, скажем через месяц. Посчитаем количество за то или иное кол-во символов и аргументацию за них. Ну и установим окончательное количество.
В моем случае, 4 слишком много, а 2 мало(при описании метода с параметрами начинающимися с новой строки(не на php) параметры сливаются с именем метода.).
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
Хороший документ. 
Лично для меня не очень освещен вопрос с расстановкой { и } в конструкциях if...else, switch...case, for, while и описании функций. Т.е. c с новой строки или нет, какие отступы опять же, и т.п.?
Я правильно понял, что эти требования распространяются именно на исходный код проекта (ядро) и его модули? А в методах, сценариях, домашних страницах, коде к элементам меню останется по-прежнему "кто во что горазд"?

Лично для меня не очень освещен вопрос с расстановкой { и } в конструкциях if...else, switch...case, for, while и описании функций. Т.е. c с новой строки или нет, какие отступы опять же, и т.п.?
Я правильно понял, что эти требования распространяются именно на исходный код проекта (ядро) и его модули? А в методах, сценариях, домашних страницах, коде к элементам меню останется по-прежнему "кто во что горазд"?

MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
MajorDoMo style Guide
Дописал про расстановку переносов и инструкции if-else и т.д.
Мне бы хотелось, чтобы эти требования распространялись на всё(на ядро, модули, сценарии с методами, базу данных и т.д.).
Но если с ядром можно сделать так: всё что попадает на github должно строго соответствовать.
То методы каждый пишет под себя и соответственно с ними получится всё равно "кто во что горазд". Единственное что будет некий "Документ", куда человек может посмотреть и привести свой метод к тому что описано в документе.
Дописал про расстановку переносов и инструкции if-else и т.д.
Мне бы хотелось, чтобы эти требования распространялись на всё(на ядро, модули, сценарии с методами, базу данных и т.д.).
Но если с ядром можно сделать так: всё что попадает на github должно строго соответствовать.
То методы каждый пишет под себя и соответственно с ними получится всё равно "кто во что горазд". Единственное что будет некий "Документ", куда человек может посмотреть и привести свой метод к тому что описано в документе.
- За это сообщение автора LutsenkoDenis поблагодарил:
- triada13 (Ср июн 03, 2015 7:55 pm)
- Рейтинг: 1.16%
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
MajorDoMo style Guide
Добавил про оформление SQL-запросов.
Добавил про оформление SQL-запросов.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
Еще, пожалуй, вопрос применения двойных и одинарных кавычек актуален. В тех же say(), getGlobal(), setGlobal() расброд и шатание. 

MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
У меня вопрос. Может перенести из PDF-ки в ВиКи?
А по самому документу...
Дело нужное, но кропотливое. И бестолковое.
Странно, что Сергей не отписался в теме.
Я ставлю два пробела. Все несогласные идут в бьютефайлер.
Есть места где необходимо использовать одинарные ковычки внутри двойных.
Многострочное форматирование SQL кода должно быть оправдано, если помещается в экран - лучше не бить.
и тд. и тп.
Самая большая ошибка документа - это требования, а должно называться рекомендации.
Каждый программист сообщества важен более чем код, который он пишет. Именно поэтому нельзя навязывать стиль программирования.
Более того - у многих вещей (маркет к примеру) есть авторы, и они в своем авторском праве писать как заблагорассудится.
Вместо рефакторинга предлагаю заняться написанием новых модулей для маркета (по темам - куча заказов).
Прошу прощения, если мое мнение не совпадает с мнением топикстартера
А по самому документу...
Дело нужное, но кропотливое. И бестолковое.
Странно, что Сергей не отписался в теме.
Я ставлю два пробела. Все несогласные идут в бьютефайлер.
Есть места где необходимо использовать одинарные ковычки внутри двойных.
Многострочное форматирование SQL кода должно быть оправдано, если помещается в экран - лучше не бить.
и тд. и тп.
Самая большая ошибка документа - это требования, а должно называться рекомендации.
Каждый программист сообщества важен более чем код, который он пишет. Именно поэтому нельзя навязывать стиль программирования.
Более того - у многих вещей (маркет к примеру) есть авторы, и они в своем авторском праве писать как заблагорассудится.
Вместо рефакторинга предлагаю заняться написанием новых модулей для маркета (по темам - куча заказов).
Прошу прощения, если мое мнение не совпадает с мнением топикстартера

- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
Я уже высказывался по похожему поводу, поэтому помалкиваюmsh555 писал(а):У меня вопрос. Может перенести из PDF-ки в ВиКи?
А по самому документу...
Дело нужное, но кропотливое. И бестолковое.
Странно, что Сергей не отписался в теме.
Я ставлю два пробела. Все несогласные идут в бьютефайлер.
[...]
Прошу прощения, если мое мнение не совпадает с мнением топикстартера

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: Требования к разработке модели базы данных и оформлению
MajorDoMo style Guide
Добавил про кавычки.
Как я писал в самом начале, я составляю документ с общими требованиями(рекомендациями) по написанию кода. То что я в документе написал - обсуждаемо, но скажем в течение месяца-двух. Далее должно быть принято как стандарт в нашем проекте. Естественно, со временем в него могут вносится какие-то изменения.
Также я писал, что каждую пятницу, я буду подводить краткие итоги по аргументированным мнениям/пожеланиям, тех чье мнение разошлось с тем что написано в документе. Например если брать отступы, то: 2 пробела - 2 человека, 3 пробела - 1 человек, 4 пробела - 1 человек. Т.е. пока два пробела побеждают.
Добавил про кавычки.
На текущий момент времени так лучше. После принятия документа, хотелось бы в вики сделать ссылку а всё содержимое документа на гитхаб как markdown документ. Например как тутmsh555 писал(а):У меня вопрос. Может перенести из PDF-ки в ВиКи?
На счёт бестолкового - зависит от того, как к этому процессу подойти.msh555 писал(а):Дело нужное, но кропотливое. И бестолковое.
Считаю что если не отписался, значит согласен. Но на сколько я помню он отписывался.msh555 писал(а):Странно, что Сергей не отписался в теме.
Если участники проекта пришли к тому, что в проекте нужно использовать восемь пробелов, вместо двух и отразили это решение в требованиях, то именно Вы идёте в бьютефайлер.msh555 писал(а):Я ставлю два пробела. Все несогласные идут в бьютефайлер.
На название документа я не претендую. Но оно более точно характеризует документ. Тем более что требования могут быть как жёсткие так и нет.msh555 писал(а):Самая большая ошибка документа - это требования, а должно называться рекомендации.
Отчасти согласен. Но каждый программист должен придерживаться общего стиля который принят в проекте и уважать других программистов участвующих в разработке.msh555 писал(а):Каждый программист сообщества важен более чем код, который он пишет.
Давайте не путать маркет и основную систему. На маркете распространяются приложения у которых действительно есть автор. В границах своего приложения, автор может делать что ему вздумается, если это не нарушает работу основной системы. В данном случае, речь не о маркете, а об основной системе, где подход "каждый пишет так как вздумается" не приемлем.msh555 писал(а):Более того - у многих вещей (маркет к примеру) есть авторы, и они в своем авторском праве писать как заблагорассудится..
Я не предлагаю всё сразу бросить и заняться рефакторингом, но к сожалению в коде системы столько всего намешано, что без рефакторинга уже никак. А данный документ, как раз позволит выдержать в едином стиле как новый код, так и отрефакторенный. В результате это повысит как качество кода так и легкость его чтения.msh555 писал(а):Вместо рефакторинга предлагаю заняться написанием новых модулей для маркета (по темам - куча заказов)
Как я писал в самом начале, я составляю документ с общими требованиями(рекомендациями) по написанию кода. То что я в документе написал - обсуждаемо, но скажем в течение месяца-двух. Далее должно быть принято как стандарт в нашем проекте. Естественно, со временем в него могут вносится какие-то изменения.
Также я писал, что каждую пятницу, я буду подводить краткие итоги по аргументированным мнениям/пожеланиям, тех чье мнение разошлось с тем что написано в документе. Например если брать отступы, то: 2 пробела - 2 человека, 3 пробела - 1 человек, 4 пробела - 1 человек. Т.е. пока два пробела побеждают.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch