@oop_ru

Страница 37 из 785
guga
23.12.2016
21:06:27
Скорее от незнания самого хибера, много проблем

а в нём очень много неочевидных мест.

Aleh
23.12.2016
21:06:53
вот презенташка Янга как раз в тему

Google
Sergey
23.12.2016
21:06:55
ну да... в целом есть такая штука. Выше @mkusher как раз об этом кидал доклад Грега Янга

Aleh
23.12.2016
21:06:56
нехер юзать магию)

Sergey
23.12.2016
21:07:15
у меня по сути критерий при выборе кандидата - знает он доктрину или нет

если нет - шансы что я его буду брать резко понижаются

guga
23.12.2016
21:07:49
если нет - шансы что я его буду брать резко понижаются
Хм, зато есть вариант научить как правильно

Sergey
23.12.2016
21:07:58
и это реально проблема потому что из 10-ти синьеров только парочку не пугают слова unit of work

Sergey
23.12.2016
21:08:00
о сисярп

Aleh
23.12.2016
21:08:05
а есть стикеры, где янг, дядя Боб, Фаулер, Бек, Эванс и вот эти все чуваки?

Sergey
23.12.2016
21:08:52
Хм, зато есть вариант научить как правильно
есть, но в это надо инвестировать время. Потому такие кандидаты если и появляются, я обычно смотрю насколько много времени уйдет что бы обучить... был у меня один чувак год-полтора назад

он доктрину и вообще подобные штуки не юзал никогда

Sergey
23.12.2016
21:09:19
Могу немного про hibernate расказать.
а че вместо него юзаете? jdbc templates, jooq?

mybatis или как там его

Google
Sergey
23.12.2016
21:11:13
2 часа у вайтборда, я ему нарисовал что зачем, зачем unit of work

он денек почитал доку и прошарился

причем... не просто прошарился а знал как оно чего там на вполне приемлимом уровне

Sergey
23.12.2016
21:11:15
это ж вроде маппинг и все?

guga
23.12.2016
21:11:33
ну да, весь sql пишешь руками

в xml

?

Sergey
23.12.2016
21:11:55
достаточно ведь доку прочитать, там все интерналы описаны
к тебе приходит кандидат, который пишет на симфони 4 года, и который понятия не имеет что делает flush и почему пихать его в сервисы не ок

я не знаю как тебе, а для меня это уже сигнальчик что читать доку он не будет

Sergey
23.12.2016
21:12:39
у меня ребята на проекте до сих пор делают persist перед flush чтобы сохранить))
каждый второй которым я говорил так не делать перед этим проверяли не вру ли я

Sergey
23.12.2016
21:12:43
или делают персист для каскадных сущностей...

Sergey
23.12.2016
21:12:45
и ВАУ, работает! херасе!

ну короч доктрине на начальном уровне можно научить

если ты мыслишь не табличками и можешь объектную модель представить

я обычно на это смотрю, насколько чувак тугой

Sergey
23.12.2016
21:13:40
название mybatis странное какое-то. в тайской рекламе зубную пасту рекламировали с подобным названием)

Sergey
23.12.2016
21:13:50
если он привык что "статика это норм", что "писать можно в публичные проперти из вьюшки"

то придется потратить немало времени что бы переучить... а надо ли оно

Google
Sergey
23.12.2016
21:14:11
@guga4ka как вы обычно определяете что человек не дебил?)

Sergey
23.12.2016
21:14:29
вот мне тоже интересно)

ибо у меня пока только субъективная оценка по совокупности ответов

даже... не то что не дебил.... я плохо пока представляю как можно оценить способность обучаться на собесе

за ограниченное время

Sergey
23.12.2016
21:16:30
а потом испыталка?

guga
23.12.2016
21:16:52
ну я скипал конторы, в которых были не интерсные интревью

Sergey
23.12.2016
21:17:06
а ты щас на галере какой-то?

ты ж в Харькове вроде?

guga
23.12.2016
21:17:12
некторые конторы скипали меня

в целом довольно просто отпеределить.

но это лично для себя.

Чаще всего, если человек понимает core языка, особых затыков в изучении нового фреймворка у него не будет, особенно, когда есть у кого спросить

Нр вот галерам, чаще всего нужен и чтец и жнец и на дуде игрец

ты ж в Харькове вроде?
Да, работаю почти на фрилансе.

пилю бэкенд для небольших апликух для знакомых

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

