Переписать полностью CMS для вы выхода на серезный уровень (Битрикс 2.0)

Рейтинг: -146.0268  
Отложено
Предложил Пользователь 125855 13.04.2012 14:43:20

Переписать полностью CMS для вы выхода на серезный уровень (Битрикс 2.0)

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

1. Разработка системы зашла в тупик
2. Очень нелогичные решения банальных задач, вводящие в заблуждение разработчиков (чего одно меню только стоит)
3. Напрочь отсутствуют стандарты форматирования кода
4. Совершенно отсутствуют общепринятые в мире стандарты написания кода (свой огород, ага?)
5. Много маркетинга - ноль практической части
6. Абсолютное отсутствие какой-либо оптимизации. В коде видно, что написано абы-как лишь бы быстрее и максимально глупым способом (Например для меня было удивлением, что разработчики понятия не имею что такое тип Boolean).
7. Безосновательные утверждения что "в битрикс работают специалисты", вводящие в заблуждение пользователей (на основе пунктов выше)
8. Про системы контроля не искал, но уверен что если и есть, то что-то типа svn с горой костылей
9. Неправильный html вообще - валидация отсутствует, наслушались Лебедева?

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

Почему любая OpenSource CMS лучше в разы? Не за 2 копейки ж продаются услуги, можно было бы толковых разрабочиков нанять на пару месяцев, да привести в порядок все...

Предложение:
1. Найти людей
2. Переписать с нуля используя php 5 (да-да, php 4 не актуален, уже давно php 5.4 вышел; про отличия 5.3 от 5.2 и 5.2 от 5, тут, думаю, бессмысленно писать, все-равно не услышат)
3. Позиционировать как Bitrix 2.0
4. Написать нормальную документацию на английском языке. При этом все ввести стандарты форматирования исходного кода
6. Познать ООП, MVC (это страшные слова на первый взгляд, после изучения что это такое, становится понятно)
7. Познать принцип "не повторяй!", код повторяется миллион раз

Рейтинг: 17.997  
Пользователь 11948 15.04.2012 19:49:23
В России так плохо с программистами? Некому совсем работать?
Представьте себе, да.
Рейтинг: 17.6694  
Пользователь 11948 15.04.2012 19:54:59
Почему любая OpenSource CMS лучше в разы?
А вот это вранье.

К сожалению, конструктива с вами не получится. Вы из тех дрочеров с Хабры, у которых вагон и вагонетка времени сидеть и дрочить на чистый код, а на деле ничего боевого не производя, и не зная как устроен боевой рынок и боевой маркетинг. Как делаются бабки, в конце концов.

Именно такие как вы вылизываете код и выпускаете Жумлу для онанистов, которая ложится на большой посещаемости.

И так далее. И именно такая причина моего первого коммента - все онанируют на чистый код, никто не работает.

Возвращайтесь в ряды Хабровчан, Хабровчанин.  Что вы забыли в Битриксе, с вашим сожалением, я не понял. Шеф заставил? Ах негодяй! Денег потребовалось? Ну так зарабатывайте на своих системах елки-палки. Они же мега-круты до помутнения в рассудке.
Рейтинг: -16.9562  
Пользователь 125855 15.04.2012 20:18:01
Ну объективной реакции от поклонников Битрикса и пр. я не ожидал, если честно
Именно такие как вы вылизываете код и выпускаете Жумлу
Ну если для вас джумла - это верх совершенства, то смысл чего-то доказывать... Битрикс/Джумла/... - это все одного поля ягода

