Ale
чет не улавливаю проблемы
guga
вот собственно процедура рефреша в jwt меня и интересует
Ale
подожди, а как бы он заходил, если бы у него был пароль?
Ale
вот истек токен
Ale
че дальше?
guga
логинся заново :D
Ale
ты ответил на свой вопрос)
guga
так не интересно
guga
🐴
https://github.com/f3ath/translations/blob/master/law-of-demeter-dot-counting.md
🐴
я начал переводить. присоединяйтесь (желательно откуда-нибудь с середины)
Sergey
завтра вечерком переведу кусок
Sergey
пойду с конца
Sergey
> вместо выброса NullReferenceException может просто "вместо исключения"?)
Sergey
ну это ладно, потом
Ale
http://scottberkun.com/2007/asshole-driven-development/
Sergey
занятно)
Sergey
Cover Your Ass Engineering - о да :-)
🐴
попытка #3 написать что-то объектное https://github.com/f3ath/git-changelog
Sergey
https://github.com/f3ath/git-changelog/blob/master/src/Git/Commit.php#L23
Sergey
мне кажется этому место в том месте, где ты лог читаешь
Sergey
https://github.com/f3ath/git-changelog/blob/master/src/Changelog.php#L20
Sergey
тут можно было бы завернуть это добро в 2 стратегии
Sergey
что бы избавиться от if-а
Sergey
уберем лишний тест кейс
🐴
тут можно было бы завернуть это добро в 2 стратегии
мне он тоже не нравится, но я нешмогла
Sergey
> но я нешмогла ну... просто два класса имплементящих что-то вроде ChangesetProvider
Sergey
и третий класс который будет выбирать нужный по параметру
Sergey
но в целом могу сказать что выглядит лучше чем в прошлый раз
Sergey
еще не заглядывал в тесты
🐴
тестов мало
🐴
Git не покрыт
Sergey
ну во всяком случае рефакторить меньше)
Sergey
https://github.com/f3ath/git-changelog/blob/master/src/Versions.php#L22
Sergey
вот эта штука слегка смущает
Sergey
чуть-чуть совсем
🐴
ну не фабрику же городить ради этого
Sergey
а тебе фабрика и не нужна, тебе нужен какой-то процессор версий
Sergey
ну или фабрика некой VersionCollection
Sergey
если упарываться
Sergey
что бы система типов описывала взаимодействие логики
🐴
тебя смущает plural название?
Sergey
не, меня смущает что в конструктор может придти что угодно
🐴
может
Sergey
но судя по статическому методу должен придти массив чего-то в строго определенном формате
Sergey
то есть мы допускаем нарушение инварианта
🐴
но semver будет орать, если там лажа
Sergey
ну мол в таком ключе скорее всего все ок
🐴
а из хороших решений что-то есть?
🐴
в смысле у меня в коде
Sergey
RevisionRangeInterface норм
Sergey
(еще бы без суффиксов но я не буду спорить по coding style)
Sergey
ну мол ты хорошо изолировал эту хрень
Sergey
https://github.com/f3ath/git-changelog/blob/master/src/Changelog.php#L31
Sergey
вот эту штуку бы вынести в какой-нибудь форматтер
Sergey
но это мелочи
🐴
это да
Sergey
блин напомни завтра
🐴
перевод?
Sergey
перевод?
посижу поперевожу сейчас и пойду спать
Sergey
просто хотелось с тобой как раз на примере твоего кода про SOLID чутка поболтать)
🐴
добро
Sergey
у тебя там есть маленькие и простые примеры когда ты например SRP нарушил и парочка где ты их соблюдаешь
Sergey
на примерах все же проще
🐴
https://github.com/f3ath/git-changelog/blob/master/src/GitGateway.php
🐴
вот этот класс мне не нравится
🐴
эдакий фасад-адаптер
🐴
без четкой ответственности
🐴
но я хз как без него
Sergey
проанализируй где и зачем ты его юзаешь
🐴
чтобы разгрузить Changelog
Sergey
ну то есть "там-то что бы версию забрать"
Sergey
там-то что бы чейнджлог забрать между двумя ревизиями
🐴
просто потому что без него сложно тестировать
Sergey
просто потому что без него сложно тестировать
это мелочи, я предлагаю тебе добавить чуть-чуть interface segregation
Sergey
https://github.com/f3ath/git-changelog/blob/master/src/GitGateway.php#L61
Sergey
вот эта штука не понятна
🐴
в целом он переводит с терминов гита в термины чейнжлога