Sergey
23.12.2016
21:20:45
а че не прошел? оверклавифайд?

guga
23.12.2016
21:20:55
Тестовое у них было, написать парочку очередей

Google
guga
23.12.2016
21:21:16
а че не прошел? оверклавифайд?
скорее недоквалифайд

моя блокирующая очередь почему-то умерла на 500 конекшенах, по их словах

нужно будет потыкать код, который написал, на досуге

Sergey
23.12.2016
21:23:22
@Enleur по поводу нашего холивара на чем писать тесты... напили простенький тест класса Calculator о том что метод calculate($a, $b) возвращает 2

Sergey
23.12.2016
21:23:55
эм)

Sergey
23.12.2016
21:24:13
ну... есть одна штука которая меня бесит и я вот думаю может ты по другому готовишь тест кейсы

вот та штука про которую ты говорил как контр-аргумент для кодогенерации спека... что шторм это умеет и могет

вот... я свой шторм не смог этому обучить

class AccountTest extends TestCase { private $account; public function setUp() { $this->account = new Account(); } public function test_change_account_balance() { $this->account->addUnconfirmedBalance(100); $this->account->addUnconfirmedBalance(-20); self::assertEquals('80', $this->account->unconfirmedBalance()); } }

вот как у меня

например

Sergey
23.12.2016
21:29:21
<?php namespace Tests; class CalculatorTest extends \PHPUnit_Framework_TestCase { /** * @var Calculator */ private $calculator; protected function setUp() { $this->calculator = new Calculator(); } /** * @dataProvider dataProvider */ public function testCalculate(float $a, float $b, float $expected) { $result = $this->calculator->calculate($a, $b); $this->assertEquals($expected, $result); } private function dataProvider(): array { return [ [1, 1, 2], [2.2, 2.2, 4.4], [1, 2, 3], [0, 0, 0], ]; } }

Sergey
23.12.2016
21:29:40
оке, а теперь... вот так мой пример записывается в спеке

class AccountSpec extends ObjectBehavior { function it_changes_unconfirmed_balance() { $this->shouldNotThrow()->duringAddUnconfirmedBalance(100); $this->shouldNotThrow()->duringAddUnconfirmedBalance(-20); $this->unconfirmedBalance()->shouldReturn('80'); }

ну то есть... банально меньше кода

Sergey
23.12.2016
21:30:39
сек)

Sergey
23.12.2016
21:30:40
я болен?

я ленив? - да, хочу писать меньше!

хочу хочу хочу

но и заставлять учить phpspec + phpunit я не хочу

Google
F01134H
23.12.2016
21:31:00
ужас какой

Sergey
23.12.2016
21:31:10
а property based testing в спеке делать не удобно

во всяком случае пока-что

Sergey
23.12.2016
21:31:52
ну ок, могу сократить код

<?php namespace Tests; class CalculatorTest extends \PHPUnit_Framework_TestCase { /** * @dataProvider dataProvider */ public function testCalculate(float $a, float $b, float $expected) { $calculator = new Calculator(); $result = $calculator->calculate($a, $b); $this->assertEquals($expected, $result); } private function dataProvider(): array { return [ [1, 1, 2], [2.2, 2.2, 4.4], [1, 2, 3], [0, 0, 0], ]; } }

Sergey
23.12.2016
21:32:46
$calculator = new Calculator();

хочу вот это вообще как-то убрать)

ооо еще одна штука

Sergey
23.12.2016
21:33:31
как тестировать конструирование объекта в phpunit? я правильно понимаю что если ты хочешь это потестить тебе уже не получится юзать setUp?

или setUp не будет ничего полезного делать?

Sergey
23.12.2016
21:33:48
в смысле тестить конструирование?

что это за тест такой?

Sergey
23.12.2016
21:34:01
что мол если ты передал в конструктор херню, то должен выкинуть исключение

в phpspec я могу написать что-то типа

Sergey
23.12.2016
21:34:11
ок, щас

Sergey
23.12.2016
21:34:41
$this->beConstructedWith($foo, $bar); $this->shouldThrow()->duringInstantiation();

хотя ладно кейс с setUp будет таким же и в спеке

там просто это называется let

Sergey
23.12.2016
21:35:04
public function testShitstorm() { $this->expectException(\InvalidArgumentException::class); new \Calculator('omfg'); }

или же

/** * @expectedException \InvalidArgumentException */ public function testShitstorm() { new \Calculator('omfg'); }

Страница 37 из 785