|
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
|
||||||
Оценить написание кода24.07.2011, 14:26. Показов 1932. Ответов 13
Метки нет (Все метки)
Пожалуйста оцените кусочек кода, что и как не стоит писать и т.д. И как лучше.
0
|
||||||
| 24.07.2011, 14:26 | |
|
Ответы с готовыми решениями:
13
Оценить качество кода написанного фреймворка Где можно оценить качество своего кода? Оценить качество кода (читабельность и эффективность) |
|
Комбинатор
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
|
|
| 25.07.2011, 00:00 | |
|
Хорошо, попробую.
Сразу говорю код не нравится. 1. Не люблю когда в языках из юникс эгиды используют стилистику майкрософт.... зачем вы переносите открывающую фигурную скобочку на одну строку ниже, названия функции/метода?... Обычно я бы даже читать не стал такой код уже только из-за этого... если конечно это не связанно с работой... 2. если вы планируете использовать метод только внутри класса или его потомков, то не стоит определять его как public. 3. блок if else, меня учили, что при любых обстоятельствах, даже если после if с условием идет одна строчка кода, все равно брать ее в фигурные скобки(подобно тому как я советую в п.1). Сам же я часто дописываю еще и else... даже если там ничего нету... это помогает/окупается мне потом, при редактировании кода. 4. где свойства класса? 5. где контруктор класса? 6. в PDO::query не нужно печатать строку sql запроса, для этого можно вывести отдельную переменную заполнив ее аккуратно(построчно с $sql .= 'text'; ) 7. Так же не стоит беря строку запроса в двойные кавычки " соединять точкой с переменными... в двойные кавычках переменные видны и так. Я же советую одинарные кавычки. 8. инициализация массивов мена в этом коде тоже пугает... зачем пропускать целую строку... ст.69 9. функции/методы должны что-то возвращать... очень желательно... у меня они возвращают обычно булево значение... редко что-то иначе... для этого есть свойства... 10. ст.14, я понимаю, что минимализм так и плещет, но плохо читаемо... ставьте блоки фигурных скобок(п.1) 11. Используйте один главный класс для коннекта к БД, который наследуется от PDO. ЗАтем от него наследуйте другие классы. Можно создавать классы по схемам СуБД postgresql, а потом наследовать от них классы для таблиц в этих схемах. Обычно для приложений построенных по технологии ajax я делаю именно так. 12. Ну и как бонус, могу посоветовать в классах, к таблицам(одинаковые названия), создавать только 3-4 public метода, для select, insert, update, delete и можно еще alter, но я бы советовал его использовать в классах ближе к корню структуры ОПП иерархии... Я уже не использую PDO, не вижу смысла, если использовать на максимум postgresql то врядли можно будет легко перейти на другую СуБД.
0
|
|
| 25.07.2011, 00:01 | |
|
Не по теме: нужно удалить.. какой-то глюк что ле...
0
|
|
|
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 43
|
|
| 25.07.2011, 08:33 | |
|
1) Нету конструктора.
2) $this->lang['title']['view'] - вы не можете знать, есть ли в этом массиве такой ключ или нет. Либо используйте перед этим isset(), либо создавайте ещё один уровень абстракции для доступа к этому массиву. 3) new db; - используйте new db();. Этого можно не делать, но код выглядит более симпатичным, когда написан в одном стиле. Плюс в нормальном(начинайте ненавидеть) языке программирования тебе не дадут использовать new %CLASSNAME% без скобочек. 4) Зачем Вам целых 3 экземпляра класса db? Теперь общая стилистика кода, которая, как я считаю, полное говно: 1) Зачем было создавать _index? Зачем эта чёрточка в начале метода? Не обобщённо. Такие скобочки нужно делать(и делают) тогда, когда у метода или проперти должна быть какая нить отличительная черта(в венгерской нотации, например, так обозначают защищённые методы). Я знаю что в <5.3.5(или какая там?) метод, названный одинаково с классом - конструктор, но с этим можно что то поделать(обновить php, переименовать метод, класс) 2) Код слабо читабелен из-за отсутствия многих пробелов и наличия их в других не нужных местах. То же самое относиться и к переносам строки. 3) Дичайше страдает орфография. Вы хотя бы словарём пользуйтесь. Ну что за titl, concect, refrech? Убивать. @DenQ Не докапывайтесь до предпочтений к стилю кода. Более 50% Вашего сообщения - именно претензии к стилю, тема всё таки о ООП
0
|
|
|
Комбинатор
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
|
||
| 25.07.2011, 09:58 | ||
|
0
|
||
|
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
|
|||
| 25.07.2011, 10:43 [ТС] | |||
|
И что в нем такого плохого ? почему же не использовать его Добавлено через 43 секунды Добавлено через 9 минут 1) Нету конструктора. он не нужен 2) $this->lang['title']['view'] - вы не можете знать, есть ли в этом массиве такой ключ или нет. Либо используйте перед этим isset(), либо создавайте ещё один уровень абстракции для доступа к этому массиву. Я его описываю руками я знаю что он есть, проверять всегда это лишняя время да и бессмысленно если ты его описываешь вручную 3) new db; - используйте new db();. Этого можно не делать, но код выглядит более симпатичным, когда написан в одном стиле. Плюс в нормальном(начинайте ненавидеть) языке программирования тебе не дадут использовать new %CLASSNAME% без скобочек. учту спасибо 4) Зачем Вам целых 3 экземпляра класса db? Каждый метод вызывается отдельно, смотяр как вы обратиться по урлу Пример: site.ru/edit site.ru/delete Тут он обратиться оп методам delete and edit. Мне не зачем просто так соединяться с бд Теперь общая стилистика кода, которая, как я считаю, полное говно: 1) Зачем было создавать _index? Зачем эта чёрточка в начале метода? Не обобщённо. Такие скобочки нужно делать(и делают) тогда, когда у метода или проперти должна быть какая нить отличительная черта(в венгерской нотации, например, так обозначают защищённые методы). Я знаю что в <5.3.5(или какая там?) метод, названный одинаково с классом - конструктор, но с этим можно что то поделать(обновить php, переименовать метод, класс) Да эти методы которые подчернуты они выказываться самыми первыми, то метода вызванными через браузер по урлу. И к нем нельзя обратиться к методом которые начинаются с _ через браузер. 2) Код слабо читабелен из-за отсутствия многих пробелов и наличия их в других не нужных местах. То же самое относиться и к переносам строки. Можете пожалуйста показать хороший пример кода с расстановкой пробелов и т.д. на моем примере кода 3) Дичайше страдает орфография. Вы хотя бы словарём пользуйтесь. Ну что за titl, concect, refrech? Убивать. Да я незнаю англ, и поэтому такая извращенность =)
0
|
|||
|
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 43
|
||||||
| 25.07.2011, 11:25 | ||||||
Не нужны лишние переносы строки. Во всех местах должно быть либо if () либо if()
0
|
||||||
|
Комбинатор
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
|
||
| 25.07.2011, 11:41 | ||
|
EFEFEFEF, не понимаю я вас - что вам не нравится?
вы пришли сюда за советом, заранее дали понять людям что познания ваши желают лучшего... и теперь доказываете что вы во всем правы... даже в реально абсурдных местах... Я бы на вашем месте прислушался как минимум. Меня тоже когда-то как котенка тыкали в слабые места... да и сейчас бывает... не надо доказывать оправданность, своего кода, людям которые имеют больший опыт нежели у вас... Это как минимум неблагодарно с вашей стороны. Добавлено через 4 минуты Проверки это как минимум хороший тон, а польза от них может быть очень существенной...
1
|
||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 3
|
|
| 25.07.2011, 11:57 | |
|
0
|
|
|
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 43
|
|
| 25.07.2011, 12:41 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 3
|
|
| 25.07.2011, 12:48 | |
|
[QUOTE=Archon64;1865529]Кстати да, дичайше. Только не на синтаксис, а на стиль
[/QUOT
0
|
|
|
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
|
|||
| 25.07.2011, 18:39 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
5 / 5 / 0
Регистрация: 11.04.2011
Сообщений: 43
|
||
| 25.07.2011, 20:54 | ||
1
|
||
|
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
|
|
| 25.07.2011, 21:59 [ТС] | |
|
0
|
|
| 25.07.2011, 21:59 | |
|
Помогаю со студенческими работами здесь
14
Рекурсивный поворот строки, оценить корректность кода Написание кода Написание кода! написание кода Написание кода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|