А вот это вранье.
Magento, osCommerce, Prestashop - для крупных/средних магазинов, ModX + Shopkeeper - для малых
Как делаются бабки, в конце концов.
Программисты с таким подходом, который вы высказали, точно не котируются на серьезном рынке и про "бабки" (любимое слово почему-то защитников битрикса) - это от силы 1k евро в месяц. Большего не светит
Возвращайтесь в ряды Хабровчан, Хабровчанин.
Меня на хабре нет, вас обидели на этом сайте? Соболезную
Шеф заставил?
Пришлось заняться поддержкой существующего сайта, т.к. "уникальные партнеры" (на языке маркетинга "специалисты" ) не смогли справиться со своими обязанностями, а именно применить необычный дизайн и поменять логику работы меню
Они же мега-круты
Modx - для несложных сайтов, typo3 - для корпоративных со сложной логикой, wordpress - для прочих, magento/prestashop - для магазинов, symfony (или ruby on rails когда хочется разнообразия) или zend (в зависимости от задач) - для уникальных проектов.
Где тут место битриксу? Это жалкая пародия на магенту

----
P.S. Интересно читать отзывы защищающих битрикс, которые говорят "мы заколачиваем бабки", пишущие гневные комменты с телефона из метро, а так же в жизни не слыхавших про ООП, MVC, паттерны программирования и пр. ...
P.P.S. Не удивительно что "эталонной системой" выбрали убунту и красивые оправдания, почему не сумели избавиться от апача в пользу nginx ))))
P.P.P.S. Яркий пример - голосования на сайте. Один голос 0.3979 (и в несколько раз больше от заинтересованных - накрутка голосов) - где кэп?. Маркетинг преподнесет, что это уникальная и сложная система голосования ) Но мы-то знаем...

Рейтинг: 16.3391  
Пользователь 29931 15.04.2012 21:42:11
1. Разработка системы зашла в тупик

На чем основано заключение? Доказательство, может примеры чего-то есть?
Пока что это пшик в воздух.

2. Очень нелогичные решения банальных задач, вводящие в заблуждение разработчиков (чего одно меню только стоит) 

А документацию пробовали читать? Или крутоперцы ее не читают?
Меню создается просто и его структура логична до безобразия.

3. Напрочь отсутствуют стандарты форматирования кода
4. Совершенно отсутствуют общепринятые в мире стандарты написания кода (свой огород, ага?) 

Вы про общие рекомендации? Как бы существует только 1 основной полустандарт GNU Coding Standart и ряд рекомендаций, которые по сути регламентируют только отступы, кондиционные условия и то их эффективность сомнительна. Пока что я прихожу к мнению, что вы с трудом читаете чужой код
написанный не в стиле вашего гкода.

Резюмируя. Стандартов нету - это каша в вашей голове. А рекомендации есть.
5. Много маркетинга - ноль практической части

В чем нет практики?  Примеры в студию.

6. Абсолютное отсутствие какой-либо оптимизации. В коде видно, что написано абы-как лишь бы быстрее и максимально глупым способом (Например для меня было удивлением, что разработчики понятия не имею что такое тип Boolean). 

Опять же. Примеры в студию.
Про булевые переменные говорите? Т.е. Вас напрягает использование Y\N?
Много я повидал трукодеров вроде Вас, у которых код вот так работает:
$a = "false"; //получили переменную где то выше по коду
if($a == true) echo 'wtf?';
И потом думаю, а что все работает в моем гкоде не так.
Для слаботипизированного языка в ряде случаев лучше использовать числовые\символьные значения, но вам это не ведомо. Да, и где надо булевские переменные используются, судя по дате регистрации и написанию поста дальше прочтения кода 1-2х компонентов автор не осилил

7. Безосновательные утверждения что "в битрикс работают специалисты", вводящие в заблуждение пользователей (на основе пунктов выше)
Пока что, все пункты выше это пшик автора, безосновательный. Ни одного примера и довода не видно. Вестимо, автор просто завидует.

8. Про системы контроля не искал, но уверен что если и есть, то что-то типа svn с горой костылей
Чувствует, что автор нафапался статей с какой нибудь хабры, и теперь знает что такое гит и чувствует себя повелителем разума.
Система контроля версий используется та, что удовлетворяет потребностям, а не чтобы пофапать на модную рюшечку. Надеюсь, мне не надо рассказывать как получали доступ к приватным проектам на ГитХабе итд?

