Дискуссия: Расширения и документация yii

Уже исправленные репорты или принятые предложения
snowflake
Сообщения: 24
Зарегистрирован: 2010.05.14, 12:15

Дискуссия: Расширения и документация yii

Сообщение snowflake »

Доброго времени суток, уважаемое русскоязычное сообщество yii.
Мне бы хотелось высказать свои соображения по поводу расширений yii, которые, как мне кажется, могут перейти в дискуссию, результатом которой возможно станет некое письмо разработчикам yii от сообщества с конструктивными идеями/предложениями по поводу расширений yii.

Предложение в качестве предыстории: к yii я начал присматриваться давно, но так как большинство рабочих проектов было на Codeigniter/Kohana или на собственном наборе классов, то долго откладывал переход на yii, сейчас подвернулась возможность и решил новый проект писать на yii.

Соображения:
1. Я давно осознал что изобретать велосипед часто очень дорого и не приводит ни к чему хорошему, по этому стараюсь использовать максимум готовых расширений и библиотек (иногда модифицируя их под свои потребности) по этому, в первую очередь после webapp'а я полез смотреть что уже есть написано и был немного удивлен, когда обнаружил несколько "одинаковых" расширений для юзеров (пользователи, роли, сообщение и т.д.) в разделе расширений на официальном сайте yii. При этом кроме короткого общего описания (которое, иногда, всего перечень реализованного функционала, при этом не совсем понятно что именно реализовано) ничего нет. Пришлось качать все и смотреть так сказать в корень - в код. В итоге на подбор оптимального на мой взгляд расширения (которое при этом мне ещё пришлось порядком дописать, так как с заявленного работало далеко не все) я потратил часов 8 - а это рабочий день, стоит конечно учесть что я только начинал что то делать на yii и часто обращался к документации (описанию классов фреймворка и туториалу по созданию блога).

2. Дальше вроде все пошло нормально, пока мне не понадобилось подключить визивиг, на этом форуме я нашел решение (решение от Sam Dark'a c соответствующего раздела) и уже почти начал его забрасывать в проект, но решил посмотреть, а что есть ещё. И что же я обнаружил - снова около 5 решений. Решил посмотреть что и как - снова рабочий день пропал.

Итог 1 и 2 соображений:
Я не описал какое решение что с себя представляет и не хочу этого делать сейчас, но скажу одно - ни одно среди них не устроило меня на 100% (имею в виду пользователей) и почти все они обладали почти одинаковым функционалом (плюс-минус) и почти во всех есть ошибки и недоработки.
Возникает вопрос зачем плодить "официальные" расширения которые реально не помогают разработчику? Это мне напомнило ситуацию с CodeIgniter'ом у которого стороннего кода много, но он валяется как свалка - соответственно часто ценности от него почти ноль.
Конечно вы можете сказать свобода выбора - есть много решений и выбирай среди них то что тебе наиболее подходит, но вы ещё раз учтите то что я написал выше.

3. Чего очень сильно не хватает в документации - примеров использования. Пока их нет документация помогает поскольку-постольку. Я считаю что документация для того что бы она была максимально полезной разработчику должна строиться по принципу документации самого PHP - описание класса, параметры, методы, ПРИМЕРЫ использования, комментарии.

Я бы хотел услышать ваши соображения по этим двум вопросам, думаю это многим будет интересно. Спасибо тем кто дочитал :) и огромное спасибо тем кто все же напишет свои соображения.
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Дискуссия: Расширения и документация yii

Сообщение Psih »

По поводу примеров 100% в точку. Я вот с Yii четвёртый день и я парюсь с вроде бы простейшими задачами, которые просто не получается делать, т.к. документация не даёт чётких ответов. Вот протейшая задача: вывести с грид данные из связанной таблицы, и сделать фильтрование данных по связанной таблице тоже. С точки зрения SQL проще парёной репы: LEFT JOIN и WHERE joined_table.field = 'blabla'. однако пошел третий день и я не могу сделать это. Даже тему создал, пока ответа так и не получил.

С расширениями тоже согласен на все 100%. Одних тока расширений для RBAC куча, пришлось просматривать несколько. Но я брал только те, у которых рейтинг высокий. В итоге взял SRBAC - работает вроде хорошо, но интерфейс...

Я вообще считаю что у фреймворков должны быть свой набор компонент, которые сабмитят пользователи, и которые сообщество дорабатывает и переделывает, вместо написания ещё 30 варианций на тему. Можно иметь инкубатор какой-то, куда сабмитят изначально, а удачные потом переезжают в официально рекомендуемые и ими уже серьёзно занимаются в плане доработок, фокусируясь на одном расширении вместо 30 как щас.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение samdark »

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

