
Sergey
08.03.2017
20:07:03
последние лет 5 активно только
и то если года 3 назад я верил в D то сейчас не очень

Paul
08.03.2017
20:28:29
Да давно закопать надо
Если не выстреливает, то не нужно тратить время

Google

Sergey
08.03.2017
22:26:20
на фоне rust уж точно

F01134H
08.03.2017
22:32:35
rust вроде тоже не оч живой?

Sergey
08.03.2017
22:33:00

Aleh
08.03.2017
22:33:08
ну servo лагает, а так развивается, у мозилы планы ж
и в фаерфоксе уже кусок есть

Sergey
08.03.2017
22:33:29
в целом сама концепция rust крутая как по мне
я очень надеюсь что на нее не забьют

F01134H
08.03.2017
22:35:38
я вот думаю, делать хайлоадное апи на пыхе - хорошая вообще идея?

Aleh
08.03.2017
22:36:08
хайлоад и апи такие растяжимые понятия, что прям ответа нет

F01134H
08.03.2017
22:36:24
до 10к rps

Sergey
08.03.2017
22:37:07

F01134H
08.03.2017
22:37:19
а что должно?

Sergey
08.03.2017
22:37:43
если ты знаешь только php - то использовать php хорошая идея. Если не только - то тогда надо выбирать из того что знаешь.

Google

F01134H
08.03.2017
22:38:03
ну еще golang

Sergey
08.03.2017
22:38:06
а что должно?
что делает приложение, каков характер запросов, как будет использоваться приложение.

F01134H
08.03.2017
22:38:43
к php душа лежит)
работаю на нем

Sergey
08.03.2017
22:38:57

F01134H
08.03.2017
22:39:19
а есть какие-нибудь примеры хайлоада на пыхе?

Sergey
08.03.2017
22:39:24
фэйсбук

Aleh
08.03.2017
22:39:25
фейсбук)

Sergey
08.03.2017
22:39:27
сойдет?

F01134H
08.03.2017
22:39:34
там вроде питон не?

Sergey
08.03.2017
22:39:51

F01134H
08.03.2017
22:39:59
ясно

Aleh
08.03.2017
22:40:15
вк тож, но там пых времен 3 версии
и их странный компилятор
и еще база, и очередь

F01134H
08.03.2017
22:40:48
вк это вообще другое

Sergey
08.03.2017
22:41:06
ну и у вк или фэйсбука побольше rps
потому что бы они не делали - им можно
а тебе - врядли

Google

F01134H
08.03.2017
22:41:25
у вк там с++ на выходе получается

Aleh
08.03.2017
22:41:39
это неважно
они жили очень долго и хорошо без этого

F01134H
08.03.2017
22:41:59
Ладно ладно
убедили

Sergey
08.03.2017
22:42:04
если что - один из проектов в моей компании держит на php 10K rps
но там мегапримитивная логика

F01134H
08.03.2017
22:42:52
да у меня тоже не слишком сложная

Sergey
08.03.2017
22:43:11
короч все упирается в архитектуру и стоимость поддержки

F01134H
08.03.2017
22:43:24
о
а на чем этот проект держится?

F01134H
08.03.2017
22:43:52
ну тех характеристики сервера
или это секрет?

Sergey
08.03.2017
22:44:07

F01134H
08.03.2017
22:44:19
понятно

Sergey
08.03.2017
22:44:44
ну то есть, php ты можешь скейлить как хочешь
база данных - read-only реплики
и можно незагоняться весьма долго
далее уже зависит от специфики проекта

Google

da horsie
09.03.2017
00:28:28

F01134H
09.03.2017
00:42:23
секс

da horsie
09.03.2017
01:35:30
А как вы описываете требования к интерфейсу? Вот например, есть у меня некий Application, которому требуется некий Storage с определенными характеристиками
и вот я определил, допустим, interface Storage { public foo(); public bar(); }
эти foo() и bar() должны вести себя определенным образом. А реализаций Storage может быть много

Admin
ERROR: S client not available

da horsie
09.03.2017
01:38:00
DatabaseStorage implelents Storage; FileStorage impelements Storage
для них в принципе подошел бы один и тот же тест
все, сам нашел )

Aleh
09.03.2017
06:30:24

da horsie
09.03.2017
07:33:40
The base or abstract test case performs the implementation-neutral tests
While the concrete tests take care of instantiating the object to test, and perform any implementation-specific tests.
http://www.guru99.com/interface-testing.html
ответ очевидный оказался

Sergey
09.03.2017
07:35:28
ну тип предлагают жахнуть интеграционный тестик?

da horsie
09.03.2017
07:36:39
про интеграционные я вроде ничего не заметил
в моем случае решение - просто сделать тесткейсы реюзабельными
ну то есть ответ капитана очевидности как бы

Sergey
09.03.2017
07:38:56

Evgeniy
09.03.2017
10:49:21
ничего вразумительного в пхп не нашлось для этого, phpunit не особо к этому готов(

Google

Sergey
09.03.2017
11:06:30

Evgeniy
09.03.2017
11:06:59
так хотелось бы иметь гарантию что код реализующий интерфейс

Sergey
09.03.2017
11:07:02
как устранять дублирование - можно по разному. Можно тупо вынести в базовый класс, можно сделать отдельную тест сюиту которая проверяет контакт и прогонять каждый тест кейс на разных реализациях

Evgeniy
09.03.2017
11:07:05
одинаково себя ведет
ну например взять psr/container чтобы все кто его имплементят

Sergey
09.03.2017
11:07:28

Evgeniy
09.03.2017
11:07:43
при отсутствии контейнера NotFoundException выбрасывают

Sergey
09.03.2017
11:07:43
точнее у тебя на каждую реализацию есьт набор тестов которые проверяют что контракт соблюдается

Evgeniy
09.03.2017
11:07:46
да
именно контракт

Sergey
09.03.2017
11:07:54
ну так и в чем проблема?

Evgeniy
09.03.2017
11:07:54
не Unit тест

Sergey
09.03.2017
11:08:05

Evgeniy
09.03.2017
11:08:05
так тут и получается дублирование
в каждом Unit тесте
дублирование тестов контракта