9. Неправильный html вообще - валидация отсутствует, наслушались Лебедева?
Вначале научите браузеры соблюдать стандарты.
Самый лучший показатель - это пользователи, а не галочка, что все валидно.
Да может быть все валидно, вот только браузеры показывают разметку абсолютно по разному. Так что ваш довод о галочке от W3C не состоятелен.

Ощущение что разработкой занимаются студенты (что подтверждает обилие кэпс-лока) без опыта работы, знающие исключительно теоретическую часть, которая далека от реальности
Приведите как пример свои творения, посмеемся вместе.
А по делу:
Что лучше писать
echo $a["MY_SUPER_VARUABLE"]
или
echo $a["MySuperVariable"]
Практичнее будет 1й вариант, потому что не запутает разработчика, который не напишет потом:
echo $a["mySuperVariable"]
и на выходе получил null
Опять же, не приписываете свою привычку к определенному виду кода к окружающему коду.

Почему любая OpenSource CMS лучше в разы?
Аргументируете с примерами, пока опять пшик ни о чем.

2. Переписать с нуля используя php 5 (да-да, php 4 не актуален, уже давно php 5.4 вышел; про отличия 5.3 от 5.2 и 5.2 от 5, тут, думаю, бессмысленно писать, все-равно не услышат)
А что в 5.4 такого особенного (да и вышел он всего 1 мес. назад)?
Пара новых хинтингов, пара коротких записей и кривая реализация множественного наследования под названием кортежи?
Ничего кардинального.
Да и будет вам известно что новые модули все пищутся на 5.х +
Поизучайте модуль БП, потом расскажите, на сколько удалось осилить вам его.

6. Познать ООП, MVC (это страшные слова на первый взгляд, после изучения что это такое, становится понятно)
Полагаю оно уже познано программистами Битрикс.
Наверное, автору не попадались книжки, где разъясняется где стоит использовать ООП, а где нет?

Резюмирую. Автора смешно читать. Нахватался где-то верхов и умных слов.
Но уже с высоты своей важности (слова то новые знает, статьи на хабре читал) делает пустые выводы и дает такие же советы. При это не приведя ни одного довода или доказательства.

Баламут, короче. Не зачет.
Рейтинг: 3.2484  
Пользователь 29931 15.04.2012 21:44:47
P.P.P.S. Яркий пример - голосования на сайте. Один голос 0.3979 (и в 
несколько раз больше от заинтересованных - накрутка голосов) - где кэп?.
 Маркетинг преподнесет, что это уникальная и сложная система голосования
 ) Но мы-то знаем...


Рейтинг и авторитет? Не, не знаем.

Вес голоса зависит от авторитета пользователя, у вас он почти нулевой.
И не надо выдавить желаемое за явь =) а то мало ли что себе вообразите.
Рейтинг: -3.4025  
Пользователь 125855 15.04.2012 22:11:23
Вы про общие рекомендации? Как бы существует только 1 основной полустандарт GNU Coding Standart и ряд рекомендаций, которые по сути регламентируют только отступы, кондиционные условия и то их эффективность сомнительна. Пока что я прихожу к мнению, что вы с трудом читаете чужой код
написанный не в стиле вашего гкода.
Ну я же так и сказал, городят свой огород
Да, и где надо булевские переменные используются, судя по дате регистрации и написанию поста дальше прочтения кода 1-2х компонентов автор не осилил
1. Я зарегистрировался чтобы высказаться
2. Уважаемый защитник, да будет вам известно, что это снова свой огород и попытка реализовать троичную логику на бинарных системах. Не существует таких идиотов, которые пишут "true" вместо true, а если и существуют, то это не имеет отношения к причине этой идеи
Пока что, все пункты выше это пшик автора, безосновательный. Ни одного примера и довода не видно. Вестимо, автор просто завидует.