Более-менее структурировано и без дублей сейчас в YiiExt: http://code.google.com/p/yiiext/

Описание классов замечательное: http://www.yiiframework.com/doc/api/ (в том числе там есть и примеры, хотя да… не ко всему). Также недавно стартовал http://code.google.com/p/yiiplayground/. Возможно, когда-нибудь он будет включён в число официальных проектов.
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение slavcodev »

Одна из самых верных мыслей это "ни одно среди них не устроило меня на 100%". У каждого свои задачи и свои решения их. И все что ты нашел это не официальные расширения. Из официального это набор компонентов zii. Есть еще YiiExt набор начатый нашим сообществом, влиться может каждый, дописывайте, предлагайте. Через некоторое время надеюсь соберется приличный набор компонентов.

Про примеры, в документации их нет. Но есть демо-приложения.
Жду Yii 3!
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Дискуссия: Расширения и документация yii

Сообщение Psih »

Я считаю что одно дело это "ни одно из пользовательских расширений меня не устроило" не равно "стандартное расширение фреймворка меня не устроило". Во первых, стандатрные расширения как правило дорабатываются до более универсального состояния и в последствии нормально поддерживаются в отличии от пользовательских. А это просто гиганская разница. Во вторых если уж расширение официально, то и написано оно по канонам. А учитывая структуру Yii то унаследовать части расширения и переопределить методы и добавить свой функционал легко и просто. Зато не нужно писать своё расширение, которое будет непонятно каким и ещё кучу времени займёт.

А вообще я бы лично помог с документацией. Т.к. я ещё и преподаю PHP программирование, то есть в планах студентам давать Yii в качестве фреймворка. Почему? Текущая моя группа делала по заданию обзор фреймворков и CMS (Drupal, Wordpress, Kohana, Zend Framework, Yii) - в итоге они все решили что они хотя yii и они свои проекты для защиты все делают на Yii. Поетому у меня есть ещё и шкурный интерес сильно улучшить документацию, поскольку сейчас даже мне, опытному PHP'нику и человеку, писавшиму свои Frameworks достаточно тяжко изучать Yii.
snowflake
Сообщения: 24
Зарегистрирован: 2010.05.14, 12:15

Re: Дискуссия: Расширения и документация yii

Сообщение snowflake »

Sam Dark писал(а):Расширения на официальном сайте не официальные и разработчиками фреймворка не контролируются. Сам считаю, что это не очень хорошо, но пока организацией заняться не выходит. Можно создать новую тему, в которой собрать тезисы по организации расширений. Это сильно поможет.
То что расширения не официальные я понимаю и знаю (по этому я слово официальные вроде как везде брал в кавычки в контексте расширений), а вот то что они разработчиками совсем не контролируются - это, я считаю, не верно в корне. Если ими вообще не заниматься - их не нужно размещать на официальном сайте, так как после беглого просмотра расширений - появляется мысль - может и в фреймворке сколько "мусора"? Понятное дело что их не нужно писать разработчика, но формирование правил, а именно строгое следование правилам оформления кода, оформление минимальной документации (в каком-то конкретном формате, который должен быть утвержден разработчиками), правила рейтинговария и.т.д
Насчёт темы по тезисам, постараюсь на днях написать свои соображения, а идея правильная, если будет хотя бы 2-3 человека, сформировать тезисы, потом обсудить это все (можно сделать вообще скайп-конференцию) и подкорректировать. Так можно сформировать действительно хороший, полезный документ. Правда, тут нужно определиться с целью, если как цель поставить передачу его разработчикам - то нужно его делать на английском языке.
Sam Dark писал(а):Более-менее структурировано и без дублей сейчас в YiiExt: http://code.google.com/p/yiiext/
Я их видел, но там не было того что мне сейчас нужно было, а на сайте в расширениях было - вот и началась история моего первого поста :).
Sam Dark писал(а):Описание классов замечательное: http://www.yiiframework.com/doc/api/ (в том числе там есть и примеры, хотя да… не ко всему). Также недавно стартовал http://code.google.com/p/yiiplayground/. Возможно, когда-нибудь он будет включён в число официальных проектов.
Вот смотри http://www.yiiframework.com/doc/api/CWidget описание виджета, у меня сразу вопрос как его подключить? Где пример? Я знаю что можно посмотреть там-то и там-то, но он должен быть здесь. Понимаешь о чем я говорю? Должно быть не только описание класса (которое у них действительно замечательное), но и пример использования. По yiiplayground - это хорошо, но это опять же зрение в корень (для того что бы понять как использовать CWidget нужно его найти в коде и посмотреть как его используют.
snowflake
Сообщения: 24
Зарегистрирован: 2010.05.14, 12:15

