@prophp7

Страница 1295 из 1387
Sergey
18.09.2018
08:56:21
если тебе интересно почему может понадобиться итератор а не массив - посмотри другие реализации - например PersistentCollection (или как-то так). где у тебя итератор будет орудовать курсором к базе данных и прочие непотребства делать

Dmitry
18.09.2018
08:58:21
Есть еще разница хранения на физическом уровне, наример, кластеризованный праймари у мускуля.

Sergey
18.09.2018
09:01:17
Есть еще разница хранения на физическом уровне, наример, кластеризованный праймари у мускуля.
никто не спорит, но такие нюансы уже для 1% проектов а то и меньше важны

Google
Sergey
18.09.2018
09:01:46
вот если ты убер ты можешь раз в два года писать статтьи о том как вы героически мигрировали с mysql на postgresql и обратно

Dmitry
18.09.2018
09:03:57
ну зато, имхо, этот героизм подарил постгресу логическую репликацию ;)

постулировал, так сказать

Sergey
18.09.2018
09:17:17
ну зато, имхо, этот героизм подарил постгресу логическую репликацию ;)
Думаешь без их нытья она бы не появилась в 10-ке?)

Хотя мне было интересно читать как статьи так и ответы разработчиков постгреса

Dmitry
18.09.2018
09:29:12
Ну хз…. как-то подозрительно, убер поныл, что большинство их проблем из-за отстутствия логической репликации, и тут она появилась. Может и совпадение….

Maksim
18.09.2018
09:31:07
ну работали они явно над ней и до нытья) просто катализатор дополнительный, имхо

Sergey
18.09.2018
09:41:06
Ну хз…. как-то подозрительно, убер поныл, что большинство их проблем из-за отстутствия логической репликации, и тут она появилась. Может и совпадение….
Не, логическая репликация им в основном была нужна для плавного обновления. А если они что с их объемами и тем как постгря хранит данные у них и место быстрее выбирается и с трафиком плохо. А ну и да - автовакуум

Dmitry
18.09.2018
09:41:51
Ну с автовакумом были проблемы… из-за долгих транзакциях на слейвах… и еще с чем-то

Sergey
18.09.2018
09:43:15
Я вот лично ещё до необходимости в pgbouncer не дорос, так что...

Dmitry
18.09.2018
09:58:04
А есть кто использует кролика с большим числом топиков на один эксчендж? Ну порядка десятков тысяч топиков. С постоянным bind/unbind, как ведет себя кролик

Google
Dmitry
18.09.2018
10:02:17
топик, т.е. пара десятков очередей забиндило на одном эксчендже пару десятков тысяч топиков

Maksim
18.09.2018
10:03:24
у нас гошная часть такой хуитой страдает, но там счёт на сотни идёт. За тысячи не могу сказать, но с сотнями он даже не задумывается.

Dmitry
18.09.2018
10:04:45
вебсокет? ?

Maksim
18.09.2018
10:05:36
не, всякое фоновое непотребство. а так оно потому, что гошник наугад херачил

Dmitry
18.09.2018
10:11:57
а… я вот думаю как банасировку вебсокета сделать

Maksim
18.09.2018
10:12:42
а модная центрифуга чем не катит? или тебе не только раскидывать надо?

Sergey
18.09.2018
10:13:31
Балансировку лучше рэдисаси да тарантулами

Опять же центрифуга хорошо скейлится вокруг рэдиса

Dmitry
18.09.2018
10:14:17
потому что у нас уже свое налобали, центрифугу сложно внедрять… да и не факт, что она поможет, сообщения кролика же нужно тоже балансировать

Maksim
18.09.2018
10:15:08
а своё на чём, если не секрет? просто любопытство

Dmitry
18.09.2018
10:15:09
типа редис как оркестрация сообщений… хочется избежать, типа на каждое сообщение читать из редиса связь “клиент-инстанс”?

свое на го тоже

Chupa
18.09.2018
11:57:40
Возможно не по теме немного вопрос, но может был у кого опыт добавления параметров в POST запрос при использовании nginx как прокси

с GET все просто, строку дописываем и все

Sergey
18.09.2018
11:58:31
Все можно дополнить на lua)

Dmitry
18.09.2018
11:58:42
без lua не получится

Chupa
18.09.2018
11:59:12
http://ywebdev.com/?p=1 Вот единственное, что пока нашел

Sergey
18.09.2018
11:59:44
Но сама задачка попахивает... Если бы мне нужно было что то докидывать маленькое я б заголовки пихал