Чувствует, что автор нафапался статей с какой нибудь хабры, и теперь знает что такое гит и чувствует себя повелителем разума.
Чего ж вы к хабре приелись... Нет меня на хабре и я не имею к нему никакого отношения, кто ж виноват, что это неудавшаяся маркетинговая площадка для битрикса, потому как там разбирающиеся люди?
Самый лучший показатель - это пользователи
Точно Лебедева наслушались... Слово - в слово. Только почему-то все забывают, что под "пользователи" подразумевается один проверяющий под конкретным браузером. Даже тут, на официальном сайте, комментирование тупит под линуксом в хроме
К тому же что браузеры стараются следовать рекомендациям w3c, но они понимают, что из-за массовых проектов типа битрикса половина сайтов будет отображаться не пойми как, введи они строгое соответствие стандартам. И они потеряют аудиторию, т.к. бытовой пользователь будет грешить в сторону браузера, а не разработчиков сайтов - это и тормозит прогресс жутко и откладывает введение новых стандартов
echo $a["mySuperVariable"]
Ну-ну, еще кто-то говорит что знает ООП $a->getMySuperVariable() ? Не, не слышали

Почему вы не стали доказывать, что в битриксе присутствует концепция MVC, но я ее не осилил?
свою привычку
Это не моя привычка, а привычка квалифицированных программистов всего мира, к уровню которых я стремлюсь
А что в 5.4 такого особенного
Ну я ж говорил, толку тут объяснять, если слушать отказываются и не читают анонсы и новости?
Полагаю оно уже познано программистами Битрикс.
Я вижу (сарказм), но в какой-то мере могу понять их труд из-за политики поддержки хоть в какой-то вид привести то, что они получили в "наследство", но это выливается в мои слова "разработка зашла в тупик"
Баламут, короче. Не зачет.
Куда уж мне до вас, "специалистов, закалачивающих бабло"
Вес голоса зависит от авторитета пользователя, у вас он почти нулевой.
Прям так чувствуются мысли "а у меня авторитет выше, бе-бе-бе"







Рейтинг: 2.8433  
Пользователь 29931 15.04.2012 23:51:42
Ну я же так и сказал, городят свой огород
Отступы и кондиционные условия в рамках GNU Coding Standart, так что на данный момент. Так что довод не засчитан, это пустое имхо ни на чем не основанное. Чтобы что то доказать надо приходить с примерами а не с навыками сотрясения воздуха.

2. Уважаемый защитник, да будет вам известно, что это снова свой огород и попытка реализовать троичную логику на бинарных системах. Не существует таких идиотов, которые пишут "true" вместо true, а если и существуют, то это не имеет отношения к причине этой идеи
В связках js-php-mysql в слаботипизированном языке это очень реалистично. Пример привести или сами догадаетесь?
Про наглядность и расширяемость это конечно не, не надо. Никто не отменял подхода использовать не только N\Y.

Чего ж вы к хабре приелись... Нет меня на хабре и я не имею к нему никакого отношения, кто ж виноват, что это неудавшаяся маркетинговая площадка для битрикса, потому как там разбирающиеся люди?
Так говорят, потому что по манере разговора, вы похожи на фапальщика кода, коих несметное количество на хаброподобных ресурсов, но вот что то свое (программы\код) они не в большинстве своем не в состоянии показать.

К тому же что браузеры стараются следовать рекомендациям w3c, но они понимают, что из-за массовых проектов типа битрикса половина сайтов будет отображаться не пойми как, введи они строгое соответствие стандартам. И они потеряют аудиторию, т.к. бытовой пользователь будет грешить в сторону браузера, а не разработчиков сайтов - это и тормозит прогресс жутко и откладывает введение новых стандартов
Каждый браузер поддерживает и делает, что душе угодно. Если оно поддерживают стандарты, то необходимости в тех же css -moz, -webkit, итд не было бы, а также разное понимания js событий, например той же оперой или сафари никоим образом не говорит о том, что браузеры следуют стандартам. Как пример onunload(), которое описано в w3c. И да, наверное все же лучше у нас будет галочка от w3c, что все валидно, а пользователь пусть сам как нибудь мучается, что в ряде браузеров все вкривь и вкось.

