
Sergey
27.12.2016
21:30:16
хотя уже намного лучше чем года 3 назад)
))

Sergey
27.12.2016
21:30:41
я за эти

Google

Sergey
27.12.2016
21:30:41
тип "что такое coupling, coheasion", паттерны GRASP, принципы SOLID, принципы KISS, DRY, YAGNI, LoD...

Sergey
27.12.2016
21:31:01
а ну это такое... тот же KISS весьма и весьма... извращенно понимается первые пару лет
втупую
как и YAGNI
как и DRY...
оно вроде бы просто "не должно быть дублирования" а люди воспринимают это как-то... не так
зацикливаются


Артур Евгеньевич
27.12.2016
21:31:43
Спасибо про принципы, сохранил себе) а вот я себе список книг составил, что можете сказать, нет ли откровенно лишнего?
--Фримен Эр., Фримен Эл., Сьерра К., Бейтс Б. - Паттерны проектирования
--Б. Маклафлин - Объектно-ориентированный анализ и проектирование
--Мэтт Вайсфельд -- Объектно-ориентированное мышление
--Мэт Зандстра - PHP. Объекты, шаблоны и методики программирования
--Kristopher Wilson - The Clean Architecture in PHP
--Мартин Фаулер. Архитектура корпоративных программных приложений
--Харольд Абельсон, Джеральд Джей Сассман - Структура и Интерпретация Компьютерных Программ
--Эрик Эванс - Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем
--Чарльз Петцольд - Код. Тайный язык информатики
--М. Фаулер - Рефакторинг

Sergey
27.12.2016
21:32:16
стать архитектором?

Sergey
27.12.2016
21:32:25
голову только себе забьешь)

Sergey
27.12.2016
21:32:30
ну вот и я о том же

Google

Sergey
27.12.2016
21:33:10
из этого списка однозначно стоит читать Фаулера
про рефакторинг

Артур Евгеньевич
27.12.2016
21:33:18
Я считаю что при чтении информации любой, она индексируется в голове, даже если кажется что не запоминаешь

Sergey
27.12.2016
21:33:33

Артур Евгеньевич
27.12.2016
21:33:40
И потом можно как максимум вспомнить, а как минимум знать где зырить

Sergey
27.12.2016
21:33:43
и поймешь ты только когда "переизобретешь"

Артур Евгеньевич
27.12.2016
21:33:53

Sergey
27.12.2016
21:34:05
чистый код прочитай
и хватит)

Sergey
27.12.2016
21:34:08
$foo = $bar + 4;
вот
что сложного в этом коде?

Артур Евгеньевич
27.12.2016
21:34:31

Sergey
27.12.2016
21:35:00
особенно по началу сильно заколяют
учись с молоду тесты писать ибо чем дальше тем больше лень их писать

Sergey
27.12.2016
21:35:29
меньше знаешь - проще код писать
а то потом садишься и не знаешь в какую сторону идти - везде ограничения(ментальные)

Sergey
27.12.2016
21:35:46

Google

Sergey
27.12.2016
21:35:58
пфф
тру пацаны рефакторят без тестов же

Sergey
27.12.2016
21:36:15
> а то потом садишься и не знаешь в какую сторону идти - везде ограничения(ментальные)
помню когда 4 назад было такое... начитался всякой ерунды про паттерны и продуктивность резко упала
> тру пацаны рефакторят без тестов же
ну так это с опытом же

Артур Евгеньевич
27.12.2016
21:36:36
$foo = $bar + 4;
Имена переменных не нравятся. Так же если представить что $bar объект то лучше метод inc создать
А вообще не оч понял пример этот

Sergey
27.12.2016
21:36:57

Sergey
27.12.2016
21:37:03
ща сек
тест от егора

Sergey
27.12.2016
21:37:14
state это всегда сложно
имутабельность, append only, уменьшение связанности, тотальный контроль над data flow
уменьшение длины этого самого data flow (в идеале код который обрабатывает данные лежит в том же объекте что и данные)

Артур Евгеньевич
27.12.2016
21:37:53

Sergey
27.12.2016
21:38:20
по поводу ООП мне очень понравилось одна метафора

Артур Евгеньевич
27.12.2016
21:39:01

Sergey
27.12.2016
21:39:15
представь что объекты, это такие маленькие комьютеры... каждый со своей памятью и своими операциями. Каждый делает свою работу (аналогия - микросервисы). И все они просто отправляют сообщения между собой с целью что-то сделать.

Sergey
27.12.2016
21:39:23
https://github.com/teamed/quiz/blob/master/Parser.java
вот

Sergey
27.12.2016
21:39:45

Sergey
27.12.2016
21:39:47
тест заключается в "сделай этот код збс"

Google

Sergey
27.12.2016
21:40:12

Sergey
27.12.2016
21:40:17
не
чуваку

Sergey
27.12.2016
21:40:22
ааа...
код Егора?
к слову да

Артур Евгеньевич
27.12.2016
21:40:37
Хорошо, завтра попробую. Пока с телефона

Sergey
27.12.2016
21:40:43
угу, на его докладе было

Sergey
27.12.2016
21:40:46
совершенный код (или чистый код) надо почитать и читать раз в пол года

Sergey
27.12.2016
21:40:48
когда он набрасывал
совершенный код - гавно

Sergey
27.12.2016
21:40:59
ну ок

Sergey
27.12.2016
21:41:00
чистый код - перечитывать постоянно

Sergey
27.12.2016
21:41:03
чистый код) мне тоже больше нравится

Артур Евгеньевич
27.12.2016
21:41:04
Я правда не джавист, но думаю в этом контексте неважно

Sergey
27.12.2016
21:41:06
лучше знать наизусть)

Артур Евгеньевич
27.12.2016
21:41:17
Скучно

Sergey
27.12.2016
21:41:40
ну и еще.... это не совсем по програмухе

Google

Sergey
27.12.2016
21:42:08
рекомендую прошариться в теории ограничений

Артур Евгеньевич
27.12.2016
21:42:11

Sergey
27.12.2016
21:42:54
The Goal - Eliyahu M. Goldratt
вот эта книга

Артур Евгеньевич
27.12.2016
21:42:58
А блин нету, видимо стер ее

Rodion
27.12.2016
22:41:43
воды много?

Sergey
27.12.2016
22:44:24
либо вода, либо капитанщина

da horsie
27.12.2016
23:44:41
@fes0r как тестировать такие методы? https://github.com/f3ath/git-changelog/pull/1/files#r93981076

Sergey
27.12.2016
23:45:12
я тебе привел способ убрать зависимость от git gateway
там где тебе надо просто уже готовые данные пробросить
у тебя необходимость взаимодействовать с внешним миром уменьшится
остануются тупо данные и логика

da horsie
27.12.2016
23:46:36
Блин, не отправился коммит
Я имею в виду Git::getRevisions

Sergey
27.12.2016
23:47:09
его только интеграционными тестами
git::getRevisions у тебя взаимодействует с внешним миром и именно это взаимодействие тебе надо проверить что бы убедиться, что реализация соблюдает контракт, наложенный интерфейсом

da horsie
27.12.2016
23:48:02

Sergey
27.12.2016
23:48:42
Но ведь они scam?
ну в том то и дело, у тебя их должно быть немного и они должны именно проверять интеграцию с внешними компонентами/внешним миром
потому я и ввел класс Commit что бы убрать необходимость иметь зависимость от гейтвея там где не надо

da horsie
27.12.2016
23:49:15
Получается тест будет проверять еще и сам класс Commit, причем весьма опосредованно