Re: Дискуссия: Расширения и документация yii

Сообщение snowflake »

Psih писал(а):С расширениями тоже согласен на все 100%. Одних тока расширений для RBAC куча, пришлось просматривать несколько. Но я брал только те, у которых рейтинг высокий. В итоге взял SRBAC - работает вроде хорошо, но интерфейс...
С рейтингом согласен, но зачастую есть несколько расширений с почти одинаковым рейтингом. Плюс стоит отметить что рейтинг это тоже дело хитрое, иногда новое расширение с ещё нулевым рейтингом на порядок лучше старичков. Думаю, тут очень показательным была бы какая то экспертная оценка расширения. Тогда и разработчику расширения понятно куда лучше двигаться и что переписать/дописать и лично для меня такая оценка была б на порядок важнее чем рейтинг, который накликали друзья разработчика расширения.
Psih писал(а):Я вообще считаю что у фреймворков должны быть свой набор компонент, которые сабмитят пользователи, и которые сообщество дорабатывает и переделывает, вместо написания ещё 30 варианций на тему. Можно иметь инкубатор какой-то, куда сабмитят изначально, а удачные потом переезжают в официально рекомендуемые и ими уже серьёзно занимаются в плане доработок, фокусируясь на одном расширении вместо 30 как щас.
Это очень хорошо, только для этого нужно так сказать официальное community, то есть люди которые будут заниматься исключительно расширениями и как раз и будут переносить и формировать свои экспертные оценки дополнений.
Последний раз редактировалось snowflake 2010.05.14, 15:17, всего редактировалось 1 раз.
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Дискуссия: Расширения и документация yii

Сообщение Psih »

snowflake писал(а): С рейтингом согласен, но зачастую ....
Как говорится без труда не вытащишь и рыбки из пруда. Если будет плотный контакт с разработчиками и желание двигать что-то с мёртвой точки, то лично я могу предложить если не посильную помощь в кодинге, то покрайней мере организационные способности и пиар, т.к. я с коллегой по сути основали у себя в стране школу по WEB технологиям и щас мы активно идём в гору: участие в выставках, организация конференций (http://webstandardsdays.ru/) и.т.д. Ну и к тому же мне действительно нравится то, как Yii сделан и я планирую наладить с ним долговременные супружеские отношения :D
snowflake
Сообщения: 24
Зарегистрирован: 2010.05.14, 12:15

Re: Дискуссия: Расширения и документация yii

Сообщение snowflake »

mc-bear писал(а):Одна из самых верных мыслей это "ни одно среди них не устроило меня на 100%". У каждого свои задачи и свои решения их. И все что ты нашел это не официальные расширения. Из официального это набор компонентов zii. Есть еще YiiExt набор начатый нашим сообществом, влиться может каждый, дописывайте, предлагайте. Через некоторое время надеюсь соберется приличный набор компонентов.

Про примеры, в документации их нет. Но есть демо-приложения.
Я наверное немного некорректно сказал насчёт того что меня расширения не устроили на 100%.

Это и так понятно, я не против дописать нужный мне код, но они не реализовывали описанные возможности на 100% или имели порядочно ошибок или лишнего кода (да-да, кода который вообще никогда не выполнится :). Вот это я имел в виду под тем что они меня не устроили.

Например, расширение по пользователям, которое я в итоге использовал, имеет функционал личных сообщений, но меню (пимпочки, кнопочки, ссылочки или ещё что то) для использования их в приложении оно не генерило. Я считаю что это не недоработка, причём существенная. Опять же заявленный конфигуратор - вроде работал, но ничего не конфигурировал, только создал таблицы в БД и все, при этом само расширение использовало другие таблицы, так как они там были в коде прописаны. Что это тогда за конфигуратор? Я наверное больше времени потратил на исправление того что он наконфигурировал, чем если бы сам сначала все вручную сделал. Вот именно это меня не устраивало на 100%.

Про демо-приложение - факт, оно есть, но честно оно очень скудное. Как на меня оно не показывает особых преимуществ и/или фишек yii. То же можно сделать, например, на CodeIgniter и приблизительно за такое же время (+ где то часа 2-3 на выбор расширения для генерации кода, у CodeIgniter базово нет утилиты для генерации кода). В этом плане возможно более показательно то что предложил Sam Dark http://code.google.com/p/yiiplayground/, но я ещё его толком не осмотрел, на выходных обязательно.
snowflake
Сообщения: 24
Зарегистрирован: 2010.05.14, 12:15

Re: Дискуссия: Расширения и документация yii

Сообщение snowflake »

Psih писал(а):Я считаю что одно дело это "ни одно из пользовательских расширений меня не устроило" не равно "стандартное расширение фреймворка меня не устроило". Во первых, стандатрные расширения как правило дорабатываются до более универсального состояния и в последствии нормально поддерживаются в отличии от пользовательских. А это просто гиганская разница. Во вторых если уж расширение официально, то и написано оно по канонам. А учитывая структуру Yii то унаследовать части расширения и переопределить методы и добавить свой функционал легко и просто. Зато не нужно писать своё расширение, которое будет непонятно каким и ещё кучу времени займёт.
Как бы и разница что сейчас все расширения пользовательские и я утверждаю что если не начать заниматься их стандартизацией то скоро (со временем роста популярности Yii) они станут горой мусора и все. И мне интересно было как к этому отнесутся люди читающие этот форум, какое их мнение по этому вопросу.
Ещё раз вопрос: Как вы считаете нужно ли стандартизировать расширения yii и если да то кто этим должен заниматся?
Psih писал(а):А вообще я бы лично помог с документацией. Т.к. я ещё и преподаю PHP программирование, то есть в планах студентам давать Yii в качестве фреймворка. Почему? Текущая моя группа делала по заданию обзор фреймворков и CMS (Drupal, Wordpress, Kohana, Zend Framework, Yii) - в итоге они все решили что они хотя yii и они свои проекты для защиты все делают на Yii. Поетому у меня есть ещё и шкурный интерес сильно улучшить документацию, поскольку сейчас даже мне, опытному PHP'нику и человеку, писавшиму свои Frameworks достаточно тяжко изучать Yii.
Сделаем русскую документацию лучше официальной!? К сожалению, у меня со временем не так хорошо (вот я уже просидел на этой ветке свой обед, но я ж начал это дело), но с примерами - я их просто буду брать с реальной жизни :).

