Ale
нехер юзать магию)
Sergey
у меня по сути критерий при выборе кандидата - знает он доктрину или нет
Sergey
если нет - шансы что я его буду брать резко понижаются
guga
Sergey
и это реально проблема потому что из 10-ти синьеров только парочку не пугают слова unit of work
Sergey
о сисярп
Ale
а есть стикеры, где янг, дядя Боб, Фаулер, Бек, Эванс и вот эти все чуваки?
Sergey
Хм, зато есть вариант научить как правильно
есть, но в это надо инвестировать время. Потому такие кандидаты если и появляются, я обычно смотрю насколько много времени уйдет что бы обучить... был у меня один чувак год-полтора назад
Sergey
он доктрину и вообще подобные штуки не юзал никогда
Sergey
Sergey
mybatis или как там его
guga
Sergey
2 часа у вайтборда, я ему нарисовал что зачем, зачем unit of work
Sergey
он денек почитал доку и прошарился
Sergey
причем... не просто прошарился а знал как оно чего там на вполне приемлимом уровне
Sergey
это ж вроде маппинг и все?
guga
ну да, весь sql пишешь руками
guga
в xml
guga
😂
Sergey
я не знаю как тебе, а для меня это уже сигнальчик что читать доку он не будет
Sergey
Sergey
Sergey
или делают персист для каскадных сущностей...
Sergey
и ВАУ, работает! херасе!
Sergey
ну короч доктрине на начальном уровне можно научить
Sergey
если ты мыслишь не табличками и можешь объектную модель представить
Sergey
я обычно на это смотрю, насколько чувак тугой
Sergey
название mybatis странное какое-то. в тайской рекламе зубную пасту рекламировали с подобным названием)
Sergey
если он привык что "статика это норм", что "писать можно в публичные проперти из вьюшки"
Sergey
то придется потратить немало времени что бы переучить... а надо ли оно
Sergey
@guga4ka как вы обычно определяете что человек не дебил?)
Sergey
вот мне тоже интересно)
Sergey
ибо у меня пока только субъективная оценка по совокупности ответов
Sergey
даже... не то что не дебил.... я плохо пока представляю как можно оценить способность обучаться на собесе
Sergey
за ограниченное время
guga
Sergey
а потом испыталка?
guga
ну я скипал конторы, в которых были не интерсные интревью
Sergey
а ты щас на галере какой-то?
Sergey
ты ж в Харькове вроде?
guga
некторые конторы скипали меня
guga
в целом довольно просто отпеределить.
guga
но это лично для себя.
guga
Чаще всего, если человек понимает core языка, особых затыков в изучении нового фреймворка у него не будет, особенно, когда есть у кого спросить
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
ооо еще одна штука