http://ywebdev.com/?p=1 Вот единственное, что пока нашел
Ну собственно это единственный нормальный вариант

Google
Батманов
18.09.2018
13:53:14
Всем привет) объясните, плз, если в бизнес логике не рекомендуется использовать исключения, то какие способы еще есть возвращать ошибки? Делать какой то специальный класс MessageBug и проверять его постоянно на наличие ошибок?

F01134H
18.09.2018
13:53:35
чаво

Roman
18.09.2018
13:54:30
а почему нельзя использовать исключения?

по моему не рекомендуется использовать исключения типа для логики

а не то что вообще не использовать

Батманов
18.09.2018
13:55:42
ну я про бизнес логику имел ввиду

Maksim
18.09.2018
13:55:42
всё смешалось, люди и кони... можно использовать исключения, если ты понимаешь что делаешь. А можно не использовать исключения и писать, как go портянки if(err != nill), если знаешь, что делаешь.

Maksim
18.09.2018
13:56:11
просто зачастую эксепшены используется, как эдакий скрытый goto. Что бы через надцать слоёв улететь наверх.

F01134H
18.09.2018
13:56:21
как по мне, лучше всего писать в процедурном стиле без обработки исключений, все равно пхп сам упадет если что



Батманов
18.09.2018
13:57:25
просто зачастую эксепшены используется, как эдакий скрытый goto. Что бы через надцать слоёв улететь наверх.
получается если исключение используется в бизнес логике, чтобы выскочить на много слоев выше, значит проблема в организации кода?

Roman
18.09.2018
13:57:55
если оно используется именно для этого то да

Maksim
18.09.2018
13:58:07
в таком случае ты можешь взять goto и не обманывать ни себя, ни окружающих)

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

Amon Bower
18.09.2018
14:02:45


Чтобы OG:IMAGE генерировался в зависимости от заголовка

Maksim
18.09.2018
14:03:03
сделай, 20 строк кода займёт.

Google
Dmitriy
18.09.2018
14:04:23
Чтобы OG:IMAGE генерировался в зависимости от заголовка
можно. https://stackoverflow.com/questions/6021894/draw-text-with-custom-font-using-imagemagick-and-php

Maksim
18.09.2018
14:06:19
короче с эксепшенами, как с наследованием: наследование - это плохо. Нихера подобного. Всё зависит от того, на сколько человек понимает что он делает. Если он делает херню, то он будет делать херню при любом варианте.

Батманов
18.09.2018
14:06:44
нет прям жёсткого запрета на использование эксепшенов. Всё ограничено здравым смыслом. если ты делаешь, к примеру, валидацию, то тебе надо вернуть коллекцию факапов. Ты ж не будешь делать коллекцию исключений, правда?) и не будешь использовать летящее исключение в качестве транспорта?)
ну с валидацией согласен) но там ты сразу входные данные проверил и вернул обратно ошибки. А если факап случается где то дальше? Ну что нибудь типа объект A использует B, который использует C, и в C какая то проверка не проходит. Нужно стараться выносить все проверки как можно выше?)

Maksim
18.09.2018
14:08:32
приведи какой-нить более приземлённый пример

Батманов
18.09.2018
14:14:39
ну у нас напр. сейчас приходит запрос на активацию id юзера, и id продукта. Проверям в объекте "A" есть ли такой юзер и продукт. Система взаимодействует еще с другой внешней системой через объект "B". И в объекте А могут возникнуть ошибки при проверке данных и в объекте В при отправке запросов. Получается нужно в А перехватывать ошибку и отсылать выше.

Bohdan
18.09.2018
14:17:49
зачем? это разные ошибки

Maksim
18.09.2018
14:18:48
Ну у тебя есть какой-то кусок, который отвечает за активацию; кусок для работы с внешней системой и кусок, который зкнимается проверкой ао внешней системе. Каждый из них бросает свой тип. А есть кусок, который соединяет все части воедино. Он ловит факапы и адаптирует, выбрасывая уже свой. В таклм случае у тебя нет разницы какой подход юзать

В куске, который занимается активацией, есть ещё абстракция над бд и так далее.

Admin
ERROR: S client not available

Maksim
18.09.2018
14:20:56
Тут вопрос не в эксепшенах, а в ответственности

Батманов
18.09.2018
14:29:22
А тип ты имеешь ввиду эксепшн?

Maksim
18.09.2018
14:31:34
Ога

А если ты шинами обмазываешься, то у тебя не эксепшены будут, а события