Вообще, у меня появилась только что такая мысль, что если б до официального описания классов добавить такую же штуку (можно вообще на другом домене) где для каждого класса просто приводить несколько примеров его использования - вопрос по документации закрылся полностью и они могли бы жить отдельно друг от друга. Как идея?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение samdark »

Psih
А вообще я бы лично помог с документацией.
Отдельные предложения, дополнения и т.д. на русском или английском можно писать в отдельный документационный трекер (в основном может затеряться): http://code.google.com/p/yiidoc/issues/list То, что в официальную не войдёт — оформим в рецепты. Также можно обращаться и ко мне напрямую.
Если будет плотный контакт с разработчиками и желание двигать что-то с мёртвой точки, то лично я могу предложить если не посильную помощь в кодинге, то покрайней мере организационные способности и пиар
К контакту я готов, желание есть.

snowflake
Тезисы — штука очень важная. На английском писать не стоит т.к. обсуждать будем на русском. Потом, как будут в более-менее нормальном состоянии, я переведу.

По поводу CWidget запиши в тикет, я добавлю (точнее продублирую из CController) позже пример: http://code.google.com/p/yiidoc/issues/list.
Как бы и разница что сейчас все расширения пользовательские и я утверждаю что если не начать заниматься их стандартизацией то скоро (со временем роста популярности Yii) они станут горой мусора и все.
Согласен. Решение вижу в «одобрении» хороших расширений разработчиками ядра.
Как вы считаете нужно ли стандартизировать расширения yii и если да то кто этим должен заниматся?
Все, кто хочет в отдельной теме. Для YiiExt, например, начало положено: http://code.google.com/p/yiiext/w/list. Вообще сейчас у разработчиков нет стимула стандартизировать свои расширения. Официальное «одобрение» при условии соблюдения стандарта, думаю, ситуацию исправит.
Сделаем русскую документацию лучше официальной!?
Русская настолько же официальная, насколько английская. Ну, может быть за исключеним рецептов.
что если б до официального описания классов добавить такую же штуку (можно вообще на другом домене) где для каждого класса просто приводить несколько примеров его использования - вопрос по документации закрылся полностью и они могли бы жить отдельно друг от друга. Как идея?
Лучше сразу в API включить примеры. Всем будет лучше.
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Дискуссия: Расширения и документация yii

