@bitrixfordevelopers

Страница 437 из 1492
Pavel
18.01.2017
22:21:38
не, давай уже серьезно конкретно твоя работа
Разработка функционала на OroCRM)

Бернгардт
18.01.2017
22:21:51
а - я работаю в продуктовой компании, вот црм это как я работаю директором, в фирме ) большой )

ыы

ни о чем не говорит, кроме попыток показать какой ты крутой )

Google
Pavel
18.01.2017
22:22:20
Haik
18.01.2017
22:22:24
Разработка функционала на OroCRM)
ОУ!!! Что это значит? Я уже подумал, что ты написал ОроЦРМ и ГитХаб. И решил уже заткнуться.

Vite4eg
18.01.2017
22:22:24
Разработка функционала на OroCRM)
А магазин на ней быстро поднимается?

Pavel
18.01.2017
22:22:25
Вы спросили я ответил)

Бернгардт
18.01.2017
22:22:38
ни разу не старался) Это ты все додумал
а я не додумываю, а предлагаю показать

покажи конкретно что ты можешь )

Pavel
18.01.2017
22:22:59
А магазин на ней быстро поднимается?
НУ если бы ты посмотрел то это CRM правда уже зареоизился OroCommerce но там b2b

Бернгардт
18.01.2017
22:23:43
А магазин на ней быстро поднимается?
crm, там b2b, он работает там, что не понятного то? ?

Vite4eg
18.01.2017
22:23:48
Итак, приходит ко мне клиент. Хочу, говорит, магазин. А я ему - на ороцрм. Там магазина нет, зато все тестами покрыто

Бернгардт
18.01.2017
22:23:56
Pavel
18.01.2017
22:24:36
а может ты там и не работаешь? пруф в студию )
Ок не работаю Можешь в линкедыне меня найти)

Бернгардт
18.01.2017
22:24:53
пруф что ты там работаешь, пруф вклада ) если слово "примонтировать" вызывает трудности, а клиента протокола от клиента маунта не отличаешь у меня большие вообще вопросы в твоей компетенции )

Google
Бернгардт
18.01.2017
22:25:12
ага, понял)

огоцрм поищи.. я хз где оно, может и нет такой меня поищи )

Vite4eg
18.01.2017
22:25:35
Битрикс популярен прежде всего тем, что магазин намнем очень быстро поднимается

Бернгардт
18.01.2017
22:27:31
Vite4eg
18.01.2017
22:27:53
В противовес приводилась магента. Ну ок, давай сравним проекты. И тут нам говорят, что oroCRM. Мы же про магазины говорили. Если сравнивать CRM, то это другой разговор

Бернгардт
18.01.2017
22:27:57
а если приватный класс тестировать, это же ваще ппц, не справится)

Бернгардт
18.01.2017
22:28:16
оу, волшебное слово нда, ну ок )

Pavel
18.01.2017
22:28:40
оу, волшебное слово нда, ну ок )
ДА не вопрос, не веришь можешь сам узнать)

Бернгардт
18.01.2017
22:28:41
видимо урл огоцрм тоже нда не дает )

Pavel
18.01.2017
22:28:48
Ок все ребя твы меня пабидили)

Бернгардт
18.01.2017
22:29:00
да никто тебя пабиждать не собирался )

Pavel
18.01.2017
22:29:23
Бернгардт
18.01.2017
22:29:25
остынь, над тобой просто посмеялись и не больше ) ладно, давай ... продолжение надеюсь знаешь)

Vite4eg
18.01.2017
22:30:06
А прибыть oroCRM приносит? Большую?

Бернгардт
18.01.2017
22:30:10
пфф

Vite4eg
18.01.2017
22:30:12
И кому?

Бернгардт
18.01.2017
22:30:31
https://github.com/orocrm/crm
среди топа апруверов тебя не видно)

Google
Ok
18.01.2017
22:30:55
шо мы на человека накинулись?

Pavel
18.01.2017
22:31:11
Бернгардт
18.01.2017
22:31:23
а не, нашел, самый заминусованный же )) 8,235 ++ / 20,618 —

ыыы

бугага

Ok
18.01.2017
22:31:36
работает себе, делает вклад в срм

ⓛⓤⓒⓘⓤⓢ➁➆‮
18.01.2017
22:31:43
шо мы на человека накинулись?
никто не накинулся, как сказал бы тот самый человек "это ты додумал" :)