Батманов
18.09.2018
14:44:00
Где то читал про следующую проблему. Есть главный кусок А, который ловит эксепшн от куска Б. Один разработчик пишет кусок Б, который общается с внешней системой. И этот разработчик вводит новый эксепшн, который кусок А не умеет ловить. И если это исключение происходит, исключение выбрасывается хз куда и система крашится) Возможно конечно что такой случай должны тесты поймать, но я не уверен)

Maksim
18.09.2018
14:46:37
если в докблоках верно прописаны все исключения, то даже шторм подсветит, что ты херню затеял. В любом случае, это не проблема исключений.

Maksim
18.09.2018
14:47:11
Bohdan
18.09.2018
14:47:34
фу таким быть
но я никого обвинять не буду, если исключение вылетит - сложно себя обвинять)

а вообще склоняюсь к подходу fail fast - в моем кейсе это не очень рискованно

Maksim
18.09.2018
14:48:50
а вообще склоняюсь к подходу fail fast - в моем кейсе это не очень рискованно
ты ж в го упарываешься) ещё не привык if(err != nill) всюду пихать?)

Google
Bohdan
18.09.2018
14:49:13
последнее время не упарываюсь) то было дело, на две недельки упоролся, и потом еще на пару дней - надо было

Борис
18.09.2018
14:49:16
Где то читал про следующую проблему. Есть главный кусок А, который ловит эксепшн от куска Б. Один разработчик пишет кусок Б, который общается с внешней системой. И этот разработчик вводит новый эксепшн, который кусок А не умеет ловить. И если это исключение происходит, исключение выбрасывается хз куда и система крашится) Возможно конечно что такой случай должны тесты поймать, но я не уверен)
Кусок Б может все свои ексепшены отнаследовать от базового BException extends \Exception. Кусок А может ловить какие-то частные исключения, для тонкой обработки, но в любом случае должен обрабатывать catch(BException){. Тогда твой кусок А не будет падать. С другой стороны, может это и хорошо, что у тебя все падает? Быстрее ошибку найдешь

Bohdan
18.09.2018
14:50:36
ты ж в го упарываешься) ещё не привык if(err != nill) всюду пихать?)
меня там больше бесило собирать данные и всякое из каналов) но я уверен, что наговнокодил, а времени фиксить не было (то для девчелленджа)

Maksim
18.09.2018
14:50:49
а ещё нативные стактрейсы, ага)

Bohdan
18.09.2018
14:54:46
"видишь суслика? а он есть"

Chupa
18.09.2018
14:56:34
Столкнулся с тем, что в nginx нельзя передать заголовки php_auth_user и php_auth_pw при помощи proxy_set_header. Никак не могу найти в чем дело, их нельзя напрямую передавать?

Они просто до адресата не доходят

Любые другие названия - Ok

Alexey
18.09.2018
14:58:07
всем привет

Как правильно указать селектор в phpQuery если там есть пробел $doc ->find('#doth kl');

Alexey
18.09.2018
15:00:55
так указан id на разметке

вот например <div class="rfc rftr"></div> Как класс указать, пробел то является разделителем

Yury
18.09.2018
15:02:50
.class1.class2

Alexey
18.09.2018
15:03:26
получается просто без пробела .rfc.rftr ???

Yury
18.09.2018
15:03:48
если оба класса нужно искать на одном элементе

да

Andrew
18.09.2018
15:08:40
так указан id на разметке
проблема в том что идентификатор говорит - браузер, смотри, это элемент с уникальным идентификатором. Два уникальных идентификатора не имеют смысла.

Борис
18.09.2018
15:34:31
но ведь это как раз и получится goto в бизнес-логике. И как отличить этот хороший goto от плохого про которого мы говорили выше?)
Давай так, goto в логике, это когда бросаемое исключение знает (или хотябы расчитывает) на то, что его словят. throw new CatchMeAndProcessValidationError() это аналог goto Если ты бросаешь исключения только чтобы информировать пользователя либы Б - девелопера А - и оставляешь принятия решения, что с этой исключительной ситуацией делать девелоперу А - это гуд throw new BCouldntProcessBecauseExternalUnavailable() - Б говорит, что сейчас не может обслужить запрос. Если A пофиг, по какой причине B не работает (например, если что-то случилось, положить задачу в очередь и повторить позже) то можешь ловить все исключения. Возможно нужна более тонкая обработка. В любом случае, B не должен просто так пробрасывать (игнорировать) исключения своей зависимости C. Тоесть B должен словить все, что может бросить C и отдать свои исключения. А как пользователь либы Б должен парится только о Б исключениях.

Страница 1295 из 1387