Сообщение Psih »

Sam Dark писал(а):Psih
А вообще я бы лично помог с документацией.
Отдельные предложения, дополнения и т.д. на русском или английском можно писать в отдельный документационный трекер (в основном может затеряться): http://code.google.com/p/yiidoc/issues/list То, что в официальную не войдёт — оформим в рецепты. Также можно обращаться и ко мне напрямую.
Если будет плотный контакт с разработчиками и желание двигать что-то с мёртвой точки, то лично я могу предложить если не посильную помощь в кодинге, то покрайней мере организационные способности и пиар
К контакту я готов, желание есть.
Skype, jabber?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение samdark »

Jabber. sam@rmcreative.ru
Если групповой чат — Skype.
Psih
Сообщения: 31
Зарегистрирован: 2010.05.12, 12:20

Re: Дискуссия: Расширения и документация yii

Сообщение Psih »

Sam Dark писал(а):Jabber. sam@rmcreative.ru
Если групповой чат — Skype.
Отписал в джаббер :) Скайп правда я больше использую :)
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение samdark »

В Jabber получил только авторизацию.
Аватара пользователя
Одиночка Айс
Сообщения: 267
Зарегистрирован: 2010.02.05, 10:26
Откуда: Алма-Ата, Казахстан
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение Одиночка Айс »

Хм, сколько людей - столько и мнений... Проблема в том, что все мы хотим понять КАК это работает и написать СВОЙ код (универсальный и все прочее). В этом вопросе можно придерживаться только общих правил, которые и даны на сайте. У одних будет работать часть кода, у других нет (у меня так вообще, с матами приходится разбираться почти в каждом вопросе), поэтому УНИВЕРСАЛЬНЫХ решений нет. Можно лишь предложить, чтобы:

1. Ставилась конкретная задача;
2. Давалось более-менее официальное решение;
3. Каждый мог бы привести свое решение, в случае, если "что-то не так как у всех";

Вообще же считаю, что нужно перевести API и не отмахиваться от пользователей, у которых ну реально что-то не получается (типа, "у всех все работает, иди проверяй свой говнокод").

Итог следующий - задача->необходимые навыки/"инструментарий"->несколько решений->рекомендации->вывод. Ну, как-то так :)
Ни любви, ни тоски, ни жалости...
Ekstazi
Сообщения: 1428
Зарегистрирован: 2009.08.20, 22:54
Откуда: Молдова, Бельцы
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение Ekstazi »

Да я думаю можно все проще организовать, на странице описания API, под описанием класса сделать возможность обсуждения, чтоб пользователи смогли давать свои примеры кода. Примерно как это сделано на оф. сайте php.(идею еще надо обмозговать, нужно ли выносить каждый метод класса на отдельную страницу или нет).

Помимо прочего ввести для всех расширений обязательное наличие phpdoc комментариев и phpunit-тестов(в этом ничего сложного нет на самом деле). + обязательно следование zend coding standarts.
Как-то так думаю.
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение samdark »

Пока решение видится таким:
Надо отделить текущие расширения и официально одобренные.
Текущие оставить неконтролируемой свалкой, для официальных ввести процесс, похожий на proposals ZF: т.е. описание задачи, API, тесты, стандарты
В официальные не допускать более одного решения, выполняющего сходные задачи.

Одиночка Айс
Задачи и сейчас ставятся разработчиками расширений вполне конкретные. Просто нет периода инкубации: они не описываются и не обсуждаются.

Я только за перевод API, но сам делать это не могу: слишком большой объём работы, код постоянно меняется. Попытки уже были: http://code.google.com/p/yiiru/

Ekstazi
Как быть с изменениями API? Примеры в комментариях будут устаревать.
Аватара пользователя
Одиночка Айс
Сообщения: 267
Зарегистрирован: 2010.02.05, 10:26
Откуда: Алма-Ата, Казахстан
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение Одиночка Айс »

Sam, а зачем нам гуглекод? Неужели не можем простенький сайт написать с переводом API? Например yiiapi.ru или .kz )))
Ни любви, ни тоски, ни жалости...
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Дискуссия: Расширения и документация yii

Сообщение samdark »

API постоянно меняется, поэтому перевод постоянно устаревает. Чтобы это отслеживать и работать над переводом командой нужен как минимум SVN. То, что сейчас в http://code.google.com/p/yiiru/ уже не актуально, хотя Алексей вложил в перевод довольно много сил и времени.
Ответить