Ну-ну, еще кто-то говорит что знает ООП $a->getMySuperVariable() ? Не, не слышали Почему вы не стали доказывать, что в битриксе присутствует концепция MVC, но я ее не осилил?
О да, придраться к короткому примеру это гениально. Т.е. для того чтобы мне вывести переменную из, допустим GET (опустим проверки на безопасность итд), вы мне предлагаете:
1) Написать целый класс
2) Затем его инициализировать
3) Затем использовать 1 несчастный метод, причем наверняка по оформлению он будет magic, что дает определенные тормоза(но автор то не знает, зачем же). И такой подход вы считаете производительным? Или для кого я упомянул про:
Наверное, автору не попадались книжки, где разъясняется где стоит использовать ООП, а где нет?
Не осилили сей мысли и решили изобрести мегагалактическийнейтронный космический корабль только для того, чтобы вскопать огород, хотя и лопата идеально подходит?

Ну-ну, еще кто-то говорит что знает ООП $a->getMySuperVariable() ? Не, не слышали Почему вы не стали доказывать, что в битриксе присутствует концепция MVC, но я ее не осилил?
Потому что автор ее и в самом деле не осилил.

Ну я ж говорил, толку тут объяснять, если слушать отказываются и не читают анонсы и новости?
Автор, ну расскажи тогда что там есть ТАКОЕ (важное), чего я не упомянул.

Резюмируя.
Автор опять написал не аргументированное баламутсво основанное только на своем имхо. Ни одного примера, доказательства так и не было предоставлено.
За сим, автора считаю обычным Троллем.

Рейтинг: -3.8563  
Пользователь 125855 16.04.2012 00:10:12
Защитник, ты хоть ссылки научись вставлять в комментарии, потом уже поговорим ;)
1) Написать целый класс
2) Затем его инициализировать
Потому что автор ее и в самом деле не осилил.
Как все запущено... Хватит троллить, доказывая свою некомпетентность и прошу объективно ответить по моим пунктам, либо вообще не отвечать
Рейтинг: -2.4746  
Пользователь 125855 16.04.2012 00:16:59
+ яркий пример... Нажимаешь "Редактировать" (официальный сайт!) и зависает вкладка намертво. Показатель качества продукции налицо
Рейтинг: 3.0518  
Пользователь 32771 17.04.2012 09:35:18
Приведите как пример свои творения, посмеемся вместе. А по делу: Что лучше писать echo $a["MY_SUPER_VARUABLE"] или echo $a["MySuperVariable"] Практичнее будет 1й вариант, потому что не запутает разработчика, который не напишет потом: echo $a["mySuperVariable"] и на выходе получил null Опять же, не приписываете свою привычку к определенному виду кода к окружающему коду.
Разработчики битрикса сами не стремятся следовать своим стандартам кода.Вы просто возмите разные компоненты и посмотритие.
Например в news.list будет так $arResult['ITEMS'], а в blog.post.edit $arResult['Post'] или вообще может быть так:
foreach($_POST["IMAGE_ID_title"] as $imgID => $imgTitle)

Потом возьмите какой нибудь модуль. там просто идет смешение логики и вывода. И все в одном файле.
Автор прав, тот же компонент blog.post.edit имеет порядка 1700 строчек кода. О каком ООП может идти речь =) тут даже функционального то программирования нет.

К тому же мы находили серъезные баги уже в стабильных версиях. Например ошибки в MySql запросах, которые были зарепорчены в поодержку битрикса и признаны ошибки и переданные на исправление в последующих версиях продукта. Что говорит о том что разработчики ядра даже просто не могут покрыть свой код тестами.

На сколько я знаю Битрикс уже переписывает свой фреймворк с нуля на новую версию с использование ООП, mvc, php 5.3++ и обещает зарелизить к осени, но вот что из этого выйдет =)
Рейтинг: 1.7037  
Пользователь 1848 17.04.2012 11:48:15
Переписать полностью CMS для вы выхода на серезный уровень (Битрикс 2.0)
Давно пора. Хватит тянуть костыли с древних версий и городить на них заплатки.