Ok
18.01.2017
22:32:11
ночь, битрикс меня замучал модуль рассылок

Vite4eg
18.01.2017
22:32:17
На самом деле тут два подхода к продукту

Бернгардт
18.01.2017
22:32:19
не, серьезно.. самый заминусованный, я думал мне показалось видимо тоже мозги всем ебет ?

Ok
18.01.2017
22:32:20
а тут такое)

Vite4eg
18.01.2017
22:32:30
Каждый на битрикс по-разному смотрит

Ok
18.01.2017
22:32:39
он всего лишь более за качество битрикса

и за уменьшение кол-ва багов

Vite4eg
18.01.2017
22:32:49
За качество кода

но по сути да

Pavel
18.01.2017
22:33:34
Бернгардт
18.01.2017
22:33:53
protected function changeOnDeleteToCascade(Schema $schema, array $data) + { + foreach ($data as $tableName => $columns) { + $table = $schema->getTable($tableName); + foreach ($columns as $column) { + $foreignKeys = $table->getForeignKeys(); + foreach ($foreignKeys as $foreignKey) { + $foreignKeyColumns = $foreignKey->getUnquotedLocalColumns(); + if ($foreignKeyColumns === [$column]) { + if ($foreignKey->getOption('onDelete') !== 'CASCADE') { + $table->removeForeignKey($foreignKey->getName()); + $table->addForeignKeyConstraint( + $foreignKey->getUnqualifiedForeignTableName(), + $foreignKeyColumns, + $foreignKey->getUnquotedForeignColumns(), + ['onDelete' => 'CASCADE', 'onUpdate' => $foreignKey->getOption('onUpdate')] + ); + } + + break; + } + } + } + } + } +} и этот человек говорит о качестве кода? может еще 10 уровней вложенности докрутить? почемуб нет)

давно так не ржал, спасибо)

Google
Бернгардт
18.01.2017
22:38:43
без целевой системы будет сложно.. но сейчас попробую )

это даже забавно)

Pavel
18.01.2017
22:39:20
это даже забавно)
В общем закинешь PR комьюнити тебе спс скажет

Бернгардт
18.01.2017
22:39:41
да ну) это же тестить надо) я тебе сейчас скину, протестишь) будет явно читабельнее)

10 минут) тут ничего сложного)

Pavel
18.01.2017
22:40:12
Бернгардт
18.01.2017
22:40:22
сколько платишь?

Бернгардт
18.01.2017
22:41:24
я показал на косячный код)

засомневался в адекватности, вижу подтверждение

Admin
ERROR: S client not available

Бернгардт
18.01.2017
22:41:50
ты пытаешься поддеть, могу показать как правильно, мне ен сложно)

Pavel
18.01.2017
22:41:52
я показал на косячный код)
Ну это еще нужно доказать что он косячный

Бернгардт
18.01.2017
22:42:10
антипаттерн - пять уровней вложенности

второе - они не обязательны)

для начала $foreignKeys = $table->getForeignKeys(); можно получить вначале два foreach прогонять ради того чтобы найти if ($foreignKeyColumns === [$column]) { (остальное пропускается) - антипаттерн

думаю есть еще логическая ошибка - в foreach идет запрос, тут уже надо смотреть целевую систему, есть вероятность что делает обращение к внешнему источнику, но даже без него.. получается забавно

до трех уровней можно сократить)

если хочешь, могу пару частных уроков дать ;) бугага но не больше)

Pavel
18.01.2017
22:44:42
если хочешь, могу пару частных уроков дать ;) бугага но не больше)
Дык сделай. Глядишь на работу пригласят, как хорошего спеца)

Google
Бернгардт
18.01.2017
22:45:38
ахаха

Pavel
18.01.2017
22:45:42
Для того код и лежит на гитхабе что бы его комьюнити улучшало)

Бернгардт
18.01.2017
22:45:43
жги еще ?

меня на работу пригласят, радость то какая ???

Pavel
18.01.2017
22:46:02
жги еще ?
Т.е. ты не настолько хорошиый спец?)))

Бернгардт
18.01.2017
22:46:06
а я тебя не возьму, уж прости)

бля, чувак, я техдир) со своим офисом и очень интересными большими проектами напуркуа мне какая то твоя црм?

ахахах

блин, спасибо, ты мне сделал вечер ?

Pavel
18.01.2017
22:48:30
Pull Request.

