Ale
нехер юзать магию)
Sergey
у меня по сути критерий при выборе кандидата - знает он доктрину или нет
Sergey
если нет - шансы что я его буду брать резко понижаются
guga
если нет - шансы что я его буду брать резко понижаются
Хм, зато есть вариант научить как правильно
Sergey
и это реально проблема потому что из 10-ти синьеров только парочку не пугают слова unit of work
Sergey
о сисярп
Ale
а есть стикеры, где янг, дядя Боб, Фаулер, Бек, Эванс и вот эти все чуваки?
Sergey
Хм, зато есть вариант научить как правильно
есть, но в это надо инвестировать время. Потому такие кандидаты если и появляются, я обычно смотрю насколько много времени уйдет что бы обучить... был у меня один чувак год-полтора назад
Sergey
он доктрину и вообще подобные штуки не юзал никогда
Sergey
Sergey
Могу немного про hibernate расказать.
а че вместо него юзаете? jdbc templates, jooq?
Sergey
mybatis или как там его
Sergey
2 часа у вайтборда, я ему нарисовал что зачем, зачем unit of work
Sergey
он денек почитал доку и прошарился
Sergey
причем... не просто прошарился а знал как оно чего там на вполне приемлимом уровне
Sergey
это ж вроде маппинг и все?
guga
ну да, весь sql пишешь руками
guga
в xml
guga
😂
Sergey
достаточно ведь доку прочитать, там все интерналы описаны
к тебе приходит кандидат, который пишет на симфони 4 года, и который понятия не имеет что делает flush и почему пихать его в сервисы не ок
Sergey
я не знаю как тебе, а для меня это уже сигнальчик что читать доку он не будет
Sergey
у меня ребята на проекте до сих пор делают persist перед flush чтобы сохранить))
каждый второй которым я говорил так не делать перед этим проверяли не вру ли я
Sergey
или делают персист для каскадных сущностей...
Sergey
и ВАУ, работает! херасе!
Sergey
ну короч доктрине на начальном уровне можно научить
Sergey
если ты мыслишь не табличками и можешь объектную модель представить
Sergey
я обычно на это смотрю, насколько чувак тугой
Sergey
название mybatis странное какое-то. в тайской рекламе зубную пасту рекламировали с подобным названием)
Sergey
если он привык что "статика это норм", что "писать можно в публичные проперти из вьюшки"
Sergey
то придется потратить немало времени что бы переучить... а надо ли оно
Sergey
@guga4ka как вы обычно определяете что человек не дебил?)
Sergey
вот мне тоже интересно)
Sergey
ибо у меня пока только субъективная оценка по совокупности ответов
Sergey
даже... не то что не дебил.... я плохо пока представляю как можно оценить способность обучаться на собесе
Sergey
за ограниченное время
Sergey
а потом испыталка?
guga
ну я скипал конторы, в которых были не интерсные интревью
Sergey
а ты щас на галере какой-то?
Sergey
ты ж в Харькове вроде?
guga
некторые конторы скипали меня
guga
в целом довольно просто отпеределить.
guga
но это лично для себя.
guga
Чаще всего, если человек понимает core языка, особых затыков в изучении нового фреймворка у него не будет, особенно, когда есть у кого спросить
guga
Нр вот галерам, чаще всего нужен и чтец и жнец и на дуде игрец
guga
ты ж в Харькове вроде?
Да, работаю почти на фрилансе.
guga
пилю бэкенд для небольших апликух для знакомых
guga
А было довольно сильно обидно, когда не прошел в одну довольно занятную контору
Sergey
а че не прошел? оверклавифайд?
guga
Тестовое у них было, написать парочку очередей
guga
а че не прошел? оверклавифайд?
скорее недоквалифайд
guga
моя блокирующая очередь почему-то умерла на 500 конекшенах, по их словах
guga
нужно будет потыкать код, который написал, на досуге
Sergey
@Enleur по поводу нашего холивара на чем писать тесты... напили простенький тест класса Calculator о том что метод calculate($a, $b) возвращает 2
Sergey
эм)
Sergey
ну... есть одна штука которая меня бесит и я вот думаю может ты по другому готовишь тест кейсы
Sergey
вот та штука про которую ты говорил как контр-аргумент для кодогенерации спека... что шторм это умеет и могет
Sergey
вот... я свой шторм не смог этому обучить
Sergey
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
вот как у меня
Sergey
например
Sergey
<?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
оке, а теперь... вот так мой пример записывается в спеке
Sergey
class AccountSpec extends ObjectBehavior { function it_changes_unconfirmed_balance() { $this->shouldNotThrow()->duringAddUnconfirmedBalance(100); $this->shouldNotThrow()->duringAddUnconfirmedBalance(-20); $this->unconfirmedBalance()->shouldReturn('80'); }
Sergey
ну то есть... банально меньше кода
Sergey
сек)
Sergey
я болен?
Sergey
я ленив? - да, хочу писать меньше!
Sergey
хочу хочу хочу
Sergey
но и заставлять учить phpspec + phpunit я не хочу
invariance
ужас какой
Sergey
а property based testing в спеке делать не удобно
Sergey
во всяком случае пока-что
Sergey
ну ок, могу сократить код
Sergey
<?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
$calculator = new Calculator();
Sergey
хочу вот это вообще как-то убрать)
Sergey
ооо еще одна штука