В коде видно, что написано абы-как лишь бы быстрее и максимально глупым способом
Да, порой можно встретить такие перлы!!! Похоже, что не особо значимые скрипты пишут студенты, это понятно - у гуру свои дела.
4. Совершенно отсутствуют общепринятые в мире стандарты написания кода (свой огород, ага?)
Очень часто даже не придерживаются своих же рекомендаций по написанию кода и форматированию.
Написать нормальную документацию на английском языке
Да уж, хотя бы на русском. Некоторые вещи не документированы уже года 4, хотя активно везде используются.
Рейтинг: -2.396  
Пользователь 1848 17.04.2012 14:53:41
Ктой-то одним голосом рейтинг с -62 на -92 сделал?
Рейтинг: 0.1119  
Пользователь 32771 17.04.2012 15:23:22
Ктой-то одним голосом рейтинг с -62 на -92 сделал?
Рыжиков активно мониторит эту ветку =))
Рейтинг: -0.0072  
Пользователь 1848 17.04.2012 15:30:22
Рыжиков активно мониторит эту ветку =))
:D А говорили, что админы не голосуют за идеи
Рейтинг: 2.9056  
Пользователь 109703 17.04.2012 15:37:17
Мне кажется, что изначально Битркис не совсем укладывается в общепринятую реализацию MVC, которую используют современные фреймворки (Rails, Django, Kohana).

И основное место где это заметно - неполноценный MVC, отсутствие возможности ввести собственные методы для конкретной модели.

Привычка получать любые элементы инфоблоков с помощью одного класса (CIblockElement), независимо от того, какую сущность они реализуют, надолго засела вголовах. Особенно для ребят, которые с Битрикса начинали, это кажется логичным, но пришедшим с других фреймворков легче почувствовать неудобства из этого факта вытекающие.

Логично, что имея 2 разных инфоблока (модели) мы, как разработчики, скорее всгео хотели бы иметь кучу специфичных методов для каждого из них. Это сократило бы код контроллеров в разы. На деле же мы получаем "тонкую модель" и "толстый контроллер". Отсюда же на большинстве проектов мы видим, что стандартный контроллер используется по всему сайту для вывода десятков различных данных, используется, замечу, с одной и тойже логикой внутри. Разработчик на более "современном" фреймворке сразу поймет, что это не дело, но привыкшим кажется, что это вполне приемлемая архитектура.

Конечно есть возможность наследовать для каждой модели свой класс и дописать ему нужные методы, но:
1. Где и как эти классы размещать? Где специцикация и стандарты? В итоге каждый будет делать по-своему и все станет еще сложнее.
2. Нет ORM- соответственно неудобно писать теже собственные методы

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

В итоге разработчик вынужден в каждом контроллере, где используется сущность, писать заново ее сложные выборки, когда он могды сделать это единажды в модели (copypaste?).

Ну и еще одна старая проблема - компоненты 2.0 которые якобы реализуют routing, но с другйо стороын размещаются на физических страницах. От использования фиических страниц уже давно отошли даже самые отсталые. Есть урл который обслуживается определенным контроллером, все.  

В качестве небольшого примера (код не на php но суть должна быть ясна ):
Есть модель игрока.
В нескольких контролерах нужно реализовать получение данных о его сыгранных партиях.
В контролере достаточно вызвать:


Player.games.all()



На php с использованием ORM код был бы слегка длиннее но суть таже и читабельность практически не потеряется.
Если мне нужно выбирать выигранные партии в конкретном турнире, я в модели описываю метод

def games_played_by_tourid(:id)

И в любом контроллере:


Player.games_layed_in_tourid(id)

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

Еще один недостаток (уже на мой личный взгляд) кроется в том, что читая код


$arFilter = Array("IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
while($ob = $res->GetNextElement())
{
  $arFields = $ob->GetFields();
}

разработчик не сразу понимает, что будет результатом выборки. Какие сущности достаются?

В варианте с полноценной моделью даже увидев пару строк кода, понимаешь, что работа идет от Player - игрока, и получаются games - игры. Просто принцип читабельности кода.
Страницы: 1  2