Бернгардт
18.01.2017
22:52:42
хм, да смысла не вижу просто, время забито я лучше время разгребу и проведу его или с семьей-детишками, или тромбон кулисный наконец освою, а то на помповом надоело жизнь не кончается на программировании )

foreach ($columns as $column) { foreach ($foreignKeys as $foreignKey) { $foreignKeyColumns = $foreignKey->getUnquotedLocalColumns(); if ($foreignKeyColumns === [$column]) { поиск таблицы с одной записью чтоли?

всмысле массива

а, хотя нет, сравнение двух массивов.. блин.. вот логика..

Дык сделай. Глядишь на работу пригласят, как хорошего спеца)
protected function changeOnDeleteToCascade(Schema $schema, array $data) { foreach ($data as $tableName => $columns) { $table = $schema->getTable($tableName); $foreignKeys = $table->getForeignKeys(); $arrForeignKeyColumns = []; foreach ($foreignKeys as $key=>$foreignKey) { $foreignKeyColumns = $foreignKey->getUnquotedLocalColumns(); $arrForeignKeyColumns[$key] = $foreignKeyColumns; } foreach ($columns as $key=>$column) { $columns[$key] = $column; } $arDiff = array_intersect($arrForeignKeyColumns, $columns); $arKeys = array_keys($arDiff); foreach($arKeys as $key) { $foreignKey = $foreignKeys[$key]; if ($foreignKey->getOption('onDelete') !== 'CASCADE') { $table->removeForeignKey($foreignKey->getName()); $table->addForeignKeyConstraint( $foreignKey->getUnqualifiedForeignTableName(), $foreignKeyColumns, $foreignKey->getUnquotedForeignColumns(), ['onDelete' => 'CASCADE', 'onUpdate' => $foreignKey->getOption('onUpdate')] ); } } } } } наверняка опечатался, потому что делал без возможности перепроверки, но дикую вложенность убил, да и прирост будет наверняка на поиске, надо лишь проверить, и возможно устранить досадные опечатки можешь не благодарить

Pavel
18.01.2017
23:05:53
?

protected function changeOnDeleteToCascade(Schema $schema, array $data) { foreach ($data as $tableName => $columns) { $table = $schema->getTable($tableName); $foreignKeys = $table->getForeignKeys(); $arrForeignKeyColumns = []; foreach ($foreignKeys as $key=>$foreignKey) { $foreignKeyColumns = $foreignKey->getUnquotedLocalColumns(); $arrForeignKeyColumns[$key] = $foreignKeyColumns; } foreach ($columns as $key=>$column) { $columns[$key] = $column; } $arDiff = array_intersect($arrForeignKeyColumns, $columns); $arKeys = array_keys($arDiff); foreach($arKeys as $key) { $foreignKey = $foreignKeys[$key]; if ($foreignKey->getOption('onDelete') !== 'CASCADE') { $table->removeForeignKey($foreignKey->getName()); $table->addForeignKeyConstraint( $foreignKey->getUnqualifiedForeignTableName(), $foreignKeyColumns, $foreignKey->getUnquotedForeignColumns(), ['onDelete' => 'CASCADE', 'onUpdate' => $foreignKey->getOption('onUpdate')] ); } } } } } наверняка опечатался, потому что делал без возможности перепроверки, но дикую вложенность убил, да и прирост будет наверняка на поиске, надо лишь проверить, и возможно устранить досадные опечатки можешь не благодарить

Бернгардт
18.01.2017
23:10:49
$columns[$key] = [$column]; конечно же..

ну и если все эти foreach не являются скрытыми yeild обращениями к бд на самом деле, т.е. не вызовут проблем с нагрузкой, то лучше рефактор вот еще такой провести foreach ($columns as $key=>$column) { $columns[$key] = [$column]; } заменить на array_map(function($column){ return [$column] }, $columns); т.к. нагляднее и заменить foreach ($foreignKeys as $key=>$foreignKey) { $foreignKeyColumns = $foreignKey->getUnquotedLocalColumns(); $arrForeignKeyColumns[$key] = $foreignKeyColumns; } на array_map(function($v){ return $foreignKey->getUnquotedLocalColumns(); }, $foreignKeys); т.к. опять же и нагляднее и не вынуждает заводить временную переменную, которую завел чтобы не терять контекст

Mike
18.01.2017
23:19:52
Можно в следующий раз это куда-нибудь на pastebin размещать?

Страница 437 из 1492