@oop_ru

Страница 47 из 785
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: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
Ну да, но если у меня будет бэк из чтения я могу понять что я "изобрёл"
лучше приучи себя к дисцеплине. Принципы, практики вроде TDD

особенно по началу сильно заколяют

учись с молоду тесты писать ибо чем дальше тем больше лень их писать

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: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
рекомендую прошариться в теории ограничений

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, причем весьма опосредованно

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